Java chap-4 变量

1 变量的作用域

  • 成员变量:在类中声明,它的作用域是整个类
  • 局部变量:在一个方法的内部声明,它的作用域是整个方法
  • 方法参数:方法的参数,它的作用域是整个方法
public class VarTester{
	int var1 = 0;	//定义var1成员变量

	void method1(int var2){	//var2为方法参数
		int var3 = 0;	//定义var3局部变量

		var1++;
		var2++;
		var3++;
	}
	void method2(){
		var1++;
		var2++;	//编译出错
		var3++;	//编译出错
	}
}

类的成员变量有两种:

  • 类变量(静态变量)static修饰:类的静态变量在内存中只有一个,被类的所有实例共享。静态变量可以直接通过类名被访问
  • 实例变量:类的每个实例都有相应的实例变量。每创建一个类的实例,Java虚拟机就会为实例变量分配一次内存

可以通过静态变量统计实例的个数

在一个方法内,可以定义和成员变量同名的局部变量或参数,此时成员变量被屏蔽。此时如果要访问实例变量,可以通过this关键字来访问,this为当前实例的引用。如果要访问类变量,可以通过类名来访问。

public Monkey(String name){	//参数name
	this.name = name;		//把参数name赋值给Monkey类的成员变量name
}

2 对象的默认引用:this

this是对象默认引用自身的指针

只能在构造方法或实例方法内使用this关键字,而在静态方法内不能使用this关键字

3 参数传递

?方法内部参数可以是类的成员变量,然后在main里在方法间互相传递??

4 变量初始化

  • 成员变量的初始化
    引用类型的变量默认值为null,剩下的看数据类型的表
  • 局部变量:局部变量声明后,不会自动初始化为默认值,必须先显示初始化
public void method(){
	String s1;
	String s2 = null;
	System.out.println(s1);	//编译出错:变量s1必须先初始化
	System.out.println(s2);	//合法,运行的时候打印null
}
  • 用new关键字创建对象
    1.为对象分配内存空间,将对象的实例变量自动初始化为其变量类型的默认值
    2.如果实例变量在声明时被显式地初始化,那就把初始化值赋给实例变量
    3.调用构造方法
    4.返回对象引用
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值