下面就舉簡單的幾個例子用來回顧面向對象的封裝以及構造方法的重載。
1)編寫一個圓類Circle,該類擁有:
①一個成員變量
Radius(私有,浮點型); // 存放圓的半徑;
②兩個構造方法
Circle( ) // 將半徑設爲0
Circle(double r ) //創建Circle對象時將半徑初始化爲r
③ 三個成員方法
double getArea( ) //獲取圓的面積
double getPerimeter( ) //獲取圓的周長
void show( ) //將圓的半徑、周長、面積輸出到屏幕
這題很簡單,就是爲了熟悉創建成員變量以及成員方法的調用,下面是實現代碼:
package test11;
public class Circle {
private double Radius;
public Circle() {
Radius=0;
}
Circle(double r){
Radius=r;
}
public double getArea(double Area){
Area =Radius*Radius*Math.PI;
return Area;
}
public double getPerimeter(double Permeter){
Permeter=Radius*2*Math.PI;
return Permeter;
}
public void show(){
System.out.println("面積是"+getArea(Radius));
System.out.println("周長爲"+getPerimeter(Radius));
}
public static void main(String[] args) {
Circle circle =new Circle(4);
circle.show();
}
}
運行結果爲:
2)定義一個表示學生信息的類Student,要求如下:
(1)類Student的成員變量:
sNO 表示學號;sName表示姓名;sSex表示性別;sAge表示年齡;sJava:表示Java課程成績。
(2)類Student帶參數的構造方法:
在構造方法中通過形參完成對成員變量的賦值操作。
(3)類Student的方法成員:
getNo():獲得學號;
getName():獲得姓名;
getSex():獲得性別;
getAge()獲得年齡;
getJava():獲得Java 課程成績
根據類Student的定義,創建五個該類的對象,輸出每個學生的信息,計算並輸出這五個學生Java語言成績的平均值,以及計算並輸出他們Java語言成績的最大值和最小值。
這題比上題稍複雜些,但是我們可以利用數組來調用每個學生的信息,就會比單獨輸入要輕鬆一些。package com.hpe.www;
public class Student {
private int sNO;
private String sName;
private String sSex;
private int sAge;
private double sJava;
public Student(int no, String name, String sex, int age, double java) {
sNO = no;
sName = name;
sSex = sex;
sAge = age;
sJava = java;
}
public int getsNO(int no) {
return sNO;
}
public void setsNO(int sNO) {
this.sNO = sNO;
}
public String getsName() {
return sName;
}
public void setsName(String sName) {
this.sName = sName;
}
public String getsSex() {
return sSex;
}
public void setsSex(String sSex) {
this.sSex = sSex;
}
public int getsAge() {
return sAge;
}
public void setsAge(int sAge) {
this.sAge = sAge;
}
public double getsJava() {
return sJava;
}
public void setsJava(double sJava) {
this.sJava = sJava;
}
public static void main(String[] args) {
double sum = 0;
Student student1 = new Student(01, "張三", "男", 21, 95);
Student student2 = new Student(02, "李四", "男", 21, 65);
Student student3 = new Student(03, "王五", "女", 19, 95);
Student student4 = new Student(04, "李雷", "男", 23, 70);
Student student5 = new Student(05, "韓梅梅", "女", 18, 89);
Student[] students = { student1, student2, student3, student4, student5 };
System.out.println("學號 姓名 性別 年齡 java成績 ");
for (int i = 0; i < students.length; i++) {
System.out.println(students[i].sNO + "\t" + students[i].sName + "\t" + students[i].sSex + "\t"
+ students[i].sAge + "\t" + students[i].sJava);
}
// System.out.println(student1.sNO+"\t"+student1.sName+"\t"+student1.sSex+"\t"+student1.sAge+"\t"+student1.sJava);
// System.out.println(student2.sNO+"\t"+student2.sName+"\t"+student2.sSex+"\t"+student2.sAge+"\t"+student2.sJava);
// System.out.println(student3.sNO+"\t"+student3.sName+"\t"+student3.sSex+"\t"+student3.sAge+"\t"+student3.sJava);
// System.out.println(student4.sNO+"\t"+student4.sName+"\t"+student4.sSex+"\t"+student4.sAge+"\t"+student4.sJava);
// System.out.println(student5.sNO+"\t"+student5.sName+"\t"+student5.sSex+"\t"+student5.sAge+"\t"+student5.sJava);
for (int i = 0; i < students.length; i++) {
sum += students[i].sJava;
}
double ave = sum / students.length;
System.out.println("平均成績是" + ave);
for (int i = 0; i < students.length; i++) {
for (int j = 0; j < i; j++) {
if (students[i].sJava < students[j].sJava) {
students[i].sJava = students[i].sJava + students[j].sJava;
students[j].sJava = students[i].sJava - students[j].sJava;
students[i].sJava = students[i].sJava - students[j].sJava;
}
}
}
System.out.println("全班最高成績爲:" + students[0].sJava + "最低成績爲:" + students[4].sJava);
}
}
運行結果爲: