当前位置:网站首页>局部变量成员变量、引用类型、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
边栏推荐
- 11 【组件通信】
- gin框架学习-JWT认证
- 详解扫雷游戏(C语言)
- If the account number or password is entered incorrectly for many times, the account will be banned.
- 三次握手与四次挥手
- Flink sink redis 写入Redis
- 数据库上机实验3 连接查询和分组查询
- leetcode-2321. 拼接数组的最大分数(差分+枚举)
- leetcode-829. 连续整数求和(数论)
- Refinement of the four major collection frameworks: Summary of List core knowledge
猜你喜欢

gin框架学习-Casbin进阶之策略管理API使用方法

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

leetcode-438. 找到字符串中所有字母异位词(滑动窗口)

vulhub靶场学习日记SickOs1.2

Anaconda configure environment directives

05 【绑定样式 条件渲染 列表渲染】

数据库上机实验5 数据库安全性

Distributed Transactions - Introduction to Distributed Transactions, Distributed Transaction Framework Seata (AT Mode, Tcc Mode, Tcc Vs AT), Distributed Transactions - MQ

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

【LeetCode-SQL每日一练】——2. 第二高的薪水
随机推荐
Kubernetes加入集群的TOKEN值过期
剑指offer基础版--- 第23天
a different object with the same identifier value was already associated with the session
07 【内置指令 自定义指令】
leetcode-每日一题745. 前缀和后缀搜索(哈希和字典树)
实验8 DNS解析
1D, 2D, 3D convolution operations in pytorch
leetcode-每日一题873. 最长的斐波那契子序列的长度(哈希和二分)
解决响应式数据依赖响应式数据无响应问题
可以“繁殖”的程序
Anaconda配置环境指令
gin框架学习-Casbin进阶之策略管理API使用方法
The TOKEN value of Kubernetes joining the cluster expires
mysql 的简单运用命令
闭包(三)----执行环境
find、filter、map的区别
Distributed transaction processing solution big PK!
初涉C语言
[mysql improves query efficiency] Mysql database query is slow to solve the problem
Three handshakes and four waves