Java 基础练习(一):创建类并调用对象

📌 适合人群:Java 零基础入门

🛠 环境:JDK 8+,IDEA

📂 配套代码:新建普通 Java 项目即可,代码放在 src 目录下


一、练习目标

  • 学会创建一个类(Class),定义属性和方法
  • 学会在另一个类中创建对象并调用它的方法
  • 理解对象的关系

最终效果:程序运行后输出

java 复制代码
你好,我叫小明,今年20岁。

二、创建 Person 类

右键 srcNewJava Class,命名为 Person,代码如下:

java 复制代码
public class Person {
    // 1. 属性(成员变量)
    String name;
    int age;

    // 2. 构造方法:创建对象时初始化属性
    // 注意:方法名与类名相同,没有返回值类型
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // 3. 普通方法:自我介绍
    public void introduce() {
        System.out.println("你好,我叫" + name + ",今年" + age + "岁。");
    }

    // 4. 普通方法:过生日,年龄 +1
    public void haveBirthday() {
        age++;
        System.out.println("过生日了!我现在" + age + "岁了。");
    }
}

代码解析

部分 说明
String name; int age; 属性:描述对象"有什么"
public Person(...) 构造方法:对象出生时给它赋初值
this.name = name; this 指当前对象,区分成员变量和参数
public void introduce() 方法:描述对象"会做什么",void 表示没有返回值

三、创建 Main 类并调用

再新建一个 Main 类:

java 复制代码
public class Main {
    public static void main(String[] args) {
        // 1. 创建对象(实例化):new 关键字调用构造方法
        Person person = new Person("小明", 20);

        // 2. 调用对象的方法:对象名.方法名()
        person.introduce();
        person.haveBirthday();
        person.introduce();   // 年龄已经变了

        // 3. 可以创建多个对象,互不影响
        Person person2 = new Person("小红", 19);
        person2.introduce();
    }
}

四、运行与输出

点击 main 方法左侧绿色 ▶ 箭头运行:

复制代码
你好,我叫小明,今年20岁。
过生日了!我现在21岁了。
你好,我叫小明,今年21岁。
你好,我叫小红,今年19岁。

五、常见错误

1. 变量名重复

java 复制代码
Person person = new Person("小明", 20);
Person person = new Person("小红", 19);   // ❌ 报错:person 重复定义

同一方法内变量名不能重复 ,第二个改名为 person2 即可。

2. 类名与文件名不一致

public class Person 必须保存在 Person.java 中,大小写也要一致。

3. 构造方法写错

java 复制代码
public void Person(String name, int age) { }  // ❌ 多了 void,变成了普通方法
public Person(String name, int age) { }        // ✅ 构造方法没有返回值类型

六、知识点总结

  1. 类是图纸,对象是产品Person 是图纸,new Person(...) 造出来的才是具体的人
  2. 构造方法 :名字 = 类名,无返回值,只在 new 时执行一次
  3. 方法调用对象.方法()
  4. 每个对象独立person 过生日不影响 person2 的年龄

七、课后练习

  1. Person 增加 study(String subject) 方法,输出"xx正在学习xx"
  2. nameage 改成你自己的信息运行一遍
  3. 思考:age++age = age + 1 有什么区别?
相关推荐
想要入门的程序猿1 小时前
回调函数学习
java·网络·学习
zhangzeyuaaa1 小时前
Python requests:raise_for_status() 与 4xx/5xx 异常层次详解
开发语言·python
泡海椒2 小时前
动态代理核心原理:JQuick-Java接口规则自动生成机制解析
java·开发语言·python
shirsl2 小时前
算法 Day 2 滑动窗口 + 栈 / 单调栈
开发语言·python·算法
步行cgn2 小时前
Spring 启动报错:BeanFactory not initialized 的原因与解决
java·python·spring
菜鸟~noob2332 小时前
【电子战】第08篇:多普勒测向的工程实现与优化【含matlab代码】
开发语言·matlab
步行cgn2 小时前
Spring 报错:No bean class specified on bean definition 的原因与解决
java·后端·spring
菜鸟~noob2332 小时前
【电子战】第06篇:干涉仪与相位差测向【含matlab代码】
开发语言·matlab
老王爱玩车2 小时前
深入理解指针2
c语言·开发语言·学习