1. 程式人生 > >課程作業2

課程作業2

class mage 類型 表示 修飾 出了 font 得到 是什麽

1.文件名必須與公有類名一致

置疑:一個Java類文件中真的只能有一個共有類嗎?

源代碼:

public class Test{

public static void main(String[] args){ } public class InnerClass{} } 經檢驗這個代碼沒有錯誤,截圖如下: 技術分享

可得結論:一個java源文件中可以寫多個類,但其中只能有一個類是“公有的(public)”,這其中不包含內類函數,且源文件名必須與公有類名一致,否則無法編譯 2.main方法 技術分享

Java中的方法用於完成某個任務並返回結果信息,一個Java應用程序可以包含一個或多個方法Java應用程序(Java Application)從 main 方法開始執行

public static void main( String args[] )

main 方法必須嚴格象上面那樣聲明 void 表明 main 方法不返回任何結果

源代碼:


public class Test
{
public static int main(String[]args)
{
System.out.println("Hello word!")
}
}

驗證結果如下:

技術分享

都不能執行,所以不能通過。

3.為什麽java規定作為程序入口點的main() 方法靜態的?

(1)什麽是靜態方法?

用static 修飾的方法稱為類方法或靜態方法。類方法是不依賴特定對象的方法,所以可以通過類名去引用該方法。無須創建對象即可使用的方法。 由於在加載類時,系統就為類中的方法分配了空間,所以在靜態方法中可以直接訪問本類的靜態變量和靜態方法,但在靜態方法中不能直接訪問實例字段和實例方法,也不能使用this關鍵字和super關鍵字。

(2)為什麽java規定作為程序入口點的main() 方法靜態的?

static關鍵字,告知編譯器main函數是一個靜態函數。也就是說main函數中的代碼是存儲在靜態存儲區的,即當定義了類以後這段代碼就已經存在了。如果main()方法沒有使用static修飾符,那麽編譯不會出錯,但是如果你試圖執行該程序將會報錯,提示main()方法不存在。因為包含main()的類並沒有實例化(即沒有這個類的對象),所以其main()方法也不會存。而使用static修飾符則表示該方法是靜態的,不需要實例化即可使用。

4.變量的作用域(每個變量都有一個“有效”的區域(稱為“作用域”),出了這個區域,變量將不再有效。

源代碼:


public class Test
{
private static int value=1;


public static void main(String[]args)
{
int value=2;
System.out.println(value);
}
}

技術分享

技術分享

Java變量遵循“同名變量的屏蔽原則”

5. Java中的類型轉換

技術分享

技術分享 技術分享

看著這個圖,再查查Java中每個數據類型所占的位數,和表示數值的範圍,你能得出什麽結論?

int short long byte 表示整數,其值是精確的,而float double均為浮點型,表示近似值,所以當整型轉換成浮點類型的近似值會有精度損失。而ASCLL都是整數,所以char轉換成整型不會有精度損失。

6.

技術分享

這麽意外的輸出。

使用double類型的數值進行計算, 其結果是不精確的。

為什麽double類型的數值進行運算得不到“數學上精確”的結果?

因為java中十進制與二進制轉化時存在問題,double類型的數值占 用64bit,即64個二進制數,除去最高位表示正負符號的位,在最低 位上一定會與實際數據存在誤差,簡單來說就是我們給出的數值,在 大多數情況下需要比64bit更多的位數才能準確表示出來(甚至是需 要無窮多位),而double類型的數值只有64bit,後面舍去的位數一定會帶來誤差,無法得到“數學上精確”的結果。

7.

以下代碼的輸出結果是什麽?

int X=100; int Y=200; System.out.println("X+Y="+X+Y); System.out.println(X+Y+"=X+Y");

技術分享

為什麽會有這樣的輸出結果?

當"X+Y="在前時,默認的把int型X,Y轉化為String型,"X+Y="使編譯器認為X,Y是String型的了,System.out.println()本身的參數默認為String型,遇到這種情況默認了轉化,產生了如此結果,而第二個就是簡單的輸出,沒有讓計算器產生“誤解”。

課程作業2