JAVA实验二(南邮)

1. (1)定义一个类MyRectangle代表矩形:

① 为矩形定义私有属性: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;
    }

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值