【Java 基础】08 面向对象

面向对象是一种程序设计范式,它以对象为中心,将数据和操作数据的方法组织在一起。

Java 正是一门面向对象的编程语言,它的设计理念强调代码的重用性、可维护性和可扩展性。

本文将简要介绍Java面向对象编程的基本概念和特性。

1. 对象和类

面向对象编程中,对象是程序中的基本单元。对象可以是现实世界中的实体,也可以是抽象的概念。

Java 中的类是用来把一组属性和行为组装在一起,类通过关键字 class 来定义。

java 复制代码
// 定义一个简单的类
class Car {
    // 定义了两个属性
    String brand;
    int year;
    // 定义了一个行为
    void run() {
        System.out.println("The car is running...");
    }
}

上述代码定义了一个 Car 类,具有品牌和年份属性,以及启动方法。

2. 构造方法

构造方法是一种特殊类型的方法,用于在创建对象时初始化对象的成员变量。

构造方法的名称与类的名称相同,并且没有返回类型。

在对象创建时,构造方法会被自动调用,用于执行对象的初始化工作。

java 复制代码
public class ClassName {
    // 构造方法
    public ClassName() {
        // 构造方法的内容
    }
}

构造方法分为 无参构造 和 有参构造,上例就是无参构造因为没有参数

下面再来看看有参构造,即有参数

java 复制代码
public class Car {
    String brand;
    int year;

    // 有参构造方法
    public Car(String brand, int year) {
        this.brand = brand;
        this.year = year;
    }
}

3.方法重载

方法重载是指在同一个类中可以定义多个同名的方法,但这些方法的参数列表必须不同(类型、顺序、数量)。

方法重载的目的是提高代码的灵活性,让同一个方法名可以根据不同的参数做不同的事情。

方法重载的规则:

  1. 方法名必须相同。

  2. 参数列表必须不同(类型、顺序、数量至少有一个不同)。

  3. 返回类型可以不同。

  4. 可以有不同的访问修饰符。

  5. 可以抛出不同的异常。

java 复制代码
public class Calculator {
    // 两个整数相加
    public int add(int a, int b) {
        return a + b;
    }

    // 三个整数相加
    public int add(int a, int b, int c) {
        return a + b + c;
    }

    // 两个浮点数相加
    public double add(double a, double b) {
        return a + b;
    }
}

在这个例子中,Calculator 类包含了多个名为 add 的方法,它们的参数列表分别是不同的。这就是方法重载的体现。

相关推荐
半桶水专家1 分钟前
父子组件通信详解
开发语言·前端·javascript
寻星探路8 分钟前
测试开发话题10---自动化测试常用函数(2)
java·前端·python
鸢尾掠地平14 分钟前
Python中常用内置函数上【含代码理解】
开发语言·python
api_1800790546026 分钟前
请求、认证与响应数据解析:1688 商品 API 接口深度探秘
java·大数据·开发语言·mysql·数据挖掘
陈果然DeepVersion27 分钟前
Java大厂面试真题:Spring Boot+Kafka+AI智能客服场景全流程解析(十二)
java·spring boot·ai·kafka·面试题·向量数据库·rag
yours_Gabriel28 分钟前
【设计模式】UML和设计原则
java·设计模式·uml
唐古乌梁海29 分钟前
【Java】JVM 内存区域划分
java·开发语言·jvm
低调小一33 分钟前
Android Gradle 的 compileOptions 与 Kotlin jvmTarget 全面理解(含案例)
android·开发语言·kotlin
陈果然DeepVersion33 分钟前
Java大厂面试真题:Spring Boot+Kafka+AI智能客服场景全流程解析(九)
java·人工智能·spring boot·微服务·kafka·面试题·rag
dllxhcjla38 分钟前
css第一天
java·前端·css