Java面向对象入门(类与对象,新手秒懂)

5 阅读4分钟

Java是纯面向对象的编程语言,“类与对象”是Java的核心思想,也是新手入门的第一道坎。很多新手分不清“类”和“对象”的关系,看不懂代码结构,导致后续学习接口、继承时更吃力。

今天用“现实世界类比+极简代码”,把Java的类与对象拆解清楚,新手看完就能理解“什么是类、什么是对象、如何使用”,轻松跨过面向对象的第一道门槛~

一、核心概念:类与对象的关系(类比理解)

先举个现实中的例子:

  • :“手机”这个抽象概念(包含手机的属性:品牌、型号、价格;行为:打电话、发短信);

  • 对象:你手上的iPhone 15(具体的一个手机,有明确的品牌、型号、价格,能执行打电话、发短信的行为)。

总结:

  • 类 = 抽象的模板(定义属性和行为);

  • 对象 = 模板的具体实例(拥有模板的属性和行为);

  • 面向对象编程 = 先定义“类”这个模板,再创建“对象”来使用。

二、第一步:定义类(创建模板)

1. 类的语法结构


public class 类名 {
    // 1. 成员变量(属性):描述类的特征
    数据类型 变量名;
    
    // 2. 成员方法(行为):描述类的功能
    public 返回值类型 方法名(参数列表) {
        方法体;
        return 返回值; // 无返回值则写void,省略return
    }
}
  • 类名:首字母大写,见名知意(如Phone、Person);

  • 成员变量:定义在类里、方法外,无需初始化(有默认值);

  • 成员方法:和之前学的普通方法类似,去掉static(新手先记这个规则)。

2. 示例:定义Phone类


// 定义手机类(模板)
public class Phone {
    // 成员变量(属性)
    String brand; // 品牌
    String model; // 型号
    double price; // 价格
    
    // 成员方法(行为1:打电话)
    public void call(String name) {
        System.out.println("用" + brand + "手机给" + name + "打电话");
    }
    
    // 成员方法(行为2:发短信)
    public void sendMessage(String content) {
        System.out.println("发送短信:" + content);
    }
}

三、第二步:创建对象(实例化模板)

定义完类后,需要创建对象才能使用类的属性和方法,语法:


类名 对象名 = new 类名();

示例:创建Phone对象并使用


public class TestPhone {
    public static void main(String[] args) {
        // 1. 创建对象(实例化Phone类)
        Phone myPhone = new Phone();
        
        // 2. 给对象的属性赋值(设置具体的特征)
        myPhone.brand = "苹果";
        myPhone.model = "iPhone 15";
        myPhone.price = 5999.0;
        
        // 3. 访问对象的属性(查看特征)
        System.out.println("手机品牌:" + myPhone.brand);
        System.out.println("手机型号:" + myPhone.model);
        System.out.println("手机价格:" + myPhone.price);
        
        // 4. 调用对象的方法(执行行为)
        myPhone.call("张三"); // 输出:用苹果手机给张三打电话
        myPhone.sendMessage("晚上一起吃饭"); // 输出:发送短信:晚上一起吃饭
        
        // 5. 可创建多个对象(多个具体的手机)
        Phone yourPhone = new Phone();
        yourPhone.brand = "华为";
        yourPhone.model = "Mate 60";
        yourPhone.price = 6999.0;
        yourPhone.call("李四"); // 输出:用华为手机给李四打电话
    }
}

四、进阶:构造方法(初始化对象属性)

新手发现:每次创建对象后,都要逐个赋值属性,太麻烦!

构造方法可以解决这个问题——创建对象时直接给属性赋值,简化代码。

1. 构造方法的规则

  • 方法名必须和类名完全一致(包括大小写);

  • 没有返回值类型(连void都不写);

  • 可以重载(多个构造方法,参数不同)。

2. 示例:给Phone类添加构造方法


public class Phone {
    // 成员变量
    String brand;
    String model;
    double price;
    
    // 无参构造方法(默认存在,写不写都有)
    public Phone() {
    }
    
    // 有参构造方法(创建对象时直接赋值)
    public Phone(String brand, String model, double price) {
        this.brand = brand; // this代表当前对象的属性
        this.model = model;
        this.price = price;
    }
    
    // 成员方法(不变)
    public void call(String name) {
        System.out.println("用" + brand + "手机给" + name + "打电话");
    }
    
    public void sendMessage(String content) {
        System.out.println("发送短信:" + content);
    }
}

3. 使用构造方法创建对象


public class TestPhone {
    public static void main(String[] args) {
        // 使用有参构造创建对象,直接赋值属性
        Phone myPhone = new Phone("苹果", "iPhone 15", 5999.0);
        myPhone.call("张三"); // 输出:用苹果手机给张三打电话
        
        Phone yourPhone = new Phone("华为", "Mate 60", 6999.0);
        System.out.println(yourPhone.model); // 输出:Mate 60
    }
}

五、新手避坑指南

  1. 类名首字母必须大写(如Phone,不是phone);

  2. 创建对象必须用new关键字(不能直接写Phone myPhone;,这样只是声明,未创建对象);

  3. this关键字:只能用在成员方法/构造方法中,代表当前对象;

  4. 无参构造:如果写了有参构造,无参构造会消失,需要手动写出来(否则创建无参对象会报错)。

最后

面向对象的核心是“类(模板)→ 对象(实例)”,新手先掌握“定义类-创建对象-调用属性/方法-构造方法”这四个步骤,后续再学习封装、继承、多态就会轻松很多。

可以尝试自己定义一个“Person”类(属性:姓名、年龄;行为:吃饭、跑步),创建对象并调用方法,巩固今天的知识点。