实验四构造方法与方法重载

 时间:2015-05-20  贡献者:hksjie

导读:实验四构造方法与方法重载.doc,实验四 构造方法与方法重载专业班级 实验学时 实验时间 实验成绩 年 一、实验目的:理解构造方法的作用,掌握构造方法继承的原则以及向方法传递对象的方法。2学 号 实验类型

实验四构造方法与方法重载.doc
实验四构造方法与方法重载.doc

实验四 构造方法与方法重载专业班级 实验学时 实验时间 实验成绩 年 一、实验目的:理解构造方法的作用,掌握构造方法继承的原则以及向方法传递对象的方法。

2学 号 实验类型 指导老师验证性姓 名 实验地点月日二、实验内容:1.参考教材 P118,示例程序 C5_14,掌握构造方法的重载。

package ch5; class Addclass { public int x=0,y=0,z=0; //以下是多个同名不同参数的构造方法 Addclass(int x) //可重载的构造方法 1 { this.x=x; } Addclass(int x,int y) //可重载的构造方法 2 { this(x); //当前构造方法调用可重载的构造方法 1 this.y=y; } Addclass(int x,int y,int z) //可重载的构造方法 3 { this(x,y); //当前构造方法调用可重载的构造方法 2 this.z=z; } public int add( ) { return x+y+z;} } public class C5_14 { public static void main(String[ ] args) { Addclass p1=new Addclass(2,3,5); Addclass p2=new Addclass(10,20); Addclass p3=new Addclass(1); System.out.println("x+y+z="+p1.add( )); System.out.println("x+y="+p2.add( )); System.out.println("x="+p3.add( )); } }

2.参考教材 P119,示例程序 C5_15,掌握构造方法继承的方法。

package ch5; class Addclass2 { public int x=0,y=0,z=0; Addclass2(int x) //父类可重载的构造方法 1 { this.x=x; } Addclass2(int x,int y) //父类可重载的构造方法 2 { this.x=x; this.y=y; } Addclass2(int x,int y,int z) //父类可重载的构造方法 3 { this.x=x; this.y=y; this.z=z; } public int add( ) { return x+y+z;} } public class C5_15 extends Addclass2 { int a=0,b=0,c=0; C5_15(int x) //子类可重载的构造方法 1 { super(x); a=x+7; } C5_15(int x,int y) //子类可重载的构造方法 2 { super(x,y); a=x+5; b=y+5; } C5_15(int x,int y,int z) //子类可重载的构造方法 3 { super(x,y,z); a=x+4; b=y+4; c=z+4; } @Override public int add( ) { System.out.println("super: x+y+z="+super.add( )); return a+b+c; } public static void main(String[ ] args) { C5_15 p1=new C5_15(2,3,5); C5_15 p2=new C5_15(10,20); C5_15 p3=new C5_15(1); System.out.println("a+b+c="+p1.add( )); System.out.println("a+b="+p2.add( )); System.out.println("a="+p3.add( )); } } 3.参考教材 P121,示例程序 C5_16,掌握向方法传递对象的方法。

package ch5;

import java.applet.Applet; import java.awt.Graphics; class Student1 { public String Name; public int age=16; public int score=0; public void ShowStudent(Graphics g,int x,int y) { g.drawString("Name:"+Name,x,y); g.drawString("age:"+age,x,y+20); g.drawString("score:"+score,x,y+40); } } public class C5_16 extends Applet { public void studentAttributes(Student1 s,String Name, int age, int score) { s.Name=Name; s.age=age; s.score=score; } @Override public void paint(Graphics g) { Student1 st1=new Student1( ); //创建 st1 的对象 Student1 st2=new Student1( ); //创建 st2 的对象 studentAttributes(st1,"zhang",23,81); //对象 st1 作为实参 studentAttributes(st2,"li",24,90); //对象 st2 作为实参 st1.ShowStudent(g,25,25); //执行此方法可发现 st1 的对象将新值带回 st2.ShowStudent(g,25,120);//再次执行此方法可发现 st2 的对象将新值带回 } }四、实验步骤与结果:C5_15

C5_16五、总结通过本次实验,我了解了构造方法的名字必须与类名同名,大小写也必须完全一致,构 造方法没有返回值类型,一个类的构造方法,可以有多个,主要靠参数区别。

方法重载必须 在同一个类,方法名相同,方法参数个数或参数类型(或参数顺序)不同,方法重载与访问 权限修饰符和方法返回值无关。

在实验的过程中意识到自己需要加强对课本知识的理解, 并 勤于操作,提高自己的编程水平。