码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2021-06-05 18:36:24      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:这一   info   抽象   inf   heap   规则   位置   整型   标识   

类和对象

类(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 局部变量

相同点:

  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. 局部变量:加载到栈空间

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

标签:这一   info   抽象   inf   heap   规则   位置   整型   标识   

原文地址:https://www.cnblogs.com/dongye95/p/14852947.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!