1.定义一个StudentNN类(NN为学号末两位)
a)属性:姓名、性别、年龄、学号、专业,分别定义为:String name, String gender, int age, String sid, String major, 所有的变量必须为私有(private),major为静态static;
b)无参构造函数,功能:打印提示信息,如:This is constructor;
c)4个有参构造函数:参数分别为(name)、(name, gender)、(name, gender, age)和(name, gender, age, sid),功能:给属性赋值。提示:可在构造函数用this调用另一构造函数;
d)setName、setGender、setAge、setSid和setMajor方法,分别设置对应的属性
e)show函数,输出姓名、性别、年龄、学号和专业信息。
2.定义类的构造代码块
a)为类加入构造代码初始化块,打印提示信息,如:“一个新的学生诞生了”;
3.编写静态代码初始化块
a)打印提示信息,如:“This is static initialization block”;
b)将major值初始设置为“软工”;
4.编写main方法并运行
a)在main方法中创建2个学生对象,可以在构造函数初始化对象,也可以通过调用setter方法设置。其中的一个对象用自己的姓名和学号等信息;
b)调用两个对象的show函数;
c)用setMajor方法将专业值设置为“软件工程”;
d)再次调用两个对象的show函数;
e)编译和运行程序,观察输出结果
class Student01 {
private String name;
private String gender;
private int age;
private String sid;
private static String major;
public static void main(String[] args) {
Student01 s1 = new Student01("小明","男",
20,"1001");
Student01 s2 = new Student01("小花","女",
18,"1002");
s1.show();
s2.show();
Student01.setMajor("软件工程");
s1.show();
s2.show();
}
public Student01() {
System.out.println("This is constructor");
}
public Student01(String name) {
this.name = name;
}
public Student01(String name, String gender) {
this.name = name;
this.gender = gender;
}
public Student01(String name, String gender, int age) {
this.name = name;
this.gender = gender;
this.age = age;
}
public Student01(String name, String gender, int age, String sid) {
this.name = name;
this.gender = gender;
this.age = age;
this.sid = sid;
}
public void setName(String name) {
this.name = name;
}
public void setGender(String gender) {
this.gender = gender;
}
public void setAge(int age) {
this.age = age;
}
public void setSid(String sid) {
this.sid = sid;
}
public static void setMajor(String major) {
Student01.major = major;
}
public void show() {
String str = "Student01{" +
"name='" + name + '\'' +
", gender='" + gender + '\'' +
", age=" + age +
", sid='" + sid + '\'' +
", major='" + Student01.major + '\'' +
'}';
System.out.println(str);
}
{
System.out.println("一个新的学生诞生了");
}
static {
System.out.println("This is static initialization block");
major = "软工";
}
}
结果:
This is static initialization block
一个新的学生诞生了
一个新的学生诞生了
Student01{name='小明', gender='男', age=20, sid='1001', major='软工'}
Student01{name='小花', gender='女', age=18, sid='1002', major='软工'}
Student01{name='小明', gender='男', age=20, sid='1001', major='软件工程'}
Student01{name='小花', gender='女', age=18, sid='1002', major='软件工程'}