1. 程式人生 > >Java課堂作業02

Java課堂作業02

情況 height 簡單 必須 alt fsp es2017 spa java類

一、

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

.println()本身的參數默認為String型,遇到這種情況默認了轉化,產生了如此結果,而第二個就是簡單的輸出,沒有讓計算器產生“誤解”。

Java課堂作業02