Java 类和对象

在 Java 的世界观里,存在一个核心哲学:"万物皆对象"。这表明,在 Java 环境下,你可以通过对象来描述现实中的各种事物。

作为一种坚定的面向对象编程语言,Java 把类与对象作为其主要的结构元素。具体而言,类是对一系列对象共有属性和行为的抽象描述,就像一份蓝图或者模板,指导着对象的构造过程。需要注意的是,这里所谓的"对象",并不是日常所指的人际关系中的"对象",而是"对象"在编程语言中的概念,即某个类的具体实现实例,它们独特的特征与动作构成了它们的个性。

Java 促使程序员利用对象来反映现实世界的各类实体。随着我们深入了解,我们将从现实世界的角度去探索 Java 语言中的类与对象,理解它们如何相互协作,以表达和解决实际问题。

现实世界

类的概念

在现实世界中,我们可以将 "人类" 视为一个类,类是一个抽象的概念,描述了具有相似特征和行为的一组对象。

  • 特征(属性):人类的属性可能包括姓名、年龄、性别等。
  • 行为:人类的行为可能包括说话、吃饭、睡觉等。

对象的概念

在现实世界中,每个人都是人类这个类的一个实例。

  • 特征(属性) :根据类中定义的属性,赋予每个具体的人不同的属性,每个人就是一个对象。例如,小明的属性包括姓名:小明、年龄:25 岁、性别:男;小红的属性包括姓名:小红、年龄:30 岁、性别:女。
  • 行为:每个人可以做出的行为就是类中所定义的行为。

类和对象的关系

在这个例子中:

  • 是人类的概念,描述了所有人共有的特征和行为。
  • 对象是实际的人,每个人是人类的一个具体实例,一个类可以有很多对象。

Java 中的类和对象

在 Java 中,类是用来描述对象的模板或蓝图,它定义了对象的属性和行为。通过类可以创建多个对象,这些对象共享类所定义的属性和行为。

类的实现

在给定的 Person 类中,我们描述了一个人的基本属性(姓名、年龄、性别)和一些常见行为(说话、进食、睡觉、庆祝生日)。在这段代码中:

  • 属性:nameagegender分别代表了人物的姓名、年龄和性别。这些属性被定义为私有(private),这意味着它们只能在Person类的内部(即当前类的方法)访问。
  • 构造方法:构造方法用于实例化对象时初始化对象的属性。Person 类中的构造方法接受姓名、年龄和性别,并将其赋值给对应的属性。
  • 方法:speakeatsleepcelebrateBirthdaygetNamegetAgegetGender 同样被称作行为或者方法。这些方法描述了对象可以执行的动作或者返回与对象相关的信息。
java 复制代码
public class Person {
    // 属性
    private String name;    // 姓名
    private int age;        // 年龄
    private String gender;  // 性别
    
    // 构造方法
    public Person(String name, int age, String gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }
    
    // 方法
    public void speak() { 
        System.out.println(name + "说:我是一名" + gender + "生"); 
    }
    
    public void eat(String food) { 
        // 允许指定吃的食物 
        System.out.println(name + "正在吃" + food); 
    }
    
    public void sleep() {
        // 睡觉的行为
        System.out.println(name + "正在睡觉");
    }
    
    /**
     * 生日
     */
    public void celebrateBirthday() { 
        this.age++;  // 年龄 + 1
        System.out.println(name + "过生日了,现在的年龄是:" + age); 
    }
    
    public String getName() { 
        return this.name;
    }
    
    public int getAge() { 
        return this.age;
    }
    
    public String getGender() { 
        return this.gender;
    }
}

对象的实现

CreatePersonObjectExample类的main方法中,我们创建了两个Person对象(xiaomingxiaohong)。这两个对象通过调用new关键字和Person类的构造方法被实例化。实例化后,我们调用了各个对象的不同方法,通过这些方法模拟了这些对象的日常行为。

  • 创建对象:通过 Person xiaoming = new Person("小明", 25, "男")Person xiaohong = new Person("小红", 30, "女") 创建了 xiaomingxiaohong 两个对象。
  • 调用对象的方法:通过 xiaoming.speak()xiaoming.eat("苹果") 以及 xiaohong.celebrateBirthday() 等方式调用了对象的方法,模拟了对象的行为和交互。
java 复制代码
public class CreatePersonObjectExample {
    public static void main(String[] args) {
        // 创建一个 xiaoming 对象
        Person xiaoming = new Person("小明", 25, "男");
        // 创建一个 xiaohong 对象
        Person xiaohong = new Person("小红", 30, "女");
        
        // 调用对象的方法
        xiaoming.speak();
        xiaoming.eat("苹果");
        
        
        // 生日前的年龄
        System.out.println(xiaohong.getName() + "今年 " + xiaohong.getAge() + "岁");
        // 调用生日庆祝方法 
        xiaohong.celebrateBirthday();
    }
}

程序运行结果:

java 复制代码
小明说:我是一名男生
小明正在吃苹果
小红今年 30岁
小红过生日了,现在的年龄是:31

要运行这个程序,需要将Person.javaCreatePersonObjectExample.java置于同一个文件夹中。之后,只需直接运行CreatePersonObjectExamplemain方法即可。如果在命令行中进行操作,只需要键入javac CreatePersonObjectExample.java。此时,javac会自动编译Person类,因为它是CreatePersonObjectExample所依赖的类。

这样,我们就创建了两个具体的人物实例,并且通过调用它们的方法来模拟这些人物的行为。这个示例是为了让初学者初步理解 Java 类和对象的概念。在后续的文章中,我们将深入讨论类和对象的实现细节,以及更高级的概念,这将帮助学习者更好地利用类和对象进行编程。

相关推荐
xlsw_26 分钟前
java全栈day20--Web后端实战(Mybatis基础2)
java·开发语言·mybatis
神仙别闹1 小时前
基于java的改良版超级玛丽小游戏
java
黄油饼卷咖喱鸡就味增汤拌孜然羊肉炒饭2 小时前
SpringBoot如何实现缓存预热?
java·spring boot·spring·缓存·程序员
暮湫2 小时前
泛型(2)
java
超爱吃士力架2 小时前
邀请逻辑
java·linux·后端
南宫生2 小时前
力扣-图论-17【算法学习day.67】
java·学习·算法·leetcode·图论
转码的小石2 小时前
12/21java基础
java
李小白662 小时前
Spring MVC(上)
java·spring·mvc
GoodStudyAndDayDayUp3 小时前
IDEA能够从mapper跳转到xml的插件
xml·java·intellij-idea
装不满的克莱因瓶3 小时前
【Redis经典面试题六】Redis的持久化机制是怎样的?
java·数据库·redis·持久化·aof·rdb