封装练习题
封装练习题一
一、练习题目
编写程序描述狗
二、问题描述
使用面向对象的思想,编写自定义描述狗的信息。设定属性包括:品种,年龄,心情,名字;方法包括:叫,跑
三、要求:
1、设置属性的私有访问权限,通过公有的get,set方法实现对属性的访问
2、限定心情只能有“心情好”和“心情不好”两种情况,如果无效输入进行提示,默认设置“心情好”。
3、设置构造函数实现对属性赋值
4、叫和跑的方法,需要根据心情好坏,描述不同的行为方式。
5、编写测试类,测试狗类的对象及相关方法(测试数据信息自定义)
1 package Day09Work; 3 public class Day09Work01Dog { 4 public static void main(String[] args) { 5 Goddess hapdog = new Goddess("贵宾犬",5,"你猜我心情呀","甜心");//设置构造函数实现对属性赋值 6 hapdog.shout(); //调用shout方法 7 hapdog.run(); //调用run方法 8 System.out.println("============================================="); 9 Goddess saddog = new Goddess("德国牧羊犬",3,"心情不好","太子"); 10 saddog.shout(); 11 saddog.run();16 } 17 } 18 package Day09Work; 19 public class Goddess { 20 private String kind; //1.设置属性的私有访问权限 21 private int age; 22 private String mood = "心情好"; // 2.2 默认设置“心情好” 23 private String name; 24 25 public Goddess(String k,int a,String m,String n){ // 3、设置构造函数实现对属性赋值 26 this.setKind(k); 27 this.setAge(a); 28 this.setMood(m); 29 this.setName(n); 30 } 31 32 //1.1 通过公有的get,set方法实现对属性的访问 33 public String getKind() { 34 return kind; 35 } 36 public void setKind(String k) { 37 this.kind =k; 38 } 39 40 public int getAge() { 41 return age; 42 } 43 public void setAge(int a) { 44 this.age=a; 45 } 46 47 public String getName() { 48 return name; 49 } 50 public void setName(String n) { 51 this.name = n; 52 } 53 54 public String getMood() { 55 return mood; 56 } 57 public void setMood(String m) { 58 if(m.equals("心情好")||m.equals("心情不好")) { // 2.1 限定心情只能有“心情好”和“心情不好”两种情况 59 this.mood = m; 60 System.out.println("输入信息正确,这只狗狗今天"+this.mood); //显示输入的心情 61 }else { 62 System.out.println("输入信息错误,这只狗狗今天"+this.mood); // 2.2 如果无效输入进行提示,默认设置“心情好”。 63 } 64 } 65 66 public void shout() { //4、叫和跑的方法,需要根据心情好坏,描述不同的行为方式。 67 if(this.mood.equals("心情好")) { //心情好的时候,开心的汪汪叫(言语) 68 System.out.println("名字叫"+this.name+"的"+this.kind+this.mood+",开心的汪汪叫"); 69 } 70 else if(this.mood.equals("心情不好")){ //心情不好的时候,伤心的呜呜叫(言语) 71 System.out.println("名字叫"+this.name+"的"+this.kind+this.mood+",伤心的呜呜叫"); 72 } 73 } 74 public void run() { 75 if(this.mood.equals("心情好")) { //心情好的时候,开心的围着主人身边转(动作) 76 System.out.println("名字叫"+this.name+"的"+this.kind+this.mood+",开心的围着主人身边转。"); 77 } 78 else if(this.mood.equals("心情不好")){ //心情不好的时候,伤心的一动不动(动作) 79 System.out.println("名字叫"+this.name+"的"+this.kind+this.mood+",伤心的一动不动"); 80 } 81 } 82 }
封装练习题二
一、练习题目
编写程序描述IT从业者
二、问题描述
以面向对象的思想,编写自定义类描述IT从业者。设定属性包括:姓名,年龄,技术方向,工作年限;方法包括:工作
三、要求:
1、设置属性的私有访问权限,通过公有的get,set方法实现对属性的访问
2、限定IT从业人员必须年满15岁,无效信息需提示,并设置默认年龄为15。
3、限定“技术方向”是只读属性
4、工作方法通过输入参数,接收工作单位和职务,输出个人工作信息
5、编写测试类,测试IT从业者类的对象及相关方法(测试数据信息自定义)
1 package Day09Work; 2 public class Day09Work02IT { 3 public static void main(String[] args) { 4 It i = new It("马未龙",35,"数据库维护",10,"腾讯实业","数据库维护工程师"); 5 i.work(); 6 System.out.println("============================================="); 7 It w = new It("张凯",1,"Java开发",1,"鼎盛科技","Java开发工程师"); 8 w.work();12 } 13 } 14 15 package Day09Work; 16 public class It { 17 18 private String name; //1、设置属性的私有访问权限 19 private int age; 20 private String teDirection; 21 private int workYear; 22 private String workCompany; 23 private String position; 24 25 public It(String name,int age,String teDirection,int workYear,String workCompany,String position){ 26 //2、限定IT从业人员必须年满15岁,无效信息需提示 27 if(age<15){ 28 System.out.println("年龄无效,修改为默认值15"); 29 this.age=15; //设置默认年龄为15。 30 }else{ 31 this.age=age; 32 } 33 34 this.setAge(age); 35 this.setName(name); 36 this.setPosition(position); 37 this.setTeDirection(teDirection); 38 this.setWorkCompany(workCompany); 39 this.setWorkYear(workYear); 40 } 41 42 //4.工作方法通过输入参数,接收工作单位和职务,输出个人工作信息 43 public void work(){ 44 System.out.println("姓名: "+this.name); 45 System.out.println("年龄: "+this.age); 46 System.out.println("技术方向: "+this.teDirection); 47 System.out.println("工作年限: "+this.workYear); 48 System.out.println("目前就职于: "+this.workCompany); 49 System.out.println("职务是: "+this.position); 50 } 51 52 //通过公有的get,set方法实现对属性的访问 53 public String getName() { 54 return name; 55 } 56 public void setName(String name) { 57 this.name = name; 58 } 59 60 public int getAge() { 61 return age; 62 } 63 public void setAge(int age) { 64 this.age = age; 65 } 66 67 public String getTeDirection() { 68 return teDirection; 69 } 70 public void setTeDirection(String teDirection) { 71 this.teDirection = teDirection; 72 } 73 74 public int getWorkYear() { 75 return workYear; 76 } 77 public void setWorkYear(int workYear) { 78 this.workYear = workYear; 79 } 80 81 public String getWorkCompany() { 82 return workCompany; 83 } 84 public void setWorkCompany(String workCompany) { 85 this.workCompany = workCompany; 86 } 87 88 public String getPosition() { 89 return position; 90 } 91 public void setPosition(String position) { 92 this.position = position; 93 } 94 }
封装练习题三
一、练习题目
编写程序描述卡车信息
二、问题描述
某公司要开发“X出租公司车辆管理系统”,请用面向对象的思想设计卡车类。
设定:
属性:车牌号、车型、颜色、日租金、载重量
方法:租赁
三、要求:
1、设置属性的私有访问权限,通过公有的get,set方法实现对属性的访问
2、租赁方法通过输入参数,接收租车人姓名和租赁时间,描述租赁状态,要求判断租赁时间的有效性。
3、设计构造函数实现属性赋值
4、编写测试类,测试卡车类的对象及相关方法(测试数据信息自定义)
package Day09Work; public class Day09Work03Car{ public static void main(String[] args) { Car car = new Car("武松",10,"京D1111","东风","蓝色",500,200.0); // 3、设计构造函数实现属性赋值 car.rent(); System.out.println("=================================="); Car car1 = new Car("女神",100,"湘A88888","劳斯莱斯","白色",1000,100000.0); // 设计构造函数实现属性赋值 car1.rent(); } } package Day09Work; public class Car { private String name; //1.设置属性的私有访问权限, private int age; private String plateNumber; private String type; private String color; private long weight; private double money; public Car(String name, int age, String plateNumber, String type, String color, long weight, double money) { this.setName(name); //3.设计构造函数实现属性赋值 this.setAge(age); this.setPlateNumber(plateNumber); this.setType(type); this.setColor(color); this.setWeight(weight); this.setMoney(money); } public void rent(){ System.out.println("请输入租车人姓名:"+this.name); System.out.println("请输入租赁天数:"+this.age); System.out.println("租赁信息"); System.out.println("车牌号:"+this.plateNumber); System.out.println("车型:"+this.type); System.out.println("颜色:"+this.color); System.out.println("载重量:"+this.weight); System.out.println("租车人:"+this.name); System.out.println("应付金额:"+this.money); } public String getName() { //2.通过公有的get,set方法实现对属性的访问 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 getPlateNumber() { return plateNumber; } public void setPlateNumber(String plateNumber) { this.plateNumber = plateNumber; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } public long getWeight() { return weight; } public void setWeight(long weight) { this.weight = weight; } public double getMoney() { return money; } public void setMoney(double money) { this.money = money; } }