乐趣区

关于后端: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());
        }

    }
}

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();}
    }
}

总结

以上就是封装和继承案例的内容,次要利用了封装和继承的办法。
欢送关注公众号:前程有光,支付一线大厂 Java 面试题总结 + 各知识点学习思维导 + 一份 300 页 pdf 文档的 Java 外围知识点总结!

退出移动版