首页 > 编程语言 >Java面向对象基础篇综合训练(附带全套源代码及逐语句分析)->基于javabeen

Java面向对象基础篇综合训练(附带全套源代码及逐语句分析)->基于javabeen

时间:2024-07-10 15:55:06浏览次数:14  
标签:Java String 及逐 girlFriends GirlFriends 数组 new 源代码 public

一、前言

还是那句话面向对象是Java的重点,同时也是难点,小编会在此部分分享一些综合型的案例,难度从易到难,本篇文章只是一些基础的操作,综合能力并不是太高。大家可以试着观看一遍自己去打开编译器尝试一下。

不知道有多少读者是跟着小编进行学习的,今天是学习Java的第五天,希望大家能够一同坚持下去。

为了防止读者们遗忘,小编将基础部分放在下面了欧

运算符、判断、循环

数组、方法

双色球系统

二、练习一

java部分代码

注:代码分析部分省略了对JavaBeen部分的分析,Javabeen部分的代码在最后

public class text1 {
    public static void main(String[] args) {
        //案例一、对象数组1
        //1.创建一个数组
        Goods[]goods = new Goods[3];
        //2.创建三个商品对象
        Goods g1 = new Goods("001","西瓜",18.5,50);
        Goods g2 = new Goods("002","苹果",19.8,100);
        Goods g3 = new Goods("003","香蕉",11.5,50);
        //3.将商品添加到数组中
        goods[0] = g1;
        goods[1] = g2;
        goods[2] = g3;
        //4.遍历数组
        for (int i = 0; i < goods.length; i++) {
            Goods g = goods[i];
            System.out.println(g.getId()+","+g.getName()+","+g.getPrice());
        }
    }

代码分析:

类和对象

  • Goods 类的定义
  • g1g2g3 是 Goods 类的实例,每个实例代表一个商品,具有不同的属性:编号、名称、价格等。

对象数组

  • Goods[] goods = new Goods[3]; 创建了一个长度为 3 的 Goods 类型的数组 goods,用来存储商品对象。

实例化对象

  • g1g2g3 分别创建了三个商品对象,并初始化它们的属性。

数组赋值

  • 将创建的商品对象 g1g2g3 分别赋值给数组 goods 的第 0、1、2 个位置,即将这些商品对象存储在数组中。

遍历数组

  • 使用 for 循环遍历数组 goods
  • 在每次迭代中,将数组中的 Goods 对象赋值给 g,然后输出商品的编号、名称和价格。

输出结果:

  • 程序会依次输出三个商品的信息,每行包含商品的编号、名称和价格。

三、练习二

Java部分代码

public static class text2 {
        public static void main(String[] args) {
            //案例二、对象数组2
            //1.创建数组存放汽车对象
            Cars[]car = new Cars[3];
            //2.创建汽车对象
            Scanner sc = new Scanner(System.in);
            for (int i = 0; i < car.length; i++) {
                Cars c = new Cars();
                System.out.println("请输入汽车品牌:");
                String brand = sc.next();
                c.setBrand(brand);
                System.out.println("请输入汽车价格:");
                double price = sc.nextDouble();
                c.setPrice(price);
                System.out.println("请输入汽车颜色:");
                String color = sc.next();
                c.setColor(color);
                //3.将汽车对象存入数组中
                car[i] = c;
            }
            //4.遍历数组
            for (int i = 0; i < car.length; i++) {
                Cars c = car[i];
                System.out.println(c.getBrand() + " " + c.getPrice() + " " + c.getColor());
            }
        }
    }

代码分析:

类和对象

  • Cars 类的定义
  • Cars 类包括了以下方法:
    • setBrand(String brand):设置汽车品牌。
    • setPrice(double price):设置汽车价格。
    • setColor(String color):设置汽车颜色。
    • getBrand()getPrice()getColor():用于获取汽车的品牌、价格和颜色。

对象数组

  • Cars[] car = new Cars[3]; 创建了一个长度为 3 的 Cars 类型的数组 car,用来存储汽车对象。

用户输入和对象填充

