作者:CHAITANYA SINGH

来源:

通过示例学习Java编程(4):Java中的变量-方家话题​www.koofun.com

变量是用来存放可以更改的值的容器。例如,当我写int i = 10; 这里变量名是i,它与值10相关联,int i是表示该变量i可以存放整数值的数据类型。 我们将在下一个教程中介绍数据类型。 在本教程中,我们只讨论变量。

如何在Java中声明变量

要声明变量,请遵循以下语法:

1data_type variable_name = value;

这里的data_type表示数据类型,variable_name代表变量名字,value代表具体的数值。这个语句data_type variable_name的意思就是声明(宣布)一个叫variable_name的变量,这个变量的数据类型是data_type。后面的variable_name = value表示把数值value放到variable_name这个变量里面。在java编程中,您也可以先声明变量,然后再将值赋值给它,这样下面的两条语句可以起到和上面的一条语句一样的作用:

data_type variable_name;variable_name = value;

我们看这个例子:

int num;

这里num是变量名(变量命名一定要贴近变量的作用,这里num是数字这个单词number的头三个字母,表示用来存放数字),int是整数型数据类型,这条语句的意思就是声明或宣布一个类型为整数型(int)的变量num。数据类型有很多种,最常见的是int(整数,如10,120,130,等等)和char(字符,如'A','B',等等)。int表示整数,是integer(整数)的前三个字母,char表示字符,是character(字符)的前二个字母。具体的各种数据类型我们在后续的教程里面还会有详细的讨论,所以不要太担心它,只需了解到int num的意思就是声明一个数据类型是int的变量num,这个num变量里面只能保存整数值。

类似地,我们可以在声明变量时将值赋值,如下所示:char ch = 'A';int number = 100;

或者我们可以这样做:char ch;int number;...ch = 'A';number = 100;

java中的变量命名规则:

1)变量命名不能包含空格,例如:int num ber=100;因为变量名中有空格,因此无效。

2)变量名可以特殊字符(如$和_)开头。

3)根据java编码标准,变量名应该以小写字母开头,例如int数;对于有多个单词的长变量名称,可以这样做:int smallNumber;int bigNumber;(变量名里面第一个字母要小写,后面的单词的第一个字母要大写,如smallNumber变量名里面,单词small的s要小写,但后面的单词number的第一个字母N要大写)。

4)变量名在Java中要区分大小写,意思就是如果两个变量即使字母一模一样,但如果其中的字母有大小写的不同,也表示这是两个不同的变量。例如,smallN和smalln由于最后的字母一个是大写N,一个是小写n,就表示这是两个不同的变量。

Java中的变量类型,共有三种:

1)局部变量(Local variable)

2)静态(或类)变量(Static or class variable)

3)实例变量(Instance variable)

静态(或类)变量(Static or class variable)

静态变量也称为类变量,因为它们与类相关联,并且对于所有的类实例(class instance),也称为对象(object),都是通用的。 例如,如果我创建一个类的三个对象并访问这个类的静态变量,那么对这个类所有的三个对象来说,结果都是一样的。如果通过某个对象改变了静态变量的值,那么在这个类所有的三个对象看来,这个静态变量的值都改变了。

