封装与继承

封装

如何实现封装:

修改属性的可见性,使用关键字private,属性私有化
创建公有的setter and getter方法
在setter and getter方法中加入属性控制语句

封装的优点:

便于使用者正确使用系统,防止错误修改属性
有助于系统之间的松耦合,提高系统独立性
提高软件的可重用性
降低了构建大型系统的风险

实例

“狗”类的封装

private String name;
private String sex;
private int health;


public String getName() {
    return name;
}


public void setName(String name) {
    this.name = name;
}


public String getSex() {
    return sex;
}


public void setSex(String sex) {
    this.sex = sex;
}


public int getHealth() {
    return health;
}


public void setHealth(int health) {
    this.health = health;
}


public void yes(){
    System.out.println("我的名字叫"+name+",健康值是"+health+",和主人的亲密度是0,我的性别是"+sex);
}


public Dog(String name, String sex, int health) {
    this.name = name;
    this.sex = sex;
    this.health = health;
}

“企鹅”类的封装

private String name;
private int health;
private int love;
private String sex;


public void setName(String name) {
    this.name = name;
}


public void setHealth(int health) {
    if (health<0||health>100){
        System.out.println("输入的健康值有误,默认值为50");
        health = 50;
    }
    this.health = health;
}


public void setLove(int love) {
    if (love<0||love>100){
        System.out.println("输入端亲密值有误,默认值为20");
        love = 20;
    }
    this.love = love;
}


public void setSex(String sex) {
    if (sex==null||(!sex.equals("母")&&!sex.equals("公"))){
        System.out.println("输入有误,只有公母可以,默认值为公");
        sex = "公";
    }
    this.sex = sex;
}


public String getName() {
    return name;
}


public int getHealth() {
    return health;
}


public int getLove() {
    return love;
}


public String getSex() {
    return sex;
}


public void sayHello(){
    System.out.println("我叫"+name+",我是一只"+sex+"企鹅,我的健康值为"+health+",我与主人的亲密度为"+love);
}


public Penguin(){


}


public Penguin(String name,int health,int love,String sex){
    setName(name);
    setHealth(health);
    setLove(love);
    setSex(sex);
}

访问修饰符

在这里插入图片描述

static修饰符

成员变量:静态变量,可以直接通过类名访问
成员方法:静态方法,可以直接通过类名访问
代码块:静态代码块,当Java虚拟机加载类时,就会执行该代码块

静态方法:可直接通过类名访问
静态方法中不能使用this和super
不能直接访问所属类的实例变量和实例方法
可直接访问类的静态变量和静态方法

实例方法:通过实例访问
可直接访问所属类的静态变量、静态方法、实例变量和实例方法
静态方法必须被实现

继承

Pet类是Dog类和Peguin类的父类

private String name;
private int health;
private int love;


public String getName() {
    return name;
}


public void setName(String name) {
    this.name = name;
}


public int getHealth() {
    return health;
}


public void setHealth(int health) {
    this.health = health;
}


public int getLove() {
    return love;
}


public void setLove(int love) {
    this.love = love;
}


public Pet() {
    System.out.println("父类的构造方法");
}

在类名后使用extends继承父类

子类访问父类成员

访问父类构造方法 super(); super(name);

访问父类属性 super.name;

访问父类方法super();

#super关键字来访问父类的成员

super只能出现在子类的方法和构造方法中
super调用构造方法时,只能是第一句
super不能访问父类的private成员

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值