Java基礎 實驗二:類和物件
1.實驗目的
掌握類的宣告、物件的建立、方法的定義和呼叫、建構函式的使用。
2.實驗內容
1)定義一個表示學生資訊的類Student,要求如下:
① 類Student的成員變數:
sNO 表示學號;
sName 表示姓名;
sSex 表示性別;
sJava 表示Java課程成績;
② 類Student的方法成員:
getNo():獲得學號;
getName():獲得姓名;
getSex():獲得性別;
getAge()獲得年齡;
getJava():獲得Java 課程成績
2)按(1)中學生類Student的定義,建立兩個該類的物件,儲存並輸出兩個學生的資訊計算機並輸出這兩個學生Java語言成績的平均值。
3)建立第 (1)題的Student類的5個物件,求他們Java語言成績的最大值和最小值。
4)根據下面的要求實現圓類Circle。
① 圓類Circle的成員變數:
radius表示圓的半徑。
② 圓類Circle的方法成員:
Circle():構造方法,將半徑置0
Circle(double r):構造方法,建立Circle物件時將半徑初始化為r
double getRadius():獲得圓的半徑值
double getPerimeter():獲得圓的周長
void disp():將圓的半徑、圓的周長和圓的面積輸出到螢幕
3.實驗程式碼
package seconddemo; public class SecondDemo { public static class Student {//學生類 //成員變數 private String sNo; private String sName; private String sSex; private int sAge; private double sJava; public void setStudent(String no, String name, String sex, int age, int java) { sNo = no; sName = name; sSex = sex; sAge = age; sJava = java; } //成員方法 public void getNO() {//獲取相關成員變數的值 System.out.print(sNo+"\t"); } public void getName() { System.out.print(sName+"\t"); } public void getSex() { System.out.print(sSex+"\t"); } public void getAge() { System.out.print(sAge+"歲\t"); } public void getJava() { System.out.print(sJava+"分"); } } public static class Circle{ private double radius; public Circle(){ radius = 0; } public Circle(double r) { radius = r; } public double getRadius() { return radius; } public double getPerimeter() { return 2 * 3.14 * radius; } public void disp() { System.out.println("圓的半徑為:" + radius); System.out.println("圓的周長為:" + (2 * 3.14 * radius)); System.out.println("圓的面積為:" + (3.14 * radius * radius)); } } public static void main(String[] args) {//主類 //這是第二問 System.out.println("第二問:"); Student studentA = new Student(); Student studentB = new Student(); System.out.println("studentA和studentB的資訊如下:"); studentA.setStudent("gl3162052051432", "Yu Dong", " 男", 20, 98); studentB.setStudent("gl3162052051431", "Xu chen", " 男", 20, 100); studentA.getNO(); studentA.getName(); studentA.getSex(); studentA.getAge(); studentA.getJava(); System.out.println(); studentB.getNO(); studentB.getName(); studentB.getSex(); studentB.getAge(); studentB.getJava(); System.out.println(); System.out.println(studentA.sName+"同學和"+studentB.sName+"同學的Java課程的平均分為:"+((studentA.sJava+studentB.sJava)/2)+"分"); //這是第三問 double max = -1; double min = 101; Student[] student = new Student[5];//定義陣列 for(int i = 0; i<student.length; i++) {//初始化物件 student[i] = new Student(); } student[0].setStudent("gl3162052051432", "Yu Dong", " 男", 20, 98); student[1].setStudent("gl3162052051431", "Xu chen", " 男", 20, 62); student[2].setStudent("gl3162052051430", "Li hai", " 男", 20, 82); student[3].setStudent("gl3162052051429", "li da", " 男", 20, 77); student[4].setStudent("gl3162052051428", "Su wang", " 男", 20, 96); for(int i = 0; i<student.length; i++) { if(min > student[i].sJava)min = student[i].sJava; if(max < student[i].sJava)max = student[i].sJava; } System.out.println("\n第三問:"); System.out.println("五名同學Java課程的最高成績為:"+max); System.out.println("五名同學Java課程的最底成績為:"+min); //這是第四問 System.out.println(); System.out.println("第四問:"); Circle cirNameA = new Circle(); Circle cirNameB = new Circle(6); System.out.println("無參初始化:"); cirNameA.disp(); System.out.println("帶參初始化:"); cirNameB.disp(); } }
4.執行結果
5.注意事項
在主類內部,新建一個另一類的類,必須加上關鍵字 static,否則在主函式裡呼叫非靜態的類,出現錯誤,提示“無法從靜態上下文中引用非靜態變數this”,因為main方法執行時,內部非靜態類還沒載入,所以訪問不到。在本例中在student類前加一個static,就可以直接在main中呼叫了,當然也可以將類放在外面。