JAVA中的面向对象思想
面向对象编程思想
一、对象的定义
一切客观存在的事物都是对象,万物皆对象。
一个对象无非由两点构成
对象所具备的特征:对象有什么
对象所具备的行为:对象能做什么在计算机中的对象
对象的特征:将来用数据代替特征描述,对象的属性;
对象的行为:将来用函数代替行为实现,对象的方法;
- 即对象具有以下特性:
(1)万物皆对象。问题领域中的实体和概念都可以抽象为对象。
(2)每个对象都是唯一的。对象的唯一性来自于真实世界中事物的唯一性。在Java虚拟机提供的运行时环境中,保证每个对象的唯一性的手段是为它在内存中分配唯一的地址
(3)对象具有属性和行为。对象的行为包括具有的功能及具体的体现。在建立对象模型阶段,仅仅关注对象有什么样的功能,而不需要考虑如何实现这些功能。对象的属性就用成员变量表示,对象的行为就用成员方法表示
(4)对象具有状态。状态是指某个瞬间对象的各个属性的取值。对象的某些行为往往会改变对象自身的状态,即属性的取值。
(5)对象都属于某个类,每个对象都是某个类的实例。类是具有相同属性和行为的对象的集合。
小结
同一个类的所有实例具有相同属性,表明它们的属性的含义相同,但是它们的状态不一定相同,也就是说属性取值不同。例如两个学生,小明和小红,他们都有姓名、性别、年龄、身高、体重等属性,但是他们的属性取值并不相同
同一个类的所有实例包括类本身的所有实例及其子类的所有实例。类的所有实例具有相同的行为,意味着它们具有一些相同的功能。类本身的所有实例按照同样方式实现相同功能,而子类与父类之间,以及子类之间的实例可能采用不同的方式来实现相同的功能。
二、成员变量与局部变量的区别
局部变量 | 成员变量 |
---|---|
定义位置 | 方法内 |
默认值 | 无 |
作用范围 | 方法内 |
命名冲突 | 不允许重名 |
三、方法的重载(OverLoad)
1、作用:在一个类中可以定义多个同名的方法,屏蔽使用时的差异,更加方便。
2、语法:方法名相同,参数个数、类型、顺序不同。
例:
3、调用时,编译器根据实参匹配相应的方法(编译时多态)
四、构造方法
1、概念:一种特殊的方法,创建对象时自动调用
2、作用:通常使用构造方法,为属性赋值,完成初始化任务
3、语法及特点
1)构造方法的方法名与类名一致
2)没有返回值类型
3)不可手动调用(不能通过引用名去调用)
4)支持重载的语法
class Student{
//设置Student类的属性
int age;
String name;
//Student的无参构造方法
public Student(){
}
//Student的有参构造方法
public Student(int age,String name){
this.age = age;
this.name = name;
}
}
注意:
1、如果没有手动定义构造方法,编译器默认提供无参构造
2、如果手动添加构造,则无参构造不再提供,需手动添加
五、数据传递规则
1、基本类型传值,两者一方更改,不影响另一方
2、引用类型(对象,数组)传地址,两者之间任何一方更改,影响另一方
六、对象的默认引用:this
当一个对象创建好之后,java虚拟机就会给它分配一个引用自身的指针:this。所有对象默认的引用名都叫this。
在程序中,在以下情况下会使用this关键字:
- 在类的构造方法中,通过this语句调用这个类的另一个构造方法。
- 在一个实例方法内,局部变量或参数和实例变量同名,实例变量被屏蔽,因此采用this的方式来指代实例变量
- 在一个实例方法内,访问当前实例的引用
this()
作用:在构造方法中调用其他构造方法
注意:1.该语法只能出现在构造方法中
2.必须放在构造方法的第一行
上一篇: Java中的面向对象
下一篇: php反序列化漏洞