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方法 私有的

内部类

匿名内部类:没有名字初始化类,不用讲实例保存到变量中

 

 

 

 

 

 

posted @ 2021-09-19 08:41  洛无极262  阅读(102)  评论(0)    收藏  举报
莫愁前路无知己,天下谁人不识君