JAVA练习500题2帖 超详细 带答案 持续更新中~

这是一份专为JAVA初学者设计的编程题集,包括类型转换、条件判断、循环、面向对象等多个方面,涵盖20多个实战练习,如设计小狗、宠物商店案例、二分查找等,帮助提升编程技巧和熟练度。作者承诺将持续更新,供学习者自我挑战和提升。
摘要由CSDN通过智能技术生成

JAVA小白编程题练习2

可能有很多刚入门的小白不知道自己如何能快速提升编程技巧与熟练度
其实大佬进阶之路只有一个~ 那就是疯狂码代码!!!实践出真知!!!
所以为了大家能够想练习的时候有素材,泡泡给大家整理了一些练习题
本帖是2帖,如果觉得难,可以先从1帖开始练习哦~

练习帖1 点我点我

由于平时比较忙,所以我在不定时努力更新中,欢迎监督~

文章目录

练习题 : 类型之间的转换与字面值规则

package cn.tedu.basic;
/*本类用来测试类型转换
* 1.byte1--short char2--int4--long8--float4--double8
* 2.小到大 直接转:隐式转换,可以直接转换
*   大到小 强制转:显式转换,需要强转,注意发生数据溢出的问题
*   浮变整 小数没:小数部分直接被舍弃
* 3.强制类型转换的格式:目标类型 变量名 = (目标类型)要转换类型的数据;
* */
public class TestTypeChage {
    public static void main(String[] args) {
        byte a = 10;
        short b = a;//不会报错,小转大

        int c = 1;
        long d = c;//不会报错,小转大

        float f = 3.1415f;
        double e = f;//不会报错,小转大

        long g = 8274624867L;
        float h = g;//不会报错,小转大
        System.out.println(h);

        char i = 'a';
        int j = i;//不会报错,小转大
        System.out.println(j);//97

        int a1 = 1;
        byte b1 = 2;
        //byte c1 = a1+b1;会报错,大转小
        byte c1 = (byte) (a1+b1);//需要强制类型转换

        byte d1 = (byte) 128;
        System.out.println(d1);//-128,需要强转,注意发生数据溢出的问题

        short e1 = 'a';
        char f1 = 120;
        System.out.println(e1);//97,打印的是编码值
        System.out.println(f1);//'x',打印是根据编码找到的字符

        float h1 = 32874.435F;
        int i1 = (int) h1;//大转小 强制转
        System.out.println(i1);//32874 浮变整 小数没
    }
}

练习题 : ==比较的练习

    package cn.tedu.basic;

public class TestOperator {
    public static void main(String[] args) {
        //引用类型Cat类型的变量c1 c2 保存的是对象的地址值
        Cat c1 = new Cat();
        Cat c2 = new Cat();

        int[] a1 = {1, 2, 3};
        int[] a2 = {1, 2, 3};

        int b1 = 4;
        int b2 = 4;

        boolean f1 = true;
        boolean f2 = true;
        /* == 如果比较的是基本类型,比较的是值,字面值,具体存的那个数*/
        System.out.println(b1 == b2);//true
        System.out.println(f1 == f2);//true

        /* == 如果比较的是引用类型,比较的也是值,地址值*/
        System.out.println(c1 == c2);//false
        System.out.println(a1 == a2);//false
    }
}

class Cat {
    String name;
    int age;

    public void bark() {
        System.out.println("小猫喜欢喵喵叫");
    }
}

练习题 : 嵌套分支的练习

需求:提示并接收用户输入的月份,判断并输出属于哪个季节
1-12月是合法数据 3~5春天 6~8夏天 9~11秋天 其他情况冬天

 package cn.tedu.basic;

import java.util.Scanner;

/*本类用于复习分支结构*/
public class TestIf {
    public static void main(String[] args) {
        //1.提示并接收用户输入的月份
        System.out.println("请输入您要查看的月份:");
        int month = new Scanner(System.in).nextInt();

        //2.对用户输入的数据进行合法性检测
        /*如果if后的语句只有一句,大括号可以省略不写*/
        /*return关键字除了可以帮我们返回方法的返回值以外
        * 还可以直接结束当前的方法,如果遇到了return,本方法会直接结束*/
//        if(month <0 || month >12) return;
//        System.out.println("今天天气真不错");//这句话是用来检测main()有没有结束
        if(month <= 0 || month >12){
            System.out.println("您输入的月份不正确!应该是1-12月以内");
        }else{
            //3.判断接收到的合法数据属于哪个季节,并将结果输出
            if(month >=3 && month <=5){
                System.out.println(month+"月是春天");
            }else if(month >=6 && month <=8){
                System.out.println(month+"月是夏天~");
            }else if(month >=9 && month <=11){
                System.out.println(month+"月是秋天");
            }else{
                System.out.println("冬天就要来啦,春天还会远吗?");
            }
        }
    }
}

