天天看點

《Java 核心技術 卷1》 筆記 第四章:類與對象(4) 靜态字段+靜态方法+工廠方法

4.4 靜态字段與靜态方法

4.4.1 靜态字段

靜态是啥意思呢?就是大家公有的。

比如公司共用一個洗手間,這個洗手間,公司每個人都可以用,但是并不獨立的屬于一個人,這種時候就可以考慮使用靜态字段。

假設公司再建一個洗手間,那就所有人又多了一個可以選擇的洗手間。

public class Employee {
    private int id;
    private static int toilent = 2;//公司共有2個洗手間
}      

靜态對象它屬于類,不屬于對象,加法邏輯:

public class Employee {
    private int id;
    private static int toilent = 2;//公司共有2個洗手間
    
    public static void main(String[] args){
        Employee.toilent++;
    }
}      

4.4.2 靜态常量

把 static 和 final 連用,可以建構靜态常量。比如公司的 統一社會信用代碼之類,就是固有而無法改變的,比如随意搜尋一下京東:

《Java 核心技術 卷1》 筆記 第四章:類與對象(4) 靜态字段+靜态方法+工廠方法

4.4.3 靜态方法

 通常,把常用的調參使用靜态常量配置,或者把工具類的方法使用靜态方法配置

public class Contants {
    public static final String wxKey = "2hoi24h234i";//各種平台key
    public static final String wxSecret = "1536474fdfg3";//各種平台secret
    
    //集合轉數組
    public static int[] getArr(List<Integer> items){
       return items.stream().mapToInt(o->o).toArray(); 
    }
}      

實際配置就是如上圖(編碼是杜撰的)。

1. 通常拿來做工具類,來配置公共常量,通常是對接各種短信平台、微信支付、支付寶支付、地圖之類的固定參數。

2. 可以為不同構造器提供外部名稱,防止因構造器太多不知道選用哪個。

 4.4.4 工廠方法

初始化時,通過靜态方法而非自帶構造。原因:

1. 靜态方法有名字,構造器隻能與類名相同,不能表達方法的含義

2. 隻需要有限個數對象的公共類,比如 Calendar 類。

public class Main {
    public static  void main(String[] args){
//        private static final int NUMBERSTYLE = 0;
//        private static final int CURRENCYSTYLE = 1;
//        private static final int PERCENTSTYLE = 2;
//        private static final int SCIENTIFICSTYLE = 3;
//        private static final int INTEGERSTYLE = 4;
        NumberFormat numberFormatter = NumberFormat.getNumberInstance();//數值
        NumberFormat currencyFormatter = NumberFormat.getCurrencyInstance();//金額符号+金額
        NumberFormat percentFormatter = NumberFormat.getPercentInstance();//百分比
//        NumberFormat scientificstypeFormatter = NumberFormat.getScientificInstance();//科學的,用不了
        NumberFormat integerFormatter = NumberFormat.getIntegerInstance();//取整
        double x = 0.1;
        System.out.println(numberFormatter.format(x));
        System.out.println(currencyFormatter.format(x));
        System.out.println(percentFormatter.format(x));
        System.out.println(integerFormatter.format(x));
    }
}      

4.4.5 main 方法

每個類都可以添加main方法,以執行 java x 的類方法進行執行。

《Java 核心技術 卷1》 筆記 第四章:類與對象(4) 靜态字段+靜态方法+工廠方法

   系列内容:

《Java 核心技術 卷1》 筆記:第一章 Java程式設計概述

《Java 核心技術 卷1》 筆記:第二章 Java程式設計環境

《Java 核心技術 卷1》 筆記:第三章 Java基本的程式設計結構(1)

《Java 核心技術 卷1》 筆記:第三章 Java基本的程式設計結構(2)

《Java 核心技術 卷1》 筆記:第三章 Java基本的程式設計結構(3)

《Java 核心技術 卷1》 筆記:第三章 Java基本的程式設計結構(4)

《Java 核心技術 卷1》 筆記:第三章 Java基本的程式設計結構(5)

《Java 核心技術 卷1》 筆記:第三章 Java基本的程式設計結構(6)

《Java 核心技術 卷1》 筆記:第三章 Java基本的程式設計結構(7)大數處理、數組、多元數組、控制台傳參

《Java 核心技術 卷1》 筆記 第四章:類與對象

《Java 核心技術 卷1》 筆記 第四章:類與對象(2) GregorianCalendar 與 類的基本組成

《Java 核心技術 卷1》 筆記 第四章:類與對象(3) 構造器全局私有方法

喜歡的話,點個贊吧~!平時做題,以及筆記内容将更新到公衆号。

關注公衆号,互相學習:钰娘娘知識彙總