第四次实验:修饰符与继承性

本文是一篇关于Java编程的实验报告,涵盖了类的修饰符使用,如public、private等,通过StaticDemo和KY4_1类展示了静态变量和方法的区别。此外,介绍了方法中参数传递的概念,编写了计算平方和的程序KY4_2.java。最后,探讨了类的继承性,创建了KY4_3和KY4_4类,展示了如何重写方法并添加新成员变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、实验目的:

 

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

 

二、实验要求

1.   编写如何使用类及其成员的修饰符的程序。

2.   编写如何通过传递参数来调用方法的程序。

3.   编写体现类的继承性(成员变量、成员方法的继承)的程序。

 

 

三、实验内容:

(写出主要的内容)

(一)使用修饰符

有时需要公开一些变量和方法,有时需要禁止其他对象使用变量和方法,这时可以使用修饰符来实现这个目的。常用的修饰符有:public,private,protected,package,static,final,abstract等。

1.  程序功能:通过两个类 StaticDemo、KY4_1 来说明类变量与对象变量,以及类方法与对象方法的区别。

2.  编写源程序 KY4_1.java,程序源代码如下。

class StaticDemo {

static int x;

int y;

public static int getX(){

return x;

}

public static voidsetX(int newX) {

x = newX;

}

public int getY() {

return y;

}

public void setY(intnewY) {

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

}

}

 

3. 编译并运行程序 KY4_1.java,看看该程序是否有错?如果有错请在实验报告中指出出错的地方,出错的原因,并给出修改意见以及程序正确运行的结果。

classStaticDemo {

       static int x;

       static int y;//int前加上static

       public static int getX() {

       return x;

       }

       public void setX(int newX) {

       x = newX;

       }

       public static int getY() {  //int前加上static

       return y;

       }

       public void setY(int newY) {

       y = newY;

       }

}

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

              System.out.println("类变量a.x="+a.getX());

              System.out.println("对象变量a.y="+a.getY());

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

 

       }

 

}

 

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

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

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

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

程序代码以及结果:

   class squ{

       public static int aquare(int x,int y){

              int V;

              V=x*x+y*y;

              return V;

       }

}

publicclass KY4_2 {

       public static void main(String[] args) {

              int a=10;

              int b=3;

              squ S=new squ();

              //S.aquare(a, b);

              System.out.println("平方和:"+S.aquare(a, b));

 

       }

 

}

运行结果:109

 

(三)类的继承性练习

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

package多态类;

class KY4_3 {

    protected String xm;                    //姓名

    protectedintxh;                        //学号

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

    {

        xm =m;

        xh = h;

    }

    publicvoid print()          //输出学生的姓名和学号

    {

        System.out.println(xm+", "+xh);

    }

}

 

class KY4_4 extends KY4_3{

    protected String xy;//学院

    protected String xi;//

    void setdata(String m,inth,String o,String p)              //该方法为姓名和学号赋初始值

    {

        xm =m;

        xh = h;

        xy =o;

        xi = p;

    }

    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.setdata(  "帅零", 12321,"经济管理学院", "信息管理系");

    s.print();

   

}

}

运行结果:

帅零, 12321

帅零, 12321,经济管理学院,信息管理系

 

 

四、思考题

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

    继承就是子类继承父类,使子类具有父类的各种属性和方法,好处就是避免多余的代码出现,例如,项目中常常要用到的数据库的开启关闭,就可以单独写一个父类,其他类要用的话可以去继承。
    多态就是一个接口,使用不同的实例去执行不同的操作,好处就是增强程序的可扩展性及可维护性,使代码更简洁

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值