Java-static用法

public class TestStatic {
int id;
String name;
String pwd;

static String company ="杭州阿里巴巴";

public TestStatic(int id,String name){
	
	this.id = id;
	this.name=name;	
}

public void login(){
	PrintCompany();
	System.out.println("company");
	System.out.println("登陆:"+name);
}

public static void PrintCompany(){
	//login(); //调用非静态成员变量,编译就会报错
	System.out.println(company);
}

public static void main(String[] args){
	TestStatic  u= new TestStatic(101,"李寻欢");
	u.PrintCompany();//这里会报错
	System.out.println("###########");
	u.company="深圳腾讯";
	TestStatic.PrintCompany();
	System.out.println("###########");
	TestStatic.company="杭州网易";
	TestStatic.PrintCompany();
}
}

运行结果:
杭州阿里巴巴
###########
深圳腾讯
###########
杭州网易

我们发现,虽然我们新建了一个对象u,但是其为company的属性名定义为静态变量后,我们只对对象的属性赋值,但是每次调用u.PrintCompany()时,只是相当于输出company,并非是u.conmpany,也没多进行赋值语句,却是直接输出的新赋值的company;所以得出结论:

静态变量从属于类,一般变量从属于对象!!其被该类定义的所有对象共享使用。

注:Static一些概念且注意 静态只能调用静态,动态却可以反而可以调用静态!!

猜你喜欢

转载自blog.csdn.net/li_xunhuan/article/details/88903003