  • 使用 Scanner 类来获取用户输入。
  • 通过 for 循环,循环 3 次(数组的长度),每次创建一个新的 Cars 对象 c
  • 用户依次输入汽车的品牌、价格和颜色,并使用 c.setXXX() 方法设置到对象 c 中。
  • 将填充好数据的 c 对象存入数组 car 的第 i 个位置。

遍历数组并输出

  • 使用另一个 for 循环遍历数组 car
  • 在每次迭代中,从数组中获取 Cars 对象 c,并使用 c.getXXX() 方法获取汽车的品牌、价格和颜色信息。
  • 将这些信息输出到控制台,每辆汽车的信息在一行中显示。

输出结果:

  • 程序将提示用户输入每辆汽车的品牌、价格和颜色,并依次将这些信息输出到控制台。

注意事项:

  • 确保 Cars 类在程序中正确定义,并且包含了用于设置和获取汽车属性的方法。
  • 确保用户输入的数据类型正确匹配,例如价格应该是 double 类型,可以通过 sc.nextDouble() 获取。
  • 考虑输入数据的异常情况处理,例如用户可能输入非法的价格或颜色值。
键盘录入
第一套体系
nextInt();接收整数
nextDouble();接收小数
next();接收字符串
注:该体系中遇到空格、制表符、回车就停止接收。
第二套体系
nextLine();接收字符串
可以接收空格、制表符,回车就停止接收。
键盘录入的两套体系不能混用

四、练习三

Java部分代码

public static class text3 {
        public static void main(String[] args) {
            //案例三、对象数组3
            //1.创建一个数组
            Phone[] phone = new Phone[3];
            //2.创建三个手机对象
            Phone phone1 = new Phone("小米14",4399.9,"白色");
            Phone phone2 = new Phone("苹果15",8999.9,"黑色");
            Phone phone3 = new Phone("华为",3999.9,"蓝色");
            //3.将手机添加到数组中
            phone[0] = phone1;
            phone[1] = phone2;
            phone[2] = phone3;
            //4.获取三部手机的平均价格
            double sum = 0;
            for (int i = 0; i < phone.length; i++) {
                sum += phone[i].getPrice();
            }
            System.out.println("手机平均价格为:"+(int)(sum/phone.length));
        }
    }

代码分析:

对象和数组的创建

  • Phone[] phone = new Phone[3]; 创建了一个长度为 3 的 Phone 类型的数组 phone,用于存储手机对象。

手机对象的创建

Phone phone1 = new Phone("小米14", 4399.9, "白色");
Phone phone2 = new Phone("苹果15", 8999.9, "黑色");
Phone phone3 = new Phone("华为", 3999.9, "蓝色");
  • 使用 Phone 类的构造函数创建了三个手机对象:
  • 每个手机对象包含品牌、价格和颜色信息。

将手机对象添加到数组中

phone[0] = phone1;
phone[1] = phone2;
phone[2] = phone3;
  • 将创建好的手机对象分别存放到数组 phone 的每个位置:

计算手机的平均价格

  • 使用循环遍历数组 phone,累加每个手机对象的价格:
    double sum = 0;
    for (int i = 0; i < phone.length; i++) {
        sum += phone[i].getPrice();
    }
    
  • phone[i].getPrice() 用于获取第 i 个手机对象的价格,并累加到 sum 中。

输出平均价格

  • 计算平均价格:sum/phone.length
  • 将平均价格输出到控制台,使用 (int) 强制转换为整数,以便输出整数部分:

输出结果:

  • 程序将会输出所有手机的平均价格,该值是所有手机价格之和除以手机数量的结果,保留整数部分。

注意事项:

