《Java语言程序设计》
上机实验报告
(5)
实验名称: 实验五 Java面向对象编程 (2)
班 级: 软件工程 101 姓 名: 周 顺 权 学 号: 110029026 上机时间:
指导教师: 王 华
Page 1 of 8
一、
实验内容或题目:
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; }
Page 2 of 8
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(\ System.out.println(\ } }
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=\ } } class Power{ int x=10, y=10; void ff2(int passX, int passY) { System.out.println(\初始时 x=\ x=passX*passX; y=passY*passY; System.out.println(\方法调用中 x=\
Page 3 of 8
} }
3(1):
class Pet{
protected String name; public Pet(String n){ name = n; }
public String getName(){ return name; }
public String move(){ return \}
public String speak(){ return \}
public String toString(){ return \} }
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(\Dog myDog = new Dog(\
System.out.println(myPet.toString() + \ myPet.speak() +\ myPet.getName() + \
System.out.println(myDog.toString() + \
myDog.speak() +\} }
3(2),3(3),3(4),3(5)(已集合在一起):
class Pet{
Page 4 of 8
protected String name; public Pet(String n){ name = n; }
public String getName(){ return name; }
public String move(){ return \}
public String speak(){ return \}
public String toString(){ return \} }
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 \ } }
class JLab0501{
public static void main(String[] args){ Pet myPet = new Pet(\Dog myDog = new Dog(\Dog dog=new Dog(“snoopy”); dog.setWeight(10);
System.out.println(myPet.toString() + \ myPet.speak() +\ myPet.getName() + \
System.out.println(myDog.toString() + \
myDog.speak() +\
Page 5 of 8