【Java基础】第八课static关键字

一:概念

static是java的关键字,用于修饰成员。

特点:

1、可以修饰成员变量、成员方法。

2、随着类的加载而加载,优先于对象加载。

3、只加载一次,就会一直存在,不再开辟新的空间

4、全局唯一,全局共享

5、可以直接被类名调用

6、静态只能调用静态,非静态可以随意访问

7、static不能和this和super公用,因为加载静态的时候,还没有对象。

练习一:静态成员的创建及特点测试

public class Test1_Static {
	public static void main(String[] args) {
		Person p=new Person();
		p.show();
		/**
		 * 静态资源如何调用
		 */
		//2通过静态方式访问,这行代码也可以放在创建对象之前,说明特点2优先对象加载。
		System.out.println(Person.age);
		//1通过对象,
		System.out.println(p.age);
		/**
		 * 特点4 age的值是18,可以全局共享
		 */
		Student s=new Student();
		System.out.println(s.age);
	}
}
class Person{
//	静态
	static int age=18;
	static public void test() {
		System.out.println("test().....");
//		报错 验证特点7:不能和this和super共用
//		this.age;
//		报错 特点6 静态资源不能调用普通资源
//		show();
	}
	//普通属性
	String name="小明";
	//普通方法
	public void show() {
		System.out.println(name);
//		特点6 普通资源可以调用静态资源
		test();
	}
}
class Student{
	//特点4:只加载一次,就能在多个对象中共享,全局唯一全局共享
	int age=Person.age;
}

结果:

二:静态代码块构造代码块,局部代码块

1、 静态代码块:在类加载时就加载,并且只被加载一次,一般用于项目的初始化

2、 构造代码块:在调用构造方法前会自动调用,每次创建对象都会被调用

3、 局部代码块:方法里的代码块,方法被调用时才会执行

4、 静态代码块:static{   },位置:在类里方法外

练习一:测试上面的特点

public class Test2_Block {
	public static void main(String[] args) {
		new BlockDemo().show();//触发构造方法,构造代码块,局部代码块
	}
}
class BlockDemo{
	//静态代码块:在成员位置 完成项目初始化  类加载时加载
	static {
		System.out.println("静态代码块");
	}
	//构造方法
	public BlockDemo() {
		System.out.println("构造方法");
	} 
	//构造代码块 成员位置 抽取构造代码的共性 创建对象时加载
	{
		System.out.println("构造代码块");
	}
	//局部代码块 局部位置 控制变量的作用范围 方法执行时加载
	public void show(){
		System.out.println("局部代码块");
	}
}

结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值