当前位置:网站首页>局部变量成员变量、引用类型、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
边栏推荐
- C语言教程(二)-printf及c自带的数据类型
- 分布式事务——分布式事务简介、分布式事务框架 Seata(AT模式、Tcc模式、Tcc Vs AT)、分布式事务—MQ
- 关于superset集成到自己的项目中
- The process and specific code of sending SMS verification code using flask framework
- Interviewer: If the order is not paid within 30 minutes, it will be automatically canceled. How to do this?
- 对list集合进行分页,并将数据显示在页面中
- 再见了繁琐的Excel,掌握数据分析处理技术就靠它了
- torch.normal函数用法
- a different object with the same identifier value was already associated with the session
- 【mysql 提高查询效率】Mysql 数据库查询好慢问题解决
猜你喜欢

剑指offer基础版 ---- 第26天

13 【代理配置 插槽】

The process and specific code of sending SMS verification code using flask framework

vulhub靶场学习日记hackme2

实验8 DNS解析

Swordsman Offer Special Assault Edition --- Day 3

第7章 网络层第2次练习题答案(第三版)

Redis 事务学习有感

剑指offer专项突击版 --- 第 3 天

关于小白安装nodejs遇到的问题(npm WARN config global `--global`, `--local` are deprecated. Use `--location=glob)
随机推荐
数据库学习笔记
Anaconda configure environment directives
C语言如何分辨大小端
pytorch中的一维、二维、三维卷积操作
tf.keras.utils.pad_sequences()
剑指offer基础版--- 第23天
账号或密码多次输入错误,进行账号封禁
【MySQL8入门到精通】基础篇- Linux系统静默安装MySQL,跨版本升级
【LeetCode-SQL每日一练】——2. 第二高的薪水
剑指offer基础版 --- 第21天
Flask 的初识
Flink sink redis 写入Redis
13 【代理配置 插槽】
gin框架学习-Casbin入门指南(ACL、RBAC、域内RBAC模型)
12 【nextTick 过渡与动画】
mysql 的简单运用命令
“档次法”——用于物品体积分布不均匀的01背包问题的求解方法
leetcode-每日一题1252. 奇数值单元格的数目(模拟优化)
Sword Point Offer Special Assault Edition ---- Day 1
a different object with the same identifier value was already associated with the session