天天看點

學通Java的24堂課

1.JAVA_HOME隻是為了儲存安裝路徑,完全可以換成其他的,再使用%JAVA_HOME%引用,隻不過第三方軟體預設使用了JAVA_HOME

2.palette:調色闆,又叫元件管理器

3.Jlabel隻用于顯示文字和圖像,在界面設計器裡其text屬性是顯示中文名字的;Variable顯示目前的元件caption,也可以用英文設定。

4.單擊窗體的标題欄選擇整個窗體,其他部分隻選擇了内容面闆;也可以在Structure裡面直接選擇相應的名字。

學通Java的24堂課
學通Java的24堂課

5.引入和管理庫最好的是添加使用者庫,然後在工程上右鍵選擇建構路徑--添加庫。

6.在一個工程裡引用另一個工程的類,則右鍵--建構路徑--配置建構路徑--庫--添加類檔案夾(選擇的是bin,不是src);還可以添加依賴項目,這樣是引入了所有的claa和相關jar。

學通Java的24堂課
學通Java的24堂課
7.

1 import java.util.Calendar;
 2 import java.util.Date;
 3 
 4 public class Test1 {
 5 
 6     public static void main(String[] args) {
 7         // TODO Auto-generated method stub
 8         Date date = new Date();
 9         Calendar cal = Calendar.getInstance();
10         cal.setTime(date);
11         int c = cal.get(Calendar.DAY_OF_WEEK);
12         if(Calendar.MONDAY == c) {
13             System.out.println("星期一");
14         }else {
15             System.out.println("非星期一");
16         }
17         System.out.println(date);
18     }
19 }      

8.重寫Date類的toString

1 package a;
 2 
 3 import java.util.Calendar;
 4 import java.util.Date;
 5 
 6 public class TestT extends Date{
 7     
 8     private static final long serialVersionUID = 8025524497773683396L;
 9     static Date date= null;
10     public static void main(String[] args) {
11         date = new TestT();
12         System.out.println(date.toString());
13     }
14     
15     @Override
16     public String toString(){
17         Calendar calendar = Calendar.getInstance();
18         calendar.setTime(new Date());
19         int day = calendar.get(Calendar.DAY_OF_WEEK);
20         String weekDay = "";
21         if(day==Calendar.SUNDAY){
22             weekDay = "星期天";
23         }else if(day==Calendar.SATURDAY){
24             weekDay = "星期六";
25         }
26         /*
27          * 因為要傳回String類型,而Calendar.get傳回的是int,我原來把其強轉為String結果CE了,使用下面的方式就行了
28          * 另外calendar.get(Calendar.MONTH)傳回的月份貌似少了一
29          */
30         return calendar.get(Calendar.YEAR)+":"+(calendar.get(Calendar.MONTH)+1) + ":" + calendar.get(Calendar.DAY_OF_MONTH) + ":" + weekDay;
31     }
32 }      

9.提示框使用JOptionpane相關方法。

10.在Eclipse裡隻要儲存後那麼就自動生成了對應的class檔案。

11.字母數字下劃線或者$但不能以數字開頭,不能有空格;是以user_name對,user name錯。

12.全局變量又稱為成員變量;局部變量可以和全局變量同名,此時全被屏蔽,不過可以使用this通路。

13.Arrays有靜态方法fill(數組名,start,end,值),中間的兩個參數可以不要;

14.當局部變量和成員變量同名時使用this通路成員變量。

15.import static java.lang.System.out;使用時直接out.println();提防含糊不清的命名static成員。例如,如果你對Integer類和Long類執行了靜态導入,引用MAX_VALUE将導緻一個編譯器錯誤,因為Integer

和Long都有一個MAX_VALUE常量,并且Java不會知道你在引用哪個MAX_VALUE。 你可以在static對象引用、常量(記住,它們是static 或final)和static方法上進行靜态導入。

