资源预览内容
第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
第9页 / 共10页
第10页 / 共10页
亲,该文档总共10页全部预览完了,如果喜欢就下载吧!
资源描述
卷面向对象程序设计实验报告学号:4100118姓名:邢启晖提交日期: 2012-10-13成 绩:东北大学秦皇岛分校 -实验一类与对象一、实验目的1 .掌握类的声明。2. 掌握对象的创建。3. 掌握方法的定义和调用。4. 掌握构造函数的使用。二、实验内容1. 编程创建一个Box类,在其中定义三个变量表示一个立方体的长、宽和 高,再定义一个方法setDem。对这三个变量进行初始化,然后定义一个方法求 立方体的体积。创建一个对象,求给定尺寸的立方体的体积。代码:package shiyanl;public class Main public static void main(String args) Box box=new Box();box.setDemo(122,132, 142);System.out.print(立方体的体积:);System.out.println(box.getArea();class Boxint length;int width;int heigth;Box()void setDemo(int length,int width,int heigth) this.length=length;this.width=width;this.heigth=heigth;float getArea()return length*width*heigth;2. 将上题的方法setDemo改用构造函数实现初始化。代码:package shiyan1;public class Main public static void main(String args)Box box=new Box(123,133,143);System.out.println(box.getArea();class Boxint length;int width;int heigth;Box(int length,int width,int heigth) this.length=length;this.width=width;this.heigth=heigth;float getArea() return length*width*heigth;三、思考题1. 一个方法或一个块内定义的变量是否可以在方法外或块外使用?这种变 量称为什么?方法的形式参数是否可以在方法之外使用?答:不可以。局部变量。方法的形式参数不可以在方法之外使用。2. 为什么说构造函数是一种特殊的方法?特殊在哪里?构造函数什么时 候执行?被谁调用?繇Java面向对象程序设计实验报告I答:构造函数又称构造方法。它的特殊性在于,与普通方法不同,它的名字与 类名相同,不返回结果,也不加void返回值,程序不能显示调用构造函数。构造函数的作用是初始化对象,即在创建对象时被系统调用。3. 编程创建一个Point类,在其中定义两个变量表示一个点的坐标值,再 定义构造函数初始化为坐标原点,然后定义一个方法实现点的移动,再定义一 个方法打印当前点的坐标。并创建一个对象验证。package shiyanl;public class Mainpublic static void main(String args) Point point=new Point();point.move(50, 50); point.print();class Point int x,y; Point() this.x=0; this.y=0;void move(int x,int y) this.x=x;this.y=y;void print()System.out.println(The location of the point is: x- +x+ ,y- +y+ .);4. 定义一个类实现银行帐户的概念,包括的变量有“帐号”和“存款余额”, 包括的方法有“存款”、“取款”和“查询余额”。定义主类,创建帐户类的 对象,并完成相应操作。public class Main public static void main(String args)BankAccount bankAccount=new BankAccount(123,1000);bankAccount.saveMoney(2000);System.out.println(Aftersaving2000$,youhave+bankAccount.checkBalance();bankAccount.takeMoney(500);System.out.println(Aftertaking500$,youhave+bankAccount.checkBalance();bankAccount.takeMoney(5000);System.out.println(Aftertaking5000$,youhave+bankAccount.checkBalance();class BankAccountint account;int balance;/ 余额BankAccount(int account,int balance)this.account=account;this.balance=balance;void saveMoney(int money)/ 存款 balance+=money;void takeMoney(int money)if(balance=money) balance-=money;elseSystem.out.println(error,account:+account+,you can only take +balance);int checkBalance() return balance;实验二继承与多态一、实验目的1 .掌握类的继承方法。2. 掌握变量的继承和覆盖。3. 掌握方法的继承、重载和覆盖。4. 了解接口的实现方法。二、实验内容定义两个接口,其方法协议分别完成两个数的加法和减法操作,然后创建一个 类实现这两个接口的方法。代码:import java.util.Scanner;public class Main2 static Scanner cin=new Scanner(System.in);public static void main(Stringargs)int a,b;a=cin.nextInt();b=cin.nextInt();Add add=new Add();Sub sub=new Sub();System.out.println(a+b+=+add.f(a,b);System.out.println(a+-+b+=+sub.f2(a,b);interface Funpublic abstract int f(int x,int y);interface Fun2public abstract int f2(int x,int y);class Add implements Funpublic int f(int x,int y)return x+y;class Sub implements Fun2public int f2(int x,int y) return x-y;思考题:1. 子类重新定义与父类方法的方法头完全相同的方法,这种情况称为什 么?答:重写2. 同名的不同方法共存的情况称为什么?如何区分这些同名方法?答:重载方法的参数个数,类型3. 创建一个类,声明一个无参数的构造函数,打印类已创建的信息;再重 载一个具有String参数的构造函数,打印参数信息;并创建主类验证之。public class Main public static void main(String args)MyTest mytest=new MyTest();String s=Hello!;MyTest mytest2=new MyTest(s);薛Java面向对象程序设计实验报告 Iclass MyTestMyTest()(System.out.println(无参数构造函数,类已创建!);MyTest(String s)(System.out.println(String参数构造函数,类已创建!且参数为:+s);4 .定义一个矩形类,再定义接口 EqualDiagonal ,其中包含方法 getDiagonal();由矩形类派生出一个正方形类,自行扩充成员变量和方法, 并实现此接口 EqualDiagonal o代码:import java.util.Scanner;public class Main static Scanner cin=new Scanner(System.in);public static void main(Stringargs)System.out.println(请输入正方形的边长:);double x=cin.nextDouble();Square square=new Square(x);System.out.println(对角线二 +square.getDiagonal();System.out.println(面积=+square.getArea();interface EqualDiagonaldouble getDiagonal();class Rectangledouble x,y,diagonal;class Square extends Rectangle implements EqualDiagonal Square(double x) this.x=x;public double getDiagonal() diagonal=Math.sqrt(x*x+x*x); return diagonal;public double getArea() return x*x;
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号