类(Class)
类是对象的模板或蓝图,用来描述对象的属性和行为。
动态与静态是同一张图像,最终效果也是相同
类的组成分别由:
-
属性(成员变量):描述对象的状态。
-
方法(成员方法):描述对象的行为。
-
构造函数:用于创建对象是初始化对象。
-
代码块:静态代码块或实力代码块。
-
内部类:定义在类内部的类。
类与对象的规则
-
命名规则:
-
类名:帕斯卡命名法(首字母大写),如
Person
、Car
。 -
方法名和变量名:驼峰命名法(首字母小写),如
getName
、age
。
-
-
成员变量:
-
定义在类内部,方法外部。
-
可以是基本类型或引用类型。
-
-
构造方法:
-
与类名同名,无返回类型。
-
可以重载(多个不同参数的构造方法)。
-
默认存在无参构造方法,但显式定义后默认失效。
-
-
访问控制:
-
使用
private
、protected
、public
控制成员的可访问性。 -
推荐将成员变量设为
private
,通过公共方法(getter/setter)访问。
-
对象(Object)
-
对象定义:对象是类的实例,具有类定义的属性和行为。
-
创建对象:使用
new
关键字调用构造方法(构造函数)创建对象。 -
访问成员:通过对象访问类的属性和方法(使用
.
操作符)。
类与对象的区别
类 | 对象 |
---|---|
抽象模板,不占用内存 | 具体实例,占用堆内存 |
定义属性与方法 | 存储具体属性值,执行方法逻辑 |
通过class 关键字声明 | 通过new 关键字实例化 |
逻辑实体,不可直接操作 | 物理实体,可通过引用操作 |
// 定义一个类:Student
public class Student {// 成员变量(属性)private String name; // 学生姓名private int age; // 学生年龄// 构造方法(用于初始化对象)public Student(String name, int age) {this.name = name;this.age = age;}// 成员方法(行为)public void study() {System.out.println(name + "正在学习...");}// 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;}
}
public class Main {public static void main(String[] args) {// 创建Student对象Student student1 = new Student("Alice", 20);Student student2 = new Student("Bob", 22);// 访问对象的属性和方法System.out.println(student1.getName() + "的年龄是:" + student1.getAge());student1.study();System.out.println(student2.getName() + "的年龄是:" + student2.getAge());student2.study();// 修改对象的属性student1.setAge(21);System.out.println(student1.getName() + "更新后的年龄是:" + student1.getAge());}
}
//匿名对象
public class Calculator {public int add(int a, int b) {return a + b;}
}public class Main {public static void main(String[] args) {// 直接使用匿名对象调用方法int result = new Calculator().add(3, 5);System.out.println(result); // 输出:8}
}
内存对象
对象储存在堆内存中,对象的引用变量储存在栈内存。
Person p1 = new Person("Alice", 25);
Person p2 = p1; // p2 和 p1 指向同一个对象
关键点总结
-
类的定义:
-
使用
class
关键字定义类。 -
类包含属性、方法、构造方法等。
-
-
对象的创建:
-
使用
new
关键字调用构造方法创建对象。 -
对象是类的实例,具有类定义的属性和行为。
-
-
访问控制:
-
private
:私有成员,只能在类内部访问。 -
public
:公有成员,可以在类外部访问。 -
protected
:受保护成员,可以在子类和同一包中访问。 -
默认(无修饰符):包内可见。
-
-
构造方法:
-
用于初始化对象。
-
如果没有显式定义构造方法,Java会提供一个默认的无参构造方法。
-
-
Getter和Setter:
-
用于访问和修改私有属性。
-
遵循封装原则,避免直接操作属性。
-