type
status
date
slug
summary
tags
category
icon
password
Property
现实世界中定义了“人”这种抽象概念,而具体的人则是“小明”、“小红”、“小军”等一个个具体的人。所以“人”可以定义为一个类(class),而具体的人则是实例(instance):
- 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
类型的变量ming
,new Person()
是创建Person
实例有了指向这个实例的变量,就可以通过这个变量来操作实例,访问实例变量可以用
变量.字段
上述两个变量分别指向两个不同的实例,在内存中的结构如下:
两个
instance
拥有class
定义的name
和age
字段,且各自都有一份独立的数据,互不干扰内存在JVM的分配
注:字符串也是引用,图中未标出