当前位置:网站首页>局部变量成员变量、引用类型、this,static(第五天)
局部变量成员变量、引用类型、this,static(第五天)
2022-07-31 05:10:00 【不习惯有你】
局部变量和成员变量:
局部变量:定义在方法中的变量叫做局部变量
作用域:从定义的位置开始到整个方法结束
不包含默认值
注意:局部变量只能在当前方法中使用,其他地方无法使用
成员变量:定义在方法外,类内的变量叫做成员变量(全局变量)
作用域:整个类体内
包含初始值 int 0 String null
内存存放的位置:栈内存中,堆内存中
引用类型:
java语言中除基本类型之外的变量类型都称之为引用类型类、接口、数组
内存分析:
栈:存放局部变量,先进后出、自下而上存储,方法执行完毕、自动释放空间
堆:存放new出来的对象,需要垃圾回收器来回收:System.gc
方法区:存放类的信息(代码)、static变量、字符串常量等

构造方法:
创建对象的时候默认会调用构造方法来创建对象(在堆中开辟空间),可以完成某些初始化操作
构造方法的语法:
方法名称:构造方法的方法名称必须跟类的名称保持一致
修饰符:
形参:
方法体:完成对象初始化功能
返回值:
注意:
1.创建完类之后,如果没有手动调用构造方法,会有一个默认的无参的构造方法供调用
2.当用户定义了构造方法之后,默认的无参构造方法就不能使用了,必须要手动定义无参构造方法
3.同一个类中可以包含多个同名的构造方法
重载:在一个类中可以包含多个重名的方法,但是注意方法的参数不能相同
三个方面的不同:
1.参数的个数不同
2.参数的类型不同
3.参数的顺序不同
注意:一般构造方法都会重载

this:表示当前对象的指针
指向当前对象,表示当前对象的引用
用处:
1.构造方法:当前构造方法中的参数名称跟类的成员变量名称一样的时候,可使用this代表当前对象。
当构造方法中需要调用其他的构造方法时,可以使用this.(),相当于this.classname()
并且this.()只能用于第一行
2.普通方法中:当多个普通方法之间需要调用时,可以使用this来调用,当前对象的其他方法
3.成员变量的使用:当方法中的参数名称跟成员变量保持一致的时候,使用this.表示形参列表中的值
this不能用于static方法
static:修饰成员变量的时候,表示静态成员变量或者叫类变量
普通变量在使用的时候,必须要通过对象名进行调用
类变量或者静态变量可以使用对象名调用也可使用类名进行调用
静态变量,在创建对象之前就被初始化,或者说在类被载入之前进行初始化
静态变量被所有的对象共享,属于公共变量,对象和类都可以直接调用,但推荐使用类来调用
成员变量放在堆中,而静态变量放在方法区中的静态区
静态变量不能放在静态方法中
修饰方法的时候,表示静态方法或者叫做类方法
类方法或者静态方法可以使用类名,也可使用对象名
静态方法可以在非静态方法中进行调用
静态方法中不能直接调用非静态方法,必须使用new方法new一个
静态方法中不允许出现this调用
一般工具类中的方法定义为static
边栏推荐
- 07 【内置指令 自定义指令】
- Distributed Transactions - Introduction to Distributed Transactions, Distributed Transaction Framework Seata (AT Mode, Tcc Mode, Tcc Vs AT), Distributed Transactions - MQ
- 变量的解构赋值
- The interviewer asked me TCP three handshake and four wave, I really
- 11 【定位】
- Sword Point Offer Special Assault Edition ---- Day 1
- Flask-based three-party login process
- leetcode-1833. 雪糕的最大数量(排序+贪心)
- 账号或密码多次输入错误,进行账号封禁
- 数据库上机实验1 数据库定义语言
猜你喜欢
随机推荐
Swordsman Offer Special Assault Edition --- Day 3
C语言教程(三)-if和循环
账号或密码多次输入错误,进行账号封禁
leetcode-每日一题565. 数组嵌套(标记图和并查集)
leetcode-每日一题1217. 玩筹码(贪心+位运算)
C语言实验四 循环结构程序设计(一)
剑指offer基础版 ----- 第25天
Data set partitioning and cross-validation
uni-app进阶之生命周期【day8】
解决响应式数据依赖响应式数据无响应问题
Interviewer: If the order is not paid within 30 minutes, it will be automatically canceled. How to do this?
10 【高度塌陷与BFC】
【数据库学习】Redis 解析器&&单线程&&模型
剑指offer基础版 --- 第21天
C语言教程(二)-printf及c自带的数据类型
08 【生命周期 组件】
Sword Point Offer Special Assault Edition ---- Day 2
The process and specific code of sending SMS verification code using flask framework
a different object with the same identifier value was already associated with the session
剑指offer基础版 --- 第24天









