实 验 报 告(五)
《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),3(5)(已集合在一起):
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),3(5)(已集合在一起):
4(1):
猜想:
test() invoked
test(100) invoked
test(test) invoked
test(test,100) invoked
test(100,test) invoked
截图结果:
4(2):重载必须保证参数不同
河南省高等教育自学考试实验报告册计算机及应用专业(本科段)《JAVA》姓名所属地市实验地点实验日期实验总成绩指导教师签名实验单位(…
五子棋JAVA实验报告一实验目的和要求1能够用编程语言实现一个简单的五子棋程序2在实际系统中使用实现人工智能的相关算法3进一步加深…
信息工程学院Java程序设计实习报告JAVA图形用户界面实验六Java图形用户界面1实验目的1掌握图形用户界面基本组件2了解如何使…
北京联合大学信息学院“面向对象程序设计”课程上机实验报告题目:JAVA上机实验心得体会姓名(学号):专业:计算机科学与技术编制时间…
Java语言程序设计实验报告实验序号3一实验目的及要求1进一步熟练Java语法和常用方法的使用2进一步熟练Java程序结构3进一步…
北京联合大学信息学院“面向对象程序设计”课程上机实验报告题目:JAVA上机实验心得体会姓名(学号):专业:计算机科学与技术编制时间…
Homework3实验报告一实验目的与要求1掌握Java中类和接口的基本知识2继承的基本知识3集合的基本操作二实验内容1PIMCo…
浙江理工大学Java程序设计实验报告20xx20xx学年第二学期学院班级姓名学号任课教师信息学院11数字媒体技术2周咪咪20xx3…
JAVE实验报告学号姓名班级指导教师129074401李阳网124柯栋梁安徽工业大学计算机学院20xx年1月实验一利用JAVA反射…
Java课程设计报告学号姓名班级指导教师129074068叶玉虎计122班柯栋梁安徽工业大学计算机学院20xx年12月实验一利用J…
石家庄学院习报告王荣传20xx0502027数学与信息科学系信息与计算科学专业本科一班崔永刚讲师姓名:学号:院系:专业:班级:指导…