面向对象主要的内容:类和对象的关系,封装,继承,多态,构造函数,this,supper,static,内部类(用处很少),抽象类,接口
面向对象是一种思想,能让复杂的问题简单化,让我们角色从执行者变成指挥者,不要知道过程,只要知道结果。
对象的特点在于封装数据,数据包含着属性和行为。
一般一个程序可以由很多个类组成,也可以有多个主函数,但一般有一个主函数就可以。
格式:类名称 对象名称 = new 类名称();
例:Person person=new Person(“yyy”,20);
System.out.println(person.name);
System.out.println(person.getPersonInfo());
(一)面向对象之封装
函数是最小的封装体。类也是一个封装体。
private:私有的,权限修饰符,用来修饰类中的成员(成员变量 、成员函数),其只在本类中有效。
每个成员变量通常都会对应两个访问方式:一个设置,一个获取。
例:
构造函数:
this关键字用法:
- this调⽤本类属性
- this调⽤本类⽅法
- this表示当前对象的引用
调用本类属性:
调用本类方法:
(二)面向对象之继承
继承(extends)
让类与类之间产生关系,子父类关系
Java继承的特点:只支持单继承,不支持多继承。
继承的注意事项
①子类只能继承父类所有非私有的成员(成员方法和成员变量)
②子类不能继承父类的构造方法,但是可以通过super(马上讲)关键字去访问父类构造方法。
③不要为了部分功能而去继承
例:子父类中的函数另一个特性:函数的重写(覆盖)
当子类继承父类,沿袭了父类的功能,这时不但可以保留父类的功能定义,还可以重写功能内容。
1,子类覆盖父类,必须保证子类访问权限大于等于父类权限,才可以覆盖,否则编译失败。
2,静态只能覆盖静态。
(三)面向对象之多态
基类引用派生类的对象并且基类和派生类有同名的覆盖方法 (向上转型)
也就是重写方法 方法表地址的覆盖
向下转型需先进行 向上转型
运行时多态 动多态
静多态 : 调用静态函数