首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 類與對象完整指南:結構、權限、static、參數傳遞、工廠方法

     編輯:Java 綜合教學

Java 類與對象完整指南:結構、權限、static、參數傳遞、工廠方法

類的標準結構

public class Book {
    // 成員變數 (屬性) - 建議 private + getter/setter
    private String name;
    private String price;

    // 無參構造器
    public Book() {}

    // 有參構造器
    public Book(String name, String price) {
        this.name = name;
        this.price = price;
    }

    // getter/setter
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public String getPrice() { return price; }
    public void setPrice(String price) { this.price = price; }
}

權限修飾符可見性

privatedefaultprotectedpublic
本類✓✓✓✓
同包✗✓✓✓
子類(異包)✗✗✓✓
其他包✗✗✗✓

static 關鍵字深度解析

  • 靜態變數:屬於類、記憶體僅一份、全體實例共享、ClassName.field 存取
  • 靜態方法:屬於類、ClassName.method() 呼叫、不可用 this、不可直接呼叫非靜態成員
  • 靜態常量:static final、命名慣例 MAX_SIZE、編譯期常量折疊
  • 靜態區塊:static { ... }、類載入時執行一次、初始化靜態資源

工廠方法模式實例

NumberFormat percent = NumberFormat.getPercentInstance(); // 20%
NumberFormat currency = NumberFormat.getCurrencyInstance(); // ¥0.20
double d = 0.2;
System.out.println(percent.format(d));
System.out.println(currency.format(d));

NumberFormat 靜態工廠方法根據需求返回不同格式化器實例,隱藏具體實現類。

方法參數傳遞:值傳遞鐵律

參數類型傳遞內容能否修改原值範例
基本型別值的副本否change(int x) 修改 x 不影響實參
引用型別引用的副本 (指向同一物件)可修改物件狀態
不可重新指向新物件
obj.setName() 生效
obj = new Obj() 不生效
public static void main(String[] args) {
    // 1. 基本型別
    int i = 2; changeValue(i); System.out.println(i); // 2
    
    // 2. 引用型別 - 修改狀態
    Book b = new Book(); b.setName("Hello");
    changeBookName(b); // 內部 b.setName("Hello,World")
    System.out.println(b.getName()); // Hello,World
    
    // 3. 引用型別 - 嘗試交換引用
    Book b1 = new Book("hello","11");
    Book b2 = new Book("world","22");
    switchBook(b1, b2); // 內部交換區域引用
    System.out.println(b1.getName()); // hello (未變)
    System.out.println(b2.getName()); // world (未變)
}

三大特性速查

  • 封裝:private 隱藏數據、public 方法暴露行為、this 區分同名變數
  • 繼承:extends、super 調用父類、@Override 覆寫、單繼承/多重繼承
  • 多態:父類引用指向子類物件、編譯看左邊/運行看右邊、動態綁定、向上/向下轉型
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved