java面向对象之个人总结

xiaoxiao2021-02-28  45

面向对象有三大特性继承封装,多态

1.继承:

(1)继承的特点:A,java支持单根继承,不支持多根继承

                         B,java支持多层继承(继承体系)

(2)细节注意:A.子类只能继承父类的非私有成员(成员方法和成员变量)     B.子类不能继承父类的构造方法,但是我们可以通过super去访问父类的构造

    C.千万不要因为部分功能而去使用继承,在Java当中,我们使用继承体系的时候 应该遵循一个"is a"的原则

(3) 继承中成员变量的关系: a.子类的变量名和父类的变量名不一致时,各自找各自的 b.子类和的变量名和父类的变量名一致时: 1.先在子类局部中去寻找,有就使用 2.先在子类成员中去寻找,有就使用 3.在去父类的成员位置,有就使用,没有就报错

(4)继承中构造方法的关系:  a.子类中的所有构造方法,都会默认访问父类的无参构造。 b.为什么要访问? 因为子类继承父类会使用到父类的数据,所以子类必须先访问父类的 无参构造,以便将父类的数据进行初始化。 注意:子类的构造默认的第一句代码是super(); 如果父类没有提供无参构造,那么会有什么结果? 报错; 如何解决? a.给父类添加一个无参构造

b.通过super关键字去访问父类的其他构造

2.封装:

在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。

封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。

要访问该类的代码和数据,必须通过严格的接口控制。

封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。

适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。

封装的优点

1. 良好的封装能够减少耦合。

2. 类内部的结构可以自由修改。

3. 可以对成员变量进行更精确的控制。

4. 隐藏信息,实现细节。


实现Java封装的步骤

1. 修改属性的可见性来限制对属性的访问(一般限制为private),例如:

public class Person { private String name ; private int age ; }

这段代码中,将 name 和 age 属性设置为私有的,只能本类才能访问,其他类都访问不了,如此就对信息进行了隐藏。

2. 对每个值属性提供对外的公共方法访问,也就是创建一对赋取值方法,用于对私有属性的访问,例如:

public class Person { private String name ; private int age ;​ public int getAge ( ) { return age ; } public String getName ( ) { return name ; } public void setAge ( int age ) { this . age = age ; } public void setName ( String name ) { this . name = name ; } }

采用 this 关键字是为了解决实例变量(private String name)和局部变量(setName(String name)中的name变量)之间发生的同名的冲突。

3.多态:

同一个对象,在不同时刻体现出来的不同状态。

举例: 猫是猫,猫是动物 多态的前提: a.要有继承关系 b.要存在方法的重写 其实方法重写不是多态必须的,但是不这样做就没有任何意义 c.要有父类的引用指向子类的对象 Fu fu = new Zi(); 用代码的实现下多态: 多态中成员访问的特点: a.成员变量 编译期,看左边,运行期看左边 b.成员方法 编译期,看左边,运行期看右边 c.构造方法 创建子类对象的时候,先访问父类构造,对父类的数据进行初始化 d.静态方法 编译期,看左边,运行期看左边 除了成员方法,其余全部看左边,因为成员方法存在方法重写,重写会覆盖父类 所以运行看子类就可以了多态的好处: a.提高了代码的可维护性(继承来体现) b.提高的代码的扩展性(由多态来体现)多态的弊端: 不能使用子类的特有的功能。解决方法: a.直接创建子类对象即可(可以,但是 不合适也不合理。而且非常耗内存) b.把父类引用直接强制转换为子类引用(向下转型)

注:部分笔记来源于其他网站!!!

转载请注明原文地址: https://www.6miu.com/read-2614783.html

最新回复(0)