Java类与对象:从定义到实例化,面向对象基础

什么是面向对象编程?

想象你要设计一个手机游戏,里面有“玩家”这个角色。每个玩家都有名字、等级、血量(属性),还能攻击、移动、升级(行为)。在Java中,“玩家”就是一个,而具体某个玩家(比如“小明”)就是这个类的一个对象。面向对象编程(OOP)的核心是把现实中的事物抽象成“类”,再通过“对象”来模拟和操作这些事物。

类:对象的“设计图纸”

类是对象的模板,规定了对象有什么属性(数据)和行为(方法)。比如定义一个Person类,用来描述“人”的特征:

class Person {
    // 成员变量(属性):描述对象的状态
    String name;  // 姓名
    int age;      // 年龄

    // 成员方法(行为):描述对象的功能
    void sayHello() {
        System.out.println("大家好,我叫" + name + ",今年" + age + "岁。");
    }
}
  • 成员变量nameage描述了“人”的基本信息(状态)。
  • 成员方法sayHello()描述了“人”的行为(功能)。

实例化对象:从“图纸”到“真实物品”

类只是设计图,要使用它,需要创建对象(实例化)。语法是:类名 对象名 = new 类名();

// 创建一个Person类的对象
Person person = new Person();
  • new Person():通过new关键字根据类的模板创建一个新对象。
  • person:变量名,用来指向这个对象(类似“指针”,后续通过它访问对象的属性和方法)。

访问对象的成员

创建对象后,用 . 操作符访问对象的成员变量和方法:

1. 给成员变量赋值

person.name = "小明";  // 设置name属性
person.age = 20;       // 设置age属性

2. 调用成员方法

person.sayHello();  // 输出:大家好,我叫小明,今年20岁。

构造方法:创建对象时初始化

如果想在创建对象时直接设置属性,可使用构造方法(与类名同名,无返回值):

class Person {
    String name;
    int age;

    // 无参构造方法(Java默认提供,若自定义则消失)
    public Person() {
        name = "默认名字";  // 初始化默认值
        age = 0;
    }

    // 带参构造方法:创建对象时直接赋值
    public Person(String name, int age) {
        this.name = name;  // this表示当前对象,避免参数名与成员变量名冲突
        this.age = age;
    }

    void sayHello() {
        System.out.println("大家好,我叫" + name + ",今年" + age + "岁。");
    }
}

使用构造方法创建对象:

// 用无参构造
Person p1 = new Person();
p1.sayHello();  // 输出:大家好,我叫默认名字,今年0岁。

// 用带参构造
Person p2 = new Person("小红", 18);
p2.sayHello();  // 输出:大家好,我叫小红,今年18岁。

完整示例:从类到对象的实战

class Person {
    String name;
    int age;

    // 无参构造
    public Person() {}

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

    void sayHello() {
        System.out.println("大家好,我叫" + name + ",今年" + age + "岁。");
    }
}

// 主类(程序入口)
public class Main {
    public static void main(String[] args) {
        // 创建对象
        Person p1 = new Person("小明", 20);
        Person p2 = new Person();

        // 调用方法
        p1.sayHello();  // 输出:大家好,我叫小明,今年20岁。
        p2.name = "小刚";
        p2.age = 22;
        p2.sayHello();  // 输出:大家好,我叫小刚,今年22岁。
    }
}

关键注意点

  1. 命名规范:类名首字母大写(如Person),成员变量和方法首字母小写(如namesayHello)。
  2. 默认值:成员变量不赋值时会有默认值(如int默认0String默认null)。
  3. 对象独立:每个对象的成员变量互不影响(如p1p2修改自己的name不会影响对方)。
  4. 封装建议:实际开发中,成员变量通常用private修饰(隐藏内部细节),通过getter/setter方法访问(如getName()获取名字)。

总结

类是“设计图”,对象是“真实物品”。通过new实例化对象,用.访问成员,构造方法初始化属性,就能完成Java面向对象的基础操作。掌握类与对象后,后续学习封装、继承、多态会更轻松!

小夜