白骑士的Java教学面向对象编程篇 3.1 类与对象

13 篇文章 0 订阅

        欢迎继续学习Java编程的进阶篇!在前面的基础篇中,我们了解了Java中的基本语法和数组的使用。现在,我们将深入探讨Java中的面向对象编程(OOP)。OOP是一种编程范式,通过类和对象来组织代码,使代码更加模块化和易于维护。OOP的核心概念包括类、对象、继承、封装、多态和抽象。在本章中,我们将从最基本的类与对象开始,逐步深入了解这些概念的具体应用和实现。

什么是类和对象

  • 类(Class):类是对现实世界中一类事物的抽象,是创建对象的模板。类定义了对象的属性和行为。
  • 对象(Object):对象是类的实例,具有类定义的属性和行为。

        类与对象的关系可以类比为蓝图和建筑,类是蓝图,对象是根据蓝图建造的具体建筑。

定义类

        在Java中,类通过‘class‘关键字定义。一个简单的类包含属性(成员变量)和方法(成员函数)。

        示例:

public class Person {
    // 属性
    String name;
    int age;

    // 方法
    void introduce() {
        System.out.println("My name is " + name + " and I am " + age + " years old.");
    }
}

创建对象

        创建对象使用‘new‘关键字,并调用类的构造方法。构造方法是一个特殊的方法,用于初始化对象。

        示例:

public class Main {
    public static void main(String[] args) {
        // 创建对象
        Person person1 = new Person();

        // 设置属性
        person1.name = "Alice";
        person1.age = 30;

        // 调用方法
        person1.introduce();
    }
}

        输出:

My name is Alice and I am 30 years old.

构造方法

        构造方法用于初始化对象,当使用‘new‘关键字创建对象时调用。构造方法的名称必须与类名相同,并且没有返回类型。

        示例:

public class Person {
    String name;
    int age;

    // 构造方法
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    void introduce() {
        System.out.println("My name is " + name + " and I am " + age + " years old.");
    }
}


public class Main {
    public static void main(String[] args) {
        // 创建对象并调用构造方法
        Person person1 = new Person("Alice", 30);
        person1.introduce();
    }
}

        输出:

My name is Alice and I am 30 years old.

this关键字

        ‘this‘关键字用于引用当前对象的实例变量和方法。在构造方法和方法中,可以使用‘this‘来区分成员变量和局部变量。

        示例:

public class Person {
    String name;
    int age;

    // 构造方法
    public Person(String name, int age) {
        this.name = name; // 使用this区分成员变量和局部变量
        this.age = age;
    }

    void introduce() {
        System.out.println("My name is " + this.name + " and I am " + this.age + " years old.");
    }
}

方法重载

        方法重载是指在同一个类中定义多个方法,这些方法具有相同的名称但参数不同(参数类型或数量不同)。

        示例:

public class Calculator {
    // 方法重载
    int add(int a, int b) {
        return a + b;
    }

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

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


public class Main {
    public static void main(String[] args) {
        Calculator calc = new Calculator();

        System.out.println(calc.add(5, 3)); // 输出 8
        System.out.println(calc.add(5.5, 3.3)); // 输出 8.8
        System.out.println(calc.add(1, 2, 3)); // 输出 6
    }
}

成员变量与局部变量

  • 成员变量:成员变量是在类中定义的变量,属于对象的一部分,可以在类的所有方法中访问。
  • 局部变量:局部变量是在方法中定义的变量,仅在方法内部有效。

        示例:

public class Person {
    // 成员变量
    String name;
    int age;

    void introduce() {
        // 局部变量
        String introduction = "My name is " + name + " and I am " + age + " years old.";
        System.out.println(introduction);
    }
}

类变量与实例变量

  • 实例变量:实例变量是属于对象的变量,每个对象都有自己的一份实例变量。
  • 类变量:类变量使用‘static‘关键字声明,属于类而不是对象,所有对象共享同一个类变量。

        示例:

public class Person {
    // 类变量
    static int population = 0;

    // 实例变量
    String name;
    int age;

    // 构造方法
    public Person(String name, int age) {
        this.name = name;
        this.age = age;

        population++; // 每创建一个对象,人口计数增加
    }

    void introduce() {
        System.out.println("My name is " + name + " and I am " + age + " years old.");
    }

    static void displayPopulation() {
        System.out.println("Population: " + population);
    }
}


public class Main {
    public static void main(String[] args) {
        Person person1 = new Person("Alice", 30);
        Person person2 = new Person("Bob", 25);

        person1.introduce();
        person2.introduce();

        Person.displayPopulation(); // 输出 Population: 2
    }
}

总结

        通过本篇博客,我们详细介绍了Java中的类与对象,包括类的定义、对象的创建、构造方法、‘this‘关键字、方法重载、成员变量与局部变量、类变量与实例变量。类与对象是面向对象编程的基础,掌握这些概念和技巧,你将能够编写更加结构化和模块化的代码。在接下来的学习中,我们将进一步探讨面向对象编程中的继承、封装、多态和抽象等高级特性,帮助你编写更具扩展性和可维护性的程序。希望你能在这段学习旅程中不断进步,享受编程的乐趣!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白骑士所长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值