黑马Java学习笔记之-----面向对象(一)
---------------------- android培训、java培训、期待与您交流! ----------------------
面向过程和面向对象:
1. 面向对象是相对面向过程而言的,两者都是一种思想。
2. 面向过程:强调的是功能行为。
3. 面向对象:将功能封装进对象,强调具备了功能的对象。
4. 面向对象是基于面向过程的。
面向对象的三大特征:
1. 封装(Encapsulation):隐藏对象的属性和实现细节,仅对外提供公共访问方式。
2. 继承(Inheritance):子类复用父类的方法和属性,还可以添加新的方法和属性。
3. 多态(Polymorphism):子类对象可以直接赋值给父类变量,但运行时表现出子类的特征。
4. //( 抽象:将现实世界中的事物描述为系统中类、对象、方法的过程。)
类与对象:
1. 类是对某一类事物的描述,是抽象的、概念上的定义;
2. 对象是实际存在的该类事物的每个个体,因而也称实例(instance)。
成员变量和局部变量的区别:
1. 成员变量定义在类中,在整个类中都可以被访问;局部变量只定义在局部范围内,如:函数内,语句内等。
2. 成员变量随着对象的建立而建立,存在于对象所在的堆内存中;局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放。
3. 成员变量有默认初始化值;局部变量没有默认初始化值。
注:如果一个方法中有与成员变量同名的局部变量,该方法中对这个变量名的访问是局部变
量,而不再是成员变量。如想访问成员变量,在之前加this即可。
对象:
Person p = new Person(); 执行完后内存状态:
当一个对象被创建时,会对其中各种类型的成员变量自动进行初始化赋值:
匿名对象:
1. 如果对一个对象只需要进行一次方法调用,那么就可以使用匿名对象;
2. 我们经常将匿名对象作为实参传递给一个函数调用。
类的封装的好处:
1. 将变化隔离
2. 便于使用
3. 提高重用性
4. 提高安全性
构造函数:
特征:
1. 具有与类相同的名称;
2. 不含返回值;
3. 不能在方法中用return语句返回一个值。
4. 在java每个类里都至少有一个构造方法;
作用:对对象进行初始化。(构造函数在对象一建立就运行)
构造代码块:
作用:对对象进行初始化。
对象一建立就运行,而且优先于构造函数执行。
和构造函数的区别:
构造代码块是给所有对象进行统一初始化;而构造函数是给对应的对象初始化。
This关键字:
This代表它所在函数所属对象的引用。
简单说:哪个对象在调用this所在的函数,this就代表哪个函数。
this的应用:
1. 当定义类中功能时,该函数内部要用到调用该函数的对象时,这时用this来表示这个对象。但凡本类功能内部使用了本类对象,都用this表示。
2. 用于构造函数之间进行互相调用。
This语句只能定义在构造函数的第一行,因为初始化要先执行。
---------------------- android培训、java培训、期待与您交流! ----------------------