1.面对对象指的是面对具体数据的行为
2.对象:就是计算机中的具体数据
①创建对象:格式:类名 对象名 = new 类名();
注:可以使用类作为数据类型来形成对象集,也就相当于创建一个数组.例:
Student[ ] student = new Student[长度];也就相当于创建一个数组
②使用对象:对象名.变量名 (student.类中的成员变量)
③使用方法:对象名。方法名();(student.toString)
注:
从对应的地址池中找对应的数,在测试哪里就可以用访问地址的方法访问其中的值
3.类:就是现实生活中一类具有共同属性和行为的事物的抽象,确定对象拥有的属性和行为(就是数据信息的类型)注:类的重要性:是java程序的基本组成单位
①类的属性:在类中通过成员变量来体现(类中方法外的变量)
②类的行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)
4.类与对象的关系:①类是对象的抽象②对象是类的实体
l例题:
先知:
toString的用法:
@Override
public String toString() {//从对应的地址池中找对应的数,在测试哪里就可以用访问地址的方法访问其中的值
return "学号为" + number + ", 年级为" + state + ", 分数为" + score ;
}
Math.random:Math.random方法是取随机数,得到的值为double,取值在0-1之间.
Math.round():Math.round(变量名)方法用于四舍五入取整,得到的值为long,()里加的是要改变的值
例题:
定义类Student,包含三个属性:学号number(int),年级state(int),成绩 score(int)。
创建20个学生对象,学号为1到20,年级和成绩都由随机数确定。
问题:打印出3年级(state值为3)的学生信息。
分析:
①要创建一个定义类Student(注意类的创建多用大驼峰),其中的成员变量为学号number(int),年级state(int),成绩 score(int)。
②创建20个对象,学号要1-20,这里就可以用前面说的引用类作为数据类型,船家女一个对象集,也就是个数组
③要求,打印出state为3的数用循环套分支来实现
首先创建一个Student类:
public class Student {
//创建成员变量
int number;
int state;
int score;
@Override
public String toString() {//从对应的地址池中找对应的数,在测试哪里就可以用访问地址的方法访问其中的值
return "学号为" + number + ", 年级为" + state + ", 分数为" + score ;
}
}
注意,这个类要和测试的类在同一个包内,这里就是用了toString的方法,就可以从地址池内取出相关的数据。
测试类:
public class Ceshi {
public static void main(String[] args) {
Student[] student = new Student[20];//引用类为数据类型的对象集
for (int i = 0; i < 20; i++) {
student[i] = new Student();//每循环一次,从前面的对象集数值中取出一个元素创建对象
student[i].number = i + 1;//因为i从0开始,学号要求为1-20,所以每次加1
double q = Math.random() * 2 + 1;//Math.random方法是取随机数,得到的值为double,取值在0-1之间,这里乘于2就是让得到的数翻倍,因为年机值不为0
student[i].state = (int) Math.round(q);//Math.round(变量名)方法用于四舍五入取整,得到的值为long,()里加的是要改变的值
double o = Math.random() * 100;
student[i].score = (int) Math.round(o);
}
for (int i = 0; i < 20; i++) {//打印年级为3的同学信息
if (student[i].state == 3) {
System.out.println(student[i]);//!!!!!!!!!
}
}
}
上面的toString运用在!号的部位,如果没有该方法,只会打印出来对应的地址名,的不出结果,同时注意因为年级数要1-3,而随机数Math.random取值范围在0-1内,让其翻倍同时,为了不让他等于0就加1。