zoukankan      html  css  js  c++  java
  • Java面向对象的三大特征和五大原则

    Java面向对象的三大特征

    封装

    封装(Encapsulation)是指属性私有化,根据需要提供setter和getter方法来访问属性。即隐藏具体属性和实现细节,仅对外开放接口,控制程序中属性的访问级别。

    封装目的:增强数据安全性,不能让其他用户随意访问和修改数据,和简化编程,使用者不必在意具体实现细节,而只是通过外部接口即可访问类的成员。

    继承

    继承(Extend)是指将多个相同的属性和方法提取出来,新建一个父类
    Java中一个类只能继承一个父类,且只能继承访问权限非private的属性和方法。 子类可以重写父类中的方法,命名与父类中同名的属性。

    继承目的:代码复用。

    多态

    多态(Polymiorph)可以分为两种:设计时多态和运行时多态。
    设计(编译)时多态:即重载(Overrload),是指Java允许方法名相同而参数不同(返回值可以相同也可以不相同)。在同一个类中,允许存在一个或一个以上的同名函数,只要参数类型或参数个数不同即可。
    运行时多态:即重写(Override)必须是在继承体系中,子类重写父类方法,JVM运行时根据调用该方法的类型决定调用哪个方法。

    多态目的:增加代码的灵活度。

    总结归纳

    1.Java中应尽量减少继承关系,以降低耦合度。

    2.使用多态时,父类在在调用方法时,优先调用子类的方法。如果子类没有重写父类的方法,则再调用父类的方法。

    3.Java访问控饰符作用范围表:

      本类 本包 子类 外部包
    public
    protected X
    default X X
    private X X X

    符号含义, ✓:可以访问   X:不可访问

    protected java.lang.Object.clone()方法,在一个类中调用另一个类的clone方法提示 ‘clone()’ has protected access in 'java.lang.Object'

     错误是因为:另一个类中的clone()方法继承自Object方法。而这个继承的clone()方法只能在另一个类中使用。

    而当前调用类和另一个类不存在继承关系,所以不能调用另一个类的clone()方法。

    Java面向对象的五大特征

    1.单一职责原则:一个类,最好只做一件事,只有一个引起它变化。也就是说每个类应该实现单一的职责,如若不然,就应该把类拆分。

    2.开放封闭原则:对扩展开发,对修改封闭。

    3.里氏替换原则:子类必须能够替换其基类。里氏替换原则中说,任何基类可以出现的地方,子类一定可以出现。

    4.依赖倒置原则:依赖于抽象接口,不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。

    5.接口隔离原则:使用多个小的专门接口,而不是使用一个大的接口。

     

  • 相关阅读:
    [POJ1176]Party Lamps(DFS,规律)
    [POJ1598]Excuses, Excuses!(模拟)
    [POJ2192]Zipper(DFS,剪枝)
    [POJ2157]Maze(DFS)
    [POJ1950]Dessert(DFS)
    [HIHO1353]满减优惠(状压,枚举)
    [HIHO1177]顺子(暴力,枚举)
    [HIHO1152]Lucky Substrings(暴力,枚举)
    计蒜客 25985.Goldbach-米勒拉宾素数判定(大素数) (2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 B)
    计蒜客 28206.Runway Planning (BAPC 2014 Preliminary ACM-ICPC Asia Training League 暑假第一阶段第一场 F)
  • 原文地址:https://www.cnblogs.com/Lints/p/11741781.html
Copyright © 2011-2022 走看看