• 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("欢迎您来到宠物店! 
     请输入要领养宠物的名字:");
            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("宠物的自白:
     我的名字叫"+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("宠物的自白:
     我的名字叫"+name+",健康值是"+p.getHealth()+",和主人的" +
                        "亲密度是"+0+",我的性别是"+p.getSex());
            }
    
        }
    }
    
    

    2.继承

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

    package work3;
    
    public class Dog extends Pet {
        @Override
        public void show() {
            System.out.println("宠物的自白:
     我的名字叫"+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("宠物的自白:
     我的名字叫"+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("欢迎您来到宠物店! 
     请输入要领养宠物的名字:");
            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核心知识点总结!

  • 相关阅读:
    7个值得关注的去中心化协议
    300-STM32+Air724UG基本控制篇(阿里云物联网平台)-设置规则引擎(云产品流转),让设备之间实现通信
    200-STM32+Air724UG基本控制篇(阿里云物联网平台)-关于阿里云物联网平台物模型Topic
    100-STM32+Air724UG基本控制篇(阿里云物联网平台)-关于阿里云物联网平台自定义Topic
    100-STM32+Air724UG基本控制篇(阿里云物联网平台)-关于阿里云物联网平台自定义Topic
    300-STM32+BC26丨260Y基本控制篇(阿里云物联网平台)-阿里云物联网平台-规则引擎(云产品流转),让MQTT设备之间实现通信
    200-STM32+BC26丨260Y基本控制篇(阿里云物联网平台)-关于物模型Topic
    100-STM32+BC26丨260Y基本控制篇(阿里云物联网平台)-阿里云物联网平台-关于自定义Topic
    005-STM32+BC26丨260Y基本控制篇(阿里云物联网平台)-在阿里云物联网平台上一型一密动态注册设备(微信小程序)
    容器核心技术 :Cgroup 与 Namespace
  • 原文地址:https://www.cnblogs.com/lwh1019/p/14150226.html
Copyright © 2020-2023  润新知