当前位置:网站首页>局部变量成员变量、引用类型、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
边栏推荐
- Goodbye to the cumbersome Excel, mastering data analysis and processing technology depends on it
- leetcode-每日一题剑指 Offer II 041. 滑动窗口的平均值(队列模拟)
- Anaconda configure environment directives
- [mysql improves query efficiency] Mysql database query is slow to solve the problem
- 10 【组件编码流程 组件自定义事件 全局事件总线】
- gin框架学习-Casbin进阶之策略管理API使用方法
- 【C语言3个基本结构详解——顺序、选择、循环】
- C语言实验五 循环结构程序设计(二)
- leetcode-1833. 雪糕的最大数量(排序+贪心)
- leetcode-每日一题745. 前缀和后缀搜索(哈希和字典树)
猜你喜欢
Swordsman Offer Special Assault Edition --- Day 3
【C语言趣味小游戏——猜数字】
Anaconda configure environment directives
gin框架学习-Casbin入门指南(ACL、RBAC、域内RBAC模型)
分布式事务——分布式事务简介、分布式事务框架 Seata(AT模式、Tcc模式、Tcc Vs AT)、分布式事务—MQ
uni-app进阶之生命周期【day8】
实验8 DNS解析
08 【生命周期 组件】
16 【打包上线 图片懒加载】
Interviewer, don't ask me to shake hands three times and wave four times again
随机推荐
Redis的初识
【C语言趣味小游戏——猜数字】
leetcode-438. 找到字符串中所有字母异位词(滑动窗口)
解决响应式数据依赖响应式数据无响应问题
04 【计算属性 侦听属性】
数据库上机实验6 数据库完整性
三子棋讲解(C语言)
实验7 UDP与TCP对比
Why use Flink and how to get started with Flink?
C语言教程(三)-if和循环
闭包(五)----一个常见的循环
数据库上机实验7 数据库设计
闭包(三)----执行环境
Three handshakes and four waves
再见了繁琐的Excel,掌握数据分析处理技术就靠它了
tf.keras.utils.pad_sequences()
关于小白安装nodejs遇到的问题(npm WARN config global `--global`, `--local` are deprecated. Use `--location=glob)
剑指offer专项突击版 ---- 第1天
Element concatenation operations in numpy and pytorch: stack, concatenat, cat
MySQL(更新中)