您好,登錄后才能下訂單哦!
這篇文章給大家介紹如何解析Java 面向對象的特征與應用,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
## 類和對象
* 面向對象與面向過程
面向過程:是指類似在C語言學習中,所寫的代碼都在主程序(main())中運行,非常的繁瑣。
面向對象:首先創建一個類,類中包括對一個事物描述的性質(成員變量)和方法(成員方法)。
面向對象是指對一個事物的描述。
eg:對一個手機進行描述,創建一個名為phone的類。
passage ...; public class phone { //成員變量 String name; double price; String color; //成員方法 call(String name ) game(String playname) }
## 兩種常見的方法
* 方法重載
指的是當聲明了成員變量之后,隊成員變量進行賦值的兩種方法:
初始化:
double x; double y; MethodOveringLoading() { x=1.2; y=0.0; }
//方法重載 //可以通過自己想要的對成員變量進行定義 MethodOverLoading(double a,double b) { x=a; y=b; }
綜上可以看出為什么會出現方法重載這個概念?
就是因為對于一個類中的成員變量一般都是沒有初始化的,當程序員想要根據實際問題進行設定時,就出現了方法重載這個概念。
* 參數個數可變方法
現在我們再來看一個成員方法的例子:
//求和 public int sum(int a,int b) { return a+b; }
問題是當我們輸入兩個數值時,只進行的2個數的求和,這里我們就可以用到參數個數可變的方法;
public int sum(int ...arg) { int sum=0; for(int a:arg) { sum+=a; } return sum; } public static void main(String[] args) { System.out,print(sum(1,2,3))//輸出結果為6; }
這里需要注意的是一般情況下所輸入的參數都為相同類型的,但也可以輸入不同類型的參數。
public int sum(double a,int ...arg)//true public int sum(double a,int ...arg)//false
* 遞歸方法
函數調用函數的方法。~暫時還想不出啥好的例子,以后再補充。
## 在程序運行過程中的內存分配
* 類的引用
* 相同包內class的引用
這種情況下不需要進行對類聲明;
* 不同包內class的引用
聲明所引用類的位置:import packagename.classname
;//包名.類名
* 內存分配
在程序運行的過程中內存分成三個區域,
棧(Stack)、堆(Heap)、方法區(Method Area)
開始時所引用的類都放在一個叫做方法區的地方,當然不是包中所有的類在程序運行時都會被調用,這就需要一個地方區分那些被用到而那些類沒有被用到,這個地方就是堆,但堆并不是將類中所有的信息都拿過來,而是只拿了類中成員變量和成員方法在方法區中位置。當在main函數中輸入Phone one=new Phone()時,這里的one是新new出來的一個對象,one接收到的是一個地址(Phone這個類所在堆中的地址信息),在后面的調用中只需要輸入one.***就可以對類中成員方法和成員變量進行調用。
one_dyas
關于如何解析Java 面向對象的特征與應用就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。