成员变量和局部变量

---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、

<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------


在Java语言中,根据定义变量的位置的不同,可以将变量分为两大类:成员变量和局部变量。今天简单学习下成员变量和局部变量。

成员变量指的是在类范围里定义的变量,也就是属性;局部变量指的是在方法里定义的变量。Java中变量的划分如图所示:


1、成员变量

成员变量被分为类属性和实例属性两种,定义属性是没有static修饰的是实例属性,有static修饰的就是类属性。其中类属性从这个类的准备阶段起开始存在,知道系统完全销毁这个类,类属性的作用域与这个类的生存范围相同;而实例属性则是从该类的实例被创建起开始存在,直到系统完全销毁这个实例,实例属性的生存范围与对应实例的生存范围相同。

下面程序定义了一个Person类,在这个Person类中定义了两个成员变量,一个实例属性name,以及一个类属性age,程序通过PersonTest类来创建Person实例,并分别通过Person类和Person实例来访问实例属性和类属性。

class Person{
	//定义一个实例属性,不以static修饰
	public String name ;
	//定义一个类属性,以static修饰
	public static int age;
}
public class PersonTest {
	public static void main(String args[]){
		//Person类已经初始化了,则age变量起作用了,输出0
		System.out.println("Person的age类属性值:"+Person.age);
		//创建Person对象
		Person p = new Person();
		//通过Person对象的引用p来访问Person对象name实例属性
		//并通过实例访问age类属性
		System.out.println("p变量的name属性值是:" + p.name
				+", p对象的age类属性值是:" + p.age);
		//直接为name实例属性赋值
		p.name = "张三";
		//直接为age类实例属性赋值
		p.age = 25;
		//再次通过Person对象来访问name实例属性和age类属性
		System.out.println("p变量的name属性值是:" + p.name
				+", p对象的age类属性值是:" + p.age);
	}
}
运行上面的程序,将得到如下的结果:

Person的age类属性值:0
p变量的name属性值是:null, p对象的age类属性值是:0
p变量的name属性值是:张三, p对象的age类属性值是:25

2、局部变量

局部变量根据定义形式的不同,又可以分为如下三种:

(1)形参:在定义方法签名是定义的变量,形参的作用域在整个方法内有效。

(2)方法局部变量:在方法体内定义的局部变量,这个局部变量的作用域从定义该变量的地方生效,到该方法结束时失效。

(3)代码块局部变量:在代码块中定义的局部变量,这个局部变量的作用域从定义该变量的地方生效,到该代码块结束时失效。

下面程序是定义代码块局部变量的实例程序:

public class BlockTest {
	public static void main(String args[]){
		{
			//定义一个代码块局部变量
			int a ;
			//没有初始化就访问将会出现错误
			//System.out.println("代码块局部变量a的值是:" + a);
			//为a赋初值
			a = 10;
			System.out.println("代码块局部变量a的值是:" + a);
	    }
		//超出a的作用域,变量不存在
		//System.out.println(a);
	}
}
运行上面程序,结果如下:

代码块局部变量a的值是:10
方法局部变量不再演示,读者可以自己做一下。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值