package BlockDemo;
public class BlockTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s=Person.desc;
new Person();
}
}
class Person{
//属性
String name;
int age;
static String desc="我是一个人";
//构造器
public Person() {
// TODO Auto-generated constructor stub
}
public Person(String name,int age) {
this.name=name;
this.age=age;
}
//static的代码块
static {
System.out.println("hello,static block");
}
//非static的代码块
{
System.out.println("hello,非static block");
}
//方法
public void eat() {
System.out.println("吃饭");
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
public static void info() {
System.out.println("我爱小徐");
}
}
package BlockDemo;
//由父及子,静态先行,代码块先于构造器
public class LeafTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
new Leaf();
new Leaf();
}
}
class Root{
static {
System.out.println("Root的静态代码块");
}
{
System.out.println("Root的非静态代码块");
}
public Root() {
System.out.println("Root的无参构造器");
}
}
class Mid extends Root{
static {
System.out.println("Mid的静态代码块");
}
{
System.out.println("Mid的非静态代码块");
}
public Mid() {
// TODO Auto-generated constructor stub
System.out.println("Mid的无参构造器");
}
public Mid(String s) {
this();
System.out.println("Mid 的带参构造器,参数值为:"+s);
}
}
class Leaf extends Mid{
static {
System.out.println("Leaf 的静态代码块");
}
{
System.out.println("Leaf的非静态代码块");
}
public Leaf() {
// TODO Auto-generated constructor stub
super("xt");
System.out.println("Leaf的构造器");
}
}