Java 类与对象
类与对象
类与对象的关系
-
类是一种抽象的数据类型,它是对某一些事物整体描述/定义,但是并不能代表某一个具体的事物。
-
就比如:
- 老虎、狮子对应的类是动物类,因为老虎和狮子都是动物,而动物中包含了老虎和狮子,也就是说老虎和狮子是动物类的实例(也就是对象)
- 奔驰、宝马、奥迪这些对应的类就是汽车类
-
类是用来描述/定义某一类具体的事物应该具备的特点和行为
-
对象是抽象概念的具体实例
- 上述的老虎,狮子都是动物类的实例,另外也还可以有猴子、斑马等实例
-
能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念
创建与初始化对象
- 使用new关键字创建对象
//学生类
public class Student {
//属性:字段
String name;
int age;
//方法
public void say(){
System.out.println(this.name+"是学生!");//this指代当前类
}
}
//一个项目中应该只有一个main方法,用于启动程序
public class Application {
public static void main(String[] args) {
//类:抽象的,需要实例化
//类实例化之后,会返回一个对象
//下述的xiaohuang、daming都是Student类的具体实例
//此时xiaohuang、daming为对象名
Student xiaohuang = new Student();
Student daming = new Student();
//对象里封装了姓名、年龄等属性
//给对象的属性赋值,若不赋值,则为默认初始值
xiaohuang.name = "小黄";
xiaohuang.age = 5;
daming.name = "大明";
daming.age = 5;
System.out.println(xiaohuang.name);
System.out.println(xiaohuang.age);
System.out.println(daming.name);
System.out.println(daming.age);
}
}
- 使用new关键字的时候,除了分配内存空间之外,还会给 创建好的对象 进行默认的初始化 以及类中构造器的调用。
构造器
- 类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点:
- 必须和类的名字相同
- 必须没有返回类型,也不能写void
通过对编译后的.class文件查看:
- 类中即使什么都不写,也会存在一个方法

public class Person {
String name;
public Person() {//无参构造
this.name = "huang";//初始化对象的属性名字
}
public Person(String name) {//有参构造
this.name = name;
}
}
作用
- new 的本质就是在调用构造器(构造方法)
- 构造器(构造方法)可以初始化对象的属性
注意:定义有参构造之后,无参构造就会消失,如果想使用无参构造,必须显示的定义一个无参构造
可以利用 Alt+Insert 快速定义构造器!!!
创建对象内存分析
分析图:

类在方法区就像一个模板。当 Pet dog = new Pet() 时,会将 dog(引用变量名) 置于栈中,用于指代新生成的对象。计算机收到 new Pet() 指令后,会在堆中找到这个 Pet类 ,以此作为一个模板,复制类中的属性(若未初始化或者利用变量名为其赋值,则为 null 或0)和方法给新生成的对象,储存于堆中。而 0x0001则为这个新生成的对象存储在堆中的地址。当调用这个对象时,计算机就会根据这个地址,找到这个对象储存的地方并读取里面的内容进行调用。
类与对象小结
-
类与对象
- 类是一个模板:抽象的,对象是一个具体的实例
-
方法
- 定义、调用
-
对象的引用
- 引用类型:基本类型(8)
- 对象是通过引用变量名来操作的:栈---->堆(通过对变量名的引用来操作对象)
-
属性:字段Field 成员变量
- 默认初始化:
- 数字: 0 0.0
- char: u0000
- boolean:false
- 引用: null
- 默认初始化:
-
对象的创建和使用
- 必须使用new 关键字创造对象,构造器
- 对象的属性
- 对象的方法
-
类:
- 静态的属性 属性
- 动态的方法 方法

浙公网安备 33010602011771号