溫馨提示×

Java面向?qū)ο缶幊倘绾螌崿F(xiàn)

小樊
82
2024-10-31 10:08:59
欄目: 編程語言

Java面向?qū)ο缶幊蹋∣OP)主要通過以下四個特性來實現(xiàn):

  1. 封裝(Encapsulation):封裝是將對象的狀態(tài)(數(shù)據(jù))和行為(方法)包裝在一個類中的過程。這樣可以隱藏類的內(nèi)部實現(xiàn)細節(jié),只暴露必要的接口給外部訪問。封裝可以通過使用訪問修飾符(如private、public、protected)來實現(xiàn)。
public class Person {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
  1. 繼承(Inheritance):繼承允許一個類繼承另一個類的屬性和方法。這樣可以復(fù)用代碼,減少重復(fù),并提高代碼的可維護性。繼承使用關(guān)鍵字extends來實現(xiàn)。
public class Student extends Person {
    private String school;

    public String getSchool() {
        return school;
    }

    public void setSchool(String school) {
        this.school = school;
    }
}
  1. 多態(tài)(Polymorphism):多態(tài)是指允許不同類的對象對同一消息作出響應(yīng)。這意味著可以使用相同的接口來表示不同類型的對象,從而提高代碼的靈活性和可擴展性。多態(tài)可以通過接口和抽象類來實現(xiàn)。
public interface Animal {
    void makeSound();
}

public class Dog implements Animal {
    @Override
    public void makeSound() {
        System.out.println("Woof!");
    }
}

public class Cat implements Animal {
    @Override
    public void makeSound() {
        System.out.println("Meow!");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal myAnimal = new Dog();
        myAnimal.makeSound(); // 輸出 "Woof!"

        myAnimal = new Cat();
        myAnimal.makeSound(); // 輸出 "Meow!"
    }
}
  1. 抽象(Abstraction):抽象是指隱藏復(fù)雜性,只展示給用戶最基本的功能。抽象可以通過抽象類來實現(xiàn),抽象類是不能被實例化的類,只能被其他類繼承。抽象類中可以包含抽象方法和非抽象方法。
public abstract class Shape {
    private double x;
    private double y;

    public Shape(double x, double y) {
        this.x = x;
        this.y = y;
    }

    public abstract double area();

    public abstract double perimeter();
}

public class Circle extends Shape {
    private double radius;

    public Circle(double x, double y, double radius) {
        super(x, y);
        this.radius = radius;
    }

    @Override
    public double area() {
        return Math.PI * radius * radius;
    }

    @Override
    public double perimeter() {
        return 2 * Math.PI * radius;
    }
}

public class Rectangle extends Shape {
    private double width;
    private double height;

    public Rectangle(double x, double y, double width, double height) {
        super(x, y);
        this.width = width;
        this.height = height;
    }

    @Override
    public double area() {
        return width * height;
    }

    @Override
    public double perimeter() {
        return 2 * (width + height);
    }
}

通過以上四個特性,Java面向?qū)ο缶幊炭梢詫崿F(xiàn)代碼的模塊化、復(fù)用、擴展和維護。

0