前言
在Java语言中,变量有很多种,大家总是傻傻分不清楚~,接下来让我带你搞清楚这个东西吧
正文:
首先大家要知道共有几种变量:
问题发现与解答:
那么看到这里大家可能会有几个问题:
问题一:什么是实例属性?什么是类属性?
问题二:什么是代码块?
问题三:成员变量和全局变量什么关系?
下面来一一解答:
1、要想搞清楚什么是实例属性、类属性,前提是知道什么是实例,什么是类(这个在这里就不多说,不清楚的大家自己查下)。实例属性:与实例(对象)相关的也就是这个属性属于某一个new出来的具体对象(实例),实例属性的生命周期随实例的存在而存在。类属性:与类相关的,而不属于某一个new出来的具体对象(实例),类属性的生命周期随类的存在而存在。
2、代码块:Java代码块,直接写在花括号{}中的,没有方法名的称之为代码块,常见的代码块有四类:静态代码块、构造代码块,局部代码块,同步代码块。关于代码块,小编之后会推出博客来详解!
关于代码块的博客已经推出,点击查看:【Java】——Java四大代码块
3、首先,java中是没有全局变量这个概念的,java程序中不能像C++那样在类外定义全局变量,因为JAVA当初出现的初衷就是为了安全性和跨平台性,所以去掉了类似C、C++中的全局变量的概念。JAVA中不应该有所谓全局变量的概念,全局变量严重影响了封装和模块化,所以中需要所谓的全局变量,那一定是对程序的设计出了问题。以上是网上的观点,但就我目前来说,一个能在全局上使用的变量是有必要的。
第二点,java提供了public static关键字来实现一个全局的变量。如果程序只有一个包的话,那么将这个public static(被声明为static的变量不需要实例化对象即可直接使用类名来引用之) 修饰的变量放到程序初始化的地方去实现,就可以在这个程序的各个地方直接调用这个变量了。这虽然不叫全局变量,但实际使用中和全局变量的意思是一样的。当然你也可以完全不用全局变量,可以写一个类,定义一般变量,并为该类定义一些操作变量的方法,通过调用可以更改变量的这些方法来达到使用全局变量的目的。变量在代码中的体现:
类变量:
public class TestScope{
static int i //成员变量之类变量,特点:声明在类内方法外,且有Static关键字修饰。
public static void main(String[] args)
{
for(i=0;i<10;i++)
{
System.out.println("Hello");
}
}
}
实例变量:
public class TestScope{
int i //成员变量之实例变量,特点:声明在类内方法外,无Static关键字修饰。
public static void main(String[] args)
{
for(i=0;i<10;i++)
{
System.out.println("Hello");
}
}
}
方法中的变量:
public class TestScope{
public static void main(String[] args)
{
int i //局部变量之方法中的变量,特点:声明在方法内
for(i=0;i<10;i++)
{
System.out.println("Hello");
}
}
}
代码块中的变量:
public class TestScope{
public static void main(String[] args)
{
for(int i=0;i<10;i++) //局部变量之代码块红的变量:定义一个代码块局部变量:特点在代码块中
{
System.out.println("Hello");
}
}
}
形参:
关于形参大家应该都知道,在方法的参数位置所声明的变量,即为形参!总结:
看到这里,关于这几种变量大家应该有了一个了解,首先变量宏观上分为两类:成员变量和局部变量。成员变量中包括类变量和实例变量。局部变量也包含三种:形参,方法局部变量,代码块局部变量。这个时候我们就会遇到一个问题,上面所介绍的几类参数均可以实现打印出多行Hello的功能。那么这个时候我们该选择把变量“i”以何种方式声明?
其实这个时候,咱们就应该思考下这不同变量的生命周期和其作用域????思考下吧baby~~
下篇博客为大家揭晓~~~
感谢你的阅读~❀