面向对象

面向对象


面向对象的本质:以类的方式组织代码,以对象的组织(封装)数据。(就是继承多个面向过程的代码。)

三大特性:封装、继承、多态

 

构造器


类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点:

1:必须和类的名字相同。

2:必须没有返回类型,也不能写void。

生成构造器的快捷键:alt+insert。

快速生成对象的快捷键:ctrl+alt+v。

//1. 使用new关键字,本质是在调用构造器
//2. 用来初始化值
public Student() {
}

//有参构造:一旦定义了有参构造,无参就必须显示定义
//类的重构.
public Student(String name, int age) {
   this.name = name;
   this.age = age;
}

 

封装


“高内聚,低耦合”,类的内部数据操作细节自己完成,不允许外部干涉,同时仅暴露少量的方法给外部使用。

属性私有:get/set

私有:private

特点:

1:提高了代码的安全性,保护数据

2:隐藏代码的实现细节。

3:统一接口。

4:系统可维护增加了。

 

继承


extends的意思是“扩展”。子类是父类的扩展。

JAVA中只有单继承没有多继承。一个儿子只有一个爸爸,但是一个爸爸可以有多个儿子。

父类私有的方法和属性无法被继承。

创建子类的对象是,会优先创建子类的父类的无参构造器,然后才创建子类的无参构造器。

this为了获取当前类中的属性或者方法。

super为了获取父类中的属性或者方法。

super注意点:

1.调用父类的构造器,必须要在子类构造器的第一行。

2.super必须只能出现在子类的方法或者构造方法中。

3.super和this不能同时调用构造方法。

 

this:调用本类的对象。

super:调用父类的对象。

this:没有继承可以使用。

super:只能在继承条件才可以使用。

this:本类的构造。

super:父类的构造。

 

重写


需要有继承关系。子类重写父类的方法!

1.方法名必须相同。

2.参数列表必须相同。

3.修饰符:范围可以扩大但不能缩小:public>protected>default>private。

4.抛出的异常:范围,可以缩小但是不能扩大。

 

多态


//Studet可以调用的方法都是自己的或者继承父类的。
Student s1 = new Student();
//Person可以指向子类,但是不能调用子类独有的方法。
Person s2 = new Student();

//对象能执行哪些方法,主要看对象左边的类型,和右边关系不大!
((Student)s2).song();//子类重写了父类的方法,执行子类的方法。
s1.song();

特点:

1.父类引用指向子类的对象。

2.把子类转换为父类,向上转型。

3.把父类转换为子类,向下转型。

4.方便方法的调用,减少重读的代码!简洁。

 

抽象类


abstract 抽象类:类 extends:单继承~ (接口是可以多继承的)

abstarct方法,是抽象方法,只有方法名字,没有方法体。

1.抽象类不能被new成事例,只能通过子类去继承。

2.抽象类中可以写普通方法。

3.抽象方法必须在抽象类中。

 

接口


interface定义接口关键字,接口都需要有实现类。接口不能被实例化。

接口中的所有方法定义都是抽象的。

实现接口通过implements关键字实现接口。实现接口需要重写接口中所有的方法。接口可以实现多继承。

implements 接口1,接口2,,,,,,,

 

posted @ 2021-10-28 09:58  用余生去爱  阅读(50)  评论(0)    收藏  举报