Note5: 类和对象 static this关键字

本文通过两个具体的Java案例,深入浅出地解析了this关键字的作用及static修饰符的特点。案例1展示了this如何明确区分成员变量与局部变量;案例2则通过实例解释了static变量在不同对象间的共享行为。

   晕乎乎的过了几天    都没怎么看书,  甚至还在怀疑自己要不要走专业   so  funny.

case1:  有没有this 的区别

<span style="font-size:14px;">public class B {
	int x=100,y=200;
	public void setX(int x){
		<u>x=x;</u>
	}
	public void setY(int y){
		<u>this.y=y;</u>
	}
	public int getSum(){
		int sum=x+y;
		return sum;
	}
}</span>

<span style="font-size:14px;">public class A {
	public static void main(String args[]) {
	B b=new B();
	b.setX(-100);
	b.setY(-200);
	System.out.println(b.getSum());
	}
}</span>
  结果是-100 。   我以为是100呢 - -     有this 就代表他指定setY(int y)这里面的值  而不是成员变量里面y的值、


case2: 有无static 的区别

<span style="font-size:14px;">public class B {
	int n;
	<u>static</u> int sum = 0;

	void setN(int n) {
		this.n = n;
	}

	int getSum() {
		for (int i = 1; i <= n; i++) {
			sum = sum + i;
<u>			System.out.print(" " + sum);</u>
		}
		return sum;
	}
}</span>

<span style="font-size:14px;">public class A {
	public static void main(String args[]) {
		B b1 = new B();
		B b2 = new B();
		b1.setN(3);
		b2.setN(5);
		int s1 = b1.getSum();
		int s2 = b2.getSum();
		System.out.println(s1 + s2);
	}
}</span>

在没有运行之前 我觉得结果是21  ,运行之后是27   完全想不到怎么来的  调试之后还是不知道  最后在sum=sum+i;那加了个输出以便观察结果。  发现第二次调用getSum的时候 ,sum的值并没有重置为0,而是接着b1里面sum的值6 。 所以结果就是6+21 =27.     测试了去掉static  结果和我最开始想的一样 21、
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值