天天看點

第4天 JavaDoc生成文檔&Java流程控制(第一節:使用者互動Scanner)

JavaDoc生成文檔

  1. javadoc指令是用來生成自己的API文檔

    參數資訊:

  • @author 作者名
  • @version 版本号
  • @since 指明需要最早使用的jdk版本
  • @param 參數名
  • @return 傳回情況
  • @throws 異常抛出情況
package com.kuang.base;

/**
 * @author
 * @version
 * @since
 */
public class Doc {
    String name;

    /**
     *
     * @param name
     * @return
     */
    public  String test(String name){      //在上面直接輸入/**  回車即可自動填寫資訊
        return name;
    }

    //老師通過指令行生成javadoc    javadoc              參數             Java 檔案
                              //javadoc -encoding UTF-8 -charset UTF-8 Doc.java
    //作業:學會用IDEA生成JavaDoc文檔     面向百度程式設計
    //基礎部分的一切知識,後面每天都會用!!!!!
}
           
  1. 官方的API文檔:百度搜尋jdk幫助文檔 選擇官方的網址,即可進入選擇自己的版本 8得到下面網址

    ​ https://docs.oracle.com/javase/8/docs/api/

3.用DOS 生成一個javadoc 在java檔案所在目錄打開cmd,輸入

​ javadoc -encoding UTF-8 -charset UTF-8 Doc.java

​ 打開index.html 即是他的首頁

  1. 用IDEA生成JavaDoc(引自:https://www.cnblogs.com/xiaoming0601/p/6657136.html)
  • IDEA 的 JavaDoc 生成功能在菜單 Tools->Generate JavaDoc 項裡面。
  • 點選上述菜單項後,會出現生成 JavaDoc 的對話框,一般的選項都很直覺,不必細說。但是要注意生成 JavaDoc 的源代碼對象的選擇,一般以子產品(Module)為主,必要時可以單獨選擇必要的 Java 源代碼檔案,不推薦以 PRoject 為 JavaDoc 生成的源範圍。
  • 裡面有一個 Locale 可選填項,表示的是需要生成的 JavaDoc 以何種語言版本展示,根據 javadoc.exe 的幫助說明,這其實對應的就是 javadoc.exe 的 -locale 參數,如果不填,預設可能是英文或者是目前作業系統的語言,既然是國人,建議在此填寫 zh_CN,這樣生成的 JavaDoc 就是中文版本的,當然指的是 JavaDoc 的架構中各種通用的固定顯示區域都是中文的。你自己編寫的注釋轉換的内容還是根據你注釋的内容來。
  • 還有一個“Other command line arguments:”可選填項,非常重要,是填寫直接向 javadoc.exe 傳遞的參數内容。因為有一些重要的設定,隻能通過直接參數形式向 javadoc.exe 傳遞。這裡必須要填寫如下參數:

    -encoding UTF-8 -charset UTF-8 -windowtitle "你的文檔在浏覽器視窗标題欄顯示的内容" -link http://docs.Oracle.com/javase/7/docs/api

  • 第一個參數 -encoding UTF-8 表示你的源代碼(含有符合 JavaDoc 标準的注釋)是基于 UTF-8 編碼的,以免處理過程中出現中文等非英語字元亂碼;第二個參數 -charset UTF-8 表示在處理并生成 JavaDoc 超文本時使用的字元集也是以 UTF-8 為編碼,目前所有浏覽器都支援 UTF-8,這樣最具有通用性,支援中文非常好;第三個參數 -windowtitle 表示生成的 JavaDoc 超文本在浏覽器中打開時,浏覽器視窗标題欄顯示的文字内容;第四個參數 -link 很重要,它表示你生成的 JavaDoc 中涉及到很多對其他外部 Java 類的引用,是使用全限定名稱還是帶有超連結的短名稱,舉個例子,我建立了一個方法 public void func(String arg),這個方法在生成 JavaDoc 時如果不指定 -link 參數,則 JavaDoc 中對該方法的表述就會自動變為 public void func(java.lang.String arg),因為 String 這個類對我自己實作的類來講就是外部引用的類,雖然它是 Java 标準庫的類。如果指定了 -link http://docs.oracle.com/javase/7/docs/api 參數,則 javadoc.exe 在生成 JavaDoc 時,會使用 String 這樣的短名稱而非全限定名稱 java.lang.String,同時自動為 String 短名稱生成一個超連結,指向官方 JavaSE 标準文檔 http://docs.oracle.com/javase/7/docs/api 中對 String 類的詳細文檔位址。-link 實質上是告訴 javadoc.exe 根據提供的外部引用類的 JavaDoc 位址去找一個叫 package-list 的文本檔案,在這個文本檔案中包含了所有外部引用類的全限定名稱,是以生成的新 JavaDoc 不必使用外部引用類的全限定名,隻需要使用短名稱,同時可以自動建立指向其外部引用 JavaDoc 中的詳細文檔超連結。每個 JavaDoc 都會在根目錄下有一個 package-list 檔案,包括我們自己生成的 JavaDoc。

  JavaDoc 生成完畢,即可在其根目錄下找到 index.html 檔案,打開它就可以看到我們自己的标準 JavaDoc API 文檔啦。

Java流程控制

  1. 使用者互動Scanner
    • 可以擷取使用者的輸入 java.until.Scanner 通過Scanner來擷取使用者的輸入
    • 基本文法: Scanner s = new Scanner(System.in)
    • 通過Scanner 類的next()與nextLine()方法擷取輸入的字元串,在讀取我們一般需要 使用hasNext()與hasnextLine()判斷是否還有輸入的資料
    • next()
        1. 一定要讀取到有效字元後才可以結束輸入
        2. 對輸入有效字元之前遇到的空白,next()方法會自動将其去掉
        3. 隻有輸入有效字元後才将其後面輸入的空白作為分隔符或者結束符
        4. next()不能得到帶有空格的字元串
        package com.kuang.scanner;
        
        import java.util.Scanner;
        
        public class Demo01 {
            public static void main(String[] args) {
                //建立一個掃描器對象,用于接受鍵盤資料
                Scanner scanner = new Scanner(System.in);
                System.out.println("使用next方式接收:");
        
                //判斷使用者有沒有輸入字元串
                if (scanner.hasNext()){
                    //使用next方式進行接收
                    String str = scanner.next(); //程式會等待使用者輸入完畢
                    System.out.println("輸入的内容為:" + str); //輸入hello world   輸出為hello
                }
                //凡是屬于IO流的類,如果不關閉會一直占用資源,要養成良好的習慣
                scanner.close();
            }
        }
                   
    • nextLine()
      • ​ 1.以Enter為結束符,也就是說next Line()方法傳回的是輸入回車之前所有的字元串。
      • 可以獲得空白
      package com.kuang.scanner;
      
      import java.util.Scanner;
      
      public class Demo02 {
          public static void main(String[] args) {
              //從鍵盤接收資料
              Scanner scanner = new Scanner(System.in);
      
              System.out.println("使用nextLine方式接收 :");
              //判斷是否還有輸入
              if (scanner.hasNextLine()){
                  String str = scanner.nextLine();
                  System.out.println("輸入的内容為 : " + str);   //輸入hello world  輸出hello world
              }
              scanner.close();
          }
      }
                 
package com.kuang.scanner;

import java.util.Scanner;

public class Demo05 {
    public static void main(String[] args) {
        //我們可以輸入多個數字,并求和與平均數,每輸入一個數字用回車确認,通過輸入非數字來結束并輸出執行結果
        Scanner scanner = new Scanner(System.in);
        //和
        double sum = 0;
        //計算輸入多少個數字
        int m = 0;
        System.out.println("請輸入你的資料:");
        //通過循環判斷是否還有資料輸入,并在裡面對每一次進行球和統計
        while (scanner.hasNextDouble()){
            double x =scanner.nextDouble();

            m = m+1;  //m++
            sum = sum + x;
            System.out.println("你輸入了第" + m + "個資料," + "目前結果為:" + sum);
        }

        System.out.println(m + "個數的和為: " + sum);
        System.out.println(m + "個數的平均數為:" + (sum/m));
        scanner.close();
    }
}
           
  1. 順序結構

從上到下 按順序進行

package com.kuang.struct;

public class ShuXuDemo {
    public static void main(String[] args) {
        System.out.println("hello1");
        System.out.println("hello2");
        System.out.println("hello3");
        System.out.println("hello4");
        System.out.println("hello5");
           
  1. 選擇結構
  • if單選擇結構:
package com.kuang.struct;

import java.util.Scanner;

public class IfDemo01 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("請輸入内容:");
        String s = scanner.nextLine();
        
        if (s.equals("Hello")){
            System.out.println(s);
        }
        System.out.println("End");
        scanner.close();
    }
}
           
  • if雙選擇結構:
package com.kuang.struct;

import java.util.Scanner;

public class IfDemo02 {
    public static void main(String[] args) {
        //考試大于60及格,小于60不及格
        Scanner scanner = new Scanner(System.in);
        System.out.println("請輸入你的分數:");
        double v = scanner.nextDouble();
        if (v >60){
            System.out.println("你的成績為:"+ v + "成績已及格");
         }else {
            System.out.println("你的成績為:"+ v + "很抱歉,你的成績未及格");
        }
        scanner.close();
    }
}
           
  • if多選擇結構:
package com.kuang.struct;

import java.util.Scanner;

public class IfDemo03 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("請輸入你的成績");
        double score = scanner.nextDouble();
        if (score==100){
            System.out.println("滿分");
        }else if (score<100 && score>=90){
            System.out.println("優秀");
        }else if (score<90 && score>=80){
            System.out.println("良");
        }else if (score<80 && score>=70){
            System.out.println("中");
        }else if (score<70 && score>=60){
            System.out.println("差");
        }else if (score<00 && score>=0){
            System.out.println("不及格");
        }else{
            System.out.println("輸入資料不合法!!,滿分為100分,請正确輸入!");
        }
        scanner.close();
    }
}
           
  • 嵌套的if結構

作業:查找1-100之間的數(1-50 50-100)

  • Switch多選擇結構
  • 多選擇結構還有一個實作方式就是switch case語句
  • switch case 語句是判斷一個變量與一系列值中某個值是否相等,,每一個值為一個分支
Switch(expression){
    case value:
    	//語句
    	break;//可選
    case value:
    	//語句
    	break;//可選
    //你可以有任意數量的case語句
    default://可選
    	//語句
}
           
  • switch 語句中的變量類型可以是:
    • byte short int 或者char
    • 從JavaSE7開始支援String類型了
    • 同時case标簽必須為字元串常量或者字面量

運作執行個體及java反編譯

package com.kuang.struct;

import java.util.Scanner;

public class SwitchDemo02 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("請輸入你的名字");
        String name = scanner.next();
        //JDK的新特性,表達式結果可以是字元串
        //字元串的本質還是數字
        //反編譯  Java..變為..class(位元組碼檔案) ----反編譯(用IDEA就可以實作)
        /**
         * IDEA反編譯方法:打開代碼out檔案夾姜class檔案考入對應代碼
         * java檔案夾即可用IDEA檢視,反編譯結束
         */
        switch (name){
            case "秦将":
                System.out.println("秦将");
                break;
            case "狂神":
                System.out.println("狂神");
                break;
            default:
                System.out.println("你幹啥呢?");
        }
    }
}