16.static塊在類加載時執行且僅執行一次,調用構造方法時先執行static塊,不過再次調用就不執行了,一般用于初始化工作;主類裡邊main方法執行前也先要執行該靜态代碼塊。

17.字元ASCII碼轉換器

學通Java的24堂課
學通Java的24堂課
1 package a;
  2 
  3 import java.awt.BorderLayout;
  4 import java.awt.EventQueue;
  5 
  6 import javax.swing.JFrame;
  7 import javax.swing.JPanel;
  8 import javax.swing.border.EmptyBorder;
  9 import javax.swing.JToolBar;
 10 import javax.swing.JTextField;
 11 import javax.swing.JButton;
 12 import java.awt.event.ActionListener;
 13 import java.awt.event.ActionEvent;
 14 import javax.swing.JLabel;
 15 import java.awt.CardLayout;
 16 import java.awt.FlowLayout;
 17 import java.awt.event.MouseAdapter;
 18 import java.awt.event.MouseEvent;
 19 
 20 public class Asc extends JFrame {
 21 
 22     private JPanel contentPane;
 23     private JTextField textField;
 24     private JTextField textField_1;
 25 
 26     /**
 27      * Launch the application.
 28      */
 29     public static void main(String[] args) {
 30         EventQueue.invokeLater(new Runnable() {
 31             public void run() {
 32                 try {
 33                     Asc frame = new Asc();
 34                     frame.setTitle("字元ASCII碼轉換器");
 35                     frame.setVisible(true);
 36                 } catch (Exception e) {
 37                     e.printStackTrace();
 38                 }
 39             }
 40         });
 41     }
 42 
 43     /**
 44      * Create the frame.
 45      */
 46     public Asc() {
 47         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 48         setBounds(100, 100, 450, 300);
 49         contentPane = new JPanel();
 50         contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
 51         contentPane.setLayout(new BorderLayout(0, 0));
 52         setContentPane(contentPane);
 53         
 54         JPanel panel = new JPanel();
 55         contentPane.add(panel, BorderLayout.NORTH);
 56         
 57         JLabel lblNewLabel = new JLabel("\u8F93\u5165\u5B57\u7B26\uFF1A");
 58         panel.add(lblNewLabel);
 59         
 60         textField = new JTextField();
 61         panel.add(textField);
 62         textField.setColumns(10);
 63         
 64         final JLabel lblNewLabel_2 = new JLabel("\u663E\u793A\u7ED3\u679C:");
 65         panel.add(lblNewLabel_2);
 66         
 67         final JLabel lblNewLabel_3 = new JLabel("");
 68         panel.add(lblNewLabel_3);
 69         
 70         JButton btnNewButton = new JButton("\u8F6C\u6362");
 71         btnNewButton.addMouseListener(new MouseAdapter() {
 72             @Override
 73             public void mouseClicked(MouseEvent arg0) {
 74                 String ascii = textField.getText();
 75                 // 傳回 char 數組的給定索引上的代碼點。
 76                 //字元串不能直接轉換為char
 77                 char[] arr = ascii.toCharArray();
 78                 int i = (int)arr[0];
 79                 lblNewLabel_3.setText(""+i);
 80             }
 81         });
 82         panel.add(btnNewButton);
 83         
 84         JPanel panel_1 = new JPanel();
 85         contentPane.add(panel_1, BorderLayout.CENTER);
 86         panel_1.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
 87         
 88         final JLabel lblNewLabel_1 = new JLabel("\u8F93\u5165\u6570\u5B57\uFF1A");
 89         panel_1.add(lblNewLabel_1);
 90         
 91         textField_1 = new JTextField();
 92         panel_1.add(textField_1);
 93         textField_1.setColumns(10);
 94         
 95         JButton btnNewButton_1 = new JButton("\u8F6C\u6362");
 96         
 97         btnNewButton_1.addActionListener(new ActionListener() {
 98             public void actionPerformed(ActionEvent arg0) {
 99                 
100             }
101         });
102         
103         JLabel lblNewLabel_4 = new JLabel("\u663E\u793A\u7ED3\u679C:");
104         panel_1.add(lblNewLabel_4);
105         
106         final JLabel lblNewLabel_5 = new JLabel("");
107         panel_1.add(lblNewLabel_5);
108         panel_1.add(btnNewButton_1);
109         btnNewButton_1.addMouseListener(new MouseAdapter() {
110             @Override
111             public void mouseClicked(MouseEvent arg0) {
112                 String ch = textField_1.getText();
113 //                char[] arr = ch.toCharArray();
114                 //不行因為,假如輸入了89,那麼arr[0]為8,arr[1]為9
115 //                System.out.println(arr[0]);
116 //                lblNewLabel_5.setText(""+(char)arr[0]);
117                 int i = Integer.parseInt(ch);
118                 lblNewLabel_5.setText(""+(char)i);
119                 
120             }
121         });
122     }
123 
124 }      

