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

Java 物件導向核心:類與物件完整教學指南

     編輯:Java 綜合教學

物件導向基礎概念

Java 作為物件導向語言,支援以下核心特性:

  • 多型
  • 繼承
  • 封裝
  • 抽象
  • 類
  • 物件
  • 實例
  • 方法
  • 訊息傳遞

物件與類的關係

概念定義例子
物件類的實例,擁有狀態(屬性)與行為(方法)一隻狗:顏色、名字、品種(狀態);搖尾巴、叫、吃(行為)
類建立物件的藍圖/模板,描述一類物件的共同結構與行為Dog 類定義了所有狗共有的屬性與方法

Java 類的結構

public class Dog {
    // 成員變數(屬性)
    String breed;
    int age;
    String color;

    // 方法(行為)
    void barking() { }
    void hungry() { }
    void sleeping() { }
}

變數類型分類

  • 區域變數:方法、建構子、區塊內宣告,方法結束自動銷毀
  • 成員變數(實例變數):類中方法外宣告,建立物件時實例化,可被類內方法/建構子存取
  • 類變數(靜態變數):以 static 宣告,屬於類而非實例,共享單一副本

建構子

  • 名稱必須與類相同
  • 無回傳型別
  • 可多載(參數不同)
  • 未顯式定義時,編譯器提供無參數預設建構子
  • new 關鍵字建立物件時必須呼叫建構子
public class Puppy {
    public Puppy() { }                          // 無參數建構子
    public Puppy(String name) {                 // 含參數建構子
        System.out.println("Passed Name is: " + name);
    }
}

建立物件三步驟

  1. 宣告:Puppy myPuppy;(宣告型別與變數名)
  2. 實例化:new Puppy("tommy")(配置記憶體)
  3. 初始化:呼叫建構子設定初始狀態
public class Puppy {
    public Puppy(String name) {
        System.out.println("Passed Name is: " + name);
    }
    public static void main(String[] args) {
        Puppy myPuppy = new Puppy("tommy"); // 宣告+實例化+初始化
    }
}
// 輸出:Passed Name is: tommy

存取實例成員

// 存取變數
objectReference.variableName;
// 呼叫方法
objectReference.methodName();
public class Puppy {
    int puppyAge;
    public Puppy(String name) {
        System.out.println("Passed Name is: " + name);
    }
    public void setAge(int age) { puppyAge = age; }
    public int getAge() {
        System.out.println("Puppy's age is: " + puppyAge);
        return puppyAge;
    }
    public static void main(String[] args) {
        Puppy myPuppy = new Puppy("tommy");
        myPuppy.setAge(2);
        myPuppy.getAge();
        System.out.println("Variable Value: " + myPuppy.puppyAge);
    }
}
// 輸出:
// Passed Name is: tommy
// Puppy's age is: 2
// Variable Value: 2

原始檔宣告規則

  • 一個 .java 檔案僅能有一個 public 類別
  • 可包含多個非 public 類別
  • 檔名必須與 public 類別名相同(如 Employee.java)
  • package 陳述句必須在檔案第一行(若存在)
  • import 陳述句置於 package 之後、類別定義之前
  • import/package 對檔案內所有類別生效

完整範例:Employee 與 EmployeeTest

// Employee.java
import java.io.*;
public class Employee {
    String name; int age; String designation; double salary;
    public Employee(String name) { this.name = name; }
    public void empAge(int empAge) { age = empAge; }
    public void empDesignation(String empDesig) { designation = empDesig; }
    public void empSalary(double empSalary) { salary = empSalary; }
    public void printEmployee() {
        System.out.println("Name: " + name);
        System.out.println("Age: " + age);
        System.out.println("Designation: " + designation);
        System.out.println("Salary: " + salary);
    }
}
// EmployeeTest.java
import java.io.*;
public class EmployeeTest {
    public static void main(String[] args) {
        Employee empOne = new Employee("James Smith");
        Employee empTwo = new Employee("Mary Anne");
        empOne.empAge(26);
        empOne.empDesignation("Senior Software Engineer");
        empOne.empSalary(1000);
        empOne.printEmployee();
        empTwo.empAge(21);
        empTwo.empDesignation("Software Engineer");
        empTwo.empSalary(500);
        empTwo.printEmployee();
    }
}

Java 套件與 Import

  • 套件:組織類別/介面,避免命名衝突(如 java.io、java.util)
  • Import:提供簡短路徑讓編譯器定位類別
  • import java.io.*; 匯入 java.io 套件下所有類別

原文連結:碼農教程

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved