Java之面向对象编程(OOP)!

举报
喵手 发表于 2025/09/24 21:07:00 2025/09/24
【摘要】 开篇语哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛  今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。  我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,...

开篇语

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛

  今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。

  我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,希望以这种方式帮助到更多的初学者或者想入门的小伙伴们,同时也能对自己的技术进行沉淀,加以复盘,查缺补漏。

小伙伴们在批阅的过程中,如果觉得文章不错,欢迎点赞、收藏、关注哦。三连即是对作者我写作道路上最好的鼓励与支持!

前言

面向对象编程(OOP)是一种程序设计范式,它通过将数据和操作数据的方法封装在对象中,帮助程序员组织和管理代码。OOP使得代码更加模块化、可扩展和可维护。本文将详细探讨OOP的核心概念,包括类与对象、构造方法与方法重载、继承与多态、抽象类与接口、内部类与匿名类、以及方法重写与接口实现。

1. 类与对象

类是面向对象编程的基本构建块,是对象的模板或蓝图。类定义了对象的属性(成员变量)和行为(成员方法)。一个类可以创建多个对象,每个对象拥有类中定义的属性和方法。

对象

对象是类的实例,通过类的构造方法创建并且具有类定义的属性和方法。对象是程序中操作的核心,它表示现实世界中的实体。

示例:

class Car {
    String color;
    int speed;

    void accelerate() {
        speed += 10;
    }
}

public class Main {
    public static void main(String[] args) {
        Car myCar = new Car(); // 创建对象
        myCar.color = "Red";
        myCar.speed = 0;
        myCar.accelerate(); // 调用方法
        System.out.println("Car speed: " + myCar.speed);
    }
}

2. 构造方法与方法重载

构造方法

构造方法是用来初始化对象的特殊方法。它的名称与类名相同,并且没有返回值。构造方法在创建对象时自动调用。

示例:

class Calculator {
    // 构造方法
    Calculator() {
        System.out.println("Calculator created");
    }
}

方法重载

方法重载是指在同一个类中,多个方法可以具有相同的名称,但参数类型或参数数量不同。方法重载能够提高代码的可读性和灵活性。

示例:

class Calculator {
    int add(int a, int b) {
        return a + b;
    }

    double add(double a, double b) {
        return a + b;
    }
}

3. 继承与多态

继承

继承是一种“是一个”的关系,允许一个类从另一个类继承属性和方法。子类继承父类的成员,同时还可以添加新的成员或重写父类的方法。

多态

多态是指相同的操作作用于不同的对象时,能够表现出不同的行为。多态主要通过方法重载(编译时多态)和方法重写(运行时多态)来实现。

示例:

class Animal {
    void sound() {
        System.out.println("Animal makes a sound");
    }
}

class Dog extends Animal {
    @Override
    void sound() {
        System.out.println("Dog barks");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal myDog = new Dog(); // 父类引用指向子类对象
        myDog.sound(); // 输出: Dog barks
    }
}

4. 抽象类与接口

抽象类

抽象类是不能被实例化的类,它通常包含一个或多个抽象方法(没有实现的方法)。抽象类可以包含具体方法,供子类继承或重写。抽象类用于提供一个共同的模板,供子类实现。

接口

接口定义了类应当遵循的行为规范。接口中的方法没有具体实现,类通过implements关键字来实现接口,必须实现接口中的所有方法。

示例:

// 抽象类
abstract class Animal {
    abstract void sound(); // 抽象方法

    void sleep() { // 具体方法
        System.out.println("Animal is sleeping");
    }
}

// 接口
interface Shape {
    void draw(); // 接口方法
}

class Circle implements Shape {
    @Override
    public void draw() {
        System.out.println("Drawing Circle");
    }
}

5. 内部类与匿名类

内部类

内部类是定义在另一个类内部的类。它可以访问外部类的成员,包括私有成员。内部类分为成员内部类、静态内部类和局部内部类等。

示例:

class Outer {
    void display() {
        System.out.println("Outer class method");
    }

    class Inner {
        void display() {
            System.out.println("Inner class method");
        }
    }
}

匿名类

匿名类是一种没有名字的类,通常用于实现接口或继承类的快速实现。匿名类的定义没有构造方法,且只能有一个实例。

示例:

interface Greeting {
    void greet();
}

public class Main {
    public static void main(String[] args) {
        // 匿名类实现接口
        Greeting greeting = new Greeting() {
            @Override
            public void greet() {
                System.out.println("Hello from anonymous class");
            }
        };
        greeting.greet(); // 输出: Hello from anonymous class
    }
}

6. 方法重写与接口实现

方法重写

方法重写是子类重新定义从父类继承的方法,以改变或增强该方法的功能。方法重写时,子类方法必须具有与父类方法相同的签名(即方法名和参数列表相同)。

示例:

class Animal {
    void makeSound() {
        System.out.println("Animal makes a sound");
    }
}

class Dog extends Animal {
    @Override
    void makeSound() {
        System.out.println("Dog barks");
    }
}

接口实现

类通过实现接口来提供接口中声明的所有方法的具体实现。一个类可以实现多个接口,接口通过implements关键字来实现。

示例:

interface Animal {
    void sound();
}

interface AnimalActions {
    void eat();
}

class Dog implements Animal, AnimalActions {
    @Override
    public void sound() {
        System.out.println("Dog barks");
    }

    @Override
    public void eat() {
        System.out.println("Dog eats");
    }
}

总结

面向对象编程(OOP)通过类、对象、继承、抽象、接口等概念提供了一个强大的框架,帮助程序员构建高效、可维护和可扩展的代码。OOP的核心理念包括封装、继承、多态和抽象,它们相互结合,为软件开发提供了更好的设计思路和实践方法。通过理解并运用这些OOP概念,开发者可以创建更加结构化且易于维护的应用程序。

… …

文末

好啦,以上就是我这期的全部内容,如果有任何疑问,欢迎下方留言哦,咱们下期见。

… …

学习不分先后,知识不分多少;事无巨细,当以虚心求教;三人行,必有我师焉!!!

wished for you successed !!!


⭐️若喜欢我,就请关注我叭。

⭐️若对您有用,就请点赞叭。
⭐️若有疑问,就请评论留言告诉我叭。


版权声明:本文由作者原创,转载请注明出处,谢谢支持!

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。