七叶笔记 » java编程 » 有帮助的Java中封装和继承的案例

有帮助的Java中封装和继承的案例

java基础教程栏目介绍有帮助的Java中封装和继承的案例

推荐(免费):java基础教程

一、代码及效果图

1.封装

案例:需求说明
使用封装实现电子宠物系统的企鹅类正确输入健康值和亲密度
保证健康值的有效性(0-100),否则取默认值60
保证亲密度的有效性(0-100),否则取默认值60
代码如下(示例):

package work1;public class Dog {    private String name;    private String sex;    private int love;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getSex() {        return sex;    }    public void setSex(int sex) {        if(sex==1){            this.sex = "Q仔";        }else{            this.sex = "Q妹";        }    }    public int getLove() {        return love;    }    public void setLove(int love) {        if(love>=0&&love<=100){            this.love = love;        }else {            System.out.println("亲密度应该在0-100之间,默认值是60");            this.love = 60;        }    }}
package work1;public class Penguin {    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(int sex) {        if(sex==1){            this.sex = "Q仔";        }else{            this.sex = "Q妹";        }    }    public int getHealth() {        return health;    }    public void setHealth(int health) {        if(health>=0&&health<=100){            this.health = health;        }else {            System.out.println("健康值应该在0-100之间,默认值是60");            this.health = 60;        }    }}
package work1;import java.util.Scanner;public class Test1 {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        System.out.println("欢迎您来到宠物店! \n 请输入要领养宠物的名字:");        String name = sc.next();        System.out.println("请选择要领养的宠物类型:(1.狗狗  2.企鹅)");        int i = sc.nextInt();        if(i==1){//狗狗            Dog dog = new Dog();            dog.setName(name);            System.out.println("请选择狗狗的性别:(1.Q仔  2.Q妹)");            dog.setSex(sc.nextInt());            System.out.println("请输入狗狗的亲密度(1~100之间):");            dog.setLove(sc.nextInt());            System.out.println("宠物的自白:\n 我的名字叫"+name+",健康值是"+0+",和主人的" +                    "亲密度是"+dog.getLove()+",我的性别是"+dog.getSex());        }else {//企鹅            Penguin p = new Penguin();            p.setName(name);            System.out.println("请选择企鹅的性别:(1.Q仔  2.Q妹)");             p.setSex(sc.nextInt());            System.out.println("请输入企鹅的健康值(1~100之间):");             p.setHealth(sc.nextInt());            System.out.println("宠物的自白:\n 我的名字叫"+name+",健康值是"+p.getHealth()+",和主人的" +                    "亲密度是"+0+",我的性别是"+p.getSex());        }    }}

ab70a267a1e362a445d9046e0041d85.png

2.继承

案例:使用继承优化电子宠物系统,抽取父类,创建子类,在子类中使用super调用父类构造方法。
代码如下(示例):

package work3;public class Dog extends Pet {    @Override    public void show() {        System.out.println("宠物的自白:\n 我的名字叫"+this.getName()+",健康值是"+0+",和主人的" +                "亲密度是"+this.getLove()+",我的性别是"+this.getSex());    }    private int love;    public Dog(String name, int sex, int love) {        super(name, sex);        this.love = love;    }    public int getLove() {        return love;    }    public void setLove(int love) {        if(love>=0&&love<=100){            this.love = love;        }else {            System.out.println("亲密度应该在0-100之间,默认值是60");            this.love = 60;        }    }}
package work3;public class Penguin extends Pet {    @Override    public void show() {        System.out.println("宠物的自白:\n 我的名字叫"+this.getName()+",健康值是"+this.getHealth()+",和主人的" +                "亲密度是"+0+",我的性别是"+this.getSex());    }    private int health;    public Penguin(String name, int sex, int health) {        super(name, sex);        this.health = health;    }    public int getHealth() {        return health;    }    public void setHealth(int health) {        if(health>=0&&health<=100){            this.health = health;        }else {            System.out.println("健康值应该在0-100之间,默认值是60");            this.health = 60;        }    }}
package work3;public class Pet {    private String name;    private String sex;    public void show(){    }    public Pet(String name, int sex) {        this.name = name;        if(sex==1){            this.sex = "Q仔";        }else{            this.sex = "Q妹";        }    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getSex() {        return sex;    }    public void setSex(int sex) {        if(sex==1){            this.sex = "Q仔";        }else{            this.sex = "Q妹";        }    }}
package work3;import java.util.Scanner;import static java.lang.System.out;public class Test2 {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        out.println("欢迎您来到宠物店! \n 请输入要领养宠物的名字:");        String name = sc.next();        out.println("请选择要领养的宠物类型:(1.狗狗  2.企鹅)");        int i = sc.nextInt();        if (i==1){//狗狗            out.println("请选择狗狗的性别:(1.Q仔  2.Q妹)");            int sex=sc.nextInt();            out.println("请输入狗狗的亲密度(1~100之间):");            Dog dog = new Dog(name, sex, sc.nextInt());            dog.show();        }else {//企鹅            out.println("请选择企鹅的性别:(1.Q仔  2.Q妹)");            int sex=sc.nextInt();            out.println("请输入企鹅的健康值(1~100之间):");            Penguin p = new Penguin(name, sex, sc.nextInt());            p.show();        }    }}

1be21cc569ad7d758be1b0c112a5159.png

总结

相关文章