在JAVA中全局变量如果声明与定义
今天小编给大家分享一下在JAVA中全局变量如果声明与定义的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
在java中我们知道对于全局变量来说可以分为这两种:静态变量和实例变量;那么对于在类体中定义的变量我们需要注意这三点:
1、成员变量不可以在类体中先声明之后在复制,但是在静态变量中是可以先在类体中声明之后在进行赋值的,当然我们的实例变量是不行的,我们来看看下面这个代码:
public class Test { static int a; //在类体中声明整型静态变量a。 int b; //在类体中声明整型实体变量b。 a=3; //在类体中对静态变量a赋初值。 b=5; //在类体中对实体变量b赋初值。 public static void main(String[] args) { System.out.println("a+b="+(a+b)); }}
对于这个程序我们是会出现问题,那么就有人会说为什么在 java 中全局变量不能先声明在赋值了,我们来看下面的这个代码:
public class Test{ int i; {i = 3;} //写在{}里就可以了(这种代码块优先于构造方法执行)}
在代码中i=3
这个是我们的赋值语句,不能单独的出现在方法或者"{ }"
以外的地方,所以我们将代码改成上面的样式就可以了,我们在回过头来看下面这个代码就是可以运行的了:
public class Test { static int a; //在类体中声明整型静态变量a。 public static void main(String[] args) { a=3; //在方法中对静态变量a赋值。 System.out.println("a="+a); }}
我们来对比一下如果没有在类体中声明静态变量的话就会报错,代码如下所示:
public class hello { int a; //在类体中声明整型实体变量a。 public static void main(String[] args) { a=3; //在方法中对实体变量a赋值。 System.out.println("a="+a); }}
2、成员变量可以在类体中声明的时候同时赋值
我们来看下这个代码就可以清楚的知道了,代码如下所示:
public class Test { static int a=3; //在类体中声明整型静态变量a并赋初值。 int b=5; //在类体中声明整型实体变量b并赋初值。 public static void main(String[] args) { System.out.println("a+b="+(a+b)); }}
从代码中我们可以了解到,在类体中进行赋值的方式,这样还不容易出错。
3、不可以连续赋值
先来看这串代码:int a=b=3;
我们在变量中是不可以以这种形式声明和赋值的不论是在类体中还是在方法中。因为在工具的译系统中 b 是被认为没有声明任何数据类型的。不仅如此在数据的转换中,分为隐式转换和显示转换。
隐式转换:
它是指智能从高字节的数据类型向低字节的数据类型进行转换的,因为这样不会丢失原有数据类型的精准度如果要将变量从我们的低字节的数据类型转换成高字节的数据类型,这个时候我们只能使用显示转换,代码如下所示:
short a=3; int b=65537;a=b;
对于这个方式程序是会出现报错的,我们只有写成:a=(short)b
这样才不会报错。但是对于这个方法的话有时候是会失去数据原有的精确性的。
以上就是"在JAVA中全局变量如果声明与定义"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。