Java基础系列(5)- 面向对象(上)
时间:2021-06-05 18:36:24
收藏:0
阅读:0
类和对象
类(Class)和对象(Object)是面向对象的核心概念。
- 类是对一类事物的描述,是抽象的、概念上的定义
- 对象是实际存在的该类事物的每个个体,因而也称为实例(instance)
java类及类的成员
属性(field)
:对应类中的成员变量 (也叫成员变量、域、字段)
方法(method)
:对应类中的成员方法(也叫函数)
内存解析
堆(Heap)
,此内存区域的唯一目的就是存放对象实例
,几乎所有的对象实例都在这里分配内存。这一点在Java虚拟机规范中的描述是:所有的对象实例以及数组都要在堆上分配。
栈(Stack)
,是指虚拟机栈。虚拟机栈用于存储局部变量
等。局部变量表存放了编译期可知长度的各种基本数据类型(boolean、byte、char 、 short 、 int 、 float 、 long 、double)、对象引用(reference类型,它不等同于对象本身,是对象在堆内存的首地址)。 方法执行完,自动释放。
方法区(Method Area)
,用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码
等数据。
属性
语法格式:修饰符 数据类型 属性名=初始化值
-
说明1:修饰符:
-
常用的权限修饰符有:private、缺省、protected、public
-
其他修饰符:static、final (暂不考虑)
-
-
说明2:数据类型
- 任何基本数据类型 (如int、Boolean) 或 任何引用数据类型。
-
说明3:属性名
- 属于标识符,符合命名规则和规范即可。
举例
public class Person{
private int age; //声明private变量 age
public String name = “Lila”; //声明public变量 name
}
变量的分类:成员变量(属性)与局部变量
在方法体外,类体内声明的变量称为成员变量。
在方法体内部声明的变量称为局部变量。
属性(成员变量) VS 局部变量
相同点:
- 定义变量的格式:数据类型 变量名 = 变量值
- 先声明,后使用
- 变量都有其对应的作用域
不同点:
-
在类中声明的位置的不同:
- 属性:直接定义在类的一对 {} 内
- 局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量
-
关于权限修饰符的不同:
- 属性:可以在声明属性时,指明其权限,使用权限修饰符
- 常用的权限修饰符:private、public、缺省、protected
-
默认初始化值的情况:
- 属性:类的属性,根据其类型,都有默认初始化值
- 整型(byte、short、int、long) 默认 0
- 浮点型(float、double):0.0
- 字符型(char):0 (或 ‘\u0000‘)
- 布尔型(boolean):false
- 引用数据类型(类、数组、接口):null
- 局部变量:没有默认初始化值
- 意味着,我们在调用局部变量之前,一定要显示幅值
- 特别地:形参在调用时,我们赋值即可
- 属性:类的属性,根据其类型,都有默认初始化值
-
在内存中加载的位置
- 属性:加载到堆空间中(static放在方法区)
- 局部变量:加载到栈空间
评论(0)