Java 类和对象

类(Class)

类是创建对象的蓝图或模板。它定义了一组具有相同属性(变量)和行为(方法)的对象的结构和行为。类可以看作是一种抽象的"类型",它描述了一组对象共同的特征和功能。

类的定义

一个类一般包含以下几部分:

  • 类名 :要遵循大驼峰命名法(UpperCamelCase),如Person、Car。
  • 属性 :也称为字段或成员变量,用于存储对象的状态信息。属性通常使用访问修饰符(如private、protected、public)来控制其可见性。
  • 方法:也称为成员方法,用于执行操作或表示对象的行为。方法可以访问和修改对象的属性。
  • 构造方法:特殊的方法,用于在创建对象时初始化对象的状态。构造方法的名称必须与类名相同。

代码示例:

csharp 复制代码
public class Person {// 创建一个类
    // 属性(成员变量)
    private String name;
    private int age;
​
    // 无参构造方法
    public Person() {}
    // 构造方法
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
​
    // 方法(成员方法)
    public void sayHello() {
        System.out.println("你好,我的名字叫: " + name + " 今年 " + age + " 岁.");
    }
​
    // getter和setter方法 (用于获取和修改成员变量的值)
    public String getName() {
        return name;
    }
​
    public void setName(String name) {
        this.name = name;
    }
​
    public int getAge() {
        return age;
    }
​
    public void setAge(int age) {
        this.age = age;
    }
}

对象(Object)

对象是类的实例。 当你根据类的定义创建一个具体的实例时,就创建了一个对象。对象包含了类定义的属性和方法,每个对象都有其自己的属性值集合,这些值定义了对象的状态。

创建对象的格式:

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

调用成员的格式:

  • 对象名.成员变量;
  • 对象名.成员方法();

示例代码:

java 复制代码
public class TestPerson {
    public static void main(String[] args) {
​
        // 创建 Person 类的对象
        Person person = new Person();
        // 初始化赋值 (通过 set 方法)
        person.setName("林一");
        person.setAge(36);
        // 初始化赋值 (通过 get 方法)
        String name = person.getName();
        System.out.println("我叫 " + name + " 今年 " + person.getAge() + " 岁!");
​
        // 创建 Person 类的一个对象 , 并通过构造方法初始化赋值
        Person zhang = new Person("张三", 18);
        // 调用对象的成员方法
        zhang.sayHello();
    }
}

类和对象的关系

  • 类是抽象的,它只描述了"是什么"和"能做什么",但不占用具体的内存空间。
  • 对象则是类的实例化,它是实际存在的,占用内存空间,拥有类定义的所有属性,并可以执行类定义的所有方法。
  • 通过new关键字和类的构造方法可以创建类的实例(即对象)。
  • 每个对象都拥有自己独立的属性副本,因此即使基于同一个类创建的不同对象,它们各自的属性值也可以不同。
相关推荐
sunshine22 girl1 小时前
Java学习七 Java 项目实战2-注册业务
java·学习
省钱兄--zs2 小时前
北京24小时自助健身房系统软件开发实战:从架构设计到部署指南
java·数据仓库·spring boot·小程序·需求分析
youdexiang2 小时前
Android录音软件时间关键词检索功能分析
java·人工智能
sunshine22 girl3 小时前
Java学习七 Java 项目实战1-项目创建和主页面搭建
java·开发语言·学习
code2cat3 小时前
Java进阶篇之AtomicStampedReference:引用回到原值,版本戳仍能记住变化
java·cas·并发编程·aba
泡茶喝茶写代码5 小时前
A股量化数据工程:从 REST 接口到策略信号(第 8 篇):成长能力因子:营收与利润增速
java·python·股票数据api·股票数据api接口·股票量化数据api·股票量化数据接口·股票数据api数据
\光辉岁月/5 小时前
7.javase-面向对象
java·开发语言
weixin_531094696 小时前
heap_4内存管理
java·开发语言·算法
程序员南飞6 小时前
win系统安装minio
java·数据结构·算法
Escalating_xu6 小时前
【Python】使用库:标准库、第三方库、pip、项目实战与程序打包
java·python·pip