java 中this调用静态变量及实例变量的若干错误

public class Test11{
	private int id;
	public static void main(String[] args){
		Test11 t = new Test11();
		t.m1();
		System.out.println(id);		//此行的错误在于静态的主方法内不可直接调用非静态的实例变量或实例方法
		t.m2();
		System.out.println(t.id);	//私有的实例变量需要由对象调用
		t.m3(15);
		System.out.println(Test11.id);	//此行错误 只有静态变量才可以用类名.调用
	}
	public void m1(){
		this.id = 45;	//调用m1方法改变了成员变量id的值为45
		System.out.println(id);
	}
	public void m2(){
		Test11.id = 45;	//此行错误 只有静态变量才可以用类名.调用  实例变量不可以这样调用
		System.out.println(id);
	}
	public static void m3(int id){	//此行正确因为方法体中的id为形参列表中的局部变量非类中实例变量
		id = 45;	// 此方法体中的id虽然由t.m3(15)传入了15但是方法中又给id赋值为45 
		System.out.println(id);		//此行输出最终为45  但是仅为局部变量的值 不影响成员变量的值
	public static void m4(int id){
		this.id = 45;	// 此行错误因为在静态方法中用 this.id 调用了类中的实例变量 
		System.out.println(id);		
	}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值