封装练习题

封装练习题一
一、练习题目
编写程序描述狗
二、问题描述
使用面向对象的思想,编写自定义描述狗的信息。设定属性包括:品种,年龄,心情,名字;方法包括:叫,跑
三、要求:
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;
    }
}

 

posted @ 2018-07-06 19:53  牛牛魔王  阅读(961)  评论(0编辑  收藏  举报