广东技术师范学院实验报告学院:计算机科学学院专业:计算机科学与技术(师范)班级:成绩:姓名:孔哥哥学号:组别:组员:实验地点:Win10电脑实验日期:指导教师签名:实验名称:一、实验目的:1、熟练掌握类、对象的的概念以及对事物的抽象。
2、熟练掌握成员、方法的概念以及构造方法的概念。
3、熟练掌握封装性,多态性的概念4、理解面向对象的程序设计方法。
二、实验内容和步骤:(说明代码及运行结果)1.运行下面的程序,理解面向对象的程序设计方法的基本概念。
class value {public int x,y;public value(int a,int b) {x=a; y=b;}}public class Ch31 {public static void main(String args[]) {int total;value num=new value(24,65);total=num.x+num.y;System.out.println("add="+total);}}2、定义一个类实现银行帐户的概念,包括的变量有"帐号"和"存款余额",包括的方法有"存款"、"取款"、"查询余额"和”显示帐号”。
定义主类,创建帐户类的对象,并完成相应操作。
2.1新建一个AccountTester的类,以下是代码:public class AccountTester {public static void main(String[] args) {BankAccount anAccount;anAccount=new BankAccount("小明",12121000,1000);System.out.println("账户名字:"+anAccount.getOwnerName());System.out.println("账户号码:"+anAccount.getAccountNumber());System.out.println("账户现有:$"+anAccount.getBalance());System.out.println("存款$500,以后有:"+anAccount.setBalance(500));System.out.println("取款$700,以后有"+anAccount.withdraw(700));}}2.2再建一个BankAccount类,代码如下://定义类方法public class BankAccount {private String ownerName;private int accountNumber;private float balance;//定义构造函数,如果没有接收参数就生成一个空的对象public BankAccount(){this("",0,0);}//定义一个接收账号名字和账号号码和初始金额的构造函数public BankAccount(String initName, int initAccNum, float initBal) {ownerName=initName;accountNumber=initAccNum;balance=initBal;}//获取账号名字public String getOwnerName(){return ownerName;}//获取账号号码public int getAccountNumber(){return accountNumber;}//查询余额public float getBalance(){return balance;}//设置账号名字public void setOwnerName(String newName){ownerName=newName;}//设置账号号码public void setAccountNumber(int newNum){accountNumber=newNum;}//存款public float setBalance(float newBalance){balance+=newBalance;return (balance);}//取款public float withdraw(float newBalance){balance-=newBalance;return (balance);}}运行结果如下:账户名字:小明账户号码:12121000账户现有:$1000.0存款$500,以后有:1500.0取款$700,以后有800.03.先创建一个Point类,然后定义Trianglele类。
在Trianglele类中定义三个Point 的实体来表示一个三角形的三个点,再定义一个方法setTri对这三个点进行初始化,然后定义两个方法求三角形的周长、面积。
在main()中创建一个对象,求给定三点的三角形的周长、面积。
新建一个point类,代码如下:÷public class Point{int x; int y;//定义一个构造函数,接收一个点的X轴和Y轴坐标public Point(int x,int y){this.x=x; this.y=y;}}再建一个Triangle类,代码如下:public class Triangle {//定义三个Point的实体来表示一个三角形的三个点Point n1,n2,n3;//初始化三个点public void setTr(Point n1,Point n2,Point n3){this.n1=n1;this.n2=n2;this.n3=n3;}//计算三角形周长的方法public void getPerimeter(){double sideA=Math.sqrt(Math.pow(n1.x-n2.x,2)+Math.pow(n1.y-n2.y,2));double sideB=Math.sqrt(Math.pow(n1.x-n3.x,2)+Math.pow(n1.y-n3.y,2));double sideC=Math.sqrt(Math.pow(n3.x-n2.x,2)+Math.pow(n3.y-n2.y,2));if(sideA+sideB>sideC&sideB+sideC>sideA&sideA+sideC>sideB){System.out.println("三角形的周长为"+(sideA+sideB+sideC));}else{System.out.println("不能构成三角形");}}//计算三角形的面积public void getArea(){double sideA=Math.sqrt(Math.pow(n1.x-n2.x,2)+Math.pow(n1.y-n2.y,2));double sideB=Math.sqrt(Math.pow(n1.x-n3.x,2)+Math.pow(n1.y-n3.y,2));double sideC=Math.sqrt(Math.pow(n3.x-n2.x,2)+Math.pow(n3.y-n2.y,2));double p=(sideA+sideB+sideC)/2;if(sideA+sideB>sideC&sideB+sideC>sideA&sideA+sideC>sideB){System.out.println("三角形的面积为"+Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC)));}else{System.out.println("不能构成三角形");}}}再建一个Test类进行测试,代码如下:public class Test {public static void main(String[] args){Point n1=new Point(9,5);Point n2=new Point(5,9);Point n3=new Point(10,6);Triangle tr=new Triangle();tr.setTr(n1,n2,n3);tr.getPerimeter();tr.getArea();}}代码结果如下:三角形的周长:12.902019706710776三角形的面积: 3.99999999999999964.将上题的方法setTri改用构造方法实现初始化。
代码如下:public class Triangle{//定义三个点,并进行初始化Point n1,n2,n3;public Triangle(Point n1,Point n2,Point n3){this.n1=n1;this.n2=n2;this.n3=n3;}//求三角形周长的方法public void getPerimeter(){double sideA=Math.sqrt(Math.pow(n1.x-n2.x,2)+Math.pow(n1.y-n2.y,2));double sideB=Math.sqrt(Math.pow(n1.x-n3.x,2)+Math.pow(n1.y-n3.y,2));double sideC=Math.sqrt(Math.pow(n3.x-n2.x,2)+Math.pow(n3.y-n2.y,2));if(sideA+sideB>sideC&sideB+sideC>sideA&sideA+sideC>sideB){System.out.println("三角形的周长:"+(sideA+sideB+sideC));}else{System.out.println("不能构成三角形");}}//求三角形面积的方法public void getArea(){double sideA=Math.sqrt(Math.pow(n1.x-n2.x,2)+Math.pow(n1.y-n2.y,2));double sideB=Math.sqrt(Math.pow(n1.x-n3.x,2)+Math.pow(n1.y-n3.y,2));double sideC=Math.sqrt(Math.pow(n3.x-n2.x,2)+Math.pow(n3.y-n2.y,2));double p=(sideA+sideB+sideC)/2;if(sideA+sideB>sideC&sideB+sideC>sideA&sideA+sideC>sideB){System.out.println(" 三角形的面积:"+Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC)));}else{System.out.println("不能构成三角形");}}}四、习题1.什么是面向对象的程序设计方法?它有哪些基本特征?面向对象程序设计从所处理的数据入手,以数据为中心而不是以服务为中心来描述系统。