成员变量、局部变量和静态变量

macOS安装Cplex+yalmip 阅读详情

成员变量

   我们来研究一个事物:

           属性:外在特征;例如人的身高,体重

           行为:能够做什么;例如人有说话,打球等行为。

   而在Java语言中,最基本的单位是类,类就是用来体现事物的。

   用类class来描述事物也是如此:

           属性:对应类中的成员变量

           行为:对应类中的成员函数

   定义类其实就是在定义类中的成员(成员变量和成员函数)

  拓展:类是一个抽象的概念,而对象就是类的具体的存在,体现。例如:生活中的汽车,可以看做一个类,我们称之为汽车类,每一台车都有颜色和轮胎数(可以定义为属性,即成员变量),每一台车都可以跑(即车的行为,对应类总的成员函数),我们把汽车实例化一下,即会产生一个对象,比如奔驰、宝马(BMW)。

Demo1:

public class Car {
private String color; // 定义汽车颜色,全局变量
private int numLuntai; // 定义汽车轮胎数,全局变量

    public Car(String color, int numLuntai){
              super();
              this.color = color;
              this.numLuntai = numLuntai;
    }
    public void run() {
              System.out.println(this.numLuntai+ "个轮子的" +this.color + "轿车在马路上行驶着");
    }

}

public class ClassTest {
public static void main(String[] args){
Car bmw = new Car(“黑色”, 4); // 创建一个轿车对象,名字为bmw
bmw.run();
}
}

运行结果:

4个轮子的黑色轿车在马路上行驶着

  其中color和numLuntai就称为Car 类的成员变量,这个属性能够用来描述一个类的属性,否则,它就应该定义为局部变量。

  例如一个for循环中的i即是局部变量。

              for(int i = 0; i < args.length; i++) {
                      ......
              }

又例如写在成员方法中变量是局部变量。

publicclass Car {
private String color; // 定义汽车颜色,全局变量
private int numLuntai; // 定义汽车轮胎数,全局变量
public Car(String color, int numLuntai){
super();
this.color = color;
this.numLuntai = numLuntai;
}
public void run() {
String carName=”宝马牌”; //这个就是局部变量
System.out.println(this.numLuntai+ “个轮子的” +this.color + carName+”轿车在马路上行驶着”);
}
}
publicclass ClassTest {
public static void main(String[] args){
Car bmw = new Car(“黑色”, 4); // 创建一个轿车对象,名字为bmw
bmw.run();
}
}

结果:

4个轮子的黑色宝马牌轿车在马路上行驶着

成员变量和局部变量的区别

   成员变量:

      ①成员变量定义在类中,在整个类中都可以被访问。

      ②成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中。

      ③成员变量有默认初始化值。

  局部变量:

      ①局部变量只定义在局部范围内,如:函数内,语句内等,只在所属的区域有效。

      ②局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放。

      ③局部变量没有默认初始化值 

  在使用变量时需要遵循的原则为:就近原则

  首先在局部范围找,有就使用;接着在成员位置找。

静态变量

  由static修饰的变量称为静态变量,其实质上就是一个全局变量。如果某个内容是被所有对象所共享,那么该内容就应该用静态修饰;没有被静态修饰的内容,其实是属于对象的特殊描述。

示例:

class Person{
//成员变量,实例变量
String name;
//静态变量,类变量
//所有对象共享的属性用static修饰
static String country = “CN”;
public void show(){
System. out.println(country + “:” + name);
//等效语句:System.out.println(Person.country+ “:” + this.name);
}
}
class StaticDemo{
public static void main(String[]args){
Personp = new Person();
System. out.println(p.country);
//可以用类名直接调用
System. out.println(Person.country);
}
}

结果:

CN

CN

成员变量和静态变量的区别

  1、两个变量的生命周期不同

        成员变量随着对象的创建而存在,随着对象被回收而释放。

        静态变量随着类的加载而存在,随着类的消失而消失。

  2、调用方式不同

        成员变量只能被对象调用。

        静态变量可以被对象调用,还可以被类名调用。

  3、别名不同

        成员变量也称为实例变量。

        静态变量也称为类变量。

  4、数据存储位置不同

        成员变量存储在堆内存的对象中,所以也叫对象的特有数据。

        静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据。

列表对比:

   成员变量、局部变量、静态变量的区别 

这里写图片描述

