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);
}
}