Java_修饰符static和构造函数

 

本博文为子墨原创,转载请注明出处!
http://blog.csdn.net/zimo2013/article/details/8913408

1.static

    静态修饰符修饰的变量不存在于堆中,而是存于方法区,该数据被所有该类对象共享(堆栈方法区功能>>

    static函数中,只能使用静态成员

    static特点:

        (1).随类的加载而加载,属于类,生命周期最长

        (2).优先于对象而存在

        (3).被所有的对象共享

        (4).直接可以使用类名调用

    静态代码块,随着类的加载而加载,进入主存,对类的初始化

2.构造函数

        当类中没有定义构造函数时,系统会默认一个空参数的构造函数,如果类是public则默认的构造函数会被public修饰如果类被default修饰,则默认构造函数也被default修饰

    在每个子类的构造函数中,都隐含有一句super()语句,除非指定了该super,否则系统会默认一个空参数的构造函数,

    构造代码块,优先于构造函数而存在

    this语句,this(name)语句初始化先执行,必须放在构造函数的第一行

/*
构造函数间的调用以及构造代码块,静态代码块
Strawberry2013-5-11
*/
class Person
{
	String name;
	int age;
	
	{
		//构造函数代码块,new时会执行
	}

	Person(String name)	//会接收this(name)传过来的参数信息
	{
		this.name = name;
	}
	Person(String name, int age)
	{
		this(name);//this语句,该语句会进入能够接收name的构造函数,this语句必须放在第一行
		this.age = age;
	}
	static
	{
		//静态代码块,随类的加载而执行
	}
	//private Person(){}如果不希望该类被new,即成员是static的
}
class Stu extends Person
{
	Stu(String name, int age)
	{
		super(name);
		this.age = age;
	}
/*	Stu(String name, int age)
	{
		super();
		其中隐含有空参数的super语句,
		默认访问父类空参数的构造函数super(),且只能在第一行
		当父类没有空参数的构造函数时,必须指定super语句,
		直接可以,使用父类功能 super(name, age)
	}
*/
}
class Demo
{
	public static void main(String[] args)
	{
		Person p = new Person("zhang", 20);
	}
}



 

 

你可能感兴趣的:(static,构造函数,构造函数调用)