Java实验2 类的封装性和继承性设计实验

一、 实验目的

理解面向对象封装性、继承性和多态性的基本概念,掌握声明类、封装类、继承类以及运行时多态性的实现方法。

二、实验内容

  1. 请按照以下要求设计一个Student类,并进行测试。 要求如下: 1)Student类中包含姓名、成绩两个属性。
    2)分别给这两个属性定义两个方法,一个方法用于设置值,另一个方法用于获取值。
    3)Student类中定义一个无参的构造方法和一个接受两个参数的构造方法,两个参数分别为姓名和成绩属性赋值。
    4)在测试类中创建两个Student对象,一个使用无参构造方法,然后调用方法给姓名和成绩赋值,另一个使用有参的构造方法,在构造方法中给姓名和成绩赋值。
    (提示:注意成员变量和成员方法的访问权限设置,使用this解决成员变量与局部变量名称冲突的问题)
package cn.edu.dgut.Exam01;

public class Exam01 {
    public static void main(String[] args) {
        Student stu1=new Student();
        Student stu2=new Student("小颖",96);
        stu1.setName("韩强");
        stu1.setGrade(98);
        stu1.getGrade();
        stu2.getGrade();
        Student p2=new Student("张三");
    }
}
package cn.edu.dgut.Exam01;

public class Student {
    private String name;
    private double grade;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public double getGrade() {
        System.out.println(name + "的成绩是" + grade);
        return grade;
    }
    public void setGrade(double grade) {
        if (grade < 0) System.out.println("输入的成绩不可为负数");
        else this.grade = grade;
    }
    public Student() {
    }
    public Student(String name, double grade) {
        this.name = name;
        this.grade = grade;
    }

    public Student(String name) {
        System.out.println(name);
    }
}
  1. (1) 设计一个类,设计它的一个无参数构造方法,构造方法中打印一条消息。main方法创建这个类的一个对象,观察打印结果。
    (2)在练习1)的基础上增加一个重载的构造方法,采用一个String参数,并在构造方法中把这个String消息打印出来。创建这个类的对象,观察打印结果。
    (3) 以练习2)创建的类为基础上,创建属于它的实例对象的一个数组,但不要实际创建对象并分配到数组里。运行程序时,注意是否打印出来自构建方法调用的初始化消息?为数组中每个变量创建对象,观察打印结果?
package cn.edu.dgut.Exam02;

import cn.edu.dgut.Exam01.Student;

public class Demo1 {
    public Demo1(){
        System.out.println("无参的构造方法被调用了!");
    }

    public static void main(String[] args) {
        Demo1 p1=new Demo1();
        Demo1[] p=new Demo1[3];
        p[0]=new Demo1();
        p[1]=new Demo1();
        p[2]=new Demo1();
    }
}
  1. 请按照以下要求设计一个Outer类。 要求如下:
    1)定义一个外部类Outer,并在该类中定义一个静态内部类Inner。
    2)在内部类中定义一个静态变量staticField和一个静态staticMethod(),并将该变量的值设置为"静态内部类的静态变量",该方法中输出"静态内部类的静态方法"。
    3)定义一个测试类,在main()方法中输出staticField的值,并且调用静态方法staticMethod()。
package cn.edu.dgut.Exam03;

public class Outer {
   static class Inner{
       static String Field="静态内部类的静态变量";
       static void Method(){
           System.out.println("静态内部类的静态方法");
       }
   }
}
package cn.edu.dgut.Exam03;

public class test {
    public static void main(String[] args) {
        System.out.println(Outer.Inner.Field);
        Outer.Inner.Method();
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值