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-tw/n/146175.html
微信掃一掃
支付寶掃一掃