大家好,这里是架构资源栈 !点击上方关注,添加"星标",一起学习大厂前沿架构!
学 Java 的时候,你一定听过"类"和"对象"这两个词。说实话,刚开始学的时候,很多人都懵:类是啥?对象又是啥?它俩到底有什么关系?
其实这俩词特别简单。类就像是一个图纸 ,而对象是按照这张图纸造出来的"实物"。
比如说,有一个"狗"的类,那"旺财"、"Tommy"这种具体的狗就是对象。
类 vs 对象,有啥区别?
类(Class) | 对象(Object) |
---|---|
是一种模板,用来描述对象 | 是类的一个具体实现 |
只是定义,不占内存 | 真正占内存,有数据 |
像是"设计图" | 像是按图纸造出的"产品" |
表达的是"共性" | 表达的是"个体" |
只写一次 | 可以创建很多个 |
比如:"Dog" 是类 | "Tommy"、"旺财" 是对象 |
是不是感觉理解多了点?那我们接着往下看。
什么是类?
在 Java 里,类就是一组代码的集合,它定义了某一类对象应该有什么属性(变量)和行为(方法)。
简单来说,你要描述一个"学生",那这个学生有名字、学号、有学习这个行为,那这些都可以写在类里。
类长啥样?
Java 里写类大概长这样:
java
public class Student {
int id;
String name;
void study() {
System.out.println("正在学习中...");
}
}
这个 Student
类就定义了两个属性 id
和 name
,还有一个方法 study()
。
类的结构图
一个类里可以包含这些东西:
- 成员变量(属性)
- 方法(行为)
- 构造器(初始化用的)
- 内部类
- 接口(Interface)
当然,刚开始掌握前两个就够用了。
写个小例子:新建类并打印默认值
java
class Student {
int id;
String n;
public static void main(String args[]) {
Student s1 = new Student();
System.out.println(s1.id); // 默认是 0
System.out.println(s1.n); // 默认是 null
}
}
输出:
csharp
0
null
看到没?Java 给没赋值的变量会设置默认值。
什么是对象?
说白了,对象就是按照类这张图纸造出来的"具体东西"。每个对象都能拥有自己的状态和行为。
比如你造了两只狗对象,虽然它们都是 Dog
类出来的,但名字、颜色、年龄都可以不一样。
对象=状态 + 行为
- 状态:通过属性来表示,比如名字、颜色、年龄
- 行为:通过方法来表示,比如"叫一声"、"跑起来"
来一个完整的对象示例
java
public class Dog {
String name;
String breed;
int age;
String color;
// 构造方法
public Dog(String name, String breed, int age, String color) {
this.name = name;
this.breed = breed;
this.age = age;
this.color = color;
}
public String toString() {
return "Name is: " + name + "\nBreed, age, and color are: " +
breed + "," + age + "," + color;
}
public static void main(String[] args) {
Dog tuffy = new Dog("tuffy", "papillon", 5, "white");
System.out.println(tuffy);
}
}
输出:
yaml
Name is: tuffy
Breed, age, and color are: papillon,5,white
是不是一目了然?我们创建了一个叫 Tuffy 的狗,然后打印了它的属性。
对象是怎么创建的?
在 Java 中,创建对象主要有 4 种方式,除了常见的 new
,还有些高级用法:
1. 用 new
关键字(最常见)
java
Student s = new Student();
新手最常用的方法,就是 new
一个对象。
2. 用反射(Reflection)
java
Class<?> c = Class.forName("Student");
Student s2 = (Student) c.getDeclaredConstructor().newInstance();
这个方法一般在框架中用得多,比如 Spring,它就是靠这个搞的。
3. 用 clone()
克隆一个对象
java
class Geeks implements Cloneable {
String name = "GeeksForGeeks";
public static void main(String[] args) throws CloneNotSupportedException {
Geeks o1 = new Geeks();
Geeks o2 = (Geeks) o1.clone();
System.out.println(o2.name);
}
}
输出:
GeeksForGeeks
注意,要实现 Cloneable
接口才行哦~
4. 通过反序列化(Deserialization)
就是把文件或网络里的数据"读回来"变成一个对象。
java
ObjectInputStream in = new ObjectInputStream(new FileInputStream("student.ser"));
Student s = (Student) in.readObject();
常见于网络通信、缓存等场景。
写在最后:类和对象,搞懂了吗?
Java 是一门面向对象的语言,而类和对象就是它的地基。掌握这俩概念,才能写出有结构、有逻辑的代码。
你可以把类看作"配方",对象就是照着配方做出的"菜"。
🎯 小结:
- 类是模板,对象是具体的东西
- 类定义属性和行为,对象拥有这些属性和行为
- Java 创建对象主要有四种方式,但
new
是最主流的 - 类和对象贯穿 Java 编程全过程,必须掌握!
如果你觉得今天的讲解还挺通俗易懂,欢迎点赞、分享、在看支持一下,也欢迎留言区讨论你理解的"类和对象"!
本文由博客一文多发平台 OpenWrite 发布!