练习题 : 根据颜色推荐菜品switch

package cn.tedu.basic;

import java.util.Scanner;

/*本类用于复习switch*/
public class TestSwitch {
    public static void main(String[] args) {
        //需求:接收用户今天输入的颜色,推荐菜品
        //1.提示并接收用户输入的颜色
        System.out.println("请输入您今天心情的颜色:");
        String color = new Scanner(System.in).nextLine();
        //2.完成选择结构
        switch (color) {
            case "红":
                System.out.println("红烧鱼");
                break;//为了避免穿透
            case "黄":
                System.out.println("菠萝炒饭");
                break;
            case "橙":
                System.out.println("水煮肉片");
                break;
            default:
                System.out.println("哎呀,没有识别到这个功能呢,正在开发中...");
        }
    }
}

练习题:面向对象练习:设计小狗类

需求:

  1. 抽象形成一个小狗类Dog

  2. 属性:名字name 年龄age 品种kind 主人host 价格price

  3. 功能:
    1)跑run:无参,打印:小狗Dog跑的老快了~
    2)吃eat:参数int n,打印:小狗今晚要吃n根肉骨头
    3)睡觉sleep:参数double num,打印:小狗睡了num个小时
    4)玩play:参数String host,返回值 String “飞盘”, 打印:小狗与主人host玩的很开心
    5)叫bark:打印:小狗喜欢汪汪叫,封装此方法,玩play()的时候才bark()

  4. 创建本类的2个对象,并给两个对象的所有属性并查看
    名字name 年龄age 品种kind 主人host 价格price
    哮天犬 999 猎狗 二郎神 10000
    罗小黑 5 神奇犬 大自然 999.99

    package cn.cxy.exec;
    public class TestDog {
    public static void main(String[] args) {
    //5.1创建Dog类的第1个对象
    Dog d1 = new Dog();
    //5.2修改d1对象的属性值
    d1.setName(“哮天犬”);
    d1.setAge(999);
    d1.setKind(“猎狗”);
    d1.setHost(“二郎神”);
    d1.setPrice(10000);
    //5.3打印查看d1对象的属性值
    System.out.println(d1.getName());
    System.out.println(d1.getAge());
    System.out.println(d1.getKind());
    System.out.println(d1.getHost());
    System.out.println(d1.getPrice());

        //6.1创建Dog类的第2个对象
        Dog d2 = new Dog();
        //6.2修改d2对象的属性值
        d2.setName("罗小黑");
        d2.setAge(5);
        d2.setKind("神奇犬");
        d2.setHost("大自然");
        d2.setPrice(999.99);
        //6.3打印查看d2对象的属性值
        System.out.println(d2.getName());
        System.out.println(d2.getAge());
        System.out.println(d2.getKind());
        System.out.println(d2.getHost());
        System.out.println(d2.getPrice());
    
        //7.调用dog类的5个方法
        d1.run();
        d1.eat(5);
        d1.sleep(8.8);
        //方式一:只调用play()的功能
        d1.play(d1.getHost());
        //方式二:不仅调用play()的功能还接收了返回值飞盘交给r保存
        String r = d1.play(d1.getHost());
        System.out.println(r);
        //方式三:调用play()的功能,并直接打印了play()的返回值飞盘
        System.out.println(d1.play(d1.getHost()));
    }
    

    }
    //1.定义小狗类
    class Dog{
    //2.定义5个属性
    //3.1使用private修饰所有的属性
    private String name;//姓名
    private int age;//年龄
    private String kind;//品种
    private String host;//主人
    private double price;//价格
    //4.1添加小狗类功能1
    public void run(){
    System.out.println(“小狗Dog跑的老快了~”);
    }
    //4.2添加小狗类功能2
    public void eat(int n){
    System.out.println(“小狗今晚要吃”+n+“根肉骨头”);
    }
    //4.3添加小狗类的功能3
    public void sleep(double num){
    System.out.println(“小狗今晚睡了”+num+“个小时”);
    }
    //4.4添加小狗类的功能4
    public String play(String host){
    System.out.println(“小狗与主人”+host+“玩的很开心”);
    bark();//在本类的公共方法中调用被封装的方法的功能
    return “飞盘”;
    //bark();//遇到return时已经结束本方法了,return后不可以直接写代码
    }
    //4.5添加小狗类的功能5
    private void bark(){
    System.out.println(“小狗喜欢汪汪叫”);
    }

    //3.2添加被封装属性的公共的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;
    }
    public String getKind() {
        return kind;
    }
    public void setKind(String kind) {
        this.kind = kind;
    }
    public String getHost() {
        return host;
    }
    public void setHost(String host) {
        this.host = host;
    }
    public double getPrice() {
        return price;
    }
    public void setPrice(double price) {
        this.price = price;
    }
    

    }

练习题 : 面向对象练习:设计宠物商店案例

package cn.tedu.oopexec;

import java.util.Arrays;

/*本类用于实现宠物商店设计案例*/
public class TestAnimalShop {
    public static void main(String[] args) {
        //开始测试
        //1.创建宠物商店对象
        AnimalShop shop = new AnimalShop();
        //2.给宠物店起名字
        shop.shopName = "爱宠宠物店";
        //3.查看宠物店现在所有的宠物
        System.out.println(Arrays.toString(shop.animals));//[null, null, null, null, null]

        //4.1创建动物对象--叫小白的3岁的小猫
        Cat cat = new Cat();
        cat.name = "小白";
        cat.age = 3;
        //4.2将第一只创建好的小动物放到数组里
        shop.animals[0] = cat;

        //5.1创建一只叫罗小黑的5岁的猫
        Cat cat1 = new Cat();
        cat1.name = "罗小黑";
        cat1.age = 5;
        //5.2将第二只创建好的小动物放到数组里
        shop.animals[1] = cat1;

        //6.1创建一只叫旺财的4岁的狗
        Dog dog = new Dog();
        dog.name = "旺财";
        dog.age = 4;
        //6.2将第三只创建好的小动物放到数组里
        shop.animals[2] = dog;

        //7.1创建一只叫银子的100岁的鸟
        Bird bird = new Bird();
        bird.name = "银子";
        bird.age = 100;
        //7.2将第四只创建好的小动物放到数组里
        shop.animals[3] = bird;

        //8.1创建一只叫大米的7岁的狗
        Dog dog1 = new Dog();
        dog1.name = "大米";
        dog1.age = 7;
        //8.2将第五只创建好的小动物放到数组里
        shop.animals[4] = dog1;

        //9.通过遍历数组,查看所有的动物的名字与年龄
        for(int i = 0;i < 5; i++){
            System.out.println(shop.animals[i].name + shop.animals[i].age);
        }

        //10.调用动物们各自的功能
        shop.animals[0].eat();//小猫爱吃小鱼干~重写后的功能
        shop.animals[4].eat();//小动物Animal吃啥都行~继承自父类的功能

        //11.调用查询动物的方法
        Animal animal = shop.query(2);
        System.out.println(animal.name+animal.age);

        //12.调用购买动物的方法
        shop.buy(cat1);
        shop.buy(bird);
    }
}

//1.创建动物类的父类Animal
class Animal{
    //2.定义动物类的属性
    public String name;
    public int age;

    //3.定义动物类的方法
    public void eat(){
        System.out.println("小动物Animal吃啥都行~");
    }
}
//4.创建子类小猫类
class Cat extends Animal{
    //5.重写继承自父类的方法 两同 两小 一大
    @Override //添加注解,标记当前是一个重写的方法
    public void eat(){
        System.out.println("小猫爱吃小鱼干~");
    }
    //6.添加子类的特有方法
    public void miaoMiao(){
        System.out.println("小猫开始喵喵叫啦...");
    }
}

//7.创建子类小鸟类
class Bird extends Animal{}
//8.创建子类小狗类
class Dog extends Animal{}

//9.创建宠物商店类
class AnimalShop{
    //10.定义宠物商店的属性
    public String shopName;//商店名
    //准备一个Animal类型的数组,用来存放小动物对象,长度为5
    public Animal[] animals = new Animal[5];

    //11.1定义宠物商店的方法1--查询小动物
    public Animal query(int i){
        //传入编号,也就是数组下标,返回数组中对应的小动物对象
        return animals[i];
    }
    //11.2定义宠物商店的方法2--购买小动物
    /*此处方法的参数是多态的体现,不管传入的是具体的什么小动物,都看作Animal类型*/
    public void buy(Animal animal){
        System.out.println("恭喜你要带:"+an
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值