全局变量和局部变量初始化及默认值探究

public class VariableTest {
	class Person {
		private String familyName;
		private String lastName = "33";
		private int age;
		private Integer gender;

		public String getFamilyName() {
			return familyName;
		}

		public void setFamilyName(String familyName) {
			this.familyName = familyName;
		}

		public String getLastName() {
			return lastName;
		}

		public void setLastName(String lastName) {
			this.lastName = lastName;
		}

		public int getAge() {
			return age;
		}

		public void setAge(int age) {
			this.age = age;
		}

		public Integer getGender() {
			return gender;
		}

		public void setGender(Integer gender) {
			this.gender = gender;
		}

		@Override
		public String toString() {
			return "Person [familyName=" + familyName + ", lastName=" + lastName + ", age=" + age + ", gender=" + gender
					+ "]";
		}
	}

	@Test
	public void propertyInitTest() {
		// private String familyName;
		// private String lastName = "";
		// private int age;
		// private Integer gender;
		Person person = new Person();
		System.out.println(person);// Person [familyName=null, lastName=, age=0,
									// gender=null]
		String lastName = person.getLastName();
		if ("".equals(lastName)) {
			System.out.println("string类型全局变量初始化值");
		}
		String dd;
		// System.out.println(dd);
	}
}

首先应该了解的是,在类中声明的变量叫做全局变量(global variable),在方法中声明的变量叫做局部变量(local variable)。

        全局变量在声明时可以赋值也可以不赋值。如果赋值的话,第一次使用时使用的是所赋的值;如果不赋值的话,则第一次使用时使用的是全局变量的默认值:引用类型(String,Integer,Boolean等包装类型)的变量默认值都是null,基本类型的变量默认值则不一样,int型变量默认值是0,boolean型变量默认值是false

       局部变量在声明时也是可以赋值或者不赋值,但是在使用之前一定要赋值,否则在使用的时候会报编译错误的,说 The local variable dd may not have been initialized。

       总结来说,全局变量在使用前不必赋值,没赋值的话用默认值,然而局部变量在使用前必须赋值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值