Java基础-day09-代码题-对象;类;封装

时间:2022-05-04
本文章向大家介绍Java基础-day09-代码题-对象;类;封装,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Java基础-day09-代码题-对象&类&封装

一、定义一个空调类和对应的测试类

该题考查点:属性和方法的使用!

要求:

1、空调有品牌和价格两个属性,并且将属性私有化,提供公有的getXxx与setXxx方法对属性赋值和取值;

2、提供一个无返回值的无参数的开机的方法,内容打印一句话:“空调开机了...”;

3、提供一个无返回值的带1个int类型参数的定时关机的方法,(int类型的参数表示设定的分钟数),内容打印一句话:“空调将在xxx分钟后自动关闭...”;

4、在测试类中创建出空调对象,并给空调的品牌和价格赋任意值;

5、使用空调对象获取空调的品牌和价格并打印到控制台上;

6、使用空调对象调用开机方法;

7、使用空调对象调用定时关机方法,并传递具体数据值,在控制台上可以看到的效果为:空调将在xxx分钟后自动关闭...

其中语句中的“xxx”是调用方法时传递的具体数据值;

代码实现:
package StudentJavaSEday09;
/*
 * 空调类:
 *  属性:
 *  品牌
 *  价格
 *  方法:
 *  开机
 *  定时关机
 *  getXxx与setXxx
 */
public class KongTiao {
 // 属性
 private String name;
 private double price;
 // getter与setter
 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 void kaiJi() {
 System.out.println("空调开机了...");
 }
 // 定时关机
 public void dingShiGuanJi(int fenZhong) {
 System.out.println("空调将在" + fenZhong + "分钟后自动关闭...");
 }
}
package StudentJavaSEday09;
/*
 * 空调测试类
 */
public class KongTiaoTest {
 public static void main(String[] args) {
 // 1、创建对象
 KongTiao kt = new KongTiao();
 // 2、赋值
 kt.setName("格力");
 kt.setPrice(2999.99);
 // 3、取值
 String name = kt.getName();
 double price = kt.getPrice();
 // 4、打印值
 System.out.println("空调的品牌为:" + name);
 System.out.println("空调的价格为:" + price);
 // 5、开机
 kt.kaiJi();
 // 6、定时关机
 kt.dingShiGuanJi(30);
 }
}

运行结果:

二、定义一个学生类和对应的测试类

该题考查点:this关键字的使用!

要求:

1、学生有姓名和年龄两个属性,并且将属性私有化,提供公有的getXxx与setXxx方法对属性赋值和取值;

2、提供一个无返回值的无参数的自我介绍的方法,内容打印一句话:

“大家好,我叫xxx,今年xxx岁了!”

3、提供一个返回值为String类型,参数为学生类型的比较年龄差值的方法,如果当前对象的年龄比参数中的学生的年龄大,则返回:“我比同桌大xxx岁!”;如果当前对象的年龄比参数中的学生的年龄小,则返回:“我比同桌小xxx岁!”;如果当前对象的年龄和参数中的学生的年龄一样大,则返回:“我和同桌一样大!”

4、在测试类中分别创建你和你同桌两个人的对象,并分别给你和你同桌的姓名和年龄属性赋上对应的值;

5、调用你自己的对象的自我介绍的方法,展示出你自己的姓名和年龄;

6、用你自己的对象调用比较年龄差值的方法,把你同桌作为参数使用,并打印方法返回的字符串的内容;

代码实现:

package StudentJavaSEday09;
/*
 * 学生类:
 *  属性:
 *  姓名
 *  年龄
 *  方法:
 *  自我介绍
 *  比较年龄差值
 *  getXxx与setXxx
 */
public class XueSheng {
 // 属性
 private String name;
 private int age;
 private Object tongzhuo;
 // 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 ziWoJieShao() {
 System.out.println("大家好,我叫" + this.name + ",今年" + this.age + "岁了!");
 }
 // 比较年龄差
 public String biJiaoNianLingCha(XueSheng xs) {
 // 1、获取参数中学生的年龄
 int age2 = xs.getAge();
 if (this.age > age2) {
 return "我比同桌大" + (this.age - age2) + "岁!";
 } else if (this.age < age2) {
 return "我比同桌小" + (age2 - this.age) + "岁!";
 } else {
 return "我和同桌一样大!";
 }
 }
}
package StudentJavaSEday09;
/*
 * 学生测试类
 */
