1. 程式人生 > 其它 >Java物件和類的使用

Java物件和類的使用

技術標籤:java程式設計自學java程式語言

用Java語言實現一個數字時鐘模組

這需要我們一開始去建立一個clock的Java project,數字時鐘的顯示模組,一般格式為小時和分鐘(00:00-23:59).,所以我也需要在這工程上定義兩個類(class)分別是Display和Clock,我一般寫類名的時候首字母都大寫;在每一個類中我們都需要定義一些內部成員函式和變數,來完成一些操作;
讓我們先看看類Display中的模組:

package clock;
				
public class Display {
	
	private int value = 0;                       //小時數值
private int limit = 0; //一個限制,上限數值後的反應 public Display(int limit) //建構函式, { this.limit = limit; //用this呼叫成員變數中的limit初始值為0,來和本地變數中的limit 24)進行數值傳遞 } public void increasa() //讓value數值加一的函式increase,且帶有返回型別
{ value++; if(value == limit) //判斷value中的數值加一是否最終等於上限值24 { value = 0; } } public int getvalue() //得到這個value值的函式getvalue,也就是目前的value值 { return value; } //例如表達數字時鐘的數值區間分別為小時和分鐘,小時和分鐘(1-24小時0-60分鐘或00:00-23:59) public static void main(String[] args) { // TODO Auto-generated method stub
Display d = new Display(24); //建立類的物件變數d for(;;) //做個無限迴圈,也就是死迴圈 { d.increasa(); System.out.println(d.getvalue()); } } }

這是一個相對獨立的程式,但這還並不完善

我們前面說了,需要兩個模組,一個類Display另一個就是類Clock,在Clock中我們要去定義兩個物件屬性hour和minute,這裡我們也要注意程式的public公有和private私有裡的函式和變數的使用,訪問等

package clock;

public class Clock {
		//	此時需要定義類Clock的一個屬性minute和hour
	private Display hour = new Display(24);         // 建立一個新的函式Display物件中的物件屬性hour
	private Display minute = new Display(60);       //再建立一個新的函式Display物件來定義一個物件屬性minute
	//以上兩者都是獨立,互不干涉
	public void start() 
	{
		while( true) 
		{
			minute.increasa();                     //minute自動增加
			if(minute.getvalue()==0)               //如果自動增加的值=0
			{
				hour.increasa();                   //則hour就自動增加
			}
			System.out.printf("%02d:%02d\n",hour.getvalue(),minute.getvalue()); //%開頭輸出的整數,2d是兩個字元的位置
		}
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Clock clock = new Clock();      
		clock.start();                  //啟動

	}

}

在package clock中的Display、Clock類

整個數字時鐘在程式中執行結果也算完整了,
在這裡插入圖片描述

再來看看程式中的public private的關係是如何

在現在的clock工程當中,有兩個類Display和Clock,這兩個類中都有自己的mian函式;
例如類Display中的成員變數可以是其他類Clock中的物件;
private 私有的函式或變數,只有在類的內部中的函式或變數訪問,相當於自己訪問自己了;
public意義是公有的,在類中是可以被其它函式和變數訪問的;
當public後面無class或static關鍵字的時候,可定義函式,都可以訪問,例如類Clock可以訪問Display中的所有帶有public的函式和變數;
如果一個函式或變數前面沒有public或private,那麼他是“friendly”的,包(package)中的其它類都可以訪問它;
如果一個類前面有public,這表明任何人都可以用這個類的定義來定義變數;
點.java檔案也叫編譯單元,一次只能編譯一個點java檔案,且一個.Java檔案中只能有一個public class;

但數字時鐘的程式還不太完整,相關後續我會繼續展開;