Java学习笔记(4)

目录

一、静态什么时候用?

1、静态变量。

2、静态函数

二、静态代码块

三、构造代码块

四、 静态代码块和构造代码块示例


一、静态什么时候用?

1、静态变量。

1)当分析对象中所具备的成员变量的值都是相同的,这时这个成员就可以被静态修饰。

2)只要数据在对象中都是不同的,就是对象的特有数据,必须存储在对象中,是非静态的

3)如果是相同的数据,对象不需要做修改,只需要使用即可,不需要存储在对象中,定义成静态的

2、静态函数

1)函数是否用静态修饰,就参考一点,就是该函数功能是否有访问到对象中的特有数据,简单说,从源代码看,该功能是否需要访问非静态的成员变量,如果需要,该功能就是非静态的如果不需要,就可以将该功能定义成静态的。当然,也可以定义成非静态的,但是非静态需要被静态调用,而仅创建对象调用非静态的

2)没有访问特有数据方法,该对象的创建是没有意义的

二、静态代码块

1、特点

随着类的加载而执行。而其只执行一次。

2、作用:

用于给类进行初始化

三、构造代码块

1、特点

随着对象的创建而执行

2、作用:

可以给所有对象进行初始化

四、 静态代码块和构造代码块示例

class Person
{
	private String name;

	{//构造代码块。可以给所有对象进行初始化
		cry();
	}

	Person()//构造函数是给对应的对象进行针对型的初始化
	{
		name = "baby";
	}
	Person(String name)
	{
		this.name = name;
	}

	public void speak()
	{
		System.out.println("name:"+name);
	}
	public void cry()
	{
		System.out.println("wawawaawa");
	}
}

class  StaticCodeDemo
{
	//静态代码块,随类的加载而加载,且只加载一次
	static
	{
		System.out.println("A");
	}

	public static void main(String[] args) 
	{ 
		Person p1 = new Person();
		p1.speak();
		Person p2 = new Person("旺财");
		p2.speak();
	}
}

运行结果

Java学习笔记(4)