Java之路---Day08

来源:https://www.cnblogs.com/hpcz190911/archive/2019/10/22/11723538.html
-Advertisement-
Play Games

2019-10-22-22:28:39 目錄 1.Static靜態類 2.Static記憶體圖 3.Static靜態代碼塊 4.Arrays類 5.Math類 Static靜態類 一旦使用static修飾成員方法,那麼它就成為了靜態方法,靜態方法不屬於對象,而是屬於類的 註意: 1.如果沒有stati ...


2019-10-22-22:28:39

目錄

  1.Static靜態類

  2.Static記憶體圖

  3.Static靜態代碼塊

  4.Arrays類

  5.Math類


Static靜態類

  一旦使用static修飾成員方法,那麼它就成為了靜態方法,靜態方法不屬於對象,而是屬於類的

  註意:

    1.如果沒有static關鍵字修飾,那麼必須首先創建對象,然後通過對象使用它

    2.如果有了static關鍵字修飾,那麼不需要創建對象,直接就能通過類名稱來使用它

  使用格式:

    靜態變數:類名稱.靜態變數

    靜態方法:類名稱.靜態方法

  註意事項:

    1.靜態不能直接訪問非靜態(先有靜態內容,後有非靜態內容)

    2.靜態方法當中不能用this(this代表當前對象,通過誰調用的方法,誰就是當前對象)

 

package demopra;

public class StaticText {
    public static void main(String[] args) {
        //首先創建對象
        MyClass mc = new MyClass();
        //然後才能使用沒有靜態static關鍵字的內容
        mc.method();

        //對於靜態方法來說,可以通過對象名調用,也可以通過類名稱調用
        mc.methodStatic();//正確,不推薦使用這種方法
        MyClass.methodStatic();//正確,推薦

        //對於本來當中的方法可以省略類名稱
        myMethod();
        StaticText.myMethod();//等效於myMethod();
    }

    public static void myMethod(){
        System.out.println("自己的方法");
    }
}

 

package demopra;

public class MyClass {
    private int num;//成員變數
    private static int numStatic;//靜態變數

    //成員方法
    public void method(){
        System.out.println("成員方法執行啦!!!");
        //成員方法可以訪問成員變數
        System.out.println(num);
        //成員方法可以訪問靜態變數
        System.out.println(numStatic);
    }

    //靜態方法
    public static void methodStatic(){
        System.out.println("靜態方法執行啦!!!");
        //靜態方法可以訪問靜態變數
        System.out.println(numStatic);
        //靜態方法不可以訪問非靜態變數[重點]
//        System.out.println(num);//Non-static field 'num' cannot be referenced from a static context
        //靜態方法中不能使用this關鍵字
//        System.out.println(this);//'demopra.MyClass.this" cannot be referenced from a static context
    }
}

Static記憶體圖

Static靜態代碼塊

  格式:

    public class 類名稱{

      static{

        靜態代碼塊內容

      }

    }

  特點:

    1.當第一次用到本類時,靜態代碼塊執行唯一的一次

    2.靜態內容總是優先於非靜態,所以靜態代碼塊比構造方法先執行

  典型用途:

    用來一次性對靜態變數進行賦值

Arrays類

  java.util.Arrays是一個與數組相關的工具類,裡面提供了大量靜態方法,用來實現數組常見的操作。
  public static string tostring(數組): 將參數數組變成字元串(按照預設格式,[元索1, 元素2,元索...])
  public stotic void sort(數組): 按照預設升序(從小到大)對數組的元素進行排序。
    備註:
      1.如果是數值,sort預設按照升序從小到大
      2.如果是字元串,sort預設按照字母升序
      3.如果是自定義的類型,那麼這個自定義的類需要有Comparable或者Comporator介面的支持。

package demopra;

import java.util.Arrays;

public class ArraysTest {
    public static void main(String[] args) {
        //定義一個int數組
        int[] arr = {10,20,30};
        //將int數組按照預設格式變成字元串
        String arr1 = Arrays.toString(arr);
        System.out.println(arr1);//[10, 20, 30]

        int[] arr2 = {50,10,40};
        //按照預設大小進行升序
        Arrays.sort(arr2);
        System.out.println(Arrays.toString(arr2));//[10, 40, 50]

        String[] arr3 = {"c","b","a"};
        Arrays.sort(arr3);
        System.out.println(Arrays.toString(arr3));//[a, b, c]
    }
}

Math類

 

  java.util.Math類是數學相關的工具類,裡面提供了大量的靜態方法,完成與數學運算相關的操作。
  public. static double abs(double num); 獲取絕對值。有多種重載。
  public static double ceil(double num);向上取整。
  public static double floor(double num);向下取整。
  public static long round(double num): 四捨五入。
  Math. PI代表近似的圓周李常量(double) 。

ckage demopra;

public class MathTest {
    public static void main(String[] args) {
        //獲取絕對值
        System.out.println(Math.abs(-23));//23

        //向上取整
        System.out.println(Math.ceil(3.1));//4.0

        //向下取整
        System.out.println(Math.floor(3.9));//3.0

        //四捨五入
        System.out.println(Math.round(3.15));//3

    }
}
package demopra;
/*
    要求:計算對-8.8~11.1數值取絕對值(int)後,大於5或者小於1.1的值的個數
*/
public class MathTest {
    public static void main(String[] args) {
        //符合要求的數量
        int count = 0;
        double max = 11.1;//定義初始值max
        double min = -8.8;//定義初始值min
        for (int i = (int)min; i < max; i++) {
            int abs = Math.abs(i);//取絕對值
            if (abs>5 || abs < 1.1){//取值要求
                System.out.print(i+" ");//-8 -7 -6 -1 0 1 6 7 8 9 10 11 
                count++;
            }
        }
        System.out.println("總共有:"+count);//總共有:12
    }
}

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 問題,對象屬性名排序,如: var data = { A:[], D:[], B:{} } 調整為=》 var data = { A:[], B:[], D:{} } 方法一: for,in,把fieldname保存到一個數組中,sort,然後根據sort順序把原對象的值保存到新對象中 方法二-ES ...
  • 騰訊搶金達人活動中使用了node同構直出渲染方案,那麼其中遇到了什麼問題,最終帶來了什麼收益呢? ...
  • 本篇文章將詳細介紹 Optional 類,以及如何用它消除代碼中的 null 檢查。在開始之前首先來看下什麼是 NPE,以及在 Java 8 之前是如何處理 NPE 問題的。 空指針異常(NullPointException,簡稱 NPE)可以說是所有 Java 程式員都遇到過的一個異常,雖然 Ja ...
  • 中介者模式: 定義一個對象來封裝一系列對象的交互. 中介者的四個角色: 1.Mediator(抽象中介者) 2.ConcreteMediator(具體中介者) 3.Colleague(抽象同事類) 4.ConcreteColleague(具體同事類) 舉例說明: 例如公司開發一套CRM系統,該系統負 ...
  • 移動互聯網技術改變了旅游的世界,這個領域過去沉重的信息分銷成本被大大降低。用戶與服務供應商之間、用戶與用戶之間的溝通路徑逐漸打通,溝通的場景也在不斷擴展。這促使所有的移動應用開發者都要從用戶視角出發,更好地滿足用戶需求。 ...
  • java代寫_java代做_java作業代做_java畢業設計代做 認識我們 本店創始於電子科技大學的電腦專業研究生,現在所有技術員工都是北航、北郵等國內一流大學的研究生和博士生。英文水平高,中英文文檔皆可按您的需求完成。選擇我們店鋪正放心地保證。完善地跟蹤交易及收貨流程,用最誠摯的誠意對待每一位 ...
  • 一、XML文件註意點 1.內容中不能出現尖括弧 例如:下麵是不合法的 解決方案:使用實體引用<EntityReference>,可以理解為轉義 2.另一種方法:把含有保留字元的部分放在CDATA塊內部,CDATA塊把內部信息視為不需要轉義 3.常用的需要轉義的保留字元和對應的實體應用 &:&amp; ...
  • 一、關於Spring Cache 緩存在現在的應用中越來越重要, Spring從3.1開始定義了org.springframework.cache.Cache和org.springframework.cache.CacheManager介面來統一不同的緩存技術,並支持使用JCache(JSR 107 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...