Java基础系列(5)- 面向对象(上)

时间:2021-06-05 18:36:24   收藏:0   阅读:0

类和对象

类(Class)和对象(Object)是面向对象的核心概念。

java类及类的成员

属性(field):对应类中的成员变量 (也叫成员变量、域、字段)

方法(method):对应类中的成员方法(也叫函数)
技术图片

内存解析

堆(Heap),此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。这一点在Java虚拟机规范中的描述是:所有的对象实例以及数组都要在堆上分配。

栈(Stack),是指虚拟机栈。虚拟机栈用于存储局部变量等。局部变量表存放了编译期可知长度的各种基本数据类型(boolean、byte、char 、 short 、 int 、 float 、 long 、double)、对象引用(reference类型,它不等同于对象本身,是对象在堆内存的首地址)。 方法执行完,自动释放。

方法区(Method Area),用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。
技术图片

属性

语法格式:修饰符 数据类型 属性名=初始化值

举例

public class Person{
	private int age; //声明private变量 age
    public String name = “Lila”; //声明public变量 name
}

变量的分类:成员变量(属性)与局部变量

在方法体外,类体内声明的变量称为成员变量。

在方法体内部声明的变量称为局部变量。

技术图片

属性(成员变量) VS 局部变量

相同点:

  1. 定义变量的格式:数据类型 变量名 = 变量值
  2. 先声明,后使用
  3. 变量都有其对应的作用域

不同点:

  1. 在类中声明的位置的不同:

    1. 属性:直接定义在类的一对 {} 内
    2. 局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量
  2. 关于权限修饰符的不同:

    1. 属性:可以在声明属性时,指明其权限,使用权限修饰符
    2. 常用的权限修饰符:private、public、缺省、protected
  3. 默认初始化值的情况:

    1. 属性:类的属性,根据其类型,都有默认初始化值
      1. 整型(byte、short、int、long) 默认 0
      2. 浮点型(float、double):0.0
      3. 字符型(char):0 (或 ‘\u0000‘)
      4. 布尔型(boolean):false
      5. 引用数据类型(类、数组、接口):null
    2. 局部变量:没有默认初始化值
      1. 意味着,我们在调用局部变量之前,一定要显示幅值
      2. 特别地:形参在调用时,我们赋值即可
  4. 在内存中加载的位置

    1. 属性:加载到堆空间中(static放在方法区)
    2. 局部变量:加载到栈空间
评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!