------- android培训、java培训、期待与您交流! ----------
1、面向对象是相对面向过程而言的。
面向过程强调的是功能行为,面向对象是将功能封装进对象,强调具备了功能的对象。
面向对象是基于面向过程的。
2、面向对象的特征:封装,继续,多态。
封装原则:a、将不需要对外提供的内容都隐藏起来。b、把属性都隐藏,提供公共方法对其访问。
3、构造函数的特点:a、函数名与类名相同。b、不用定义返回值类型。c、不可以写return语句。
其作用是给对象进行初始化。
构造函数的小细节:
当一个类中没有定义构造函数时,那么系统会默认给该类加入一个空参数的构造函数。
当在类中自定义了构造函数后,默认的构造函数就没有了。
4、this关键字
this关键字代表其所在函数所属对象的引用,当在函数内需要用到调用该函数的对象时,就用this。
this语句只能定义在构造函数的第一行。因为初始化要先执行。
class Person
{
Person(int age)
{
this.age = age;
}
}
5、static关键字:
用于修饰成员(成员函数和成员变量)
被修饰 后的成员具备的特点:a、随着类的加载而加载。b、优先于对象存在。c、被所以对象所共享。d、可以直接被类名调用。
注意:静态方法只能访问静态成员、静态方法中不可以写this,super关键字、主函数是静态的。
什么时候使用静态变量?
当对象中出现共享数据时,该数据被静态所修饰。
对象中的特有数据要定义成非静态存在于堆内存中。
什么时候定义静态函数?
当功能内部没有访问到非静态数据(对象的特有数据),那么该功能可以定义成静态的。
6、匿名对象
new Car().run();
匿名对象使用方式一:当对对象的方法只调用一次时,可以用匿名对象来完成,这样写比较简化。
如果对一个对象进行多个成员调用,必须给这个对象起个名字。
匿名对象使用方式二:可以将匿名对象作为实际参数进行传递。
7、继承
继承的出现提高了代码的复用性。
继承的出现让类与类之间产生了关系。
继承的特点:java只支持单继承,不支持多继承(一个类只能有一个父类,不可以有多个父类)。
class SubDemo extends Demo{}
8、函数覆盖(override)
子类中出现于父类一模一样的方法时,出现覆盖,也称重写或复写。
父类中的私有方法不可以被覆盖。
在子类覆盖方法中,继续使用被覆盖的方法可以通过super.函数名获取。
覆盖时,子类方法权限要大于父类的权限。
静态只能覆盖静态。
注意:重载:只看同名函数的参数列表。
重写:子父类方法要一模一样。