封装练习题

1,

 

 

2,

训练要点:
属性的封装
需求说明:
使用类的封装原则创建学生类;
成员变量包括ID、姓名、年龄、性别;
对所有成员变量进行封装。
实现思路:
1. 增加private修饰符
2. 增加getter和setter方法
3. 对性别进行合法性判断
package test;

import java.util.Scanner;

public class test0 {
    private int ID;
    private String name;
    private int age;
    private char sex;
    
    public void setter(int a,String b,int c,char d)
    {
        ID=a;
        name=b;
        age=c;
        if(d=='男'||d=='女')
            sex=d;
        
    }
    
    public void getter()
    {
        
        System.out.println("ID是"+ID+"\n名字是"+name+"\n年龄是"+age+"\n性别是"+sex);
    }
}
package test;
import java.util.Scanner;
public class Test0_test {
    public static void main(String[] args) {
        
        test0 exa=new test0();
        exa.setter(123, "张三", 19, '男');
        exa.getter();
    }
}

 

3,

1. 案例题目描述:  
定义一个快递员类,并进行封装
 步骤:
 1.将变量私有化
 2.提供公有访问方法getter和setter
    该类中有以下信息:
 1) 有姓名,员工编号,员工工资几个变量
 2) 定义一个显示自己信息的方法
    3)创建测试类,调用getter(),setter()来赋值和取值。并调用显示信息的方法
2. 评分标准:
(1) 将变量私有化 (10分)
(2) 提供公有访问方法getter和setter(10分)
(3) 创建测试类(10分)
(4) 调用方法输出(10分)
(5) 添加注释(5分)

package test;

import java.util.Scanner;

public class test0 {
    private String name;
    private int num;
    private double average;
    
    public void setter(String a,int b,double c)
    {
        name=a;
        num=b;
        average=c;
    }
    
    public void getter()
    {
        
        System.out.println("员工名字是"+name+"\n编号是"+num+"\n工资是"+average);
    }
}
package test;
import java.util.Scanner;
public class Test0_test {
    public static void main(String[] args) {
        
        test0 exa=new test0();
        exa.setter("lisa", 2018, 10000);
        exa.getter();
    }
}

 

4,

1. 案例题目描述:   按要求完成以下题目
张老太养了两只猫:一只叫小花,今年3岁白色。另一只叫小白,今年3岁花色。请 编写一个程序,当用户输入小猫的名字时,就显示该猫的名字、年龄、颜色。如果输入的小猫名错误,则显示:张老太没有这只猫。
2. 实现思路及评分标准:
    
创建猫类,定义三个变量:姓名 年龄 颜色,变量均私有 (10分)
给这3个变量提供set和get方法
定义打印信息的方法   (10分)
创建测试类
创建2只猫,用set方式赋值,信息和题意一致  (10分)
创建键盘录入对象,录入猫的姓名
判断键盘录入的姓名和这2只猫的姓名是否一致,如果一致就打印这只猫的信息,
      如果不一致提示没有这只猫,请重新输入   (10分)

package test;

import java.util.Scanner;

public class test0 {
    private String name;
    private int age;
    private String color;
    
    public void setter(String a,int b,String c)
    {
        name=a;
        age=b;
        color=c;
    }
    
    public void getter()
    {
        System.out.println("猫猫名字是"+name+"\n年龄是"+age+"\n颜色是"+color);
    }
}
package test;
import java.util.Scanner;
public class Test0_test {
    public static void main(String[] args) {
        
        test0 exa1=new test0();
        test0 exa2=new test0();
        exa1.setter("小花", 3, "白色");
        exa2.setter("小白", 3, "花色");
        
        test0[] arr={exa1,exa2};
        System.out.print("您查询的猫猫名字是:");
        String in=new Scanner(System.in).next();
        
        if("小花".equals(in))
        {
            exa1.getter();
        }else if("小白".equals(in))
        {
            exa2.getter();
        }
        else
        {
            System.out.println("老太家里没有这种猫");
        }
        
    }
}

 

5,

训练要点:
this关键字的使用
需求说明:
优化Student类,修改有参构造方法,调用其它构造方法
修改计算方法,使用this关键字进行优化
实现思路:
1. 修改有参构造方法,使用this调用其它构造方法
2. 修改计算方法,使用this调用成员变量
package test;

import java.util.Scanner;

public class test0 {
    private String name;
    private int age;
    private String color;
    public test0()
    {
        this.age=12;
        this.color="黄种人";    
    }
    public test0(String name)
    {
        this();    
        this.name=name;
        
    }
    
    public void getter()
    {
        System.out.println("学生名字是"+name+"\n年龄是"+age+"\n人种是"+color);
    }
}
package test;
import java.util.Scanner;
public class Test0_test {
    public static void main(String[] args) {
        
        test0 exa=new test0("lisa");
        exa.getter();
    }
}

 

6,

posted @ 2021-08-05 20:30  热心市民陆女士  阅读(167)  评论(0编辑  收藏  举报