類的使用和物件的建立,變數的條用,函式的構造
技術標籤:java程式設計自學程式碼規範java
定義類,函式使用,變數呼叫
在使用java程式語言編寫程式碼的時候,函式的定義至關重要。
到目前為止,靈活的使用函式,建立物件,定義變數這項程式設計基本功,對於大部分程式設計師來說可是走一步忘一步,看似簡單,實則對程式語言的理解不夠深入。
當然,如果得心應手的的話,對後期的程式設計效率的提升是肉眼可見的。
例如:對於一個人投幣的投籃機器 ,當我們建立一個“類(shootingmachine)”,繼承這個類的有四個屬性,和後續的所進行的動作,我們需要定義成員變數,成員變數:定義在函式外部的變數是成員變數。為什麼說外部呢,因為在定義“類”的時候,它是可以被外界訪問的,所以能從程式碼中看到class前面有一個public(公有類)
public class shootingmachine {
// shooting machine 人投幣後的就可以投籃機器
int Hcoin; //需要多少硬幣
int amount; //放入多少錢
int total; //總收入金額後的餘額
int balance; //當前的金額
void showPrompt() //提示資訊,是否開始,請投幣
{
System.out.println("start?");
}
void showBalance() //顯示餘額
{
System.out.println("目前金額為:"+balance);
}
void insertMoney(int amount) //投入了多少錢
{
balance = balance + amount;
this.showBalance();
}
void playShoot() //開始投籃
{
if(balance>=Hcoin) //如果投入的錢大於所需的硬幣
{
System.out.println("Play with go.");
balance = balance - Hcoin;
total = total + Hcoin;
System.out.println("目前還剩餘額為:"+total);
}
}
有了“類”,還需要物件的建立
建立類的物件,new這個關鍵字可是或不缺少的;
後續變數的呼叫,通過建立物件變數來管理這些函式,也稱為本地變數;
本地變數的生存期和作用域都是函式內部,也就是在如下程式碼中的本地函式中;
public static void main(String[] args) {
// TODO Auto-generated method stub
//有了類了,還需要怎樣,我要把物件進行建立
shootingmachine s = new shootingmachine(); //建立物件變數
s.showPrompt();
s.showBalance();
s.insertMoney(100); //投入金額數
s.playShoot();
s.showBalance();
建構函式,過載函式以及this關鍵字的使用細節
建構函式和過載函式的出現,我想了解過C++的朋友,對這兩個函式的的定義和使用方法大概不會陌生的;
他們的使用方法同樣在Java中也同樣適用,但可不要忘了這兩者的使用細節;
1.建構函式是一種特殊的函式。其主要功能是用來在建立物件時初始化物件, 即為物件成員變數賦初始值,總與new運算子一起使用在建立物件的語句中。建構函式與類名相同,可過載多個不同的建構函式。在JAVA語言中,建構函式與C++語言中的建構函式相同,JAVA語言中普遍稱之為構造方法。
2.過載函式是函式的一種特殊情況,為方便使用,Java允許在同一範圍中宣告幾個功能類似的同名函式,但是這些同名函式的形式引數(指引數的個數、型別或者順序)必須不同,也就是說用同一個函式完成不同的功能。這就是過載函式。過載函式常用來實現功能類似而所處理的資料型別不同的問題。不能只有函式返回值型別不同。
如下程式碼:
shootingmachine() //建構函式
{
this.balance = 0;
}
shootingmachine(int Hcoin) //過載函式
{
this.Hcoin = Hcoin; //this關鍵字可以呼叫內部變數
}
注意this關鍵字對內部函式變數的呼叫
對於this這個關鍵字
1.this代表當前物件的一個引用。所謂當前物件,指的是呼叫類中方法或屬性的那個物件。
2.this只能在方法內部使用,表示對“呼叫方法的那個物件”的引用。
3.this不能用於靜態方法。main方法也是靜態的,所以this也不能用於main方法。
例如在本程式中:通過點“.”運算子呼叫某個物件的函式,在成員函式內部直接呼叫自己(this)的其他函式,在一個類的內部中成員函式呼叫另一個成員函式需要用到this,之外的就不管了。
shootingmachine() //建構函式
{
this.balance = 0;
}
void shootingmachine(int Hcoin) //過載函式,括號裡的引數不能相同與建構函式
{
this.Hcoin = Hcoin; //this關鍵字可以呼叫內部變數
}
void setHcoin(int number) //設定所需硬幣數
{
this.number= number;
this.playShoot();
}