  • Phone 类在程序中要有正确的定义,包含了适当的属性和构造函数。
  • 数组长度和循环的范围应该正确匹配,以防止数组越界异常。
  • 确保输入的价格数据类型正确匹配,例如应该是 double 类型,与手机对象中定义的价格类型一致。

五、练习四

Java代码部分

public static class text4 {
        public static void main(String[] args) {
            //案例四、对象数组4
            //1.创建一个数组
            GirlFriends[] girlFriends = new GirlFriends[4];
            //2.创建四个女朋友对象
            GirlFriends girl1 = new GirlFriends("貂蝉",18,"姣好靓丽","吃零食");
            GirlFriends girl2 = new GirlFriends("王昭君",19,"芙蓉出水","玩游戏");
            GirlFriends girl3 = new GirlFriends("西施",21,"冰清玉洁","学习");
            GirlFriends girl4 = new GirlFriends("杨贵妃",22,"美若天仙","看书");
            //3.将女朋友添加到数组中
            girlFriends[0] = girl1;
            girlFriends[1] = girl2;
            girlFriends[2] = girl3;
            girlFriends[3] = girl4;
            //4.获取四个女朋友的平均年龄
            double sum = 0;
            double sum2 = 0;
            for (int i = 0; i < girlFriends.length; i++) {
                sum+=girlFriends[i].getAge();
            }
            sum2=sum/girlFriends.length;
            //5.打印比平均年龄低的女朋友信息
            for (int i = 0; i < girlFriends.length; i++) {
                if(girlFriends[i].getAge()<=sum2){
                    System.out.println(girlFriends[i].getName()+","+girlFriends[i].getAge()+","+girlFriends[i].getGender()+","+girlFriends[i].getHobby());
                }
            }
        }
    }

代码分析:

对象和数组的创建

  • GirlFriends[] girlFriends = new GirlFriends[4];
  •  创建了一个长度为 4 的 GirlFriends 类型的数组 girlFriends,用于存储女朋友对象。

女朋友对象的创建

温馨提示:此处定义的对象是女朋友对象,不是你的对象欧

  • 使用 GirlFriends 类的构造函数创建了四个女朋友对象:
    GirlFriends girl1 = new GirlFriends("貂蝉", 18, "姣好靓丽", "吃零食");
    GirlFriends girl2 = new GirlFriends("王昭君", 19, "芙蓉出水", "玩游戏");
    GirlFriends girl3 = new GirlFriends("西施", 21, "冰清玉洁", "学习");
    GirlFriends girl4 = new GirlFriends("杨贵妃", 22, "美若天仙", "看书");
    
  • 每个女朋友对象包含姓名、年龄、性格描述和兴趣爱好。

将女朋友对象添加到数组中

  • 将创建好的女朋友对象分别存放到数组 girlFriends 的每个位置:
    girlFriends[0] = girl1;
    girlFriends[1] = girl2;
    girlFriends[2] = girl3;
    girlFriends[3] = girl4;
    

计算女朋友的平均年龄

  • 使用循环遍历数组 girlFriends,累加每个女朋友对象的年龄:
    double sum = 0;
    for (int i = 0; i < girlFriends.length; i++) {
        sum += girlFriends[i].getAge();
    }
    
  • girlFriends[i].getAge() 用于获取第 i 个女朋友对象的年龄,并累加到 sum 中。

计算平均年龄并打印比平均年龄低的女朋友信息

  • 计算平均年龄:sum / girlFriends.length
  • 使用第二个循环遍历数组 girlFriends,判断每个女朋友的年龄是否低于或等于平均年龄 sum2
    double sum2 = sum / girlFriends.length;
    for (int i = 0; i < girlFriends.length; i++) {
        if (girlFriends[i].getAge() <= sum2) {
            System.out.println(girlFriends[i].getName() + "," + girlFriends[i].getAge() + "," + girlFriends[i].getGender() + "," + girlFriends[i].getHobby());
        }
    }
    
  • 如果年龄符合条件,则打印女朋友的姓名、年龄、性格描述和兴趣爱好。

输出结果:

  • 程序将会输出年龄低于或等于平均年龄的女朋友的信息,包括她们的姓名、年龄、性格描述和兴趣爱好。

注意事项:

  • 确保 GirlFriends 类在程序中有正确的定义,包含了适当的属性和构造函数。
  • 数组长度和循环的范围应该正确匹配,以防止数组越界异常。
  • 确保输入的年龄数据类型正确匹配,例如应该是 int 类型,与女朋友对象中定义的年龄类型一致。

六、全套源代码

Java部分

package day5;

import day4.Cars;
import day4.Goods;
import day4.Phone;

import java.util.Scanner;

public class text1 {
    public static void main(String[] args) {
        //案例一、对象数组1
        //1.创建一个数组
        Goods[]goods = new Goods[3];
        //2.创建三个商品对象
        Goods g1 = new Goods("001","西瓜",18.5,50);
        Goods g2 = new Goods("002","苹果",19.8,100);
        Goods g3 = new Goods("003","香蕉",11.5,50);
        //3.将商品添加到数组中
        goods[0] = g1;
        goods[1] = g2;
        goods[2] = g3;
        //4.遍历数组
        for (int i = 0; i < goods.length; i++) {
            Goods g = goods[i];
            System.out.println(g.getId()+","+g.getName()+","+g.getPrice());
        }
    }

    public static class text2 {
        public static void main(String[] args) {
            //案例二、对象数组2
            //1.创建数组存放汽车对象
            Cars[]car = new Cars[3];
            //2.创建汽车对象
            Scanner sc = new Scanner(System.in);
            for (int i = 0; i < car.length; i++) {
                Cars c = new Cars();
                System.out.println("请输入汽车品牌:");
                String brand = sc.next();
                c.setBrand(brand);
                System.out.println("请输入汽车价格:");
                double price = sc.nextDouble();
                c.setPrice(price);
                System.out.println("请输入汽车颜色:");
                String color = sc.next();
                c.setColor(color);
                //3.将汽车对象存入数组中
                car[i] = c;
            }
            //4.遍历数组
            for (int i = 0; i < car.length; i++) {
                Cars c = car[i];
                System.out.println(c.getBrand() + " " + c.getPrice() + " " + c.getColor());
            }
        }
    }

    public static class text3 {
        public static void main(String[] args) {
            //案例三、对象数组3
            //1.创建一个数组
            Phone[] phone = new Phone[3];
            //2.创建三个手机对象
            Phone phone1 = new Phone("小米14",4399.9,"白色");
            Phone phone2 = new Phone("苹果15",8999.9,"黑色");
            Phone phone3 = new Phone("华为",3999.9,"蓝色");
            //3.将手机添加到数组中
            phone[0] = phone1;
            phone[1] = phone2;
            phone[2] = phone3;
            //4.获取三部手机的平均价格
            double sum = 0;
            for (int i = 0; i < phone.length; i++) {
                sum += phone[i].getPrice();
            }
            System.out.println("手机平均价格为:"+(int)(sum/phone.length));
        }
    }

    public static class text4 {
        public static void main(String[] args) {
            //案例四、对象数组4
            //1.创建一个数组
            GirlFriends[] girlFriends = new GirlFriends[4];
            //2.创建四个女朋友对象
            GirlFriends girl1 = new GirlFriends("貂蝉",18,"姣好靓丽","吃零食");
            GirlFriends girl2 = new GirlFriends("王昭君",19,"芙蓉出水","玩游戏");
            GirlFriends girl3 = new GirlFriends("西施",21,"冰清玉洁","学习");
            GirlFriends girl4 = new GirlFriends("杨贵妃",22,"美若天仙","看书");
            //3.将女朋友添加到数组中
            girlFriends[0] = girl1;
            girlFriends[1] = girl2;
            girlFriends[2] = girl3;
            girlFriends[3] = girl4;
            //4.获取四个女朋友的平均年龄
            double sum = 0;
            double sum2 = 0;
            for (int i = 0; i < girlFriends.length; i++) {
                sum+=girlFriends[i].getAge();
            }
            sum2=sum/girlFriends.length;
            //5.打印比平均年龄低的女朋友信息
            for (int i = 0; i < girlFriends.length; i++) {
                if(girlFriends[i].getAge()<=sum2){
                    System.out.println(girlFriends[i].getName()+","+girlFriends[i].getAge()+","+girlFriends[i].getGender()+","+girlFriends[i].getHobby());
                }
            }
        }
    }
}


day4.Goods

package day4;

public class Goods {
    private String id;
    private String name;
    private double price;
    private int count;
    //空参
    public Goods(){

    }
    //构造函数
    public Goods(String id, String name, double price, int count) {
        this.id = id;
        this.name = name;
        this.price = price;
        this.count = count;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }
}

day4.Cars

package day4;

public class Cars {
    private String brand;//品牌
    private double price;//价格
    private String color;
    //空参
    public Cars() {
    }

    public Cars(String brand, double price, String color) {
        this.brand = brand;
        this.price = price;
        this.color = color;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public String getColor() {
        return color;
    }

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

day4.Phone

package day4;

public class Phone {
    private String brind;
    private double price;
    private String color;

    public Phone() {
    }

    public Phone(String brind, double price, String color) {
        this.brind = brind;
        this.price = price;
        this.color = color;
    }

    public String getBrind() {
        return brind;
    }

    public void setBrind(String brind) {
        this.brind = brind;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public String getColor() {
        return color;
    }

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

标签:Java,String,及逐,girlFriends,GirlFriends,数组,new,源代码,public
From: https://blog.csdn.net/2302_80329073/article/details/140325154

相关文章

  • JavaScript如何将字符串形式里的img图片添加属性
    方法一:使用正则表达式以下例子中将会在img图片中添加crossorigin属性lethtml=`<p>打撒抠脚大汉噶刷卡机很大凯撒</p><p>规范化是的冯绍峰东风浩荡试试</p><imgsrc="http://s3.v.360xkw.com/yzb/photos/1688536327316_ca0e2e3d.jpg"alt=""......
  • Java计算机毕业设计生鲜仓储管理系统(开题+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着生鲜电商的蓬勃发展和消费者对食品新鲜度、安全性的日益重视,生鲜仓储管理成为了保障供应链顺畅与产品质量的关键环节。然而,传统的生鲜仓储管理模......
  • Java-常用API
    1-JavaAPI:指的就是JDK中提供的各种功能的Java类。2-Scanner基本使用Scanner:一个简单的文本扫描程序,可以获取基本类型数据和字符串数据构造方法:Scanner(InputStreamsource):创建Scanner对象System.in:对应的是InputStream类型,可以表示键盘输入Scannersc=n......
  • Java后端tlias员工部门管理-员工管理下-MyBatis-4
    当我们完成了员工管理的分页查询,那么接下来就要完成员工管理的批量删除、新增员工、根据ID查询员工、根据ID修改员工功能。下图是最终完成的示例 批量删除批量删除也是查询语句,所以我们在EmpMapper只需要编写方法,而不需要在上面编写复杂的查询语句,而是在EmpMapper.xml编写......
  • Java后端tlias员工部门管理-前后端联调-阿里云OSS-5
    当完成了员工和部门管理的两大模块的所有基本功能,那么我们接下来就先进行yml文件配置。Yml文件配置为什么要换我们需要把这个application.properties配置文件改成application.yml,因为对比了其他的配置文件的格式,有诸如一下优点中文变成???那么我们进入application.proper......
  • 面试官:Java对象引用都有哪些类型?
    哈喽,大家好......
  • Java计算机毕业设计的电影院管理系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着文化娱乐产业的蓬勃发展,电影院作为人们休闲娱乐的重要场所,其管理效率和用户体验成为影响行业竞争力的关键因素。传统的电影院管理方式往往依赖于......
  • JavaSE语法 | 初识Java!!!
    初识Java一、Java开发环境二、初步认识Java的main方法2.1main方法的实现2.2运行Java程序三、注释四、标识符五、关键字一、Java开发环境IDEA版本:IntelliJIDEACommunityEdition2022.3.3JDK17Windows11二、初步认识Java的main方法2.1main方法的实现main......
  • Java虚拟机(JVM)修复
    一、确定问题原因首先,需要明确Java虚拟机出现问题的具体原因。这可以通过以下方式进行:查看错误日志:JVM和Java应用程序会生成日志文件,这些文件记录了运行时的详细信息,包括错误信息和系统警告。通过查看这些日志,可以获得导致JVM故障的线索。使用调试工具:如jstack、jmap、jconsole......
  • JavaSE学习笔记第二弹——对象和多态(上)
    目录面向对象基础面向对象程序设计的定义类的基本结构成员变量成员方法方法定义与使用设计练习方法重载构造方法静态变量和静态方法String和StringBuilder基本含义区别总结今天我们继续来学习JavaSE,扩展和Java相关的知识,与大家共勉。今天的主题是对象和多态,希......