成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

聊一聊 Java 面向對象

開發 后端
注釋,就是寫在程序里邊對代碼進行結束說明的文字,既方便自己也方便他人查看,更快理解程序含義。而且注釋是不影響程序的執行的,在我們對 Java 源代碼進行編譯后,字節碼文件中不含源代碼中的注釋內容。

前言

在之前的文章中,講到了面向的 3 大特性(封裝、繼承、多態)和面向對象設計的 5 大原則(SRP、OCP、LSP、DIP、ISP)。此外,我們還講了如何創建一個類,并且在創建類后如何構造一個對象。然后還介紹了類中的屬性和方法,并對構造方法和引用也做了簡單的講解。

有了上面的基礎之后,今天我們來繼續學習面向對象的相關知識,主要內容預告如下:

  • 注釋
  • jar 文件的創

假設現在有這么一種情況,諸葛亮、周瑜、曹操共同開發一款程序。其中,周瑜和曹操均在自己代碼模塊中寫了一個 PublicUtil 類,現在諸葛亮要調用周瑜和曹操模塊中代碼,需要同時用到他們中的 PublicUtil 類,這時候就犯難了,諸葛亮在他的代碼中使用 PublicUtil 類時,該怎么區分是調用周瑜的,還是調用的曹操的呢?

針對這個問題,開發 Java 的前輩們當然也想到了。于是,他們在 Java 中定義了一種名字空間,也就是我們今天要講的包:package。通過使用包機制,就十分容易區別類名的命名空間了。

假設曹操的 PublicUtil 類代碼如下:

// 申明包名package caocao;public class PublicUtil{    ……}

周瑜的 PublicUtil 類代碼如下:

// 申明包名package zhouyu;public class PublicUtil{    ……}

此時,如果諸葛亮要同時使用他們倆代碼中的 PublicUtil 類,此時就可以通過引入他們倆的包,然后通過使用 包名.類名 的引用方式來進行區分即可。

package zhugeliang;import caocao;import zhouyu;public class Util{    // 使用周瑜代碼    zhouyu.PublicUtil.xxx();    ……    // 使用曹操代碼    caocao.PublicUtil.xxx();    ……}

以上代碼中的 import 你可能也在其他代碼中見到過,但你不知道啥作用。其實它就是為了包的使用而生,如果我要使用另一個人的包,那該怎么做呢?其實很簡單,只需要在程序中使用關鍵字 import 即可完成包的導入。

通過使用包,可以達到以下的作用:

  1. 將功能類似或或相關的類以及接口組織放在同一個包中,方便類的查找與使用。
  2. 包也像文件夾一樣,采用了樹形目錄的存儲方式。同一個包中的類名不同,不同包中的類名可以相同。當同時調用兩個不同包中的同一類名的類時,通過加上完整的包名就可以加以區分,從而避免類名沖突。
  3. 同時包也限定了訪問權限,只有擁有包訪問權限的類才能間接去訪問包中的類。

注釋

所謂注釋,就是寫在程序里邊對代碼進行結束說明的文字,既方便自己也方便他人查看,更快理解程序含義。而且注釋是不影響程序的執行的,在我們對 Java 源代碼進行編譯后,字節碼文件中不含源代碼中的注釋內容。

在 Java 中,通常支持三種注釋方式,它們分別是:

  • //:單行注釋
  • /* */:多行注釋
  • /** */:文檔注釋

單行注釋

單行注釋是以雙斜杠 // 來標識,表示只注釋當前行內容,一般用在需要注釋的內容較少的地方,以下就是一個單行注釋的實例。

// 第一個 Java 程序public class HelloWorld{ public static void main(String[] args){     System.out.println("Hello World!");    }}

多行注釋

通常我們把要注釋的內容放在 /* 和 */ 之間,表示在兩者之間的內容都是我們的注釋內容,以下是一個多行注釋的實例。

/** 第一個 Java 程序* 這是許多初學者都會寫的一個程序*/public class HelloWorld{ public static void main(String[] args){     System.out.println("Hello World!");    }}

文檔注釋

文檔注釋和多行注釋很像,它是將我們所需要注釋的內容包含在 /** 和 */ 之間。而文檔注釋和其他兩種注釋最大的區別就在于:我們可以利用 javadoc 工具來提取文檔注釋,然后生成一個 HTML 文檔,類似于 Java 官網所提供的 API 文檔,以下是一個文檔注釋的實例。

/*** 第一個 Java 程序* 這是許多初學者都會寫的一個程序*/public class HelloWorld{    /**    * 主函數    * @param args 主函數參數列表    */ public static void main(String[] args){     System.out.println("Hello World!");    }}

然后我們通過終端,使用 javadoc 命令就可以為上述文件生成一個 HTML 文檔。

javadoc HelloWorld.java

而文檔注釋相比于其他兩種注釋,也有更多值得注意的地方,下面就分別來看看需要留意的地方。

1、常用文檔注釋分類

  • ?類注釋

顧名思義,所謂類注釋,就是針對整個類的說明,它必須放在 import 之后,但又必須放在類定義之前。以下是一個類注釋的實例:

/*** Animal,動物類*/public class Animal{ ...}

這里需要注意的是,在 /** 和 */ 之間的其他行注釋,* 是可有可無的,之所以加上,更大情況出于美觀的考慮,上面的實例寫成如下樣式也是合法的。

/**  Animal,動物類*/public class Animal{ ...}
  • 方法注釋

同樣的,方法注釋也就是針對類中方法的注釋,它必須放在所描述的方法之前。而一般情況下,除開說明該方法的功能之外,我們經常使用如下標記來對方法進行注釋。

標記說明@param variable description用于介紹當前方法的參數,可以占據多行@return description用于描述當前方法的返回值,可以跨多行@throws class description用于表示該方法有可能拋出的異常。

以下就是一個方法注釋的實例:

/*** 求兩數之h* @param num1 加數1* @param num2 加數2@ return 兩數之和*/public int add(int num1, int num2){ return num1 + num2;}
  • 字段注釋

字段注釋顧名思義,也就是對于類中字段的說明,用于描述字段的含義,以下是一個字段注釋的例子。

public class Cunyu{ /** * 公眾號 */    public String wePublic;}

當然,如果你不喜歡把一個字段的注釋分成多行的話,也可以寫成以下格式。

public class Cunyu{ /**公眾號*/    public String wePublic;}

兩種方式都是可以的,也沒有優劣之分,可以根據自己的風格來選擇。但是在 IntelliJ IDEA 等 IDE 中,如果對代碼進行格式化,IDEA 會將第二種方式格式化成第一種方式,這一點需要注意。

2、如何提取文檔注釋

假設有以下一段代碼,我們需要生成關于代碼的文檔說明。那么就可以使用 JDK 中所提供的 javadoc 命令來提取代碼的文檔注釋。

/*** 第一個 Java 程序* 這是初學者基本都會寫的一個程序* @author 村雨遙* @version 1.0*/public class HelloWorld {    /**    * 主函數:程序入口    * @param args 主函數參數列表    */ public static void main(String[] args){     System.out.println("Hello World!");    }}

然后利用以下命令就可以生成我們的文檔注釋。

javadoc -d helloworld -author -version -encoding UTF-8 HelloWorld.java

以上命令的意思就是,對名為 HelloWorld.java 的提取其中的文檔注釋,并將輸出的文件放在 helloworld 文件夾下,并且在文檔中包含程序作者和版本,編碼方式為 UTF-8

生成的文件列表詳情見下圖,打開其中的 index.html 就可以查看提取的文檔注釋。

jar 文件的創建

其實關于這個,我在之前的文章也寫過。不過我是利用 IntelliJ IDEA 來對進行代碼的打包,如果感興趣,可以點擊下方傳送門去看看。

如何利用 IntelliJ IDEA 創建 Java 入門應用[1]。

不過那是借助工具來生成的,今天我們來看看如何利用 JDK 所提供的命令行工具,來創建一個能打印出 Hello World! 的 jar 包。

同樣的,我們仍然是需要先準備一個能輸出 Hello World! 的 Java 源代碼,命名為 HelloWorld.java

public class HelloWorld { public static void main(String[] args){     System.out.println("Hello World!");    }}

接著,利用 javac 命令對該文件進行編譯,然后會生成 HelloWorld.class 字節碼文件。

javac HelloWorld.java

然后,利用 jar 命令來對生成的字節碼文件進行打包。

jar -cvf hello.jar HelloWorld.class

其中 c 表示創建一個新 jar 包,v 表示創建過程中打印創建過程中的信息,f 則表示對新生成的 jar 命名。

最后,利用以下命令來運行 jar 包。

java -jar hello.jar

不過并不會順利出現我們想要的結果,此時會報錯 hello.jar 中沒有主清單屬性。這是因為我們還沒有在 MENIFEST.MF 文件中添加 Main-Class 屬性。

用壓縮軟件打開剛創建的 hello.jar,里邊除了 HelloWorld.class 文件之外,還會多一個 META-INF 文件夾,里邊還有一個 MENIFEST.MF 文件,此時我們只需要用編輯器打開該文件,然后在文件中加入以下代碼。(記得添加之后要保證整個文件最后保留一行空行)。

Main-Class: HelloWorld

添加完成之后,再次運行 java -jar hello.jar ,就可以成功在控制臺打印 Hello World! 了。

參考資料

[1]如何利用 IntelliJ IDEA 創建 Java 入門應用: https://cunyu1943.github.io/JavaPark/dev-tools/idea/java-quick-start-with-idea。

責任編輯:姜華 來源: 今日頭條
相關推薦

2018-07-03 08:48:48

對象存儲塊存儲

2018-06-07 13:17:12

契約測試單元測試API測試

2023-09-22 17:36:37

2021-01-28 22:31:33

分組密碼算法

2020-05-22 08:16:07

PONGPONXG-PON

2023-09-29 08:58:38

2019-08-29 09:30:20

Java泛型構造器

2021-07-08 11:22:55

Java異常處理

2020-12-11 11:11:44

原子類JavaCAS

2020-08-12 08:34:16

開發安全We

2021-01-01 09:01:05

前端組件化設計

2022-11-26 00:00:06

裝飾者模式Component

2020-06-28 09:30:37

Linux內存操作系統

2022-10-08 11:33:56

邊緣計算云計算

2018-01-10 14:13:04

測試矩陣API測試

2019-12-17 10:06:18

CDMA高通4G

2022-03-08 16:10:38

Redis事務機制

2022-03-29 09:56:21

游戲版本運營

2020-09-08 06:54:29

Java Gradle語言

2019-02-13 14:15:59

Linux版本Fedora
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜激情小视频 | 一区免费看 | 91精品国产91久久久久久丝袜 | 亚洲一二三区免费 | 国产xxxx在线 | 狠狠爱综合| 国精日本亚洲欧州国产中文久久 | 超碰97人人人人人蜜桃 | 国产欧美日韩一区二区三区在线观看 | 91久久久www播放日本观看 | 亚洲激情综合网 | 国产亚洲精品美女久久久久久久久久 | 日韩美女一区二区三区在线观看 | 欧美日韩不卡在线 | 天天久久 | 欧美日韩国产一区二区三区 | 成人免费视屏 | 国产精品欧美一区二区三区不卡 | 国产高清免费视频 | 免费激情网站 | 国产区精品视频 | 精品一区二区三区在线观看 | 成年人黄色一级片 | 欧美精品乱码99久久影院 | 久久免费高清视频 | 超碰520 | 国产成人福利 | 国产高清免费视频 | 欧美一区二区三区免费在线观看 | 精品免费在线 | 精品久久久久一区二区国产 | 国产精品一区二区三区四区 | 黄网站免费在线观看 | 精品国产黄a∨片高清在线 www.一级片 国产欧美日韩综合精品一区二区 | 精品久久久网站 | 暖暖日本在线视频 | 国内自拍视频在线观看 | 色一情一乱一伦一区二区三区 | 一区二区手机在线 | 综合九九| 国产视频久久久 |