Java实验报告5

实 验 报 告(五)

 

第二篇:java实验报告5

Java语言程序设计》

上机实验报告

                                     5

           实验名称:实验五Java面向对象编程 (2)

班    级:  软件工程  101

姓    名:  周  顺 权   

学    号:  110029026     

上机时间:                

               指导教师:  王    华     

 

一、             实验内容或题目:

1.方法中参数传递---传值调用

编写一个传值调用的程序。

2.方法中参数传递---调用对象方法。

编写一个调用对象方法的程序。

3.类的继承。

(1)首先预测下列程序的运行结果,然后编译、执行以验证你的预测:

 (2) 修改Dog类的构造函数,使之可以初始化Dog类中的weight值。

(3) 在Dog类中添加方法getWeight以获得其weight值

(4) 修改类JLab0501使用新的构造函数创建一个名为“snoopy”,重为10的Dog类的对象,并利用其方法输出包括重量在内的各项值。

(5) 要使Dog类对象的speak()方法返回值为“Woof Woof”,应如何做?修改(1)中程序,并验证你的做法。

4.方法的重载。

(1)      首先预测下列程序的运行结果,然后编译、执行以验证你的预测:

(2)      在类JLab0502中添加下列方法:

二、             实验目的与要求:

1. 程序首先给整型变量x 和y 赋一个初值10,然后使用传值调用方式调用方法ff1对x 和y 做乘方及输出x 和y 的乘方值。

2. 通过调用对象的方法在方法调用后修改了成员变量的值。

4.(2) 编译该程序,观察报错信息,并思考原因。

三、             实验步骤与源程序:

(1)     实验步骤

a) 编辑源文件

b) 编译

c) 运行

(2) 源代码

1:

package test5;

class XY{

       int x,y;

       void setX(int a){

              x=a;

       }

       void setY(int b){

              y=b;

       }

       int getX(){

              return x;

       }

       int getY(){

              return y;

       }

       void ff1(){

              x=getX()*getX();

              y=getY()*getY();

              System.out.println("x^2="+x);

              System.out.println("y^2="+y);

       }

}

public class Involution {

       public static void main(String args[]){

              XY xy=new XY();

              xy.setX(10);

              xy.setY(10);

              xy.ff1();

       }

}

2:

package test5;

public class KY3_6 {

       public static void main(String args[]) {

       Power p=new Power();

       p.ff2(10,10);

       System.out.println("方法调用后 x="+p.x+", y="+p.y);

       }

       }

       class Power{

       int x=10, y=10;

       void ff2(int passX, int passY) {

       System.out.println("初始时 x="+x+", y="+y);

       x=passX*passX;

       y=passY*passY;

       System.out.println("方法调用中 x="+x+", y="+y);

       }

}

3(1):

class Pet{

protected String name;

public Pet(String n){

name = n;

}

public String getName(){

return name;

}

public String move(){

return "run";

}

public String speak(){

return "";

}

public String toString(){

return "My pet " + name;

}

}

class Dog extends Pet{

protected int weight;

public Dog(String s){

super(s);

                            }

                }

class JLab0501{

public static void main(String[] args){

Pet myPet = new Pet("George");

Dog myDog = new Dog("Spot");

System.out.println(myPet.toString() + "\n" + "Speak: " +

myPet.speak() +"\n" + myPet.move() + " " +

myPet.getName() + "\n");

System.out.println(myDog.toString() + "\n" + "Speak: " +

myDog.speak() +"\n" + myDog.move() + " " +myDog.getName() + "\n");

}

}

3(2)3(3)3(4)35)(已集合在一起):

class Pet{

protected String name;

public Pet(String n){

name = n;

}

public String getName(){

return name;

}

public String move(){

return "run";

}

public String speak(){

return "";

}

public String toString(){

return "My pet " + name;

}

}

class Dog extends Pet{

protected int weight=0;

void setWeight(int a){

                       weight=a;

               }

               int getWeight(){

                       return weight;

               }

public Dog(String s){

super(s);// super是指向父类的指针可以通过该指针调用父类//的函数

                            }

       public String speak(){

              return "woof woof";

       }

                }

class JLab0501{

public static void main(String[] args){

Pet myPet = new Pet("George");

Dog myDog = new Dog("Spot");

Dog dog=new Dog(“snoopy”);

dog.setWeight(10);

System.out.println(myPet.toString() + "\n" + "Speak: " +

myPet.speak() +"\n" + myPet.move() + " " +

myPet.getName() + "\n");

System.out.println(myDog.toString() + "\n" + "Speak: " +

myDog.speak() +"\n" + myDog.move() + " " +myDog.getName() + "\n");

         System.out.println(dog.toString()+"\n"+"Speak:"+dog.speak()+"\n"+dog.move()+" "+dog.getName()+"\n"+"Weight:"+dog.getWeight()+"\n");

}

}

4(1):

public class JLab0502 {

    public static void test() {

        System.out.println("test() invoked");

    }

    public static int test(int i) {

        System.out.println("test(" + i + ") invoked");

        return i;

    }

    public static String test(String s) {

        System.out.println("test(" + s + ") invoked");

        return s;

    }

    public static void test(String s, int i) {

        System.out.println("test(" + s + ", " + i + ") invoked");

    }

    public static void test(int i, String s) {

        System.out.println("test(" + i + ", " + s + ") invoked");

    }

    public static void main(String[] args) {

        test();

        test(100);

        test("test");

        test("test",100);

        test(100,"test");

    }

}

4(2):添加方法:

public static int test(int j) {

        System.out.println("test(" + j + ") invoked");

        return j;

}

四、             测试数据与实验结果

1:

2:

3(1):

猜测:My pet George

      Speak:

      run George

     

      My pet Spot

      Speak:

      run Spot

结果截图:

3(2)3(3)3(4)35)(已集合在一起):

4(1):

猜想:

test() invoked

test(100) invoked

test(test) invoked

test(test,100) invoked

test(100,test) invoked

截图结果:

4(2):重载必须保证参数不同

相关推荐