• 1、封装


    在Java中,封装(Encapsulation)是一种基本且重要的面向对象编程(OOP)概念,它指的是将对象的状态(属性)和行为(方法)捆绑在一起,形成一个独立的对象,并通过控制这些状态的访问权限来隐藏对象的细节。封装通过以下方式实现:

    1. 访问修饰符‌:Java提供了四种访问控制修饰符(privateprotectedpublic, 和默认(包访问权限)),这些修饰符可以用来控制类、变量、方法和构造器的访问级别。

    2. Getter和Setter方法‌:通常,我们会使用private修饰符来隐藏对象的属性,并通过public的getter和setter方法来控制对这些属性的访问和修改。

    示例

    下面是一个简单的Java类示例,展示了如何使用封装:

    {17098B4A-B481-4756-BE73-6FE085A700A8}.png

    封装的好处:

    1. 提高安全性‌:通过限制对成员变量的直接访问,可以防止外部代码随意修改对象的状态,从而提高代码的安全性。

    2. 提高代码的可维护性‌:封装使得你可以在不修改现有代码的情况下,通过修改访问器方法(getter和setter)来改变内部实现。

    3. 简化设计‌:封装使得你可以只暴露必要的接口,隐藏不必要的细节,从而使得类的设计更加清晰和简洁。

    4. 便于调试‌:封装使得你可以在不影响外部代码的情况下,单独测试和调试类的内部实现。

    通过以上方式,Java中的封装不仅有助于构建更安全、更易于维护和理解的代码,同时也增强了代码的模块化和复用性。



  • 2、继承

    在Java中,继承是一种面向对象编程的核心特性,它允许我们创建一个新类(称为子类或派生类)基于一个或多个已存在的类(称为父类或基类)。通过继承,子类可以继承父类的属性和方法,并且可以添加新的属性和方法,或者重写(override)父类的方法。这种机制促进了代码的重用和扩展。

    继承的基本语法

    在Java中,使用extends关键字来创建一个子类继承自一个父类。

    {62995D78-9BF7-454F-AF47-55A166037770}.png

    继承的特点

    1. 代码重用‌:子类可以继承父类的属性和方法,减少了代码的重复。

    2. 多态性‌:通过继承,可以创建不同类型的对象,这些对象可以通过同一个接口引用调用,增加了程序的灵活性。

    3. 扩展性‌:子类可以添加新的属性和方法,或者重写父类的方法以改变其功能。

    继承的限制

    1. 单一继承‌:Java不支持多重继承(一个子类继承多个父类),但是支持接口的多重实现。

    2. 访问控制‌:子类可以访问父类的public和protected成员,但不能访问private成员。

    3. 构造函数‌:子类的构造函数不会自动调用父类的构造函数,需要显式调用(使用super关键字)。

    示例

    {5FBC01E7-2935-4766-B30C-8BD36133EEC4}.png

    在这个例子中,Dog类继承了Animal类,因此Dog对象可以使用eat()方法。同时,Dog类还定义了它自己的bark()方法。这展示了如何在Java中使用继承来扩展类的功能


  • 3、多态

    Java 中的多态性(Polymorphism)是面向对象编程(OOP)的一个核心概念,它允许我们通过相同的接口以不同的方式处理不同类型的数据对象。多态性主要有两种形式:编译时多态(方法重载)和运行时多态(方法重写)。

    1. 编译时多态(方法重载)

    方法重载‌发生在编译时,即编译器根据方法名称和参数列表的不同来区分不同的方法。这是通过相同的类中具有相同名称但参数列表不同的方法来实现的。

    {F225DB84-AB45-47A7-B762-3A3913FF49A0}.png

    2. 运行时多态(方法重写)

    方法重写‌发生在运行时,即当子类继承父类时,子类可以提供父类方法的特定实现。这是通过子类覆盖父类的方法来实现的。

    {B693BE28-6926-4FC6-9985-3F215824D881}.png

    实现多态的关键点:

    • 继承‌:子类继承父类的属性和方法。

    • 方法重写‌:子类提供父类方法的特定实现。

    • 向上转型‌:父类的引用变量可以指向子类的对象。

    • 动态绑定‌:在运行时,根据对象的实际类型调用相应的方法。

    多态性使得程序更加灵活和可扩展,允许我们编写更加通用和可复用的代码。通过使用接口和抽象类,可以进一步增强多态性的应用,使得不同类型的对象能够以统一的方式被处理。例如:

    {B56D7F22-16D9-4DDE-A548-03D2AAF5CEB7}.png

    在这个例子中,Dog 和 Cat 类都实现了 Animal 接口,并提供了 eat 方法的具体实现。这样,无论 Animal 的引用指向 Dog 还是 Cat 的实例,都可以调用 eat 方法,表现出不同的行为,体现了多态性的优势。