1.
① 为矩形定义私有属性:length(长度)和width(宽度)
② 为矩形定义公有方法:若干构造方法、getLength方法(获得矩形的长度)、getWidth方法(获得矩形的宽度)、setLength方法(设置矩形的长度)、setWidth方法(设置矩形的宽度)、getArea方法(求矩形的面积)和toString方法(显示矩形的信息)。
(2)编写测试程序的主类Test1。在main方法中,使用不同的构造方法创建两个MyRectangle对象,数据自拟,并输出显示这两个对象的有关信息。
class Rectangle {
double width=1;
double height=1;
public Rectangle(){}
public Rectangle(double width,double height){}
public void getArea(){
double a=height;
System.out.print(" 面积:"+a);
}
public void getPerimeter(){
double b=2*(width+height);
System.out.println(" 周长:"+b);
}
} class RectangleDemo {
public static void main(String[] args) {
Rectangle r1 = new Rectangle();
Rectangle r2 = new Rectangle();
r1.width =30;
r1.height=50;
r2.width=3.3;
r2.height=40.2;
System.out.print("r1的宽="+r1.width);
System.out.print(" r1的高="+r1.height);
r1.getArea();
r1.getPerimeter();
System.out.print("r2的宽="+r2.width);
System.out.print(" r2的高="+r2.height);
r2.getArea();
r2.getPerimeter();
}
}
2. 学生类的创建和使用
①创建一个学生Student类,成员变量包括:学号、班号、姓名、性别、年龄等,且都是private类型。
②声明一个构造方法,初始化所有成员变量。
③分别声明获得各属性的public类型的成员方法,方法名要求以get开头。
④分别声明修改各属性的public类型的成员方法,方法名要求以set开头。
⑤声明一个public类型的toString()方法,把该类中的所有变量信息组合成一个字符串。
⑥申明统计创建Student对象的个数的私有变量count和得到Student对象的个数的public 方法。
⑦将类Student放在包student中。
⑧在子包student外,创建测试类Student的主类。
在主类中:创建2个Student对象,输出对象的所有变量信息;修改对象的姓名和年龄,输出修改后的姓名和年龄;比较两个Student对象的年龄的大小,输出年龄较大的Student对象。
class Main {
public static void main(String args[]) {
Student std1, std2;
std1 = new Student("202103","202101","张三","男",25);
std2 = new Student("202103","202101","李四","男",20);
System.out.println(std1.ToString());
System.out.println(std2.ToString());
System.out.println("对象个数:" + std2.get_count());
std2.set_Age(24);
std2.set_Name("202102");
String sp;
sp = std1.get_Age()>std2.get_Age()?std1.ToString():std2.ToString();
System.out.println(sp);
}
}
class Student {
private String StuNub,ClassNub,Name,Sex;
private int Age;
public static int count = 0;
public Student(String StuNub,String ClassNub,String Name,String Sex,int Age){
this.StuNub = StuNub;
this.ClassNub = ClassNub;
this.Name = Name;
this.Sex = Sex;
this.Age = Age;
count++;
}
public String get_StuNub() {
return StuNub;
}
public String get_ClassNub() {
return ClassNub;
}
public String get_Name() {
return Name;
}
public String get_Sex() {
return Sex;
}
public int get_Age() {
return Age;
}
public void set_StuNub(String StuNub) {
this.StuNub = StuNub;
}
public void set_ClassNub(String ClassNub) {
this.ClassNub = ClassNub;
}
public void set_Name(String Name) {
this.Name = Name;
}
public void set_Sex(String Sex) {
this.Sex = Sex;
}
public void set_Age(int Age) {
this.Age = Age;
}
public static int get_count() {
return count;
}
public String ToString() {
String s = "学号:"+StuNub +",班级:" + ClassNub + ",姓名:" + Name + ",性别:" + Sex + ",年龄:" + Age ;
return s;
3. 在上题已定义的学生类Student的基础上,以Student类为父类,为学生类派生出一个子类为大学生类(CollegeStudent)。
CollegeStudent 类在学生类上增加一个专业(profession)数据属性;方法上增加获得专业和设置专业两个方法。并对超类中的toString( )方法进行重写,使得CollegeStudent类中的toString( )方法除了显示学生类的信息外,还要显示它的专业属性。
编写测试程序的主类。在主类中创建一个Student对象和CollegeStudent对象,并显示或修改这两个对象的属性值。
class Student {
protected String StuNub,ClassNub,Name,Sex;
protected int Age;
public static int count = 0;
public Student(String StuNub,String ClassNub,String Name,String Sex,int Age){
this.StuNub = StuNub;
this.ClassNub = ClassNub;
this.Name = Name;
this.Sex = Sex;
this.Age = Age;
count++;
}
public String get_StuNub() {
return StuNub;
}
public String get_ClassNub() {
return ClassNub;
}
public String get_Name() {
return Name;
}
public String get_Sex() {
return Sex;
}
public int get_Age() {
return Age;
}
public void set_StuNub(String StuNub) {
this.StuNub = StuNub;
}
public void set_ClassNub(String ClassNub) {
this.ClassNub = ClassNub;
}
public void set_Name(String Name) {
this.Name = Name;
}
public void set_Sex(String Sex) {
this.Sex = Sex;
}
public void set_Age(int Age) {
this.Age = Age;
}
public static int get_count() {
return count;
}
public String toString() {
String s = "学号:"+StuNub +",班级:" + ClassNub + ",姓名:" + Name + ",性别:" + Sex + ",年龄:" + Age ;
return s;
}
}
class Main {
public static void main(String args[]) {
Student std1 = new Student("01", "01", "张三", "男", 25);
CollegeStudent std2 = new CollegeStudent("02", "02", "李四", "男", 24, "计科");
System.out.println("Student对象:\n"+std1.toString());
System.out.println("CollegeStudent对象:\n"+std2.toString());
std1.set_Age(22);
std2.setProfession("计算机科学与技术");
System.out.println("信息修改以后为:");
System.out.println("Student对象:\n"+std1.toString());
System.out.println("CollegeStudent对象:\n"+std2.toString());
}
}
class CollegeStudent extends Student{
private String profession;
public CollegeStudent(String StuNub, String ClassNub, String Name, String Sex, int Age, String profession) {
super(StuNub, ClassNub, Name, Sex, Age);
this.profession = profession;
}
public void setProfession(String profession) {
this.profession = profession;
}
public String getProfession() {
return this.profession;
}
public String toString () {
return "学号:"+StuNub +",班级:" + ClassNub + ",姓名:" + Name + ",性别:" + Sex + ",年龄:" + Age +",专业:" + profession;
}