小结:

    尽管三者的本质都是变量,可是使用时却有相当大的区别,稍不留神就可能陷入陷阱。且先记住:在一个类中,如果一个变量能够用来描述一个类的属性,那就定义为成员变量,否则,它就应该定义为局部变量。而如果一个变量在全局中都能使用(某个内容是被所有对象所共享),那么我们就可以把这个变量用static来修饰,即为静态变量。(还要注意它与静态方法的紧密联系,这里且不细述了)
Autosar诊断实战系列02-Dem(DTC&Event)要点及配置开发详解 Dem模块及其与Dcm等其他模块的交互是整个诊断Stack的重中之重,本文先对与其他模块的交互逻辑进行介绍,有一定掌握后继续重点介绍配置部分的开发。 阅读详情

相关推荐

搭建适用于lammps中opls-aa力场的文件流程

现在我已经解决了以上问题,并且通过我的方法可以实现从空白文档到搭建完成以上全部内容,后期只要细心检查即可。需要的data文件最关键是获得相应阴阳离子的mmol文件,因此问题转化为构建一份mmol文件。主要用到的软件及程序:gaussian09,makemol程序(tranal),opls-aa的参数文件。二面角个数:成角原子序号及对应的参数(这里PF6的结构没有二面角,所以为0)参考文献个数:文献名(空够行数即可,这些是给自己的备忘))和自身体系对应的参考文献,修改或填入对应的参数即可。

baguette的博客 2888

成员变量、局部变量和静态变量的区别

要想区分这哥仨,首先,我们得知道它们分别是什么。先从成员变量下刀。 成员变量        我们来研究一个事物:                属性:外在特征;例如人的身高,体重                行为:能够做什么;例如人有说话,打球等行为。        而在Java语言中,最基本的单位是类,类就是用来体现事物的。        用类class来描

QuincyJiang的博客 849

keil4.72添加GD32F10x芯片

1. 下载 GD32F10x_AddOn_V2.0.1.rar,解压缩。 2. 安装 运行GigaDevice.GD32F10x_AddOn.2.0.0.exe 安装位置 再新建工程,发现已经有GD32F10x 3. 增加的文件分析 运行GigaDevice.GD32F10x_AddOn.2.0.0.exe后,在keil文件夹种增加文件如下: ...

TrueLink的博客 2764

java基础教程:面向对象(13)

这节课的内容是:面向对象。主要是面向对象的介绍,对象类和对象的定义及使用。快上车!!!

Dream - to be coder 616

车载机器人终极解决方案:从功能叠加到生态融合的颠覆性变革

本文提出一种融合智能汽车与家居技术的车载机器人架构。其创新点包括:1)基于多模态传感器的拟人化硬件设计,实现声源定位误差<5°、体温检测精度±0.3℃;2)跨模态情感计算引擎,综合面部表情、心率等数据构建三维情绪模型;3)协议自适应中间件,支持小米、华为等多品牌智能家居设备即插即用;4)环境自适应舵机控制,-30℃环境下扭矩保持率达92.5%。测试数据显示,该方案使交互步骤减少60%,用户满意度提升58%,日均使用时长增加2.3倍,为"人-车-家"生态融合提供了可行技术路径。

qq_42671193的博客 1130

【网络安全 | 渗透工具】密码字典生成工具crunch、cupp安装使用教程

Crunch是一个常用的密码破解工具,它可以根据指定的字符集、长度和模式生成各种可能的密码并进行暴力破解。同时,Crunch可以将生成的密码保存到文件中,以便在破解工具中使用。在进行渗透测试时,手动收集密码字典是十分耗时的,利用密码字典生成工具可以大幅缩短时间,提高爆破宽度。

等风来 8425

函数与局部、全局和静态局部变量

函数与局部、全局和静态局部变量 我们知道在c++中一个函数一般会有它的参数。 例如最简单的形式参数:这个参数也可以称为局部变量。 那么现在介绍什么叫局部变量: 我们知道,一个变量有它的作用域(也就是能引用该变量的程序范围),局部变量即指只在程序的某一部分生效,而在其他部分没有作用的参数,例如我们熟悉的: for(int i=0;i<n;i++) { body } 那么这个i就是一个只...

i_want_to_studyi的博客 651

云原生监控:Prometheus+Grafana监控Nginx实战

