java面向对象练习


一、类与对象

运用类与对象相关知识写一下内容:

在这里插入图片描述

基本思路:写一个宠物类(Pet),定义方法,写具体内容,再写一个测试类(petTest),在测试类实例化Pet类对象,并调用它的方法

Pet类

public class Pet {
    String str1, str2,str;
    public Pet() {
        System.out.println("欢迎您来到宠物店!");
        System.out.println("请输入要领养宠物的名字");
        Scanner sc = new Scanner(System.in);
         str = sc.next();
        System.out.println("请输入要领养的宠物类型:(1.狗狗2.企鹅)");
        int m = sc.nextInt();
        switch (m) {
            case 1:
                str1 = "狗狗";
                System.out.println("请选择狗狗的品种:(1.聪明的拉布拉多2.酷酷的雪娜瑞)");
                int n = sc.nextInt();
                switch (n) {
                    case 1:
                        str2 = "聪明的拉布拉多";
                        break;
                    case 2:
                        str2 = "酷酷的雪娜瑞";
                        break;
                }
                break;
            case 2:
                str1 = "企鹅";
                System.out.println("请选择企鹅的品种:(1.Q仔  2.Q妹");
                int x = sc.nextInt();
                switch (x) {
                    case 1:
                        str2 = "Q仔";
                        break;
                    case 2:
                        str2 = "Q妹";
                        break;
                }
                break;
        }

    }
        public void say(){
            System.out.println("我的名字是"+str+",健康值是100,和主人亲密度是0,我是一只"+str2);
        }

}

PetTest测试类

public class PetTest {
    public static void main(String[] args) {
           Pet pe=new Pet();
           pe.say();
    }
}

二、类的继承

1.运用继承方法写以下内容。

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/15bee5ee581141698c8b13d667ad835b.png
)

小狗类和企鹅类都有相同的方法,属性。由此创建一个父类(Pet类),用来存放相同的方法属性。

public class Pet {
    String name;
    int heathnumber=100;
    int qimidu=0;
    public  void duBai(){
        System.out.println("我的名字是"+name+"健康值是"+heathnumber+",亲密度是"+qimidu);
    }
}

Dog类有品种属性,QIE类有性别属性,继承并调用父类方法,属性。

import java.util.Scanner;

public class Dog extends  Pet{
    String type;

    public void ppet(String nam){
        Scanner sc=new Scanner(System.in);
        name=nam;
        System.out.println("请选择狗狗的品种:(1.聪明的拉布拉多2.酷酷的雪娜瑞)");
        int n = sc.nextInt();
        switch (n) {
            case 1:
                type = "聪明的拉布拉多";
                break;
            case 2:
                type = "酷酷的雪娜瑞";
                break;
        }
        duBai();
    }
}
import java.util.Scanner;

public class QIE extends Pet{
    String sex;
    public  void qqe(String nam){
        Scanner sc=new Scanner(System.in);
        name=nam;
        System.out.println("请选择企鹅的品种:(1.Q仔  2.Q妹");
        int x = sc.nextInt();
        switch (x) {
            case 1:
                sex = "Q仔";
                break;
            case 2:
                sex = "Q妹";
                break;
        }

        super.duBai();//super可省
    }
}

测试类

import java.util.Scanner;

public class PetTest {
    public static void main(String[] args) {
        System.out.println("欢迎来到宠物店");
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入宠物名字");
        Pet st = new Pet();
        String name = sc.next();
        System.out.println("请输入要领养的宠物类型:(1.狗狗2.企鹅)");
        int number = sc.nextInt();
        if (number == 1) {
            Dog dog = new Dog();
            dog.ppet(name);

        } else {
            QIE qe = new QIE();
            qe.qqe(name);
        }
    }
}

三、运用继承、封装、重写等方法写

在这里插入图片描述

具体分析写在代码注释里面了。

public class PetTest {
    public static void main(String[] args) {
//        实例化cat对象并调用eat()方法,通过setAge()方法传入2岁这个值,
//通过setName()方法传入加菲猫这个值。dog同理
        Cat cat = new Cat();
        cat.setAge(2);
        cat.setName("加菲猫");
        cat.eat();
        Dog dog = new Dog();
        dog.setAge(2);
        dog.setName("旺财");
        dog.eat("葡萄");

    }
}
public class Pet {

    private  String name;
    private  int age;
/*    当用private封装name,age属性时,不能在其他类直接调用,而需要用到Getter和Setter方法
      可鼠标右键gernerate-->Getter and Setter-->选中name和age两属性,点击ok
      自动生成Getter和Setter方法*/
    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void  eat(){
        System.out.println(name+"今年多少岁?  "+this.age+"岁了,喜欢");
    }
}
public class Cat extends  Pet{
    /*重写父类eat()方法,调用getName、getAge方法,得到值name和age*/
    public void  eat(){
        System.out.println(super.getName()+"今年多少岁?  "+super.getAge()+"岁了,宠物吃饭");
    }
}
public  class Dog extends  Pet{
    /*重写父类eat()方法,调用getName、getAge方法,得到值name和age*/
    public void  eat(String food){
        System.out.println(super.getName()+"今年多少岁?  "+super.getAge()+"岁了,喜欢"+food);
    }
}
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值