1. 程式人生 > >問題與思考

問題與思考

panel 浮點型 float width 文件名 分享 ane htm 一個

1. 一個類文件中只能有一個公有類嗎?

答:是,一個類文件中只能有一個公有類,且公有類的名稱要與類文件名想相同。經過檢驗是有錯的。

2. 把main()方法的返回值由 void 改為 int ,程序能編譯通過嗎?能運行嗎?

1. 對話框顯示

  1. JOptionPane.showMessageDialog(null, "友情提示");

JOptionPane.showMessageDialog(null, "友情提示");

效果如下:技術分享

Java代碼

JOptionPane.showMessageDialog(jPanel, "提示消息", "標題",JOptionPane.WARNING_MESSAGE);

JOptionPane.showMessageDialog(jPanel, "提示消息", "標題",JOptionPane.WARNING_MESSAGE);

效果如下:技術分享


Java代碼

  1. JOptionPane.showMessageDialog(null, "提示消息.", "標題",JOptionPane.ERROR_MESSAGE);

JOptionPane.showMessageDialog(null, "提示消息.", "標題",JOptionPane.ERROR_MESSAGE);

技術分享


Java代碼

JOptionPane.showMessageDialog(null, "提示消息.", "標題",JOptionPane.PLAIN_MESSAGE);

JOptionPane.showMessageDialog(null, "提示消息.", "標題",JOptionPane.PLAIN_MESSAGE);

技術分享


1.2 showOptionDialog

這個函數可以改變顯示在按鈕上的文字。你還可以執行更多的個性化操作。

常規的消息框:

Java代碼

  1. int n = JOptionPane.showConfirmDialog(null, "你高興嗎?", "標題",JOptionPane.YES_NO_OPTION);//i=0/1

int n = JOptionPane.showConfirmDialog(null, "你高興嗎?", "標題",JOptionPane.YES_NO_OPTION);//i=0/1

技術分享


個性話消息框:

Java代碼

  1. Object[] options ={ "好啊!", "去一邊!" };
  2. int m = JOptionPane.showOptionDialog(null, "我可以約你嗎?", "標題",JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[0]);

Object[] options ={ "好啊!", "去一邊!" };

int m = JOptionPane.showOptionDialog(null, "我可以約你嗎?", "標題",JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[0]);

效果如下:技術分享


1.3 showInoutDialog

該方法返回一個Object 類型。這個Object 類型一般是一個String 類型,反應了用戶的輸入。

下拉列表形式的例子:

Java代碼

1. Object[] obj2 ={ "足球", "籃球", "乒乓球" };

2. String s = (String) JOptionPane.showInputDialog(null,"請選擇你的愛好:\n", "愛好", JOptionPane.PLAIN_MESSAGE, new ImageIcon("icon.png"), obj2, "足球");

Object[] obj2 ={ "足球", "籃球", "乒乓球" };

String s = (String) JOptionPane.showInputDialog(null,"請選擇你的愛好:\n", "愛好", JOptionPane.PLAIN_MESSAGE, new ImageIcon("icon.png"), obj2, "足球");

效果如下:技術分享



文本框形式的例子:

Java代碼

  1. JOptionPane.showInputDialog(null,"請輸入你的愛好:\n","title",JOptionPane.PLAIN_MESSAGE,icon,null,"在這輸入");

JOptionPane.showInputDialog(null,"請輸入你的愛好:\n","title",JOptionPane.PLAIN_MESSAGE,icon,null,"在這輸入");

效果如下:
技術分享


對應的小圖標可參照下圖:

技術分享



詳細的解釋可參照oracle官網

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

static修飾的區塊,域只會初始化一次,如果沒有static說明main函數是靜態的那麽調用main函數時就必須給main函數定義一個實例,如果沒有定義實例調用主函數時就會報錯,使用static後就可以避免調用前實例化的問題,使用static後系統會給main函數分配內存,無需實例化。

5. 同名變量的屏蔽原則有意識地在不同地方定義一些同名變量,看看輸出的到底是哪個值

局部變量定義在方法中;方法參數用於將方法外的數據傳遞給方法。

按照程序的順序,以最後的定義為最終結果

6. 數據類型的轉換

數據類型的相互轉換,數值擴展類型轉換按照byte->short->int->long->float->double進行,整數與浮點數進行運算java會自動地將整數轉換為浮點值。

數據類型

布爾型

字符型

字節型

短整型

整型

長整型

浮點型

雙精度型

類型名

bool

char

byte

short

int

long

float

double

占用位數

8

16

8

16

32

64

32

64

取值範圍

true/false

0~65535

默認值

false

‘\u0000’

0

0

0

0

0.0f

0.0d

實線:有精度損失

虛線:無精度損失

7.關於double型數據運算精度損失的問題

double類型占8個字節,64位,第1位為符號位,後面11位是指數部分,剩余部分是有效數字。二進制無法準確表示0.99,所以用double定義0.99的變量會有精度損失

用BigDecimal函數時使用double參數仍然會造成精度損失,因為這種解決方法就是在數據庫中就把浮點數用string來表示存放,再使用以上的方法就會造成精度損失

問題與思考