java學習之實驗三
阿新 • • 發佈:2019-02-03
(1)編寫3個基本類: Triangle, Ladder和Circle,分別用來刻畫“三角形”、“梯形”和“圓形”類; 1個主類: Compute,負責計算每個形狀的面積或周長。
具體要求:
Triangle 定義3個變數:邊長;和1個求周長的方法。
Ladder 定義3個變數:上底,下底和高;定義1個求面積的方法。
(3)編寫一個封裝學生的類Student,能夠描述學生的“學號”、“ 姓名”、“性別”、“年齡”、“平均成績”等基本屬性,及獲取屬性、修改屬性的方法和列印學生基本資訊的print()方法。要求生成兩個學生物件,在構造方法中進行初始化,並列印每個學生的基本資訊。
附:可在main函式中呼叫輸入函式,此處為方便均未呼叫。此外類名為方便也並未使用題中規定,讀者可自行修正。
具體要求:
Triangle 定義3個變數:邊長;和1個求周長的方法。
Ladder 定義3個變數:上底,下底和高;定義1個求面積的方法。
Circle 定義1個變數:半徑;定義2個方法:求面積、求周長。
3個基本類都要定義相應的構造方法,對變數進行初始化。
解:建立三個類,分別表示三角形,梯形,以及圓形,三角形中定義方法求取周長,以及獲取三邊長,以此類推分別定義梯形和圓形。
程式碼如下:
package test3; class Triangle{ double a,b,c; public Triangle() { } public Triangle(double a, double b, double c){ this.a=a; this.b=b; this.c=c; } public double C(){ return a+b+c; } } class Ladder{ double up,down,height; public Ladder(){ } public Ladder(double up, double down, double height){ this.up=up; this.down=down; this.height=height; } public double Area() { return (up+down)*height/2; } } class Circle{ double radius; public Circle(){ } public Circle(double radius){ this.radius=radius; } public double Area(){ return Math.PI*radius*radius; } public double C(){ return Math.PI*radius*2.; } } public class test3_a{ public static void main(String[] args) { Circle cc=new Circle(3); System.out.println(cc.Area()); System.out.println(cc.C()); Ladder ld=new Ladder(1,2,3); System.out.println(ld.Area()); Triangle tr=new Triangle(1,2,3); System.out.println(tr.C()); } }
(2)編寫一個賬戶類Account,它包括:一個名為id的int型賬號碼屬性,一個名為balance的double型的賬號餘額屬性,定義一個型別為java.util.Date的屬性dateCreated,用於記錄賬號的建立日期。同時,定義無參的建構函式,一個名為withDraw的方法從賬號提取特定數目的金額,一個名為deposit的方法向賬號存入特定數目的金額。請編寫測試程式,測試各個方法。
package test3; import java.util.Calendar; import java.util.Date; class Account{ int id; double balance; Date dateCreated; public Account(){ } public Account(int id, double balance){ this.id=id; this.balance=balance; this.dateCreated=(Date) Calendar.getInstance().getTime(); } public boolean withDraw(double money){ if(this.balance>money){ this.balance-=money; return true; } return false; } public void deposit(double money){ this.balance+=money; } public double getBalance(){ return this.balance; } } public class test4_b { public static void main(String[] args) { Account ac1=new Account(12,100.); boolean result =ac1.withDraw(1000); if(result) System.out.println("Success"); else { System.out.println("Fail"); ac1.deposit(1000); System.out.println(ac1.getBalance()); } } }<strong> </strong>
(3)編寫一個封裝學生的類Student,能夠描述學生的“學號”、“ 姓名”、“性別”、“年齡”、“平均成績”等基本屬性,及獲取屬性、修改屬性的方法和列印學生基本資訊的print()方法。要求生成兩個學生物件,在構造方法中進行初始化,並列印每個學生的基本資訊。
package test3; class Student{ private int id; private String name; private char sex; private int age; private double averageScore; public double getAverageScore(){ return this.averageScore; } public void setAverageScore(double score){ this.averageScore=score; } public Student(){ } public Student(int id, String name, char sex, int age, double score){ this.id=id; this.name=name; this.sex=sex; this.age=age; this.averageScore=score; } public void print() { System.out.println(id+" "+name+" "+sex+" "+age+" "+averageScore); } } public class test3_c { public static void main(String[] args) { Student st1=new Student(1,"zhang",'f',23,90); st1.print(); st1.setAverageScore(80); st1.print(); } }<strong> </strong>
附:可在main函式中呼叫輸入函式,此處為方便均未呼叫。此外類名為方便也並未使用題中規定,讀者可自行修正。