静态变量示例public class StaticVarExample {public static String myClassVar="class or static variable(类或静态变量)";public static void main(String args[]){StaticVarExample obj = new StaticVarExample();StaticVarExample obj2 = new StaticVarExample();StaticVarExample obj3 = new StaticVarExample();//下面三行代码显示以下文字: "class or static variable(类或静态变量)"System.out.println(obj.myClassVar);System.out.println(obj2.myClassVar);System.out.println(obj3.myClassVar);//下面代码通过调用对象obj2来改变静态变量myClassVar的值obj2.myClassVar = "Changed Text(这是更新后的文字)";//下面三行代码都可以显示以下文字:"Changed Text(这是更新后的文字)"System.out.println(obj.myClassVar);System.out.println(obj2.myClassVar);System.out.println(obj3.myClassVar);}}

输出文字:

class or static variable(类或静态变量)class or static variable(类或静态变量)class or static variable(类或静态变量)Changed Text(这是更新后的文字)Changed Text(这是更新后的文字)Changed Text(这是更新后的文字)

正如您所看到的,所有三个语句都显示相同的输出结果,而不管通过哪个实例访问它。这就是为什么我们可以访问静态变量而不使用这样的对象:

System.out.println(myClassVar);

请注意,只有静态变量才能像这样访问。例如,这种访问方法不适用于局部变量。

实例变量(Instance variable)

类的每个实例(对象)都有自己的实例变量副本。 与静态变量不同,实例变量拥有自己独立的实例变量副本。 我们在下面的程序中使用对象obj2更改了实例变量值,当我们使用所有三个对象显示变量时,只有obj2值被更改,其他二个对象的值保持不变。 这表明它们有自己的实例变量副本。

实例变量示例public class InstanceVarExample {String myInstanceVar="instance variable(这是实例变量)";public static void main(String args[]){InstanceVarExample obj = new InstanceVarExample();InstanceVarExample obj2 = new InstanceVarExample();InstanceVarExample obj3 = new InstanceVarExample();System.out.println(obj.myInstanceVar);System.out.println(obj2.myInstanceVar);System.out.println(obj3.myInstanceVar);obj2.myInstanceVar = "Changed Text(这是更新后的文字)";System.out.println(obj.myInstanceVar);System.out.println(obj2.myInstanceVar);System.out.println(obj3.myInstanceVar);}}

输出文字:

instance variable(这是实例变量)instance variable(这是实例变量)instance variable(这是实例变量)instance variable(这是实例变量)Changed Text(这是更新后的文字)instance variable(这是实例变量)

局部变量(Local variable)

在类的方法中声明的变量叫做局部变量,它们的使用范围仅限于方法内部的代码,这意味着您不能在方法之外的地方写代码来更改或访问在方法中声明的局部变量的值。

在本例中,为了演示局部变量的作用域,我声明了与局部变量同名的实例变量,来看看有什么效果。

局部变量示例

public class VariableExample {// instance variablepublic String myVar="instance variable(这是实例变量)";public void myMethod(){// local variableString myVar = "Inside Method(进入方法内,这是局部变量)";System.out.println(myVar);}public static void main(String args[]){// Creating objectVariableExample obj = new VariableExample();/* We are calling the method, that changes the * value of myVar. We are displaying myVar again after * the method call, to demonstrate that the local * variable scope is limited to the method itself.*/System.out.println("Calling Method(开始调用方法)");obj.myMethod();System.out.println(obj.myVar);}}

输出文字:Calling Method(开始调用方法)Inside Method(进入方法内,这是局部变量)instance variable(这是实例变量)

注意在方法之外的代码语句是不能更改和访问方法之内声明的局部变量的,如果我在类的代码中没有声明实例变量myVar,只在类的某个方法中声明了局部变量myVar,那么语句System.out.println(obj.myVar)就会引发编译报错。

@value 静态变量_Java中的变量——通过示例学习Java编程(4)相关推荐

  1. getvalue函数怎么使用_Java中的构造函数——通过示例学习Java编程(14)

    作者:CHAITANYA SINGH 来源:通过示例学习Java编程(14):Java中的构造函数-方家话题 构造函数是用来初始化新创建的对象的代码块.构造函数类似于java中的实例方法(Instan ...

  2. java静态局部变量_java中成员变量,局部变量,静态变量的辨析

    转自百度:https://baijiahao.baidu.com/s?id=1625360816541592483&wfr=spider&for=pc 1.java中成员变量,局部变量 ...

  3. java程序中的变量_Java中的变量

    实例变量的作用域与对应实例的生存范围相同,而类属性的作用域与这个类的生存范围相同.成员变量无须显式初始化,系统会默认初始化. 与成员变量不同的是,局部变量除了形参之外,不必须显式初始化,否则不可以访问 ...

  4. java实例成员和类成员变量_Java 中成员变量又分为 和类成员变量。_学小易找答案...

    [简答题]I'm not quite so poetic, but I do know that the subway is as essential to the character of New ...

  5. java 数值变量_Java 中数值变量赋值问题

    写了一段判断数值相等判断方法的程序: //在-128~127 之外的数 Integer i1 = 200; Integer i2 = 200; System.out.println("i1= ...

  6. java for循环返回值_Java中的for循环——通过示例学习Java编程(9)

    作者:CHAITANYA SINGH 来源:https://www.koofun.com/pro/kfpostsdetail?kfpostsid=21 循环用于反复执行同一组语句,直到满足特定条件为止 ...

  7. java中doloop语句_Java中的do-while循环——通过示例学习Java编程(11)

    作者:CHAITANYA SINGH 来源:https://www.koofun.com/pro/kfpostsdetail?kfpostsid=22&cid=0 在上一篇教程中,我们讨论了w ...

  8. Java中的do-while循环——通过示例学习Java编程(11)

    作者:CHAITANYA SINGH 来源:https://www.koofun.com/pro/kfpostsdetail?kfpostsid=22&cid=0 在上一篇教程中,我们讨论了w ...

  9. 【26天高效学习Java编程】Day22:Java中的属性集-缓冲流-转换流-序列化流详解

    本专栏将从基础开始,循序渐进,由浅入深讲解Java的基本使用,希望大家都能够从中有所收获,也请大家多多支持. 专栏地址:26天高效学习Java编程 相关软件地址:软件地址 所有代码地址:代码地址 如果 ...

最新文章

  1. python count()计算字符出现的频数
  2. java设计模式---适配器模式
  3. 【Linux】7_存储管理基本分区
  4. leetcode与python进阶学习总结
  5. fan4801开关电源原理图_开关电源原理图各元件功能详解
  6. php webservice 上传,PHP实现WebService服务
  7. assets和res/raw的用法
  8. 从二分逼近领略计算科学的魅力
  9. 资源重复 uac.res resource kept(转)
  10. Java基础篇之返回值
  11. linux下开通ssh
  12. 如何对CAD图纸打印输出路径进行修改?
  13. AntDesign 实战教程 --------前言
  14. vim yank 命令
  15. 图像处理——中值滤波
  16. 移动硬盘 无法访问 解决方法
  17. Linux配置Samba实现局域网共享文件夹
  18. 最好用的分组数据可视化工具--Seaborn调色盘
  19. 米斯特白帽培训讲义(v2)漏洞篇 弱口令、爆破、遍历
  20. 毕业设计之企业网站后台管理的设想

热门文章

  1. html 鼠标图标做成动画效果,纯css3实现的鼠标悬停动画按钮
  2. c语言安卓贪吃蛇代码下载,C语言贪吃蛇代码
  3. 字段 新增hive_Hive分区表 | 每日五分钟学大数据
  4. JQuery 中选择多选择框,和单选框,实现获取相应选择的值
  5. 在latex或者mathtype中如何输入花体,如拉式量L
  6. java web开发基础学习
  7. gulp插件gulp-ruby-sass和livereload插件
  8. treegrid.bootstrap使用说明
  9. CTabCtrl控件标签的相关设置
  10. 关于代码组织的一些看法(上)