类是抽象模板,对象是具体实例;属性为静态特征、方法为动态行为;属性在类中声明为成员变量,方法声明为成员函数;对象通过new创建后拥有独立属性值并调用方法;static属性属类共享,非static方法须依附对象调用。

类与对象的划分,核心在于“抽象”和“具体”的关系:类是模板,对象是实例;属性和方法在类中定义,在对象中使用。
类中怎么定义属性和方法
属性是类的静态特征,用成员变量表示,写在类内部、方法外部;方法是类的动态行为,用成员函数表示,写在类内部、与属性并列。
- 属性声明格式:修饰符 数据类型 变量名 [= 初始值];(如
String name = "张三";) - 方法声明格式:修饰符 返回类型 方法名(参数列表) { 方法体; }(如
public void speak() { System.out.println("你好"); }) - 属性属于类的结构描述,不依赖对象存在;方法定义了该类所有对象共有的能力
对象怎么体现属性和方法
对象是类的实例,通过 new 类名() 创建后,才拥有独立的属性值和可调用的方法。
- 每个对象都有一份自己的属性副本,值可以不同(如两个
Person对象,name可分别是“李四”和“王五”) - 方法被调用时,操作的是当前对象的属性(
this.name默认隐含),体现“谁调用、谁执行、谁受影响” - 不能脱离对象直接使用非 static 方法;但属性若为 static,则属于类本身,所有对象共享
划分时的关键判断依据
想清楚一个问题:这个东西是“所有同类事物都有的”,还是“某个具体事物独有的”?
- 如果是共性特征或能力(如“人有姓名”“车能启动”),就放在类里作为属性或方法
- 如果是具体取值(如“张三的年龄是25”“这辆车的颜色是红色”),就由对象在运行时承载
- 类只负责规定“有哪些属性、能做什么事”,不保存实际数据;对象才真正持有数据并执行动作
常见误区提醒
初学者容易混淆类与对象的职责边界:
- 不要在类中给属性赋“业务专属值”(如
String name = "测试用户";),除非是通用默认值 - 不要把本该由对象完成的操作写成静态方法(如
static void printInfo()),除非它不依赖任何对象状态 - 属性命名要体现状态(如
isRunning、totalCount),方法命名要体现动作(如start()、calculate())
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











