javaSE 面向对象
类是对象的模板(它是抽象的),对象是一个具体的实例
面向对象的本质是:以类的方式组织代码,以对象的组织(封装)数据。
static关键字与类一起存在,加载,非静态类不可以调用静态方法。
类是抽象的,需要实例化
类实例化后,会返回一个自己的对象
类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的,并且构造器有以下俩个特点:
和类名相同
没有返回值 ,不能使用void
作用:
1.使用new关键字,必须要有构造器(本质是在调用构造器)。
2.初始化对象的值
注意点:定义有参构造之后,如果想使用无参构造,显示的定义一个无参的构造

对象是通过引用来操作的:栈--------->堆(引用指向堆中的真实地址)
属性:字段filed 成员变量
默认初始化:
数字: 0 0.0
char: uoooo
boolean: false
引用: null
修饰符 属性类型 属性名 = 属性值!
对象的创建和使用
必须使用new 关键字创造对象,构造器 Person luowuji = new Person();
对象的属性 luowuji.name;
对象的方法 luowuji.sleep()
类
静态的属性 属性
动态的行为 方法
封装,继承,多态
封装: 程序追求“高内聚,低耦合”
1.提高了程序的安全性,保护数据
2.隐藏代码的实现细节
3.统一接口
4.系统可维护性增加了
属性私有,get/set
继承
1.子类继承了父类,拥有了父亲的全部方法(私有的无法被继承,private关键字,一般属性才有私有的)。
2.在java中,所有的类,都默认直接或间接继承object类。
3.this关键字用来调用本类的方法和属性,super关键字用来调用父类(非私有的)的方法和属性。
4.调用父类的构造器,必须要在子类的构造器的第一行
5.默认调用父类的无参,调用了无参就不能调用有参,没有无参,就调用有参构造
super的注意点:
1.super调用父类的构造方法,必须在构造方法的第一个
2.super必须只能出现在子类的方法或者构造方法中!
3.super和this不能同时调用构造方法
VS this:
代表的对象不同
this:本身调用这个对象
super:代表父类对象的应用
前提:
this 没有继承关系条件,也可以使用
super 有了继承关系条件,才可以使用
构造方法
this():本类的构造;
super():父类的构造!
重写
1.重写都是方法的重写与属性无关
2.父类的引用指向子类
3.方法的调用只和左边有关,定义的数据类型有关
4.静态方法不能被重写(非静态方法可以被重写)
5.私有的方法同样也不能重写
特点:
1.方法名必须相同
2.参数列表,列表必须相同
3.修饰符:范围可以扩大: public>protected>default>private
4.抛出异常,可以被缩小,但不能扩大(不能超过父类抛出的异常,可以等于)
5.子类的方法和父类要一致,方法体不同。
为啥需要重写:
父类的功能,子类不一定满足,或者不一定满足!
编译看左边,运行看右边。
多态
1.一个对象的实际类型是确定的
2.可以指向的引用类型就不确定了:父类的引用指向子类
3子类,能调用的方法都是自己的或者继承父类的
4.父类,可以指向子类,但是不能调用子类独有的方法
5.对象能执行那些方法,主要是看对象的左边类型,和右边类型关系不大
6.子类重写了父类的方法,执行了子类的方法
多态的注意事项
1.多态是方法的多态,与属性无关,属性没有多态
2.父类和子类,有联系,类型转换异常ClassCastException!
3.存在条件:继承关系,方法需要重写,父类引用指向子类对象!Father f1 = new Son();
不能被重写的情况:
1.static 方法,属于类,他不属于实例
2.final 常量
3.private方法 私有的
内部类
匿名内部类:没有名字初始化类,不用讲实例保存到变量中

浙公网安备 33010602011771号