Java對象是由其狀態和行為定義的。狀態表示對象的屬性,而行為表示對象的能力。這種封裝性使得Java程序員更容易開發和維護大型應用程序,其使用面向對象的開發方法代替了傳統的面向過程的方法。
一、對象的創建和使用
對象的創建過程非常簡單,只需要使用關鍵字「new」即可創建對象。使用對象也十分直觀,只需要使用對象名加上成員訪問操作符(dot)即可訪問其屬性和方法。
public class Car { private String brand; // 品牌 private String color; // 顏色 private int speed; // 速度 // 構造函數 public Car(String brand, String color) { this.brand = brand; this.color = color; this.speed = 0; } // 獲取品牌 public String getBrand() { return brand; } // 獲取顏色 public String getColor() { return color; } // 獲取速度 public int getSpeed() { return speed; } // 加速 public void speedUp(int speed) { this.speed += speed; } // 減速 public void slowDown(int speed) { this.speed -= speed; } } public class Main { public static void main(String[] args) { Car car1 = new Car("Toyota", "Red"); Car car2 = new Car("Honda", "Blue"); car1.speedUp(10); System.out.println(car1.getBrand() + " " + car1.getColor() + " " + car1.getSpeed()); car2.speedUp(20); System.out.println(car2.getBrand() + " " + car2.getColor() + " " + car2.getSpeed()); } }
上述代碼中,我們定義了一個Car類,其中包含了品牌、顏色和速度三個屬性,以及加速和減速方法。我們使用這個類創建了兩個不同的對象car1和car2,並分別使用speedUp方法將其速度增加10和20。
二、繼承
繼承是面向對象編程中的一種重要機制,允許創建一個類別,從已有類別繼承屬性和方法,並且在此基礎上添加新的屬性和方法。繼承可以大幅減少代碼量,同時也方便了程序員進行代碼復用和修改。
// 父類Person public class Person { protected String name; protected int age; public Person(String name, int age) { this.name = name; this.age = age; } public void sayHello() { System.out.println("Hello, my name is " + name + ", I'm " + age + " years old."); } } // 子類Student public class Student extends Person { protected String school; public Student(String name, int age, String school) { super(name, age); this.school = school; } public void study() { System.out.println("I'm studying at " + school + "."); } } public class Main { public static void main(String[] args) { Student student = new Student("Alice", 18, "Beijing University"); student.sayHello(); student.study(); } }
上述代碼中,我們定義了一個Person類和一個Student類。Student類繼承自Person類,繼承了其屬性和方法,並且在此基礎上添加了一個school屬性和一個study方法。
三、封裝
封裝是面向對象編程中的一個重要機制,原則是將類的實現細節隱藏在內部,只暴露必要的接口供外部使用。封裝可以提高安全性、降低耦合和提高復用率。
public class Account { private String name; private double balance; public void deposit(double amount) { balance += amount; } public void withdraw(double amount) { if (balance >= amount) { balance -= amount; } else { System.out.println("Insufficient balance!"); } } public double getBalance() { return balance; } } public class Main { public static void main(String[] args) { Account account = new Account(); account.deposit(1000); account.withdraw(500); System.out.println(account.getBalance()); } }
上述代碼中,我們定義了一個Account類,其中包含了一個私有的balance屬性和三個公有的方法deposit、withdraw和getBalance。我們使用deposit和withdraw方法來修改balance屬性,而getBalance方法則用來獲取balance屬性。由於balance屬性被定義成私有的,外部的程序無法直接訪問balance屬性,只能通過公有的方法來操作和獲取其值。
原創文章,作者:GBOE,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/146175.html