public class XueShengTest {
 public static void main(String[] args) {
 // 1、分别创建两个对象
 XueSheng wo = new XueSheng();
 XueSheng tongZhuo = new XueSheng();
 // 2、分别赋值
 wo.setName("奋斗蒙");
 wo.setAge(25);
 tongZhuo.setName("学友");
 tongZhuo.setAge(19);
 // 3、调用自我介绍的方法
 wo.ziWoJieShao();
 // 4、调用比较年龄差的方法
 String cha = wo.biJiaoNianLingCha(tongZhuo);
 System.out.println(cha);
 }
}

运行结果:

三、定义一个商品类和对应测试类

要求:

1、定义商品类,有名称和价格两个属性,并且将属性私有化,提供公有的getXxx与setXxx方法对属性赋值和取值;设置有参无参构造方法

2、编写测试类,在测试类中通过构造分别创建3个商品对象,并分别给3个商品对象的名称和价格赋值;

3、然后求出是三个商品的平均价格;

代码实现:

package StudentJavaSEday09;
public class ShangPin {
 // 属性
 private String name;
 private double price;
 public ShangPin() {
 super();
 // TODO Auto-generated constructor stub
 }
 public ShangPin(String name, double price) {
 super();
 this.name = name;
 this.price = price;
 }
 // getter与setter
 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;
 }
}
package StudentJavaSEday09;
public class ShangPinTest {
 public static void main(String[] args) {
 ShangPin d1 = new ShangPin("洗衣机", 300.5);
 ShangPin d2 = new ShangPin("电视机", 888.5);
 ShangPin d3 = new ShangPin("吹风机", 49.2);
 double num = 0;
 double price1 = d1.getPrice();
 double price2 = d2.getPrice();
 double price3 = d3.getPrice();
 num = price1 + price2 + price3;
 double pingJun = num / 3;
 System.out.println("所有商品的平均价格为:" + pingJun);
 }
}

运行结果:

四、创建student类,包含年龄,姓名,成绩属性,本类中有对学生成绩打等级的方法,并返回该等级(A,B,C)

在主方法中: 创建三个Student对象并传入method(ArrayList<Student> stu)方法中

method方法内要求: 该方法内有对等级进行判断的方法,如果为A等级则打印该学生姓名,并奖励一朵小红花~~

代码运行:

package StudentJavaSEday09;
public class XueSheng2 {
 private String name;
 private int age;
 private double grade;
 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 double getGrade() {
 return grade;
 }
 public void setGrade(double grade) {
 this.grade = grade;
 }
 public XueSheng2(String name, int age, double grade) {
 super();
 this.name = name;
 this.age = age;
 this.grade = grade;
 }
 public XueSheng2() {
 super();
 }
 public char getMyGrade() {
 if (80 < grade && grade <= 100) {
 return 'A';
 }
 if (60 < grade && grade <= 80) {
 return 'B';
 }
 if (0 < grade && grade <= 60) {
 return 'C';
 }
 return 0;
 }
}
package StudentJavaSEday09;
import java.util.ArrayList;
public class XueShengTest2 {
 public static void main(String[] args) {
 ArrayList<XueSheng2>  arr = new ArrayList<>();
 arr.add(new XueSheng2("张三",11,100));
 arr.add(new XueSheng2("李四",12,80));
 arr.add(new XueSheng2("王五",13,70.5));
 mehtod(arr);
 }
 private static void mehtod(ArrayList<XueSheng2> arr) {
 for (int i = 0; i < arr.size(); i++) {
 XueSheng2 XueSheng2 = arr.get(i);
 if(XueSheng2.getMyGrade()=='A'){
 System.out.println("奖励"+XueSheng2.getName()+"同学一个小红花");
 }
 }
 }
}

运行结果: