Java学习笔记(4)
目录
一、静态什么时候用?
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();
}
}
运行结果