📜  当我们说 x 语言是面向对象的编程语言时,我们的意思是什么 - Java (1)

📅  最后修改于: 2023-12-03 15:25:36.340000             🧑  作者: Mango

当我们说 Java 语言是面向对象的编程语言时,我们的意思是什么

Java 是一种面向对象的编程语言,这意味着它支持面向对象编程(Object-Oriented Programming)思想和方法。在面向对象编程中,程序的重点是类和对象。Java 通过类和对象实现封装,继承和多态等面向对象特性。

封装

封装是保证对象数据安全和实现信息隐藏的机制。在 Java 中,封装通过访问控制修饰符(public,private,protected)来实现。类中的变量可以被封装在 private,protected 和 public 修饰的方法中,在类的外部只能通过方法来访问变量。这样可以保护数据的安全性,避免被误修改。

示例代码:

public class Student{
    private String name;
    private int age;
    
    public String getName(){
        return this.name;
    }
    
    public void setName(String name){
        this.name = name;
    }
    // ...
}
继承

继承是面向对象编程中的重要概念之一,可以通过复用现有类的行为(属性和方法)来实现更好的代码复用。在 Java 中,使用关键字 extends 来实现继承。子类会自动继承父类的属性和方法,并且可以重写父类方法,实现多态。

示例代码:

public class Person{
    private String name;
    private int age;
    
    public String getName(){
        return this.name;
    }
    
    public void setName(String name){
        this.name = name;
    }
    
    public int getAge(){
        return this.age;
    }
    
    public void setAge(int age){
        this.age = age;
    }
    
    //...
}

public class Student extends Person{
    private String stuCode;
    
    public String getStuCode(){
        return this.stuCode;
    }
    
    public void setStuCode(String stuCode){
        this.stuCode = stuCode;
    }
    
    //...
}
多态

多态是面向对象编程的重要特性之一,指一个对象在不同情况下表现出不同的行为。在 Java 中,通过继承和接口的特性实现多态。可以通过同一个父类或者接口通过不同的子类或者实现类实现多种不同的行为表现。

示例代码:

public interface Animal{
    public void eat();
}

public class Dog implements Animal{
    public void eat(){
        System.out.println("Dog eats meat.");
    }
}

public class Cat implements Animal{
    public void eat(){
        System.out.println("Cat eats fish.");
    }
}

public class Test{
    public static void main(String[] args){
        Animal animal1 = new Dog();
        Animal animal2 = new Cat();
        
        animal1.eat(); // 输出 Dog eats meat.
        animal2.eat(); // 输出 Cat eats fish.
    }
}

以上介绍了面向对象编程中的封装、继承和多态三个重要特性在 Java 中的实现方式,这些特性使得 Java 可以更好地应对复杂的编程需求。