欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java基础语法(类的封装)

程序员文章站 2022-03-20 23:00:16
类的封装任务描述:编写一个学生类,并根据要求对学生类进行封装练习目标1.了解为什么要对类进行封装;2. 掌握如何实现类的封装;需求分析对类进行封装,防止外界对类中的成员变量随意访问。为了掌握类的封装,本练习将使用private关键字对学生类的成员变量name和age进行私有化,同时分别提供一个setName(String n)和setAge(int a)**方法用于外界的访问,其中setAge(int a)中需要对age进行判断。设计思路(实现原理)1)对Student类进行...

类的封装

任务描述:编写一个学生类,并根据要求对学生类进行封装

练习目标
1.了解为什么要对类进行封装;
2. 掌握如何实现类的封装;

需求分析
对类进行封装,防止外界对类中的成员变量随意访问。
为了掌握类的封装,本练习将使用private关键字对学生类的成员变量nameage进行私有化,同时分别提供一个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