【Java10】成员变量与局部变量

Java中的变量只有两种:成员变量和局部变量。

和C++不同,没有全局变量了。

成员变量,field,我习惯称之为**”属性“**(但这些年,因为attribute更适合被叫做属性,所以渐渐不这么叫了)。

局部变量是在方法中定义的变量。

成员变量

和成员方法类似,成员变量也有两种:

  • static修饰的变量,也就是类成员变量
  • 没有static修饰的变量,也就是对象变量(也叫实例变量,早期习惯把对象叫做实例,对象初始化叫实例化)。

和成员方法也是类似的:

  • 类成员变量由类.类变量访问;
  • 实例变量由实例.实例变量访问;
  • 也可以由实例来访问类变量,实例.类变量,但要注意这时实际上访问的是类变量,对其修改会影响其他实例访问。
class Person
{public String name;public static int eyeNum;
}public class PersonTest
{public static void main(String[] args){System.out.println(Person.eyeNum); // 第一次调用Person类,该类自动初始化,eyeNum默认值是0// 实例化一个Personvar p = new Person();// 通过引用变量p来访问这个实例System.out.println(p.name, p.eyeNum); // p.name默认值是null}
}

成员变量不需要显式初始化,系统会默认在类的准备阶段或者在实例化的时候进行默认初始化。默认初始化规则和动态初始化数组元素是一样的。

局部变量

局部变量有三种定义形式(在三个不同的地方被定义):

  • 形参:定义方法签名时定义的变量,作用域是整个方法的生命期;
  • 方法局部变量:方法体内部,作用域是从定义的地方生效,方法结束时失效;
  • 代码块局部变量:在代码块内部定义的局部变量,作用域从定义该变量的地方生效,到该代码块结束时失效。

局部变量除形参外,必须显式初始化,否则不能访问。

作用域
  • 一个类中不能定义两个同名的成员变量,即便修饰符不同也不行;
  • Java允许局部变量和成员变量同名。且方法中的局部变量会覆盖成员变量。如果需要调用被覆盖的成员变量,需使用this指针(实例变量)或类名.类变量(类变量)

道理是这么个道理,但是真正编程的时候还是别这样了,徒增烦恼。

public class VariableOverrideTest
{private String name = "王五";private static double price = 78.0;public static void main(String[] args){var price = 65; // 方法中的局部变量覆盖成员变量System.out.println(price); // 65System.out.println(VariableOverrideTest.price); // 78.0}public void info(){var name = "孙悟空"; // 局部变量覆盖成员变量System.out.println(name); // 孙悟空System.out.println(this.name); // 王五}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/41419.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

google 邮件信息收集

主要介绍通过google和fofax对目标进行邮件信息收集 chrome插件 email-whatsapp-extractor link-klipper-extract-all bulk-url-opener-extension email-whatsapp-extractor 使用正则表达式,获取访问页面内所有的email邮箱和whatsapp号码,以表格的形式导…

el-table封装点击列筛选行数据功能,支持筛选,搜索,排序功能

数据少的话&#xff0c;可以前端实现&#xff0c;如果多的话&#xff0c;建议还是请求接口比较合理父组件&#xff1a; <template> <div class"home"> <!-- <img alt"Vue logo" src"../assets/logo.png"> <HelloWorld …

Hilbert编码 思路和scala 代码

需求&#xff1a; 使用Hilbert 曲线对遥感影像瓦片数据进行编码&#xff0c;获取某个区域的编码值即可 Hilbert 曲线编码方式 思路 大致可以对四个方向的数据进行归类 左下左上右上右下 这个也对应着编码的顺序 思考在不同Hilbert深度&#xff08;阶&#xff09;情况下的…

【fastadmin开发实战】经营数据自动识别录入

项目场景描述&#xff1a;每日录入各个门店的员工经营数据&#xff0c;直接从微信复制报数、系统识别录入。 解决方案&#xff1a;各个门店按照固定的汇报模板进行汇报&#xff08;如福田店有员工1、2、3、4、5号员工&#xff0c;每个员工按模板报数&#xff09; 例如&#xf…

Qt学习:Qt窗口组件以及窗口类型

一、Qt的窗口组件有哪些 Qt是一个跨平台的C应用程序开发框架&#xff0c;它的窗口组件&#xff0c;也称为用户界面元素&#xff0c;为开发者提供了丰富的可视化界面设计选项。在Qt中&#xff0c;窗口组件主要包括&#xff1a; 窗口&#xff08;Window&#xff09;&#xff1a;…

JMH320【亲测】【御剑九歌】唯美仙侠手游御剑九歌+WIN学习手工端+视频教程+开服清档+运营后台+授权GM物品充值后台

资源介绍&#xff1a; 这也是仙梦奇缘的一个游戏 注意&#xff1a;外网14位IP或域名 ———————————————————————————————————– ps后台介绍: 1区运营后台&#xff1a;http://ip:9981/admin/admintool/ 2区运营后台&#xff1a;http://ip…

Day44:LeedCode 188.买卖股票的最佳时机IV 309.最佳买卖股票时机含冷冻期 714.买卖股票的最佳时机含手续费

188. 买卖股票的最佳时机 IV 给你一个整数数组 prices 和一个整数 k &#xff0c;其中 prices[i] 是某支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。也就是说&#xff0c;你最多可以买 k 次&#xff0c;卖 k 次。 注意&…

[深度学习]卷积理解

单通道卷积 看这个的可视化就很好理解了 https://github.com/vdumoulin/conv_arithmetic/blob/master/README.md 多通道卷积 当输入有多个通道时,卷积核需要拥有相同的通道数. 假设输入有c个通道,那么卷积核的每个通道分别于相应的输入数据通道进行卷积,然后将得到的特征图对…

51单片机STC89C52RC——14.1 直流电机调速

目录 目的/效果 1&#xff1a;电机转速同步LED呼吸灯 2 通过独立按键 控制直流电机转速。 一&#xff0c;STC单片机模块 二&#xff0c;直流电机 2.1 简介 2.2 驱动电路 2.2.1 大功率器件直接驱动 2.2.2 H桥驱动 正转 反转 2.2.3 ULN2003D 引脚、电路 2.3 PWM&…

智能光伏开发都能用到什么软件和工具?

随着全球对可再生能源的日益重视和光伏技术的快速发展&#xff0c;智能光伏开发已成为推动能源转型的重要力量。在光伏项目的全生命周期中&#xff0c;从设计、建设到运营管理&#xff0c;各种软件和工具的应用发挥着至关重要的作用。 一、光伏系统设计软件 1、PVsyst PVsyst…

Linux 端口

什么是虚拟端口 计算机程序之间的通讯&#xff0c;通过IP只能锁定计算机&#xff0c;但是无法锁定具体的程序。通过端口可以锁定计算机上具体的程序&#xff0c;确保程序之间进行沟通。 IP地址相当于小区地址&#xff0c;在小区内可以有许多用户&#xff08;程序&#xff09;&…

java并发编程 JUC-基础篇 快速入门

1.进程与线程的概念 &#xff08;1&#xff09;进程 程序有指令与数据组成&#xff0c;指令要运行&#xff0c;数据要读写&#xff0c;就必须指令加载到CPU。数据加载到内容&#xff0c;指令运行需要用到磁盘。 当一个程序被运行时&#xff0c;从磁盘加载这个程序的代码至内…

探索Vue Router:构建高效单页面应用的指南

引言 Vue Router&#xff0c;作为Vue.js的官方路由管理器&#xff0c;为构建SPA提供了强大的支持 Vue Router 基础 Vue Router 的基本概念和作用 Vue Router 是一个用于构建单页面应用的 Vue.js 插件。它允许我们通过定义路由规则来将不同的 URL 映射到不同的组件&#xff…

1023记录

米哈游二面 自动化测试中自动化驱动的能力&#xff1f; pytest的驱动能力&#xff1a; 1&#xff0c;自动发现测试用例&#xff1a;以"test_"开头的Python文件、以"Test"开头的类和以"test_"开头的函数&#xff0c;将它们识别为测试用例 2&…

植物大战僵尸融合版最新版1.0下载及安装教程

《植物大战僵尸融合版》最新版1.0已经发布&#xff0c;为粉丝们带来了全新的游戏体验。这个版本由B站UP主蓝飘飘fly精心打造&#xff0c;引入了创新的植物融合玩法&#xff0c;让玩家可以享受策略和创意的结合。以下是游戏的详细介绍和安装指南&#xff1a; 游戏特色介绍 全新…

基于深度学习的图像背景剔除

在过去几年的机器学习领域&#xff0c;我一直想打造真正的机器学习产品。 几个月前&#xff0c;在参加了精彩的 Fast.AI 深度学习课程后&#xff0c;似乎一切皆有可能&#xff0c;我有机会&#xff1a;深度学习技术的进步使许多以前不可能实现的事情成为可能&#xff0c;而且开…

Java--继承

1.继承的本质是对某一批类的抽象&#xff0c;从而实现对世界更好的建模 2.extends的意思是“扩展”&#xff0c;子类是父亲的扩展 3.Java中只有单继承&#xff0c;没有多继承 4.继承关系的两个类&#xff0c;一个为子类&#xff08;派生类&#xff09;&#xff0c;一个为父类…

QML-Grid和OpacityMask

一个格子条&#xff0c;点击缩短 import QtQuick 2.0 import QtQuick.Window 2.12 import QtQuick.Controls 2.5 //导入 import QtGraphicalEffects 1.12Window {id:windowwidth: 600height: 500color: "white"visible: trueGrid {visible: falseid:gridwidth:405he…

STAR 命令参数解释

以这个为例子解释STAR参数含义 STAR 命令参数解释 STAR \ --outFilterType BySJout \ --runThreadN 8 \ --outFilterMismatchNmax 2 \ --genomeDir <hg19_STARindex> \ --readFilesIn <un_aligned.fastq> \ --outFileNamePrefix <HEK293> \ --outSAMtype B…

欧科云链大咖对话:Web3原生创新静默期,科技巨头却在两极化发展

出品&#xff5c;OKG Research 作者&#xff5c;Hedy Bi 上周末&#xff0c;欧科云链研究院接受FT中文的邀请&#xff0c;作为圆桌嘉宾参与了由FT中文网与上海交通大学上海高级金融学院联合主办的金融大师课。在圆桌环节&#xff0c;笔者与各位教授和金融行业科技创新前沿实践…