🐿️类和实例
2021-3-5
| 2023-8-3
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
Property
 
现实世界中定义了“人”这种抽象概念,而具体的人则是“小明”、“小红”、“小军”等一个个具体的人。所以“人”可以定义为一个类(class),而具体的人则是实例(instance):
notion image
  • class是一种对象模版,它定义了如何创建实例,因此class本身就是一种数据类型
  • instance是对象实例,instance是根据class创建的实例,可以创建多个instance,每个instance类型相同,但各自属性可能不相同
 

定义class

创建一个类,类命名为Person
一个class可以包含多个字段(field),字段用来描述一个类的特征。Person类定义了两个字段,一个是String类型的字段,命名为name,一个是int类型的字段,命名为age
通过class,把一组数据汇集到一个对象上,实现了数据封装。
 
一个Java源文件可以包含多个类的定义,但只能定义一个public类,且public类名必须与文件名一致。如果要定义多个public类,必须拆到多个Java源文件中。
 

创建实例

定义了class,只是定义了对象模版,而要根据对象模版创建出真正的对象实例,必须用new操作符。
new操作符可以创建一个实例,然后定义一个引用类型的变量来指向这个实例:
Person ming是定义Person类型的变量mingnew Person()是创建Person实例
 
有了指向这个实例的变量,就可以通过这个变量来操作实例,访问实例变量可以用变量.字段
上述两个变量分别指向两个不同的实例,在内存中的结构如下:
notion image
两个instance拥有class定义的nameage字段,且各自都有一份独立的数据,互不干扰
 
 

内存在JVM的分配

notion image
注:字符串也是引用,图中未标出
 
 
 
 
notion image
 
  • Java
  • 方法递归封装
    目录