J2SE 基础入门,从事 Java 必学!
我們先來(lái)了解一下什么是 J2SE。
J2SE 的定義
J2SE,全稱為Java 2 Standard Edition。Java 2 平臺(tái)包括:標(biāo)準(zhǔn)版(J2SE)、企業(yè)版(J2EE)和微縮版(J2ME)三個(gè)版本。J2SE 即 Java 2 的標(biāo)準(zhǔn)版,主要用于桌面應(yīng)用軟件的開(kāi)發(fā)。
下面這段話是 ORACLE 對(duì)于 Java SE 的官方描述:
Java Platform, Standard Edition (Java SE) 可以讓您在桌面和服務(wù)器以及目前要求較高的嵌入式環(huán)境中開(kāi)發(fā)和部署 Java 應(yīng)用程序。 Java 提供了當(dāng)今應(yīng)用程序所需要的豐富的用戶界面、良好的性能、多功能性、可移植性和安全性。
J2SE 與 J2EE、J2ME 之間的關(guān)系可以通過(guò)下圖來(lái)表示:
J2SE 的架構(gòu)
J2SE 的架構(gòu)如下圖所示,它主要包含了 UI、集成庫(kù)、語(yǔ)言和工具基礎(chǔ)庫(kù)、其他基礎(chǔ)庫(kù)、Java 虛擬機(jī)等組件。
綜上所述,將 J2SE 壓縮一點(diǎn)再加上一些CLDC等方面的特性就是 J2ME;將其擴(kuò)充一點(diǎn)再增加一些 EJB 等企業(yè)應(yīng)用方面的特性就是 J2EE。因此 J2SE 是 J2EE 的基礎(chǔ),建議從事 Java 的開(kāi)發(fā)人員從 J2SE 開(kāi)始學(xué)習(xí)。
面對(duì)對(duì)象——鞏固與提高
在前面 Java 基礎(chǔ)語(yǔ)法的學(xué)習(xí)中,你應(yīng)該接觸了一些面向?qū)ο蟮幕A(chǔ)知識(shí)。面向?qū)ο蟮母拍钤?Java 的開(kāi)發(fā)體系中無(wú)處不在,在今后的開(kāi)發(fā)過(guò)程中,你也應(yīng)該以面向?qū)ο蟮乃枷雭?lái)看待和解決問(wèn)題。
既然是面向?qū)ο?#xff0c;就會(huì)談?wù)摰筋惡蛯?duì)象的概念,以及它們之間的關(guān)系:
類是現(xiàn)實(shí)世界或思維世界中的實(shí)體在計(jì)算機(jī)中的反映,它將數(shù)據(jù)以及這些數(shù)據(jù)上的操作封裝在一起。對(duì)象是具有類類型的變量。
類是對(duì)象的抽象,而對(duì)象是類的具體實(shí)例。類是抽象的,不占用內(nèi)存,而對(duì)象是具體的,占用存儲(chǔ)空間。類是用于創(chuàng)建對(duì)象的藍(lán)圖,它是一個(gè)定義包括在特定類型的對(duì)象中的方法和變量的軟件模板。
下面,我們通過(guò)一些例子來(lái)鞏固面向?qū)ο蟮南嚓P(guān)知識(shí)。
自定義圖書類
我們首先在 Eclipse 中創(chuàng)建一個(gè)名為HelloJ2SE的 Java Project,這里我們選用 Java 1.8,再在 src 文件夾下新建一個(gè)名為com.shiyanlou.course的包。
注意:我們建議你在之后的項(xiàng)目創(chuàng)建中都使用 1.8 版本
然后我們?cè)谶@個(gè)包里添加一個(gè)Book類。
對(duì)于一個(gè)圖書類,一般有書名、作者和編碼等屬性。我們利用這些常見(jiàn)屬性來(lái)自定義這個(gè)圖書類,創(chuàng)建的Book.java文件中主要代碼如下:
特別說(shuō)明:?在實(shí)驗(yàn)樓的實(shí)驗(yàn)環(huán)境中,暫不支持輸入中文,因此你不必將代碼片段中的注釋也輸入開(kāi)發(fā)環(huán)境。該說(shuō)明同樣適用于本課程后續(xù)的章節(jié)。
package com.shiyanlou.course; //此為包名,如果你在創(chuàng)建包時(shí)已自動(dòng)生成了該行,請(qǐng)忽略public class Book {private String name; // 書名private String author; // 作者private String ISBN; // 編碼//Tips: ISBN是國(guó)際標(biāo)準(zhǔn)書號(hào),每本書背面的條形碼即為此物public Book(String name, String author, String ISBN) {// 利用構(gòu)造方法初始化域this.name = name;this.author = author;this.ISBN = ISBN;//Q:你清楚this的用法嗎?}public String getName() { // 獲得書名return name;}public String getAuthor() { // 獲得作者return author;}public String getISBN() { // 獲得編碼return ISBN;} }為了測(cè)試我們剛剛自定義的圖書類,我們?cè)赾om.shiyanlou.course這個(gè)包中再創(chuàng)建一個(gè)名為Test的類文件,并在main()方法中創(chuàng)建一個(gè)Book對(duì)象。最后,我們?cè)诳刂婆_(tái)輸出這個(gè)Book對(duì)象的屬性。
創(chuàng)建的Test.java文件中,主要的代碼如下:
package com.shiyanlou.course;public class Test {public static void main(String[] args) {Book book = new Book("This is my 1st book", "Peter", "1234567890");// 創(chuàng)建Book對(duì)象并設(shè)定其各個(gè)屬性System.out.println("Book Name: " + book.getName());// 輸出這本書的名字System.out.println("Book Author: " + book.getAuthor());// 輸出這本書的作者System.out.println("ISBN: " + book.getISBN());// 輸出這本書的編碼} }點(diǎn)擊編譯并運(yùn)行。
如果在控制臺(tái)中可以看到下圖這樣的信息,那么祝賀你,一個(gè)自定義的圖書類就成功完成了。
當(dāng)然,你也可以為Book類添加更多的屬性,并為每個(gè)屬性編寫get方法。
動(dòng)態(tài)化實(shí)例類
在面向?qū)ο蟮木幊讨?#xff0c;把用類創(chuàng)建對(duì)象的過(guò)程稱為實(shí)例化。通常是使用有參數(shù)或無(wú)參數(shù)的構(gòu)造方法來(lái)創(chuàng)建對(duì)象。其格式如下:
//有參數(shù)的情形 CLASS_NAME OBJECT_NAME = new CLASS_NAME(parameter_1,...parameter_n);//例如下面這個(gè)例子 Person peter = new Person("Peter","boy");//無(wú)參數(shù)的情形 CLASS_NAME OBJECT_NAME = new CLASS_NAME();//例如下面這個(gè)例子 Dog dog_1 = new Dog();你可以仿照自定義圖書類的例子,通過(guò)自己創(chuàng)建相關(guān)的Person類和Dog類以及測(cè)試的方法來(lái)驗(yàn)證上述過(guò)程。
但是在 Java 中,類的實(shí)例化方法一共有四種途徑:
我們?cè)谧远x圖書類這個(gè)例子中,編寫了有參數(shù)的構(gòu)造方法public Book(String name, String author, String ISBN)。但如果類中沒(méi)有定義構(gòu)造方法,編譯器便會(huì)自動(dòng)添加一個(gè)無(wú)參數(shù)的構(gòu)造方法。使用構(gòu)造方法創(chuàng)建對(duì)象雖然常用,但并不靈活。因此,我們?cè)賮?lái)了解一下動(dòng)態(tài)化實(shí)例類,也就是調(diào)用 Class 對(duì)象的newInstance()方法,通過(guò)反射創(chuàng)建對(duì)象。
了解一下反射的概念:
JAVA 反射機(jī)制是在運(yùn)行狀態(tài)中,對(duì)于任意一個(gè)類,都能夠知道這個(gè)類的所有屬性和方法;對(duì)于任意一個(gè)對(duì)象,都能夠調(diào)用它的任意一個(gè)方法和屬性;這種動(dòng)態(tài)獲取信息以及動(dòng)態(tài)調(diào)用對(duì)象的方法的功能稱為 java 語(yǔ)言的反射機(jī)制。
那么我們就開(kāi)始來(lái)學(xué)習(xí)如何動(dòng)態(tài)化實(shí)例類:
請(qǐng)?jiān)?Eclipse 中創(chuàng)建一個(gè)項(xiàng)目DynamicClass,并在該項(xiàng)目中創(chuàng)建com.shiyanlou.course包。在該包中創(chuàng)建Test類,并編寫main()方法。
在main()方法中創(chuàng)建一個(gè) File 對(duì)象(你只需要知道 File 對(duì)象也是一個(gè)對(duì)象即可,進(jìn)一步了解 File 對(duì)象)。
最后,使用該對(duì)象在桌面創(chuàng)建一個(gè)文本文件。
主要的代碼如下:
package com.shiyanlou.course;import java.io.File; import java.lang.reflect.Constructor; //需要引用上述兩個(gè)包public class Test {public static void main(String[] args) {try {Constructor<File> constructor = File.class.getDeclaredConstructor(String.class);//獲得File類的Constructor對(duì)象System.out.println("Create File Object with reflection.");//使用反射創(chuàng)建File對(duì)象File file = constructor.newInstance("/home/shiyanlou/Desktop/MyFile.txt");System.out.println("Use File Object to create MyFile.txt on desktop.");//指定了創(chuàng)建的路徑為桌面,名稱為“MyFile.txt”file.createNewFile(); //創(chuàng)建新的文件System.out.println("File is created ?" + file.exists());//驗(yàn)證文件是否創(chuàng)建成功} catch (Exception e) {e.printStackTrace();}} }你可能會(huì)問(wèn)為什么會(huì)用到try、catch以及Exception之類的奇怪的東西,這是由于上述代碼會(huì)拋出大量的異常。我們通常不推薦這樣寫。不用擔(dān)心,我們將在錯(cuò)誤處理一章為你詳細(xì)介紹他們的原理和用法。
點(diǎn)擊編譯并運(yùn)行,如果在控制臺(tái)可以看到下列信息則表示你成功了。
同時(shí),你也應(yīng)該可以在桌面上發(fā)現(xiàn)自己創(chuàng)建的這個(gè)MyFile.txt文件。
實(shí)驗(yàn)總結(jié)
前面我們講了 J2SE 的基本概念和架構(gòu),復(fù)習(xí)了面向?qū)ο笾蓄惡蛯?duì)象、動(dòng)態(tài)實(shí)例化類的相關(guān)知識(shí)。如果想要學(xué)號(hào) J2SE,建議大家再積累一些數(shù)據(jù)結(jié)構(gòu)相關(guān)知識(shí),以便更好地投入到后續(xù)的學(xué)習(xí)中。
J2SE 的整個(gè)體系還是很龐大的,實(shí)驗(yàn)樓的新課《J2SE 基礎(chǔ)入門實(shí)戰(zhàn)》會(huì)力所能及地涵蓋其核心的知識(shí)點(diǎn),如果你想更加深入地學(xué)習(xí) Java 知識(shí),我們還推薦你去閱讀《Java 2 核心技術(shù)》等書籍。
總結(jié)
以上是生活随笔為你收集整理的J2SE 基础入门,从事 Java 必学!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 图片太多加载过慢?学学图片懒加载吧
- 下一篇: 7种 Java 设计模式,你会几种?