OOP面向对象编程三

十一. 数据隐藏
    
    这里说说的数据主要指的是类中的属性
    如何对属性进行隐藏呢?
    在前面封装的属性前面用private修饰,表示该属性不能被其它类访问和修改,它只能被本类访问和修改,范围限制在本类内。

    java中封装有两个方面:
        属性的封装
        方法的封装

十二. 封装
    1.对属性的封装
        首先属性可以被一下修饰符修饰:
    public protected "default" private(这四种修饰符可以修饰成员变量,也可以修饰方法)
    public String name;
    protected String name;
    private String name;
    //这样就是default
        String name;

    //这样写是错的
    default String name;

      注:  四种修饰符的作用之后会讨论

      对属性的封装:在属性(实例变量)前加private, 然后通过统一的方法访问以及修改这些属性值;
      使用get/set方法来访问类中被private修饰的属性。

      这样做的目的就是隐藏数据信息,保证数据的安全.

    
    2.方法的封装:(指的是用方法来封装代码)
      站在使用的者的角度去考虑,用户只关心方法的使用,不管里面到底怎么实现的细节.
      从编程的角度去看的话:为了代码的重用.

    

十三. 方法重载(overload)

    有时侯,类的同一种功能有多种实现方式,换句话说,有很多相同名称的方法,参数不同。这给用户对这种功能的调用使用提供了很大的灵活性。
    例如:Test类中要求有俩个方法:
     public void print(int i){
        System.out.println("i = "+i);
     }    
     
     public void print(String s){
        System.out.println("s = "+s);
     }

    对于类的方法(包括从父类中继承的方法), 如果有两个方法的方法名相同,但参数不一致,那么可以说,一个方法是另一个方法的重载方法。这种现象叫重载。

    重载必须满足以下条件:
    1) 方法名称相同。
    2) 参数列表不同(参数类型、个数和顺序)。
    注意: 返回类型可以不相同。

    在一个类中不允许定义两个方法名相同,并且参数签名也完全相同的方法。因为假如存在这样的两个方法,Java虚拟机在运行时就无法决定到底执行哪个方法。参数签名是指参数的类型、个数和顺序。

十四. 子类
    1. 通过生活中的例子推出Java中继承;

    什么是继承呢?生活中不乏这样的例子,张老头有个儿子张小头,张老头健在的时侯,张小头继承了张老头的坏脾气,国字脸,八字脚。张小头只有亲生爸爸张老头,张老头却有包括张小头在内的多个子女。

    Java中类与类之间也有生活中类似的继承关系。在Java类继承关系中,对应于父亲的类叫父类,对应于儿子的类叫子类。父子类间的继承关系也叫“is a”关系。这种关系通过类声明上的extends关键字体现。

    一个子类只有一个父类,一个父类可有多个子类。

    2. 为什么要继承? 

    . 站在巨人的肩膀上;通过继承,我们可以快速构建出一个带有丰富功能的新类;有了张老头,张小头年纪轻轻就可以买上上百万的新房;
    . 不修改源代码,修改既有类的行为;通过继承,在子类中构建父类中一样的方法,可以改变父类方法的行为。张老头没有考上大学,通过张小头圆了其上大学的梦。

    3. Object类简略介绍

    所有的Java类都直接或间接地继承了java.lang.Object类。Object类是所有Java类的祖先,在这个类中定义了所有的Java对象都具有相同行为。

猜你喜欢

转载自blog.csdn.net/bifuguo/article/details/81365840
今日推荐