static关键字

static关键字

  • static修饰的成员变量属于类,不属于这个类的某个对象.
  • 多个对象在访问或修饰static修饰的成员变量时,其中一个对象将static成员变量值进行了修改,其他对象中的static成员变量值也会跟着改变,即多个对象共享同一个static成员变量.
public class Demo{
	public static int num = 100;
}
public class Test{
	public static void main(String[] args){
		Demo d1 = new Demo;
		Demo d2 = new Demo;
		d1.num = 200;//修改了static的成员变量值
		System.out.println(d1.num);//结果为200
		System.out.println(d2.num);//结果为200
	}
}
  • 被static修饰的成员可以并且建议通过类名直接访问.
    • 类名:静态成员变量名.
    • 类名:静态成员方法名(参数)
    • 对象名:静态成员变量名–不建议使用该方式,会出现警告
    • 对象名:静态成员方法名(参数)–不建议使用该方式,会出现警告
	public class Demo{
	//静态成员变量
		public static int num = 100;
		//静态方法
		public static void method(){
			System.out.println("静态方法");
		}
	}
public class Test{
	public static void main(String[] args){
		Demo.method();
		System.out.println(Demo.num);
	}
}

static 注意事项!

  • 静态内容是优先于对象存在,只能访问静态,不能使用this/super.静态修饰的内容存于静态区.
class Demo{
	//成员变量
	public int num= 100;
	//静态方法
	public static void method(){
		//this.num;不能使用this/super
		System.out.println(this.num);
	}
}
  • 同一个类中,静态成员只能访问静态成员.
public class Demo{
	//成员变量
	//静态成员变量
	public static int conn=122;
	public static void method(){
		//System.out.Println(num);静态方法中,只能访问静态成员变量或者静态成员方法
		System.out.println(conn)
	}
}
  • main方法为静态方法仅仅为程序执行入口,它属于任何一个对象,可以定义在任意类中.

静态代码块与构造代码块

public class Person{
	static{
		System.out.println("静态代码块");
	}
	{
		System.out.println("构造代码块");
	}
}
  • 加载顺序:静态代码块 -> 构造代码块 -> 构造代码.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值