java程序结构_java程序结构
java是一門面向對象的語言,在編程過程中當然離不開對象的聲明,而對象又是通過類定義的,所以java中最重要的就是各式各樣的類,在java中,類也是一個程序的基本單位
0x01:默認生成類
在eclipse中創建好一個java類之后會自動生成一個默認類,如下:
public classtest {
}
這是一個空白類,其中class關鍵字表示定義的是一個類,public是一個修飾符,表示這個類是公開的,test是類名,是根據所創建的java文件自動生成的。
0x02:定義main方法
java程序的運行和c有點相同,都是從一個main方法中運行,在main方法中,可以調用其它自定義的方法。
public classtest {public static voidmain(String []args){
}
}
方法定義了一組執行語句,方法內部的代碼將會被依次順序執行。
這里的方法名是main,返回值是void,表示沒有任何返回值(這一點和c也是類似的,方法的返回類型必須與定義的一致。。)。
我們注意到public除了可以修飾class外,也可以修飾方法。而關鍵字static是另一個修飾符,它表示靜態方法,Java入口程序規定的方法必須是靜態方法,方法名必須為main,括號內的參數必須是String數組。
0x03:方法的調用
我們當然不能把所有的代碼都寫在一個main方法中,這樣會讓代碼過于臃腫,且可讀性差。可以把實現某種功能(比如獲取絕對值、求平方等)的一些代碼自定義為一個方法,然后在main方法中調用這個自定義的方法。
public classtest {public static voidmain(String []args){
hello();
}static voidhello(){
System.out.println("hello,");
world();
}static voidworld(){
System.out.print("world!");
}
}
方法的調用與c是一樣的,直接使用方法名就行,有參數的話需要傳入對應類型的參數。但不同的方法的定義與c中有點不一樣,因為java中main方法是static類型,在自定義方法時也要在前面加航static,要不會報錯:
Cannot make a static reference to the non-static method hello() from the type test
0x04:類的調用
在復雜一點的代碼中,只自定義方法也還是不夠的,還需要自定義類。 類的使用和方法略有不同,必須通過類的實例調用類里面的方法。
public classtest {
// 聲明一個Dog類的實例
Dog dog= newDog();public static voidmain(String []args){
// 調用Dog的方法
Dog.run();
Dog.eat();
}
}
// 自定義Dog類classDog{static voidrun(){
System.out.println("dog is running!!");
}static voideat(){
System.out.println("dog is eating!!");
}
}
關于為什么java的靜態方法中 可以調用的方法、可以使用的成員變量必須時靜態的,網上查了一下,有這樣一段話,“由于靜態方法可以不通過對象進行調用,因此在靜態方法里,不能調用其他非靜態變量,也不可以訪問非靜態變量成員。”
作者:知乎用戶
鏈接:https://www.zhihu.com/question/20834765/answer/16364708
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
靜態方法實際是類的方法,而不是關于對象的方法。所以不是“可以不通過對象調用方法”,而是恰恰應該使用類來調用,而且鼓勵這種寫法,而不是通過對象調用。即:靜態方法不和對象相關,而是僅僅和類相關。
為啥呢?解釋是這樣的:在一般的類中定義的方法中,非靜態類其實不僅僅有他們后面括號里面的顯式參數(比如 public int getField(String param1, int param2)這個方法,顯式參數是param1和param2),還包括一個隱式參數:即這個調用方法的對象(即this)。而靜態方法,則沒有這個隱式的參數,僅僅就只有括號中的顯式參數。
既然是因為靜態方法不和對象關聯,那么它就只能用同樣僅僅和類關聯而不和對象關聯的實例域,畢竟不是靜態的實例域在不同對象中基本上都是不同的嘛。
而理解這個道理,最最關鍵的一點是:
java中的“static”和C++中的“static”含義并不完全一樣!!!C++中的關鍵字static被復寫了三次,有三種含義,分別為:
變量一直存在;
不能被其他文件訪問的全局變量和函數;
屬于類且不屬于對象的全局變量和函數。在一大部分人心中可能只把它理解為“靜態”的意思,實際上Java僅僅取了C++中static的最后一個含義:即,不與類的實例相關聯,僅與類相關聯。
(ps:剛剛起步的小白,若理解有誤,還請大佬們多多指正。。。。。。)
***************不積跬步無以至千里***************
總結
以上是生活随笔為你收集整理的java程序结构_java程序结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java idea 模块_idea 多模
- 下一篇: java简易日历程序报告_简单的日历小程