Java基础语法(类的封装)
类的封装
任务描述:编写一个学生类,并根据要求对学生类进行封装
练习目标
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 *****************/
}
}
续上~美妙的周末咩!(* ̄︶ ̄),今天多吃了几碗饭,哈哈哈哈,嗝!
本文地址:https://blog.csdn.net/qq_45823118/article/details/110240403
上一篇: 虚拟人经济,与二次元无瓜
推荐阅读
-
Android编程使用光线传感器获取光线强弱的方法【LightSensorManager封装类】
-
java 微信开发的工具类WeChatUtils
-
Java学习笔记(5)--- Number类和Math 类,String类的应用,Java数组入门
-
java的基本框架是什么(java基础知识点)
-
PHP基于面向对象封装的分页类示例
-
java基础--提示对话框的使用
-
Android动画工具类的封装实战记录
-
PHP封装的简单连接MongoDB类示例
-
从零开始搭建前后端分离的NetCore2.2(EF Core CodeFirst+Autofac)+Vue的项目框架之十数据库基础方法的封装
-
VBS、ASP代码语法加亮显示的类