Java基础之类与对象知识点

Java基础笔记之类与对象

1、成员变量与局部变量的区别
成员变量是一个类对象中定义的属性,他会跟随new一个对象,进入内存的堆内存中。
局部变量是类的方法中定义的变量,他在方法调用之后,跟随方法进入内存的栈内存中。

成员变量定义之后不进行赋值,系统也会默认赋值。int类型默认为0,String类型为Null
局部变量在方法中定义之后必须进行赋值。

生命周期:因为成员变量是跟随new出来的对象进入堆内存,因此它随着对象存在而存在,如果这个对象被回收了
那么成员变量也跟着消失。而局部变量是跟随方法的,当方法被调用进栈,执行到创建变量的语句的时候会产生
而当方法弹栈出栈之后,会随之消失。


2、this关键字

什么是this关键字?this指的对象本身。当哪个对象调用this的时候,this指的就是这个对象。
哪个对象调用的,this就表示哪一个对象


3、内存的介绍
java需要申请内存才能运行,申请的内存划分为五个部分
1、栈(Stack):里面存局部变量,与对象的方法运行在栈内存中。
2、堆(Heap):凡是new出来的东西,都存在堆内存中。堆内存的变量(成员变量)都有默认值
3、方法区:存储.class相关信息
4、本地方法栈:与操作系统有关
5、寄存器:与cpu相关

4、封装
封装是面向对象的特征之一
方法就是一个最基本的封装体
类也是一个封装体

封装的好处:
1、提高了代码的复用性
2、隐藏了实现细节对外提供可以访问的方式
3、提高了安全性

5、程序执行流程
程序执行流程说明以PERSON类为例:
1、先执行main方法(压栈),执行其中的 Person p = new Person();
2、在堆内存中开辟空间,并为其分配内存地址0x1234,紧接着成员变量默认初始化(age = 0);将内存地址0x1234赋值给栈内中的Person p 变量
3、继续执行p.setAge(30)语句,这时会调用setAge(int age)方法,将30赋值为setAge方法中的“age”变量;执行this.age = age语句,将age变量值30 赋值给成员变量this.age为30;
setAge()方法执行完毕后(弹栈),回到main()方法,执行输出语句System.out.println(),控制台打印p对象中的age年龄值。

发布了5 篇原创文章 · 获赞 6 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览