面向对象2

简介: 面向对象2

成员变量和局部变量的区别

1、初始化情况

成员变量

  • 整型(byte、short、int、long):0
  • 浮点型(float、double):0.0
  • 字符型(char):0
  • 布尔型(boolean):false
  • 引用数据类型(类、数组、接口):null

局部变量

  • 没有默认初始值
  • 调用前需要赋值

2、位置不同

  • 局部变量:声明在方法内、方法形参、代码块、构造器形参...
  • 成员变量:直接定义在类中

5、构造器详解

  • public class 类名(){}
  • 构造方法名必须和类名相同,且没有返回值
  • 可以定义多个构造器
  • 新建的类默认带一个无参构造函数(权限和类的权限一致)
  • alt + insert生成构造函数快捷键
  • 修饰符 + 构造器名
  • 当构造器的首行没有显式的声明this(形参列表)或super(形参列表),则默认调用的是父类中空参的构造器:super()

构造器的作用

  • 使用new关键字创建对象时必须要有构造器
  • 为类的成员变量初始化
  • 注意:定义有参构造后,如果想使用无参构造,需要显示的定义一个无参构造

总结属性复制的先后顺序

  • 默认初始化 -> 显式初始化/在代码块中赋值 -> 构造器中赋值  -> "对象.方法" 或 "对象.属性"赋值
  • 显式初始化和在代码块中赋值的先后顺序取决于它们在程序中的顺序

    sjava5

6、创建对象内存分析

  • 栈:
  • main方法中的所有内容
  • main方法(在栈底)
  • 对象/引用变量名(指针)
  • 基本变量  
  • 回收:用完就会消失
  • 堆:
  • main函数之外的东西,包括静态区(全局区)
  • 实例化(new出来的)对象/数组(地址)  
  • 回收:用完之后靠垃圾回收机制不定期自动消除

7、总结

  • 包括属性(成员变量)和方法(成员函数)
  • 属性有默认初始化
  • 数字:0  0.0
  • char:u000
  • boolean: false
  • 引用:null
  • 对象的属性  对象名.属性
  • 对象的方法  对象名.方法()
相关文章
|
1月前
|
Java 编译器
面向对象篇
面向对象篇
|
1月前
|
C语言 C++
【c++】什么是面向对象
【c++】什么是面向对象
【c++】什么是面向对象
|
8月前
面向对象《一》
面向对象《一》
22 0
|
9月前
|
Python
面向对象
面向对象。
41 0
|
11月前
真正意义上的面向对象
真正意义上的面向对象
|
存储 Java 编译器
初步认识面向对象
初步认识面向对象
|
存储 搜索推荐 编译器
C++ 面向对象篇
C++程序在执行时,将内存大致分为四个区域; - 代码区:存放函数体的二进制代码,操作由系统管理 - 全局区:存放全局变量和静态变量以及常量 - 栈区:由编译器自动分配释放,存放函数的参数值(形参),局部变量等 - 堆区:由程序员分配和释放,若程序员不手动释放,系统在程序结束时自动回收
139 0
|
Java
2. 面向对象
面向过程,其实就是面向着具体的每一个步骤和过程,把每一个步骤和过程完成,然后由这些功能方法相互调用,完成需求。
129 1
|
Java
面向对象(三)
面向对象细节内容
75 0
|
Java
面向对象(一)
面向对象基础
76 0