Java 实验报告 了解如何使用类及其成员的修饰符,理解类的继承性,掌握方法的继承、重载和覆盖 | 您所在的位置:网站首页 › 方法的继承和覆盖的区别 › Java 实验报告 了解如何使用类及其成员的修饰符,理解类的继承性,掌握方法的继承、重载和覆盖 |
班级 软件16-2班 学号 3162052051734 姓名 梁振宇 同组实验者 实验名称 Java语言基础练习 日期 2018年 05 月31 日 一、实验目的: 了解如何使用类及其成员的修饰符,理解类的继承性,掌握方法的继承、重载和覆盖。 二、实验环境: Eclipse 三、实验内容: (一) 使用修饰符 有时需要公开一些变量和方法,有时需要禁止其他对象使用变量和方法,这时可以使用修饰符来实现这个目的。常用的修饰符有:public,private,protected,package,static,final,abstract等。 程序功能:通过两个类 StaticDemo、KY4_1 来说明类变量与对象变量,以及类方法与对象方法的区别。 编写源程序 KY4_1.java,程序源代码如下。 class StaticDemo { static int x; int y; public static int getX() { return x; } public static void setX(int newX) { x = newX; } public int getY() { return y; } public void setY(int newY) { y = newY; } }
public class KY4_1 { public staticvoid main(String[] args) { System.out.println("类变量x="+StaticDemo.getX()); System.out.println("对象变量y="+StaticDemo.getY()); StaticDemo a=new StaticDemo(); StaticDemo b=new StaticDemo(); a.setX(1); a.setY(2); b.setX(3); b.setY(4); System.out.println("类变量a.x="+a.getX()); System.out.println("对象变量a.y="+a.getY()); System.out.println("类变量b.x="+b.getX()); System.out.println("对象变量b.y="+b.getY()); } }
实验要求: 编译并运行程序 KY4_1.java,看看该程序是否有错?如果有错请在实验报告中指出出错的地方,出错的原因,并给出修改意见以及程序正确运行的结果。 在代码的第二十三行出现了错误,应为getY方法不是静态方法无法通过类名直接调用,所以会出现错误,将Y修改为静态成员,getY修改为静态方法即可。 运行结果如下: ( (二)方法中参数传递的练习 1. 编写一个程序文件KY4_2.java。 2. 程序功能如下:有一个主方法main() 以及一个求平方和的方法int square(int x, int y)。square方法计算参数x 和y的平方和,并返回该平方和值。在主方法main中定义两个整型变量,并给它们赋一个初值,然后使用这两个变量作为实际参数来调用square方法,求出平方和,最后输出平方和。 3. 请将程序KY4_2.java的源代码写在实验报告中。 代码如下: package 实验测试;
public classKY4_2{ static int square(int x, int y) { int sum; sum = x*x + y*y; return sum; } public static void main(String args[]) { int Sum; int x,y; x = 5; y = 6; Sum=KY4_2.square(x,y); System.out.println("平方和为:"+Sum); } }
(三)类的继承性练习 1. 进一步理解继承的含义 新类可从现有的类中产生,并保留现有类的成员变量和方法并可根据需要对它们加以修改。新类 还可添加新的变量和方法。这种现象就称为类的继承。 当建立一个新类时,不必写出全部成员变量和成员方法。只要简单地声明这个类是从一个已定义的类继承下来的,就可以引用被继承类的全部成员。被继承的类称为父类或超类(superclass),这个新类称为子类。 Java 提供了一个庞大的类库让开发人员继承和使用。设计这些类是出于公用的目的,因此,很少有某个类恰恰满足你的需要。你必须设计自己的能处理实际问题的类,如果你设计的这个类仅仅实现了继承,则和父类毫无两样。所以,通常要对子类进行扩展,即添加新的属性和方法。这使得子类要比父类大,但更具特殊性,代表着一组更具体的对象。继承的意义就在于此。
2.编写两个程序文件KY4_3.java和KY4_4.java,实现类的继承。 3.KY4_3.java的代码如下: public class KY4_3 { protected String xm; //姓名 protected int xh; //学号 void setdata(String m,int h) //该方法为姓名和学号赋初始值 { xm =m; xh = h; } public void print() //输出学生的姓名和学号 { System.out.println(xm+","+xh); } } 4.编译 KY4_3.java,产生类文件 KY4_3.class。注意:暂时不运行程序KY4_3.class。 5.编写一个程序文件KY4_4.java。程序功能如下:子类KY4_4继承父类 KY4_3,其不仅具有父类的成员变量 xm(姓名)、xh(学号),还定义了新的成员变量 xy(学院)、xi(系)。在子类KY4_4中重写了父类的方法print(),在该方法中不仅输出学生的姓名和学号,而且还输出学生的学院和系。另外,在子类KY4_4中还定义了一个主方法main。首先,在主方法中创建一个父类 KY4_3的对象f,设置f的姓名为"帅零",学号为"12321",并且调用print()方法输出对象f的姓名和学号。接着,在主方法中创建一个子类 KY4_4的对象s,设置s的姓名为"郭娜",学号为"12345",学院为"经济管理学院",系为"信息管理系",并且调用print()方法输出对象s的姓名,学号,学院和系。 6.编译并运行程序KY4_4.java。请将KY4_4的源程序以及运行结果写在实验报告中。 注意:父类 KY4_3 与子类 KY4_4要在同一文件夹(路径)内。 代码如下: KY4_3: package实验测试;
publicclass KY4_3 { protected String xm; //姓名 protectedintxh; //学号 void setdata(String m,inth) //该方法为姓名和学号赋初始值 { xm =m; xh = h; } publicvoid print() //输出学生的姓名和学号 { System.out.println(xm+", "+xh); } } KY4_4: package实验测试;
publicclass KY4_4 extends KY4_3 { String xy; //学院 String xi; //院系 publicvoid print() //输出学生的姓名和学号 { System.out.println(xm+", "+xh+", "+xy+", "+xi); } publicstaticvoid main(String args[]) { KY4_3 f = new KY4_3(); f.setdata("帅零",12321); f.print(); KY4_4 s = new KY4_4(); s.xy = "经济管理学院"; s.xi = "信息管理系"; s.setdata("郭娜", 12345); s.print(); } }
(四)类的继承性练习 1. 说明类的继承和多态都有什么作用? 继承就是子类继承父类,使子类具有父类的各种属性和方法,好处就是避免多余的代码出现,例如,项目中常常要用到的数据库的开启关闭,就可以单独写一个父类,其他类要用的话可以去继承。 多态就是一个接口,使用不同的实例去执行不同的操作,好处就是增强程序的可扩展性及可维护性,使代码更简洁
四、心得体会: 在学习的过程中要保持一颗好奇心,不能就只是为了完成老师的实验任务而学习,可以自己多拓展一点,对我们的学习很有帮助。 |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |