习题练习题-第三题 野性酷女 2021-06-24 13:57 433阅读 0赞 ## 类的封装 ## > 任务描述:编写一个学生类,并根据要求对学生类进行封装 > 练习目标 > 1.了解为什么要对类进行封装; > 2. 掌握如何实现类的封装; > 需求分析 > 对类进行**封装**,防止外界对类中的成员变量随意访问。 > 为了掌握类的封装,本练习将使用**private**关键字对学生类的成员变量**name**和**age**进行私有化,同时分别提供一个setName(String n)和setAge(int a)\*\*方法用于外界的访问,其中setAge(int a)中需要对age进行判断。 > **设计思路(实现原理)** > 1)对Student类进行修改,将name和age属性使用private修饰,然后定义getName()、setName(String n)、getAge()和setAge(int a)四个对外访问name和age的方法。 > 2)在setAge(int a)方法中对传入的参数进行检查,如果输入值为负数,则打印出“设置的年龄不合法”,如果不为负数,才将其设置为age属性的值。 > 3)编写测试类,在main()方法中创建Student类的实例对象,通过调用对象的setName(String n)和setAge(int a)方法来设置示例对象的name属性和age属性值,并调用speak()方法。 > 测试说明 平台会对你编写的代码进行测试: > 测试1: > 测试输入:小吴,-3; > 预期输出: 设置的年龄不合法 > 我的名字是小吴,今年0岁 > 测试2: > 测试输入:大强,25; > 预期输出: > 我的名字是大强,今年25岁 **代码:** package task03; import java.util.Scanner; /* * 说明:根据提示,补充完整 begin 和 end 之间的代码。 * (其他代码可以不用改) */ /**************** begin *****************/ // 在此定义学生类名 class Student /**************** end *****************/ { /**************** begin *****************/ // 将名字name和年龄age属性定义为私有的 private String name; private int age; public Student(String name,int age){ this.name=name; this.age=age; } public Student(){ } /**************** end *****************/ /**************** begin *****************/ /* * 定义4个公有的方法:getName()、setName(String n)、 * getAge()和setAge(int a), * 用于对外访问name和age。 * * 在setAge(int a)方法中对传入的参数进行检查, * 如果输入值为负数,则打印出“设置的年龄不合法”, * 如果不为负数,才将其设置为age属性的值。 */ public String getName(){ return name; } public void setName(String name){ this.name=name; } public int getAge(){ return age; } public void setAge(int age){ if(age<0) System.out.println("设置的年龄不合法"); else this.age=age; } /**************** end *****************/ void speak() { System.out.println("我的名字是" + name + ",今年" + age + "岁"); } } public class Task03{ public static void main(String[] args) { Scanner scan = new Scanner(System.in); String name1 = scan.next(); int age1 = scan.nextInt(); /**************** begin *****************/ /* * 创建Student类的实例对象, * 通过调用对象的setName(String n)和setAge(int a)方法 * 来设置实例对象的name属性和age属性值, * 方法的参数值为运行时接收从键盘输入, * 并调用speak()方法。 */ Student s=new Student(); s.setName(name1); s.setAge(age1); s.speak(); /**************** end *****************/ } } > 续上~美妙的周末咩!(\* ̄︶ ̄),今天多吃了几碗饭,哈哈哈哈,嗝!
还没有评论,来说两句吧...