今天是有關JAVA最後一天的分享了,後天要開始分享CPE的歷屆試題
然後明天我打算寫一篇JAVA的習後心得,所以不算在JAVA的分享裡面
進入正題,今天要來說到的是JAVA的類別,類別這個部分比較進階
所以我會比較簡單的帶過
關於CPE的部分,閱讀前面幾天的文章,應該就可以應付的了
一般來說,類別是由「資料成員」以及「函數成員」封裝而成
甚麼是「資料成員」?甚麼是「函數成員」?
以矩形作為範例,矩形的長跟寬就是「資料成員」,矩形的面積跟周長就是「函數成員」
一個簡單的範例,程式碼如下:
import java.util.*;
import static java.lang.System.*;
class CRectangle{
int width;
int height;
int area()
{
return width*height;
}
int perimter()
{
return 2*(width+height);
}
}
public class app6_1
{
public static void main(String[] args) {
CRectangle rect1;
rect1 = new CRectangle();
Scanner scn=new Scanner(System.in);
System.out.print("請輸入長 : ");
rect1.width = scn.nextInt();
System.out.print("請輸入寬 : ");
rect1.height = scn.nextInt();
System.out.println("面積 = " + rect1.area());
System.out.println("周長 = " + rect1.perimter());
}
}
執行結果如下:
class就是建立類別,int width就是定義資料成員,int area()就是定義函數成員,然後在app6_1引用
我們把類別CRectangle撰寫類別app6_1前面
事實上,我們不必在意其先後順序,把兩個類別的順序相反過來,編譯器也可以接受
再來介紹類別的公有成員與私有成員
我們的範例程式的資料會員可以從類別外部進行更改
雖然說對程式設計者來說相當方便,但是在某個層面卻隱藏著潛在的危險
如果沒有一個機制來限定類別的存取,就很可能造成輸入錯誤
所以JAVA提供了私有成員的設定
簡單的私有成員範例程式碼如下:
import java.util.*;
import static java.lang.System.*;
class CRectangle{
private double width;
private double height;
void show_area()
{
System.out.println("面積 = " + width*height);
}
}
public class app6_2
{
public static void main(String[] args) {
CRectangle cir1 = new CRectangle();
cir1.width = 2;
cir1.height = 5;
cir1.show_area();
}
}
private就是把資料成員設為私有成員
width * height在CRectangle類別內部儲存,所以可以儲存
到後面在CRectangle類別的外部了
所以cir1.width = 2;cir1.height = 5;無法更改
執行結果如下:
這個錯誤訊息明確的指出私有成員無法從外部來存取
關於JAVA的類別就講到這了
可能今天的文章會比較長,因為還要做習後心得,所以類別就不分上下兩篇了。