JAVA SE、EE、ME,JRE、JDK,基本数据类型,访问修饰符、函数、封装的概念、UML类图、构造方法、this关键字、static关键字、方法重载、方法重写、包(packahe)
運行第一個JAVA程序:
這里使用的開發環境是eclipse,新建一個java工程,然后可以看到src這個是存放java代碼的地方,然后在src文件右擊新建一個class(類),然后可以看到下圖,同樣和C語言一樣java語言也有main函數,只是寫法不一樣,java語言的main函數寫法如下,同時java里面的打印函數和C語言也不一樣,java語言用的是System.out.println,如下圖進行打印,然后運行輸出hello world
JAVA SE、EE、ME的區別:
-
Java SE(Java Platform,Standard Edition)。Java SE 以前稱為 J2SE。它允許開發和部署在桌面、服務器、嵌入式環境和實時環境中使用的 Java 應用程序。Java SE 包含了支持 Java Web 服務開發的類,并為 Java Platform,Enterprise Edition(Java EE)提供基礎。總的來說: JAVA SE就是最標準的java語言,就和最基本的C語言一樣,包含這個語言最基本的一些東西,在java里面包含一些最基本的繼承、多態等等
-
Java EE(Java Platform,Enterprise Edition)。這個版本以前稱為 J2EE。企業版本幫助開發和部署可移植、健壯、可伸縮且安全的服務器端 Java 應用程序。Java EE 是在 Java SE 的基礎上構建的,它提供 Web 服務、組件模型、管理和通信 API,可以用來實現企業級的面向服務體系結構(service-oriented architecture,SOA)和 Web 2.0 應用程序。總的來說: JAVA EE相較于JAVA SE對了一些API(這些API是用來搞服務器用的,就相當于C語言面向linux的開發,也是多了一些API)
-
Java ME(Java Platform,Micro Edition)。這個版本以前稱為 J2ME。Java ME 為在移動設備和嵌入式設備(比如手機、PDA、電視機頂盒和打印機)上運行的應用程序提供一個健壯且靈活的環境。Java ME 包括靈活的用戶界面、健壯的安全模型、許多內置的網絡協議以及對可以動態下載的連網和離線應用程序的豐富支持。基于 Java ME 規范的應用程序只需編寫一次,就可以用于許多設備,而且可以利用每個設備的本機功能。總的來說: 相對于JAVA EE也是多了一些API面向于嵌入式設備。主要針對消費者電子設備,為嵌入式應用提供開發和運行環境,例如手機程序和PDA程序等等,可以理解為單片機的C語言。
-
相比較于SE,EE和ME提供針對指向不同的API。
JRE、JDK:
- JRE: 百度百科:Java運行環境(Java Runtime Environment,簡稱JRE)是一個軟件,由太陽微系統所研發,JRE可以讓計算機系統運行Java應用程序(Java Application)。JAVA程序之所以可以跨平臺,就是有JRE,有了JRE,JAVA可以在windows、linux、手機環境下運行。只要在操作系統上裝了JRE那么就可以運行java程序,所以java的移植性比較好。JRE的內部有一個Java虛擬機 (Java Virtual Machine,JVM)以及一些標準的類別函數庫(Class Library)。
- JDK全稱Java Development ToolKit,是Java語言開發工具包。JDK是整個JAVA的核心,包括了Java運行環境(Java Runtime E nvirnment),一堆Java工具(javac/java/jdb等)和Java基礎的類庫(即Java API 包括rt.jar)。對于C語言來說,JDK有點像linux操作系統帶的C語言的運行環境同時帶了C庫。沒有JDK的話 無法編譯 JAVA程序(指java源碼的.java文件),如果想 只運行 jAVA程序(指class或jar或其他歸檔文件),要確已安裝相應的JRE。
- JDK包含的基本組件有:javac(編譯器,將源程序轉成字節碼,相當于C語言里面的gcc)、jar(打包工具,將相關的類文件打包成一個文件)、javadoc(文檔生成器,從源碼注釋中提取文檔,相當于man手冊)、jdb(查錯工具用來debug的)、java(運行編譯后的java程序 .class 后綴的,.java 文件編譯后生成 .class 文件)、appletviewer (小程序瀏覽器,一種執行HTML文件上的Java小程序的Java瀏覽器)、Javah(產生可以調用Java過程的C過程,或建立能被Java程序調用的C過程的頭文件)、Javap (Java反匯編器,顯示編譯類文件中的可訪問功能和數據,同時顯示字節代碼含義)、Jconsole ( Java進行系統調試和監控的工具)
java的基本數據類型:
- 總的來說和C語言沒啥區別,只是輸出時不用占位符,只需要用+拼接輸出。
java里面的選擇語句:
- 基本上和C語言的沒啥區別
java的循環控制語句:
- 和C語言一模一樣,只是程序的入口函數不一樣
java的數組:
- java里面的數組和C里面的數組在定義的時候稍微有點區別,但是在使用的時候都是通過數組下標來使用的,
java的函數:
- java里面的函數如果在定義時沒有說明是static類型的函數那么,在函數調用的時候必須先創建對象然后通過對象訪問類里面的方法,如果函數定義為static類型的,那么就可以像c語言那樣調用函數。
java實現計算器(+ - * /):
- 其實和C語言沒啥區別,主要還是定義和使用的時候有些區別
java的輸入類:
- java的輸入類Scanner,然后創建對象,然后進行實例化(在實例化的時候要傳入參數System.in可以理解為從鍵盤獲取吧),就可以使用實例化對象里面的方法,根據輸入的類型不同進而選擇不同的方法。
封裝的概念:
將東西包在一起,然后以新的完整形式呈現出來,將方法和字段一起包裝到一個單元中,單元以類的形式實現(類比C語言就是結構體,字段就是各種數據類型,方法就是函數指針),但是與C語言結構體不同的是,java的類有信息隱藏,隱藏對象的實現細節,不讓外部直接訪問到,就是外部看不到函數體。將數據和方法包裝進類中,加上具體實現的隱藏(訪問修飾符),共同被稱作封裝,其結果是一個同時帶有特征和行為的數據類型。封裝類: 定義類、定義其屬性、方法的過程稱為封裝類。
- 下面是封裝類的示例代碼(可以類比于C語言的結構體):
java封裝之訪問修飾符:
信息隱藏是OOP最重要的功能之一,也是使用訪問修飾符的原因。信息隱藏的原因包括:①對模塊的任何實現細節所作的更改不會影響使用該模塊的代碼。②防止用戶以外修改數據。③使模塊易于維護和使用(就是電腦配件)。訪問修飾符有: private、protected、public、默認。上面的代碼沒有修飾符,所以屬性是默認屬性。這些訪問修飾符就是設置看能不能通過stu1.age=20這樣的形式訪問變量。訪問修飾符不僅可以修飾變量和方法還可以修飾類。
- 訪問修飾符的訪問權限:
- public:該類或非該類均可以訪問
- private:只有該類可以訪問(但是可以通過方法去間接地訪問private修飾的變量)
- protected:該類及其子類的成員可以訪問,同一個包中的類也可訪問
- 默認:同一個包中的類可以訪問
| 同一個類 | 是 | 是 | 是 | 是 |
| 同一個包內的類 | 否 | 是 | 是 | 是 |
| 不同包內的子類 | 否 | 否 | 是 | 是 |
| 不同包并且不是子類 | 否 | 否 | 否 | 是 |
- 屬性封裝的實現:修改屬性的可見性來限制對屬性的訪問、為每個屬性創建一對賦值的方法(setter)和取值的方法(getter)方法,用于公開對這些屬性的訪問接口,在setter和getter方法中,根據需要加入對屬性操作限制。這樣外部就可以通過這些方法來獲取或者修改私有屬性。
- 方法封裝的目的:隱藏方法實現細節(方法體),向外部提供公開接口(方法頭),以供安全調用,簡化調用,方便維護。根據需要,可以私有化方法,以供內部使用(僅在類內部使用)。
UML類圖:
Unified Modeling Language(UML)又稱統一建模語言或標準建模語言,類的命名盡量應用領域中的術語,應明確、無歧義、以利于相互交流和理解。類的屬性、操作中的可見性使用+、#、-分別表示public、protected、private
構造方法:
- 類的構造方法的概念和作用:①構造方法負責對象的初始化工作,為對象的屬性賦合適的初值。②創建對象時,其類的構造方法確保在用戶操作對象之前,系統保證初始化的進行。
- 構造方法的語法規則:①構造方法與類名一致②沒有返回類型③方式實現主要為字段賦初值。
- 構造方法的調用:構造方法的調用很特別,new操作符(實例化對象的時候,自動被調用),java系統保證每個類都有構造方法。 如果在類里面不寫構造方法,它會自動的添加一個構造函數(無參構造方法)只是我們看不見而已,在一個類中可以有多個構造方法(函數的重載,參數列表一定要改),構造方法不能被重寫
- java中的重寫和重載:
- 方法重載的概念: 同一個類中,同名不同參的方法稱為重載方法,注意: 僅有返回值不同的方法不能稱為重載。
- 多數程序設計語言要求為每個方法(函數)提供一個獨一無二的方法名,不存在方法重載的概念,在java中,規定方法簽名是解析方法的規則而不是方法名,為方法重載開創了條件,方法重載使得在一個類中,方法名相同而參數列表不同的方法可同時存在,代表相似的行為或功能。
- 例如:System.out.print這個函數就支持方法重載:
方法重寫:
- 什么是方法重寫? 方法重寫是指子類可以根據需要對從父類繼承來的方法進行改寫,是多態機制的前奏。
- 方法重寫的注意點: ① 重寫方法必須和被重寫的具有相同的方法名稱、參數列表和返回值。 ② 重寫方法不能比被重寫方法有更嚴格的訪問權限。③ 父類的私有方法,不能被重寫。 ④ 在子類重寫方法中繼續調用父類的被重寫方法可以通過super.函數名獲取。
- 函數重載發生在同一個類里面,函數重寫發生在繼承關系里面
This關鍵字的特點:
- 在類的方法中,使用This關鍵字代表的是調用此方法的對象的引用
- This可以看做是一個變量,他的值是當前對象的引用
- 使用This可以處理方法中的成員變量和形參同名的問題(使用比較多)
- 在方法內需要用到調用到該方法的對象時,就可以用This
- 在類的構造方法中可以調用This([參列表])來調用該類的指定構造方法(使用比較多)
static關鍵字的特點:
- 用來修飾類的成員—修飾成員變量的稱為類變量(靜態變量)
- 修飾成員方法稱之為類方法(靜態方法)
- 當類被加載的時候就會被加載,優先于對象的存在
- 用來修飾語句—稱之為靜態代碼,先于構造方法之前執行,只會執行一次,用來對靜態成員做初始化
- 調用的時候可以直接通過類名.成員進行訪問。
- static關鍵字的注意事項: ①靜態方法只能訪問外部靜態成員。②靜態方法中不能出現this關鍵字。因為this是指的是對象的引用,而靜態方法是先于對象之前的,可以直接通過類來訪問靜態方法,不通過實例化對象來訪問靜態方法。
包(package):
打包的意義:
- 標準的java庫是由一系列包組成的,包括java.lang、java.util、java.net等等
- 標準的java包就是層次型包結構,就如同硬盤上嵌套的子目錄一樣,我們可以使用嵌套層次來組織包
- java的包是為了更好的規劃代碼,防止命名沖突和混亂。所以java出現了打包機制
- 當把類組織起來放進一個包之內時,也就給包中的成員賦予了相互訪問的權限,就可以擁有了該包內的程序代碼
- 包訪問權限把類聚集在一個包中這一做法提供了意義和理由。
- java開發人員可以編寫屬于自己的java包,為了保證包名唯一性,要求開發人員在定義自己的包時在名字前加上唯一的前綴。由于互聯網的域名名稱不會重復,所以推薦采用公司在互聯網上的域名的倒置作為包的唯一前綴。
- 一個類可以使用同一個包中的所有類,一個類可以使用其他包中的所有公開類。怎么使用其他包中的公開類? ① 在每個類簽名加上完整包名,例如:java.until.Data today=new java.util.Date() ②更簡潔更通用的方式:使用import語句來導包(eclipse ctrl+shift+o) import java.util.Date(導入特定類) Date today=new Date() ③可以import特定類,也可以導入整個包。通過在源代碼文件的頂部(打包語句后)使用import語句實現import java.util.*
- 注意:包名后面的每一個點都代表一級文件,比如上圖的包名com.first.fhn相應的會在工程文件下面的src和bin下面新建文件夾,然后再將包放在對應的位置。如下圖所示:
總結: 這篇博客講了封裝的概念、UML類圖、構造方法、this關鍵字、static關鍵字、方法重載、方法重寫、包(packahe)
總結
以上是生活随笔為你收集整理的JAVA SE、EE、ME,JRE、JDK,基本数据类型,访问修饰符、函数、封装的概念、UML类图、构造方法、this关键字、static关键字、方法重载、方法重写、包(packahe)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: opensll、libcurl库安装的使
- 下一篇: 第二十五期:5G预约用户超千万!是“虚火