题目:设计一个简单的学生管理系统
描述:
设计一个名为`Student`的类,用以模拟学生信息管理系统中的学生对象。这个类应该包括以下几个部分:
1. 私有属性:`name` (姓名,类型为`String`),`age` (年龄,类型为`int`),和`grade` (年级,类型为`String`)。
2. 构造方法:
- 一个无参数的构造方法(默认构造方法)。
- 一个带有所有属性作为参数的构造方法。
3. 封装:为每个属性提供`getter`和`setter`方法。确保`age`属性在设置时,只能设置为正数。
4. this关键字的使用:在构造方法和`setter`方法中,使用`this`关键字来区分实例变量和参数变量。
任务:
1. 编写`Student`类,按照上述要求实现所有的功能。
2. 在`main`方法中创建至少两个`Student`对象:一个使用无参数的构造方法创建,并通过`setter`方法设置所有的属性;另一个使用带参数的构造方法直接设置所有的属性。
3. 打印出这两个对象的所有属性,以验证封装和构造方法是否正确实现。
提示:记得检查`age`属性的值是否合理(大于0)
import java.util.Scanner;
public class domo_1 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
Student std = new Student();
System.out.println();
System.out.println("有参构造方法:");
Student std_1 = new Student("lihua",20,"da1");
System.out.println();
System.out.println("请输入年龄:");
std.setAge(sc.nextInt());
if(std.getAge()<0){
System.out.println("输入错误,请重新输入!");
}
System.out.println("请输入姓名:");
std.setName(sc.next());
System.out.println("请输入年级:");
std.setGrade(sc.next());
System.out.println("姓名:"+std.getName()+"年龄:"+std.getAge()+"年级:"+std.getGrade());
}
}
class Student{
private String name;
private int age;
private String grade;
public Student(){
System.out.println("调用无参数的构造方法");
}
public Student(String name,int age,String grade)
{
this.name = name;
this.age = age;
this.grade = grade;
if(this.age<0){
System.out.println("输入错误,请重新输入!");
}
System.out.println("姓名:"+this.name+"年龄:"+this.age+"年级:"+this.grade);
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
}