zoukankan      html  css  js  c++  java
  • java面向对象之个人总结

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

    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),例如:

    publicclassPerson{privateStringname; privateintage;}

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

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

    publicclassPerson{privateStringname; privateintage;​ publicintgetAge(){returnage; }publicStringgetName(){returnname; }publicvoidsetAge(intage){this.age = age; }publicvoidsetName(Stringname){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.把父类引用直接强制转换为子类引用(向下转型)

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

  • 相关阅读:
    iOS----------上传遇到的问题
    iOS----------面试常问
    iOS----------Mac维修预约-如何找到电脑维修单
    iOS----------has copy command from(bug修复)
    关于powershell的个人总结
    关于powershell 的一些练习
    域控制总结
    Windows 常用命令
    注册表安全配置
    注册表危险操作
  • 原文地址:https://www.cnblogs.com/liva-/p/10321018.html
Copyright © 2011-2022 走看看