一、编程题:
1. 请按照以下要求设计一个Student类,并进行测试。
要求如下:
1)Student类中包含姓名、成绩两个属性。
2)分别给这两个属性定义两个方法,一个方法用于设置值,另一个方法用于获取值。
3)Student类中定义一个无参的构造方法和一个接受两个参数的构造方法,两个参数分别为姓名和成绩属性赋值。
4)在测试类中创建两个Student对象,一个使用无参构造方法,然后调用方法给姓名和成绩赋值,另一个使用有参的构造方法,在构造方法中给姓名和成绩赋值。
(提示:注意成员变量和成员方法的访问权限设置,使用this解决成员变量与局部变量名称冲突的问题)
2. 1) 设计一个类,设计它的一个无参数构造方法,构造方法中打印一条消息。main方法创建这个类的一个对象,观察打印结果。
2) 在练习1)的基础上增加一个重载的构造方法,采用一个String参数,并在构造方法中把这个String消息打印出来。创建这个类的对象,观察打印结果。
3) 以练习2)创建的类为基础上,创建属于它的实例对象的一个数组,但不要实际创建对象并分配到数组里。运行程序时,注意是否打印出来自构建方法调用的初始化消息?为数组中每个变量创建对象,观察打印结果?
二、结果和分析
说明:请截图给出各个程序的运行结果,并做必要的分析。
(1)程序1运行结果
分析:先定义一个无参构造函数和一个有两参数的构造函数,四个get,set函数,然后在main函数里创两个对象,一个调用一个使用无参构造方法,然后调用方法给姓名和成绩赋值,另一个使用有参的构造方法,在构造方法中给姓名和成绩赋值,最后调用get函数输出结果
(2)程序2运行结果
分析: 1) 设计一个Person类,设计它的一个无参数构造方法,构造方法中打印一条消息——无参的构造方法被调用了……。main方法创建这个类的一个对象,输出:无参的构造方法被调用了…
2) 在练习1)的基础上增加一个重载的构造方法,采用一个String参数,并在构造方法中把这个String消息打印出来。创建这个类的对象,输出:sunny
3) 以练习2)创建的类为基础上,创建属于它的实例对象的一个数组,但不要实际创建对象并分配到数组里。运行程序时,没有打印出来自构建方法调用的初始化消息
为数组中每个变量创建对象,打印出来自构建方法调用的初始化消息,输出:无参的构造方法被调用了…
三、源代码
说明:请将各程序的源代码复制粘贴到这里。
(1)程序1源代码
class Student{
private String name; //将name属性私有化
private double grade; //将grade属性私有化
//定义一个无参的构造方法
public Student(){
}
//定义一个有两个参数的构造方法
public Student(String name,double grade){
this.name=name;
this.grade=grade;
}
//下面是公有的getXxx()和setXxx()方法
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public double getGrade(){
return grade;
}
public void setGrade(double grade){
this.grade=grade;
}
}
public class Example1 {
public static void main(String[] args) {
Student stu1=new Student();
stu1.setName("晴晴");
stu1.setGrade(100);
Student stu2=new Student("卢卢",99);
System.out.println(stu1.getName()+"同学考了"+stu1.getGrade()+"分");
System.out.println(stu2.getName()+"同学考了"+stu2.getGrade()+"分");
}
}
(2)程序2源代码
class Person{
//下面是类的构造方法
public Person(){
System.out.println("无参的构造方法被调用了......");
}
public Person(String name){
System.out.println(name);
}
}
public class Example2 {
public static void main(String[] args) {
Person p1=new Person(); //实例化Person函数
Person p2=new Person("Sunny");
Person[]p3=new Person[3];
p3[0]=new Person();
p3[1]=new Person();
p3[2]=new Person();
}
}