在云原生环境中,应用的高可用性和性能优化至关重要。Nginx作为一款广泛使用的高性能Web服务器、反向代理服务器及电子邮件(IMAP/POP3)代理服务器,对其进行有效的监控能够及时发现潜在问题,保障服务的稳定运行。本文章的目的是详细介绍如何使用Prometheus和Grafana构建一套完整的监控系统来监控Nginx,范围涵盖从环境搭建、数据采集、存储到可视化展示的整个流程。

AI云原生与云计算技术学院 1575

三大循环结构体系

for循环 int num=1; for(i=1;i<=5;++i) { System.out.println("你好。"); } 1.for循环里面的i是局部变量,只在for循环结构体内有定义。 2.for循环里面的局部变量i需要先进行定义。 3.变量在输出前要进行过赋值。 ...

woahxy的博客 638

无迹粒子滤波(Unscented Particle Filter)的定义与讲解

无迹粒子滤波通过结合无迹变换与粒子滤波的优势,能够有效处理非线性和非高斯状态估计问题。通过上述公式,我们可以更清晰地理解无迹粒子滤波的工作原理及其数学基础。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 571

华为OD机试 - 计算数列位置N的值 - 模拟法(Python/JS/C/C++ 新系统 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。输入 M,N 两个数,则按照以下规则形成一个数列。数列的前 M 个元素的值为 1 到 M从 M+1 个元素开始,计算逻辑为如果其前 M 个元素中,存在值相同的元素,则该位置上的数值等于前 M 个数中最大数值与最小数值之和。如果其前 M 个元素中,

学Java,找哪吒 508

for循环里的变量是局部变量还是全局变量

for循环里的变量是局部变量还是全局变量

qq_74009022的博客 4106

点云目标检测:open3d多窗口联动可视化

多个模型之间的对比除了指标之外,还需要可以直接直观的对比可视化结果,这次介绍一下如何使用open3d同时打开两个窗口分别加载两个模型的结果进行对比,同时实现两个窗口的联动,也就是当一个窗口拖动或者缩放时另外一个窗口也跟着做同样的变换。

zhaoguanhua的博客 4688

静态变量和成员变量、成员变量和局部变量的区别

一、 静态变量和成员变量的区别: (1):所属不同:     静态变量:属于类,也称为类变量。     成员变量:属于对象,也称为对象变量或实例变量。 (2):在内存中的位置不同:     静态变量:存储于方法区的静态区。     成员变量:存储于堆内存。 (3):生命周期不同:     静态变量:静态变量是随着类的加载而加载,随着类的消失而消失。     成员变量:成员变量是随着对象的创建而存在...

陌守 9957

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

成员变量、实例变量、局部变量、类变量(静态变量)详解

Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。 Java的变量类型有: 成员变量类中的变量(独立于方法之外的变量) 局部变量类的方法中的变量。 而 java类的成员变量又有俩种: 静态变量(类变量): 独立于方法之外的变量,用 static 修饰。 实例变量: 独立于方法之外的变量,不过没有 static 修饰。 在语法定义上的区别: 静态变量前要加static关键字,而实例变量前则不加。 在程序运行时的区别: 实例变量属于某个对象的属性,必须创建了实例对象,其中的实例

munangs的博客 2万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

成员变量与局部变量和静态变量的区别

一.局部变量 局部变量是定义在方法中或是方法的形参变量!局部变量只能在它所在的作用域内发挥作用!出了作用域就不能再使用了!所有的局部变量都存储在JVM中的栈内存中! public class Test { //类体中 public static void main(String[] args) { //方法体中 String name="我是局部变量!"; //这个name是main域中局部变量 System.out.

naoguoteng的博客 651

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Java基础——成员变量、局部变量和静态变量的区别

之前在刚开始学习Java的时候,就谈了谈Java基础中的变量,虽然知道这货以后会经常用到,但没想到了基本语法这里,竟然有冒出来了成员变量、局部变量和静态变量。变来变去太容易让人搞晕了,挑拣出来梳理一下喽!        要想区分这哥仨,首先,我们得知道它们分别是什么。先从成员变量下刀。 成员变量        我们来研究一个事物:                属性:外在特征;例如人的身高

贵宝的博客 4万+

局部变量、成员变量、静态变量、常量【超级详细解释】

静态变量是用static关键字修饰的成员变量。它也被称为类变量。静态变量不属于某个特定的对象, 而是属于类本身。无论创建多少个对象, 静态变量都只有一份拷贝, 被所有对象共享。在 Java 中, 常量是用final关键字修饰的变量。final的含义是“最终的, 不可改变的”。一旦一个变量被final修饰, 它的值就不能再被修改了。我们通常将final和static一起使用来创建类级别的常量。

weixin_44748929的博客 1515

成员变量、局部变量、静态变量三者的区别

成员变量和局部变量的区别 成员变量: ①成员变量定义在类中,在整个类中都可以被访问。 ②成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中。 ③成员变量有默认初始化值。 局部变量: ①局部变量只定义在局部范围内,如:函数内,语句内等,只在所属的区域有效。 ②局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放。 ③...

qq_45621376的博客 1074

静态变量、成员变量与局部变量的区别

成员变量和局部变量的区别 成员变量: ①成员变量定义在类中,在整个类中都可以被访问。 ②成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中。 ③成员变量有默认初始化值。 局部变量: ①局部变量只定义在局部范围内,如:函数内,语句内等,只在所属的区域有效。 ②局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放。 ③局部变量没有默认初始化值 在使用变量时需要遵循的原则...

qq_43677558的博客 1795

Java中成员变量、局部变量、静态变量的区别,静态变量详解

目录1 成员变量、局部变量和静态变量2 静态变量的特点及注意事项1 特点2 注意事项3 什么情况下使用静态变量3 总结 1 成员变量、局部变量和静态变量 成员变量:在类中且在方法外定义的变量称为成员变量; 局部变量:方法中、方法的形参或代码块中定义的变量,都属于局部变量; 静态变量:如果一成员变量有static关键字修饰,则该变量被称为静态变量。 成员变量 局部变量 静态变量 定义位置 类中,方法外 方法中、方法的形参或代码块内 类中,方法外 初始化值 有默认初始化值 无,先定义,赋值

sc179的博客 916

Java中合理使用局部变量替代成员变量、静态变量

故事起因一个Java类中可以存在多种形式的变量,可以是最一般的成员变量、或静态变量、或临时变量。如下图:publicclassVariableDemo{ staticin...

zxm317122667的专栏 1080

辨析:成员变量、局部变量以及静态变量

辨析:成员变量、局部变量以及静态变量准备: 成员变量=示例变量 静态变量=类变量一、逻辑图 二、文字解释 1. 作用域不同:成员变量定义在类中,整个类都可以访问;局部变量定义在函数中、语句以及局部代码块中,只在所属的作用域中有效;静态变量作用于整个类中。 2. 存储位置不同:成员变量存在于堆内存的对象中;局部变量存在于栈内存的方法中;静态变量存储在方法区的静态区中。 3. 生命周期

图图 2451

JAVA基础04 局部变量、成员变量、静态变量、常量

在 Java 中, 常量是用final关键字修饰的变量。final的含义是“最终的, 不可改变的”。一旦一个变量被final修饰, 它的值就不能再被修改了。我们通常将final和static一起使用来创建类级别的常量。

s3120626891的博客 1187

成员变量,静态变量,与局部变量

类中的变量 1.成员变量(实例变量,静态变量)定义在类中, 方法外面 实例变量指的是类的一个实例,就是一个对象, 成员变量就是类中的变量(不是方法中的变量!) 类变量是类中的静态变量。 2.局部变量(定义在方法里面,使用时必须要初始化)成员变量和局部变量的区别: 成员变量定义在类中,整个类中都可以访问; 局部变量定义在函数、语句、局部代码块中,只在所属的区域有效。 成员变量存在于堆内存的对象中;

张阿宁的博客 527

成员变量与局部变量、静态变量的区别

成员变量和局部变量的区别 * A:在类中的位置不同     * 成员变量:在类中方法外     * 局部变量:在方法定义中或者方法声明上 * B:在内存中的位置不同     * 成员变量:在堆内存(成员变量属于对象,对象进堆内存)     * 局部变量:在栈内存(局部变量属于方法,方法进栈内存) * C:生命周期不同     * 成员变量:随着对象的创建而存在,随着对象的消失而消失     * 局...

Fighting_mjtao的博客 1104
上一篇: 输入字母来判断星期几的问题
下一篇: 简单排序
YanQiu_Only
博客等级 码龄10年 6粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值