学习java—第七天学习笔记

102 阅读3分钟

2019.7.23 NIIT第七天

自言自语:种一棵树最好的时间是十年前,或者现在

一、面向对象

面向过程:强调的是每一个功能的步骤

面向对象:强调的是对象,然后由对象去调用功能;

  • 目前而言面向对象对于项目开发更加有利

class-x 类 泛指所有学生 抽象

  1. 属性(静态)
  • 事务的描述信息
  • 成员变量
  • 不需要初始化
  1. 行为(动态)事务能做什么
  • 成员方法
  • 和以前定义方法一样 ps:java把世界上所有的事务都叫对象(每个事务) 把相同类型(具有相似属性和动作)的事务抽象取成类(抽象)
    Student p=new Student();

栈:存放生成对象的地址

堆:存放成员属性和初始值

利用p(对象/指针)对堆内存进行操作! 引用类型,因此作为参数时,传对象的操作都有效

二、两个对象内存分析

  • 对象属性和方法由对象名(p:地址)进行调用
  • 每一个对象单独在堆中创建相关的初始化
  • 方法区存放对象的行为,通过对象名(p:地址)进行调用
  • 方法的调用无法共享,调用结束,方法结束,再次调用,重新开始

三、成员变量和局部变量

  • 成员变量:定义在类中,作为类的属性,类中的所有方法共享
  • 局部变量(包括形参):定义在方法中,只能在当前的方法中使用,在方法结束后,该变量被释放

在创建对象时,成员变量已经赋值完毕,其值为默认初始值

在执行对象内部方法时,开始赋值局部变量

生命周期:

成员变量:与创建类的周期相同

局部变量:只在方法中存在,方法执行完则消失

۞ 面试:未赋初值的局部变量,使用时会产生编译错误

各基本类型成员变量初始值

成员变量类型 默认初始值
byte 0
short 0
int 0
long 0
float 0.0
double 0.0
char '\u0000' 0
boolean false
String NULL

四、成员变量和局部变量内存分析

  • 成员变量内存分析
成员变量 内存位置
基本类型 堆中
引用类型 堆中
  • 局部变量内存分析
局部变量 内存位置
基本类型 栈中
引用类型地址 栈中
引用类型数值 堆中

五、private关键字

权限修饰关键字被修饰的属性和方法只能被本类访问

通过getxx() setxx()方法调用,xx代表属性,要求首字母大写

六、封装

将不想让外部直接访问的属性或者方法,通过访问权限修饰符对其进行封装

通过方法来操作对象内部属性,增加安全性和复用性

七、this关键字

  1. 成员变量和局部变量同名时,通过this调用成员变量,this关键字指定变量为成员变量

  2. this的含义表示当前生成的对象

八、构造方法

用来给对象的数据进行初始化

没有返回值,没有void

创建对象的时候,就是调用了对应的构造方法

没有参数的构造方法为空构造方法

系统自动生成无参空构造器

给对象数据初始化,利用构造方法进行操作

如果我们提供了构造方法,系统不会在提供默认的空参数构造方法

构造方法可以重载你

应用习惯:一般情况,我们会自己写一个空的构造方法,再写一个满参数的构造方法

九、类名作为参数进行传递

自定义的对象可以作为形参和返回值,在方法中使用 其类型为引用类型,传入的时对象的地址 ...就目前来看,还不知道有啥作用