Java第十六篇:详述变量(局部变量、实例变量和静态变量)

一、变量:属性值可以发生变化的属性;

二、在Java当中,变量分为成员变量(在类中声明的变量)和局部变量,在C语言中变量分为全局变量和局部变量,这里读者注意区别;

三、局部变量:在方法块或循环结构当中定义的变量,详情看下面的例子:

package study;

/**
 * 
 * @author 黑大帅
 * @date 2020.1.24
 * 实现功能:对java中局部变量、实例变量和静态变量的理解
 */
public class Study{
	static int x;  //定义静态变量  
	int y;  //定义实例变量
	void setx(int x0) {    //定义局部变量x0
		x=x0;
	}
	void sety(int y0) {  //定义局部变量y0
		y=y0;
	}
}

四、成员变量又可以分为:静态变量和实例变量;

五、讨论静态变量(也称类变量)和实例变量:(个人理解,希望学着能明白)

区别一:
    静态变量:在类中声明,在变量前添加关键字static;如:static int c;
    实例变量:在类中声明,直接定义就ok,如:int c;
区别二:
    静态变量:为所有对象共同享有;其中一个对象改变变量的值,其它对象得到这个变量的值也会发生改变;
    实例变量:为对象私有,其中一个对象改变变量的值,对其它对象得到这个变量的值没有影响;
结合下面这个例子更能够帮助你理解:

package study;
/**
 * 
 * @author 黑大帅
 * @date 2020.1.24
 * 实现功能:对java中变量的理解(主要是静态变量和实例变量)
 */

public class Study {                            
	public static void main(String args[]) {
		S s1= new S();
		S s2 = new S();
		
		System.out.println("通过s1来设置变量x和y的值");
		s1.setx(1);
		s1.showx();
		s2.showx();
		s1.sety(2);
		s1.showy();
		s2.showy();
		
		System.out.println("-----------------------------------------");
		
		System.out.println("通过s2来设置变量x和y的值");
		s2.setx(1);
		s1.showx();
		s2.showx();
		s2.sety(2);
		s1.showy();
		s2.showy();
		
	}
}
class S{
	static int x; //定义静态变量x
	int y;   //定义实例变量y
	
	//通过set方法修改变量x的值
	void setx(int x0) {
		x=x0;
	}
	//通过set方法修改变量y的值
	void sety(int y0) {
		y=y0;
	}
	//打印出x的值
	void showx() {
		System.out.println("x="+x);
	}
	//打印出y的值
	void showy() {
		System.out.println("y="+y);
	}
}

显示结果为:
在这里插入图片描述
过程分析:
    从上面的例子我们可以看到:定义x为静态变量,定义y为实例变量,我通过s1给x和y设置值,对象s1和对象s2得到变量x的值都是1,得到变量y的值却不一样,原因就是y是实例变量,属于对象s1私有;我通过s2给x和y设置值,对象s1和对象s2得到变量x的值都是1,对象s1中y的值为2,对象s2中y的值也为2,这里对象s2中y的值是我赋予的,这也恰恰说明了区别二的性质。

有疑问欢迎在下方留言

点个赞,加个关注呗!嘿嘿!

发布了30 篇原创文章 · 获赞 72 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/H_W_1212/article/details/104079892