java基础

什么是面向对象

面向对象是一种思想,万物皆对象,(OOP),Java是一个支持并发、基于类和面向对象面向计算机的编程语言,面向对象软件开发具有以下优点:

代码开发模块化,易于开发和维护。

代码复用性强。

增强代码的可靠性和灵活性。

增加代码的可读性。

面向对象的特征:封装、多态、继承、抽象。

①封装:给对象提供了隐藏内部特性和行为的能力。对象提供一些能被对象访问的方法来改变它的内部数据。在Java 中,有四种修饰符 default、public、private、protected。 每一种修饰符给其他的位于同一个包或者不同包和类赋予不同的访问权限。

封装的好处:

通过隐藏对象来保护对象内部的状态。

通过代码的可用性和维护性,因为对象的行为可以单独改变或者是扩展。

禁止对象之间的不良交互提高模块化。

例如:

public class Car {
    private String color;  // 私有属性,只能通过方法访问

    public String getColor() {  // 公有方法,用于获取颜色
        return color;
    }

    public void setColor(String color) {  // 公有方法,用于设置颜色
        this.color = color;
    }
}

②继承:给对象提供了从基类获取字段和方法的能力。提供了代码的复用性,也可以在不修改基类的情况下给现在类添加新特征。

例如:

public class Vehicle {
    public void run() {
        System.out.println("Vehicle is running...");
    }
}

public class Car extends Vehicle {  // Car类继承了Vehicle类
}

Car car = new Car();
car.run();  // 输出 "Vehicle is running..."

③多态:多态是编程语言给不同的底层数据类型做相同的接口展示的一种能力。一个多态类型上的操作。可以应用到其他类型的值上面。

子类对象可以替代父类对象,并在运行时动态决定调用哪个方法。例如

public class Vehicle {
    public void run() {
        System.out.println("Vehicle is running...");
    }
}

public class Car extends Vehicle {
    @Override
    public void run() {
        System.out.println("Car is running...");
    }
}

Vehicle vehicle = new Car();
vehicle.run();  // 输出 "Car is running..."

④抽象:抽象是把想法从具体的实例中抽离出来的步骤。因此,要根据他们的功能而不是实现细节来创建类。

Java支持创建只暴露接口而不包含方法实现的抽象的类。这种抽象技术的主要目的是把类的行为和实现细节分离开。

例如:

  abstract class Animal {
    abstract void makeSound();  // 抽象方法,没有具体的实现
}

class Dog extends Animal {
    @Override
    void makeSound() {  // 在子类中实现抽象方法
        System.out.println("The dog says: woof woof");
    }
}

Animal myDog = new Dog();
myDog.makeSound();  // 输出 "The dog says: woof woof"

待更……