Java課堂作業02
一、
1.問題:一個Java類文件中真的只能有一個公有類嗎?
2.解答:
定義了兩個公有類,如果裏面什麽也不加就能運行,但是在第二個裏加了東西就不行了。
因為(以下轉自互聯網):一個Java源文件中最多只能有一個public類,當有一個public類時,源文件名必
須與之一致,否則無法編譯,如果源文件中沒有一個public類,則文件名與類中沒有一致性要求。
至於main()不是必須要放在public類中才能運行程序。
每個編譯單元只能有一個公開的接口,而這個接口就由其public 類來表示。如果能有多個public類,程序就無法識別該從哪裏導入程序了。
二、
1.問題:把main()方法的返回值由 void 改為 int ,程序能編譯通過嗎?能運行嗎?
2.解答:
看來是不行了。
三、
1.問題:為什麽java規定作為程序入口點的main() 方法靜態的?
2.解答(轉自互聯網):main函數其實也是所在類的一個方法,就比如一個類是test,那麽該類的main其實就是test.main(String[] args),眾所周知如果一個方法不是靜態的,則要先實例化該類,比如要這樣 A a=new A();
然後才能調用 a.main();
而這對於運行一個程序的主函數來說是不現實的,所以比如把main函數定義為static,使a.main()可以直接被調用。
因此,java規定了main函數必須是靜態的。
四、
1.問題:Java變量遵循“同名變量的屏蔽原則”,請課後閱讀相關資料弄清楚相關知識,然後自己編寫一些測試代碼,就象本示例一樣,有意識地在不同地方定義一些同名變量,看看輸出的到底是哪個值。
2.解答:
可以看到輸出的是2。
五、
1.問題:
2.解答:int short long byte 表示整數,其值是精確的,而float double均為浮點型,表示近似值,所以當整型轉換成浮點類型的近似值會有精度損失。而ASCLL都是整數,所以char轉換成整型不會有精度損失。
六、
1.問題:
以下代碼的輸出結果是什麽?
int X=100;
int Y=200;
System.out.println("X+Y="+X+Y);
System.out.println(X+Y+"=X+Y");
為什麽會有這樣的輸出結果?
2.解答(以下資料來自互聯網):
因為:當"X+Y="在前時,默認的把int型X,Y轉化為String型,"X+Y="使編譯器認為X,Y是String型的了,System.out
Java課堂作業02