Java实验报告4

一、实验目的:
 1.了解如何使用类及其成员的修饰符,理解类的继承性,掌握方法的继承、重载和覆盖。


二、实验环境:
 Eclipce


三、实验内容:
(一)修饰符
     1.编写源程序KY4_1.java,通过两个类StaticDome、KY4_1来说明类变量和与对象变量,以及类方法和对
       象方法的区别。源代码如下:
       package ch4;


       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 static void 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());
           }
       }
程序出错,对面的实例变量和实例方法不能直接通过类名访问,要使程序能正确运行可删除代码行System.out.println("对象变量y="+StaticDemo.getY());或者将StaticDemo类中的实例变量和实例方法都加上修饰词static使它们成为类变量和类方法,程序正确运行结果截图:
 
Java实验报告4_第1张图片

     (二)方法中参数传递的练习
      1.编写一个程序文件KY4_2.java。程序功能如下:有一个主方法main() 以及一个求平方和的方法int
        square(int x, int y)。square方法计算参数x 和y的平方和,并返回该平方和值。在主方法main
        中定义两个整型变量,并给它们赋一个初值,然后使用这两个变量作为实际参数来调用square方法,
        求出平方和,最后输出平方和。
        程序源代码:
        package ch4;


        public class KY4_2 {
       static int square(int x,int y){
   return (x*x+y*y);
       }


       public static void main(String[] args) {
       // TODO Auto-generated method stub


       int x;
       int y;
       x=3;
       y=4;
       System.out.println(square(x,y));
       }


        }
     程序运行结果截图:
 
Java实验报告4_第2张图片

(三)类的继承性练习
1.编写两个程序文件KY4_3.java和KY4_4.java,实现类的继承。KY4_3定义成员变量xm(姓名),xh(学号),定义方法print()输出姓名和学号。子类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的姓名,学号,学院和系。
        程序源代码:
        KY4_3.java:
        package ch4;


        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); 
            } 
        }
     
        KY4_4.java:
        package ch4;


        public class KY4_4 extends KY4_3{


       String xy;
       String xi;
       public void print(){
       System.out.println(xm+", "+xh+", "+xy+", "+xi);
            }
       public static void main(String[] args) {
       // TODO Auto-generated method stub
       KY4_3 f=new KY4_3();
       KY4_4 s=new KY4_4();
       f.xm="帅零";
       f.xh=12321;
                f.print();
       s.xm="郭娜";
       s.xh=12345;
       s.xy="经济管理学院";
       s.xi="信息管理系";
       s.print();

       }


        }
        程序运行结果截图:
      
Java实验报告4_第3张图片

(四)思考题:说明类的继承和多态都有什么作用?
      答:继承可以减少代码的书写量,实现代码复用,子类可以在已有的基础上进行修改和扩展从而实现   的特定功能;多态性就是指父类的某个方法被其子类重写时,可以各自产生自己的功能行为,多态的作用就是消除类型之间的耦合耦合关系。
四、心得体会:
用static修饰的变量称为类变量,当类中有类变量时,同new运算符创建的多个对象共享这个变量,且可以通过类名直接访问这个变量,用static修饰的方法称为类方法,在类方法被加载到内存时就分配的相应的入口地址,从而类方法可以被类创建的任何对象调用执行,也可以通过类名调用。如果一个子类继承了父类,若他们在一个包中,子类就可以调用父类中不是private的成员变量和方法,同时子类还能在继承的基础上进行扩展,新增自己的变量和方法,也可以重写从父类继承的方法。

你可能感兴趣的:(学习日记)