View Code

學通Java的24堂課
學通Java的24堂課
學通Java的24堂課

第二個界面是我做的,感覺沒的一個做得好,視訊上想換轉換用的是Character類裡的方法。我主要用了toCharArray和Integer.parseInt方法。

18.JButton和Button的差別:Button是在java.awt.*中的JButton是在javax.swing.*中的swing類是awt的一個擴充,它是由純JAVA語言編寫的,它有一個與平台無關的實作,而且具有一個藝術狀态的屬性集。

19.參數順序不同但是參數類型順序相同的話,不構成重載;參數順序不同 且 參數類型順序不同的話,也構成重載。在子類中擴充一個與父類同名不同參數的方法不叫重寫,應該叫重載;不過也有人不同意,認為這樣寫能表達出所謂“重載”的意思,但是按照重載概念(重載是在同一個類中多态性的表現),似乎不符合。可以更深層的了解為,子類隻是擁有了父類的這個方法(功能),而不是自己建立的功能

20.Java是強類型語言,也就是說使用之前需要先定義類型。最大值最小值分别通過包裝類的MAX_VALUE和MIN_VALUE通路。

21.可以在靜态代碼塊裡記錄該類有多少個執行個體對象。

22.Integer方法

toBinaryString(int i) 以二進制(基數 2)無符号整數形式傳回一個整數參數的字元串表示形式。 static String toHexString(int i) 以十六進制(基數 16)無符号整數形式傳回一個整數參數的字元串表示形式。 static String toOctalString(int i) 以八進制(基數 8)無符号整數形式傳回一個整數參數的字元串表示形式。

23.String類的常用方法:length,indexOf,lastIndexOf,charAt,trim,substring,split,replace,toUpperCase和toLowerCase,startsWith和endsWith方法。

24.反轉字元串:從最後再charAt逐個拼接(newStr="")。

25.String執行個體的toCharArray和split("")一樣功能。

26.比較字元串内容equals或者equalsIgnoreCase;compareTo方法按字典序比較兩個字元串。

27.使用DateFormat類來指定輸出不同國家的日期。

28.統計漢字數目

學通Java的24堂課

29.textfield隻有一行可寫,textarea是一個區域,可以有很多行 ,都采用getText擷取内容。

30.split方法可以限定拆分次數,比如“123,456,789”,若是直接split(",")則輸出123,456,789;若是split(",",2),則輸出123,"456,789"。

31.instanceOf操作符判斷對象類型,防止ClassCastException。

32.java語言中任何一個類都是object的子類。

//equals方法原型
public boolean equals(Object obj) {
  return this==obj;
}
      
學通Java的24堂課

33.可以将接口看做是純粹的抽象類,方法沒有方法體。

學通Java的24堂課

34.

作者:​​火星十一郎​​

本文版權歸作者火星十一郎所有,歡迎轉載和商用,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利.