JAVA零基础学习之路(十四)

封装(encapsulation)

封装是面向对象三大特征之一。

封装的理念:高内聚、低耦合

封装的作用和含义

我要看电视,只需要按一下开关和换台就可以了。有必要了解电视机内部的结构吗?有必要碰碰显像管吗?制造厂家为了方便我们使用电视,把复杂的内部细节全部封装起来,只给我们暴露简单的接口。

我们程序设计要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合是仅暴露少量的方法给外部使用,尽量方便外部调用。

编程中封装的具体优点:

提高代码的安全性。

提高代码的复用性。

“高内聚”:封装细节,便于修改内部代码,提高可维护性。

“低耦合”:简化外部调用,便于调用者使用,便于扩展和协作。

封装的实现一使用访问控制符

Java是使用“访问控制符”来控制哪些细节需要封装,哪些细节需要暴露的。Java中4种“访问控制符”分别为private、default、protected、public,它们说明了面向对象的封装性,所以我们要利用它们尽可能的让访问权限降到最低,从而提高安全性。

【注】关于protected的两个细节:

1.若父类和子类在同一个包中,子类可访问父类的protected成员,也可访问父类对象的protected成员。

2.若子类和父类不在同一个包中,子类可访问父类的protected成员,不能访问父类对象的protected 成员。

封装的使用细节

开发中封装的简单规则:

属性一般使用private 访问权限。

属性私有后,提供相应的get/set方法来访问相关属性,这些方法通常是public修饰的,以提供对属性的赋值与读取操作(注意:boolean变量的get方法是is开头!)。

方法:一些只用于本类的辅助性方法可以用private修饰,希望其他类调用的方法用public修饰。

多态(polymorphism)

多态指的是同一个方法调用,由于对象不同可能会有不同的行为。现实生活中,同一个方法,具体实现会完全不同。比如:同样是调用人“吃饭”的方法,中国人用筷子吃饭,英国人用刀叉吃饭,印度人用手吃饭。

多态的要点:

1.多态是方法的多态,不是属性的多态(多态与属性无关)。

2.多态的存在要有3个必要条件:继承,方法重写,父类引用指向子类对象。

3.父类引用指向子类对象后,用该父类引用调用子类重写的方法,此时多态就出现了。

对象的转型(casting)

1.父类引用指向子类对象,我们称这个过程为向上转型,属于自动类型转换。

2.向上转型后的父类引用变量只能调用它编译类型的方法,不能调用它运行时类型的方法。这时,我们就需要进行类型的强制转换,我们称之为向下转型。

1、创建父类Person

class Person{

    String name;

    int age;

    void introduce(){

        System.out.printin("我的名字是"+name+",我的年龄是"+age);

    }

}

2、创建子类Student

class Student extends Person{

    String address;

    void study(){

        System.out.printin(“我正在学习“);

    }

    void introduce(){

        super.introduce();

        System.out.printin("我的地址是"+address);

    }

}

3、对转型进行测试

class Test{

    public static void main(String args[]){

        ∥向上转型

        Student s = new Student();

        Person p = s;

        //Person p=new Student();该句也是向上转型,作用同上边两句

        p.name="张三";

        p.age = 25;

        //p.address=“北京”;一个对象能够调用哪些成员(变量和函数),取决于这个引用的类型,p不可以调用address和study()

        //p.study();同上p不可以调用study()

        p.introduce();

        ∥向下转型

        ∥向下转型必须先有向上转型

        Student S = new Student();

        Person P = S;

        Student S2 = (Student)P;

    }

}

分享一个全面学习JAVA的视频教程

以上就是小编为大家整理的关于JAVA的知识。

后续持续更新,还望诸君多多学习,早日上岸!

需要学习具体教程的可以关注私信我哦!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容