Java 类和对象

类(Class)

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

类的定义

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

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

代码示例:

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关键字和类的构造方法可以创建类的实例(即对象)。
  • 每个对象都拥有自己独立的属性副本,因此即使基于同一个类创建的不同对象,它们各自的属性值也可以不同。
相关推荐
weixin_4723394611 分钟前
高效处理大体积Excel文件的Java技术方案解析
java·开发语言·excel
小毛驴85038 分钟前
Linux 后台启动java jar 程序 nohup java -jar
java·linux·jar
DKPT1 小时前
Java桥接模式实现方式与测试方法
java·笔记·学习·设计模式·桥接模式
好奇的菜鸟3 小时前
如何在IntelliJ IDEA中设置数据库连接全局共享
java·数据库·intellij-idea
DuelCode4 小时前
Windows VMWare Centos Docker部署Springboot 应用实现文件上传返回文件http链接
java·spring boot·mysql·nginx·docker·centos·mybatis
优创学社24 小时前
基于springboot的社区生鲜团购系统
java·spring boot·后端
幽络源小助理4 小时前
SpringBoot基于Mysql的商业辅助决策系统设计与实现
java·vue.js·spring boot·后端·mysql·spring
猴哥源码4 小时前
基于Java+springboot 的车险理赔信息管理系统
java·spring boot
YuTaoShao5 小时前
【LeetCode 热题 100】48. 旋转图像——转置+水平翻转
java·算法·leetcode·职场和发展
Dcs5 小时前
超强推理不止“大”——手把手教你部署 Mistral Small 3.2 24B 大模型
java