JAVA实验4 修饰符与继承性

桂 林 理 工 大 学

实  验  报  告

班级  软件16-1班       学号 3162052051116      姓名  张识虔     同组实验者              

实验名称            修饰符与继承性           日期 2018年06 月15日

一、实验目的:

 

 

 

二、实验环境:

 

 

 

三、实验内容:

 

一)使用修饰符

 

 

3. 编译并运行程序 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 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()); 

 

 无法从类型静态演示中对非静态方法GETY()进行静态引用

把 int y 改成 static int y 并且public int getY() 修改成 publicstatic  int getY()

(二)方法中参数传递的练习

 

1.  编写一个程序文件KY4_2.java。

2.  程序功能如下:有一个主方法main() 以及一个求平方和的方法int square(int x, int y)。square方法计算参数x 和y的平方和,并返回该平方和值。在主方法main中定义两个整型变量,并给它们赋一个初值,然后使用这两个变量作为实际参数来调用square方法,求出平方和,最后输出平方和。

3.  请将程序KY4_2.java的源代码写在实验报告中。

class A{

       publicint square(int x, int y) {

              returnx*x+y*y;

       }

}

public class E {

public static void main(String[] args) {

       Aa=new A();

       a.square(5,5);

       System.out.println("平方和="+a.square(5,5));

 }

}

(三)类的继承性练习

 

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要在同一文件夹(路径)内。

 

 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);

           }

       }

 

public class KY4_4 extends KY4_3 {

   String xy;

   String xi;

   void setdata(String a,String b)              //该方法为姓名和学号赋初始值

    {

       xy =a;

       xi = b;

    }

   public void print()     //输出学院和系

    {

       System.out.println(xm+" "+xh+" "+xy+"  "+xi);

    }

       publicstatic void main(String[] args) {

              KY4_3f = new KY4_3();

              f.setdata("帅零", 12321);

       f.print();

       KY4_4 b =new KY4_4();

       b.setdata("郭娜", 12345);

       b.setdata("经济管理学院", "信息管理系");

       b.print();

       

       }

}

 

思考题

 

说明类的继承和多态都有什么作用

 

继承就是子类继承父类,使子类具有父类的各种属性和方法,好处就是避免多余的代码出现,例如,项目中常常要用到的数据库的开启关闭,就可以单独写一个父类,其他类要用的话可以去继承

 

多态就是一个接口,使用不同的实例去执行不同的操作,好处就是增强程序的可扩展性及可维护性,使代码更简洁

 

四、心得体会:

虽然类 在C++学过 但是还不是经常使用导致忘记  对类的知识淡化了 现在JAVA学习起类来 感觉就是在复习   感觉不同的是 java static 这个关键字比较常用在我们平时的使用当中,static最常用的功能就是修饰类的属性和方法,让他们成为类的成员属性和方法,我们通常将用static修饰的成员称为类成员或者静态成员,这句话挺起来都点奇怪,其实这是相对于对象的属性和方法来说的


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值