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

Java 語言基礎核心概念總結:OOP、操作符、流程控制、類初始化、訪問控制、復用、多態、抽象類與接口

     編輯:Java 綜合教學

Java 語言基礎核心概念總結

一、面向對象程序設計(OOP)

類與對象:類是對一類事物的抽象定義(如「豬」),對象是具體實例(如「小白豬」)。對象引用(如變量 xiaoBai)指向堆內存中的對象。

public class Pig {
    private int height, age;
    void eat() { System.out.println("eat()"); }
    void sleep() { System.out.println("sleep()"); }
    public static void main(String[] args) {
        Pig xiaoBai = new Pig();
        Pig xiaoHei = new Pig();
        xiaoBai.eat(); xiaoHei.sleep();
        System.out.println(xiaoBai); // com.yq.Pig@74a14482
        System.out.println(xiaoHei); // com.yq.Pig@1540e19d
        System.out.println(xiaoBai == xiaoHei); // false
    }
}

== 比較規則:

  • 引用類型:比較堆地址是否相同
  • 基本類型:比較值是否相等
  • String 特殊:字面量進入常量池,new String() 則在堆創建新對象
String s1 = "java", s2 = "java"; // s1==s2 -> true
String str = new String("hello");
String str2 = "he" + new String("llo"); // str==str2 -> false,但 hashCode 相同

hashCode 相同不代表對象相同,String 的 hashCode 基於字符值計算。

二、操作符

  • 移位:<<(左移,低位補0),>>(右移,符號位擴展),>>>(無符號右移,高位補0)
  • 三元:exp ? val1 : val2,可嵌套
  • +:字符串連接
  • 強制類型轉換:(type),向下轉型需強轉
  • 逗號:僅用於 for 循環初始化/步進部分

三、流程控制

  • if-else、while、do-while、for、foreach、switch
  • if 不加大括號默認僅管轄下一條語句
  • else if 非關鍵字,實為 else { if ... }
  • for(;;) 等同 while(true)
  • foreach 適用於數組與實現 Iterable 的容器
for (int i : arr) System.out.print(i + " ");
for (String str : list) System.out.print(str + " ");
  • return:結束整個方法
  • break:結束當前層循環
  • continue:結束本次循環,進入下一次
  • switch 選擇因子需為可生成 int 的表達式(含 char)

四、類初始化

關鍵字

  • this:當前對象引用;構造器間調用需置首行
  • static:屬於類,不依賴實例;static 方法不可調用非靜態成員,無 this
  • final:方法不可覆蓋;參數引用不可變(引用對象可變);基本類型不可改變

默認初始化值

類成員自動初始化:數值 0、char '\0'、boolean false、引用 null。局部變量必須顯式初始化。

初始化順序

  1. 父類靜態字段/靜態塊
  2. 子類靜態字段/靜態塊
  3. 父類實例字段/實例塊
  4. 父類構造器
  5. 子類實例字段/實例塊
  6. 子類構造器
// 測試輸出驗證順序
Animal static -> Animal level:1
Pig static -> Pig level:2
Animal -> Animal constructor
2只眼睛
Pig -> Pig constructor
  • 靜態域僅初始化一次
  • 僅訪問靜態域不創建對象
  • 無無參構造器時子類必須 super(...) 顯式調用

可變參數

本質是編譯器自動封裝為數組:void test(String... args)

五、訪問控制權限

修飾符同類同包子類所有類
private✓✗✗✗
default✓✓✗✗
protected✓✓✓✗
public✓✓✓✓

類級別:一個文件最多一個 public 類,文件名須與之匹配。

六、復用類

  • 組合:在新類中包含現有對象(通常 private),複用功能而非接口
  • 繼承:隱式包含父類對象,保持接口形式,可擴展
  • 判斷標準:是否需要向上轉型?是則用繼承,否則組合更靈活

七、多態

通過動態綁定(後期綁定)實現:運行時根據對象實際類型調用方法。除 static/final/private 方法外,所有方法均為動態綁定。

public static void action(Animal anl) { anl.eat("蘋果"); }
action(new Pig());  // Pig eat():蘋果
action(new Cat());  // Cat eat():蘋果

新增動物類只需繼承 Animal,主程序無需修改,體現開閉原則。

八、抽象類與接口

  • 含抽象方法的類為抽象類
  • 接口定義方法簽名,默認 public abstract;字段默認 public static final
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved