面向对象练习题

  • 技能题:
  1. 创建一个动物类,要求如下:
  1. 创建一个动物类(Animal)
  2. 属性有:姓名(name)年龄(age),全部为私有
  3. 方法有:叫,在叫的方法中输出name+叫,年龄为:+age
  4. 提供get、set方法
  5. 创建测试类,在测试类中创建2只动物,给这2只动物的信息赋值,并调用叫方法。

  

package com.zoukao;

/**
 * 动物类
 * */
//1)创建一个动物类(Animal)
public class Animal {
//2)属性有:姓名(name)年龄(age),全部为私有
    private String name;
    private int age;
    //4)提供get、set方法
    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;
    }
    //3)方法有:叫,在叫的方法中输出name+叫,年龄为:+age
    public void jiao(){
        System.out.println(name+"叫,年龄为:"+age);
    }
}
package com.zoukao;
/**
 * 动物测试类
 * */
public class TestAnimal {
    //5)创建测试类
    public static void main(String[] args) {
        //创建对象在测试类中创建2只动物
        Animal  an1=new Animal();
        Animal an2=new Animal();
        //给这2只动物的信息赋值
        an1.setName("边牧");
        an1.setAge(3);

        an2.setName("贵宾犬");
        an2.setAge(5);
        //并调用叫方法
        an1.jiao();;
        an2.jiao();
    }
}

  1. 张老太养了两只猫:一只叫小花,今年3岁白色。另一只叫小白,今年3岁花色。请编写一个程序,当用户输入小猫的名字时,就显示该猫的名字、年龄、颜色。如果输入的小猫名错误,则显示:张老太没有这只猫。

     实现思路:

  1. 创建猫类,定义三个属性:姓名 年龄 颜色,属性均私有
  2. 给这3个变量提供set和get方法
  3. 定义打印信息的方法
  4. 创建测试类
  5. 创建2只猫,用set方式赋值,信息和题意一致
  6. 创建键盘录入对象,录入猫的姓名
  7. 判断键盘录入的姓名和这2只猫的姓名是否一致,如果一致就打印这只猫的信息,

     如果不一致提示没有这只猫,请重新输入

package com.zoukao;

public class Cat {
//1)创建猫类,定义三个属性:姓名 年龄 颜色,属性均私有
    private  String name;
    private  int age;
    private  String color;
//2)给这3个变量提供set和get方法

    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 String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

//3)定义打印信息的方法
   public void show(){
       System.out.printf("姓名:%s,年龄:%d,颜色:%s\n",name,age,color);
   }

}
package com.zoukao;

import java.util.Scanner;

public class TestCat {
    //4)创建测试类
    public static void main(String[] args) {
//  5)创建2只猫,用set方式赋值,信息和题意一致
        Cat c1=new Cat();
        Cat c2=new Cat();
        c1.setName("小花");
        c1.setAge(3);
        c1.setColor("白色");

        c2.setName("小白");
        c2.setAge(3);
        c2.setColor("花色");
//  6)创建键盘录入对象,录入猫的姓名
        Scanner in=new Scanner(System.in);
        System.out.println("请输入猫咪名字:");
        String name=in.next();
//  7)判断键盘录入的姓名和这2只猫的姓名是否一致,如果一致就打印这只猫的信息,
//    如果不一致提示没有这只猫,请重新输入
        if(name.equals(c1.getName())){
            c1.show();
        } else if (name.equals(c2.getName())) {
            c2.show();
        }else {
            System.out.println("没有这只猫,请重新输入!");
        }
    }
}

  1.  创建一个汽车类

案例思路要求:

  1. 创建一个汽车类(Car)有油量和时速2个属性,属性均私有化。
  2. 写一个显示方法(show)在此方法中输出新车上路,输出当前时速和油量
  3. 写一个转弯方法,在这个方法中将时速固定到20,油量减1 ,调用show方法
  4. 写一个直行的方法,在这个方法中时速加10,油量减1,调用show方法
  5. 写一个停车方法,输出:停车
  6. 编写setter,getter为相应的变量赋值或者获取某个变量。

编写一个测试类,生成两个汽车类对象。分别为这两个对象油量和时速赋值。然后分别调用转弯,直行,停车方法。

package com.zoukao;

public class Car {
//1)创建一个汽车类(Car)有油量和时速2个属性,属性均私有化。
    private int oil;//油量
    private int speed;//时速
//2)写一个显示方法(show)在此方法中输出新车上路,输出当前时速和油量
    public void show(){
        System.out.println("新车上路,当前时速"+this.speed+",油量"+this.oil);
    }
//3)写一个转弯方法,在这个方法中将时速固定到20,油量减1 ,调用show方法
    public void zw(){
        this.speed=20;
        this.oil--;
        this.show();
    }
//4)写一个直行的方法,在这个方法中时速加10,油量减1,调用show方法
    public void run(){
    this.speed+=10;
    this.oil--;
    this.show();
}
//5)写一个停车方法,输出:停车
    public void stop(){
        System.out.println("停车!!");
}
//6)编写setter,getter为相应的变量赋值或者获取某个变量。
    public int getOil() {
        return oil;
    }

    public void setOil(int oil) {
        this.oil = oil;
    }

    public int getSpeed() {
        return speed;
    }

    public void setSpeed(int speed) {
        this.speed = speed;
    }
}
package com.zoukao;

public class TestCar {
    public static void main(String[] args) {
        //    编写一个测试类,生成两个汽车类对象。
        Car car1=new Car();
        Car car2=new Car();
        //分别为这两个对象油量和时速赋值。然后分别调用转弯,直行,停车方法。
        car1.setOil(100);
        car1.setSpeed(30);

        car2.setOil(150);
        car2.setSpeed(50);

        car1.zw();
        car1.run();
        car1.stop();

        car2.zw();
        car2.run();
        car2.stop();

    }

}

   4: 编程实现将一个十进制数字转换为N进制。

           推荐实现步骤:

  1. 创建一个类,包含一个要转换的进制和要转换的十进制数字俩个属性。
  2. 添加一个默认构造和带参构造
  3. 编写一个转换和输出的方法(完成转换和输出)
  4. 编写测试类进行测试。
package com.zoukao;

public class Zuanhuan {
//1)创建一个类,包含一个要转换的进制和要转换的十进制数字俩个属性。
    private int num;//要转换的十进制数字
    private int n;//要转换的N进制
    public  void change(){
        //计算数组的大小
        int sum=0;
        int temp=this.num;
        while(this.num!=0){
            this.num/=this.n;
            sum++;
        }
        int[] arr=new int[sum];
        //进行取余,并将余数保存到数组中
        for (int i=arr.length-1;i>=0;i--){
            arr[i]=temp%n;
            temp/=n;
        }
        //输出数组
        for(int m:arr){
            if(m>=10){
                System.out.print((char)(m+55));
            }
            else{
                System.out.print(m);
            }
        }
    }
//2)添加一个默认构造和带参构造

    public Zuanhuan() {
    }

    public Zuanhuan(int num, int n) {
        this.num = num;
        this.n = n;
    }

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    public int getN() {
        return n;
    }

    public void setN(int n) {
        this.n = n;
    }

//3)编写一个转换和输出的方法(完成转换和输出)
}
package com.zoukao;

import java.util.Scanner;

public class TestZh {
    //4)编写测试类进行测试。
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        System.out.println("请输入一个十进制数字:");
        int x=in.nextInt();
        System.out.println("请输入要转换的进制:");
        int y=in.nextInt();
        //创建对象
        Zuanhuan zh=new Zuanhuan(x,y);
        zh.change();
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值