Static关键字

static关键字:

                            static关键字,用户修饰成员变量和成员方法。

                            static关键字的特点:被所有的对象所共享,可以被类名所调用,静态的加载优先于对象(随着类的加载而加                             载,类加载字节码对象的时候呢就业把他给加载在类的方法区中了)

public class StaticDemo01 {

	public static void main(String[] args) {
		Person p = new Person();
		p.name = "二哈";
		p.from = "万达广场";
		p.show();
		Person p2 = new Person();
		p2.name = "王思聪";
		p2.from = "万达广场";
		p2.show();
	}

}
class Person{
	String name;
	int age;
	String from;
	public void show() {
		System.out.println(name+"===="+from);
	}
}
out:
二哈====万达广场
王思聪====万达广场

         在代码中有着重复的赋值,如果有成千上万的人都来自“万达广场”,那我就得把p2.from = “   ”;做无数次的相同赋值,这样做浪费了资源,而且代码看上去臃肿不简洁。

         所以呢从这里就用到static看下面的代码及结果

public class StaticDemo01 {

	public static void main(String[] args) {
		Person p = new Person();
		p.name = "二哈";
		p.from = "万达广场";
		p.show();
		Person p2 = new Person();
		p2.name = "王思聪";
		//p2.from = "万达广场";
		p2.show();
	}

}
class Person{
	String name;
	int age;
	static String from;
	public void show() {
		System.out.println(name+"===="+from);
	}
}
out:
二哈====万达广场
王思聪====万达广场

      输出的结果是一样的。

代码块中代码也可以这样写

把   // p.from = "万达广场";注释掉。改为:

Person.from = "万达广场";

public class StaticDemo01 {

	public static void main(String[] args) {
		
        Person p = new Person();
        Person.from = "万达广场";
		p.name = "二哈";
		//p.from = "万达广场";
		p.show();
		Person p2 = new Person();
		p2.name = "王思聪";
		//p2.from = "万达广场";
		p2.show();
	}

}
class Person{
	String name;
	int age;
	static String from;
	public void show() {
		System.out.println(name+"===="+from);
	}
}
out:
二哈====万达广场
王思聪====万达广场

从加载情况来分析:

              他是在Person类加载之前就已经赋值了。

static静态关键字的注意事项:

——静态方法只能访问静态成员

——非静态方法既可以访问静态也可以访问非静态

——非静态方法中不可以定义静态变量

——静态方法中不可以定义this,super关键字。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值