前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java的封装、继承

Java的封装、继承

作者头像
用户7886150
修改2021-02-02 11:40:41
4550
修改2021-02-02 11:40:41
举报
文章被收录于专栏:bit哲学院

参考链接: java 封装

封装  1.封装的概念 Java的封装机制就是将将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来对隐藏的信息进行操作和访问。 2.好处  (1). 可以在方法中对数据进行条件判断,减少错误 (2). 外部程序不能直接修改数据可减少操作中的失误 (3). 方便对的bug进行修改 3.如何封装类? (1).将变量以private修饰符修饰 (2).提供geter/seter方法进行读取变量和修改变量(可在方法中设置条件) 

示例: 

class HelloWorld{//创建类

    private int hello;//定义私有变量

    public void setHello(int hello){//输入方法

        this.hello=hello;//this等同于引用,指向当前对象的堆内存地址

    }

    public int getHello(){//输出方法

        return hello;

    }

}

类的继承 继承的主要作用在于,在已有基础上继续进行功能的扩充。 基础语法:class B extends A{} 在上列代码中通过extends关键字来让B类继承A类,通常称A为父类,B为子类,子类可以继承父类的所有结构.继承过来的属性与变量大多都可以通过子类自身的引用来调用,构造方法和私有变量例外。 构造方法的调用:需要通过super关键字来调用。(使用super调用构造方法时super应放在当前方法的首行) 私有变量的调用:需要通过seter/geter方法去修改和读取。 

继承所需要遵守的:父类一定要是所有子类的共同属性.如:动物可以说猫是动物,也可以说狗是动物,但猫不能说猫是狗或者狗是猫。父类与子类之间可以用"…是…"来说明的就算是可以使用继承。(没有继承关系去使用继承就会增加修改bug的难度) 继承示例: 

public class Main {

    public static void main(String[] args) {

        new Father();//新建父类无参构造

        new Father(1,"father");//新建父类有参构造

        new Sno();//新建子类无参构造

        new Sno(1,2,"sno");//新建子类有参构造

    }

}

class Father{//父类

    private String s;//私有属性

    int number;

    public Father(){

        System.out.println("父类无参构造方法被调用!!");//被调用时输出

    };//构造方法

    public Father(int number,String s){

        System.out.println("父类有参构造方法被调用(int,String)!!");//被调用时输出

        this.number=number;

        setS(s);

    }

    //geter/seter方法

    public String getS(){

        return s;

    }

    public void setS(String s) {

        this.s = s;

    }

}

class Sno extends Father{//子类

    int cnt;

    public Sno(){

        super(10,"子类");//调用父类有参构造

        System.out.println("子类无参构造方法被调用!!");//被调用时输出

    }

    public Sno(int cnt,int number,String s){

        //注意:此处没有使用super调用父类构造方法

        System.out.println("子类有参构造方法被调用(int,int,String)!!");//被调用时输出

        this.cnt=cnt;

        this.number=number;

        setS(s);

    }

}

输出:

父类无参构造方法被调用!!

父类有参构造方法被调用(int,String)!!

父类有参构造方法被调用(int,String)!!

子类无参构造方法被调用!!

父类无参构造方法被调用!!//此处调用并没有super调用父类却出现了父类无参构造方法被调用

子类有参构造方法被调用(int,int,String)!!

由上面例子可以得出,子类在使用构造方法时会自动将super()(父类的无参构造)作为构造方法的首行代码. 本人小白,初学Java,不足的地方还请各位大佬指出.

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档