07_面向对象
面向对象思想
一切客观存在的事物都是对象,万物皆对象。
任何对象,一定具有自己的特征和行为。
对象:属性,方法
类的抽取
在一组相似或相同的对象中,抽取出共性的特征和行为,保留所关注的部分
类与对象的关系
类:定义了对象应具有的特征和行为,类是对象的模板
对象:拥有多个特征和行为的实体,对象是类的实例
实例变量与局部变量的区别
局部变量 | 成员变量(实例变量) |
---|---|
定义位置 | 方法或方法内的结构当中 |
默认值 | 无默认值 |
适用范围 | 从定义行到包含其结构结束 |
明名冲突 | 不允许重名 |
方法重载
一个类中定义多个相同名称的方法
要求:
1、方法名相同
2、参数列表不同(类型、个数、顺序)
3、与访问修饰符,返回值的类型无关
好处:屏蔽使用差异,灵活,方便
构造方法
类中的特殊方法,主要用于创建对象
特点:
1、名称与类名完全相同
2、没有返回值
3、创建对象时,触发构造方法的调用,不可通过句点手动调用
注意:如果没有在类中显示定义的构造方法,则编译器默认提供无参的构造方法
如果手动添加有参的构造方法,则无参构造方法不在默认提供
对象创建过程 new Student();触发创建对象
1、创建对象(调用构造方法)
2、开辟存储空间
3、初始化属性
4、执行构造方法中的代码
5、[将对象地址赋给变量]
6、返回到构造方法调用位置
this关键字
类是模板,可服务于所有对象。
this是类中的默认引用,代表当前实例,当类服务于某个对象时,this指向这个对象
1、this调用实例属性,实例方法。例:this.name、this.say()
实例变量与局部变量重名时,用”this.”区分两者
class Student{
String name = "Jack";
public void sayHi(){
String name = "Tom";
System.out,println(name); //输出jack
System.out,println(this.name); //输出Tom
}
}
2、this调用本类中的其他构造方法。例:this(); this(实参);
/*
在构造方法中,调用本类的其他构造方法,即可复用构造方法中的逻辑代码
*/
class Student{
String name;
int age;
String sex;
double score;
public Student(String name,int age,String sex){
this.name=name;
this.age=age;
this.sex=sex;
}
public Student(String name,int age,String sex,double score){
this(name,age,sex); //调用有参构造方法
this.score=score;
}
}