静态代码块
一、Java中的静态代码块(代码):
package cn.tedu.staticx;
public class StaticDemo3 {
public static void main(String[] args) {
System.out.println(SA.i);//类名调用静态属性
System.out.println(new SA().i);//对象调用
}
}
class SA{
//静态属性
static int i=1;
//静态代码块—初始化静态属性—只加载一次
static{
i=10;
System.out.println(“静态代码块”);
}
{
System.out.println(“父类构造代码块”);
i=100;//非静态直接调用静态信息
}
public SA(){
System.out.println(“父类构造方法”);
}
}
class SB extends SA{
{
System.out.println(“子类构造代码块”);
}
public SB(){
System.out.println(“子类构造方法”);
}
}
输出:
静态代码块
10
父类构造代码块
父类构造方法
100
Java中的静态代码块(代码图):输出:
二、Java中的静态代码块(代码):
package cn.tedu.staticx;
public class StaticDemo3 {
public static void main(String[] args) {
/* System.out.println(SA.i);//类名调用静态属性
System.out.println(new SA().i);//对象调用*/
//创建子类对象
new SB();
new SB();
}
}
class SA{
//静态属性
static int i=1;
//静态代码块—初始化静态属性—只加载一次
static{
i=10;
System.out.println(“静态代码块”);
}
{
System.out.println(“父类构造代码块”);
i=100;//非静态直接调用静态信息
}
public SA(){
System.out.println(“父类构造方法”);
}
}
class SB extends SA{
{
System.out.println(“子类构造代码块”);
}
public SB(){
System.out.println(“子类构造方法”);
}
}
输出:
静态代码块
父类构造代码块
父类构造方法
子类构造代码块
子类构造方法
父类构造代码块
父类构造方法
子类构造代码块
子类构造方法
Java中的静态代码块(代码图):输出: