面向对象—06—静态代码块

来源:互联网 发布:js 解析xml 编辑:程序博客网 时间:2024/05/18 01:25

 


/*
静态代码块
格式:
static
{
 静态代码块中的执行语句
}

特点:随着类的加载而执行,只执行一次。
用于给类进行初始化的。
*/
class StaticCode
{
 static
 {
  System.out.println("a");
 }
}

class StaticCodeDemo
{
 static
 {
  System.out.println("b");
 }
 public static void main(String[] args)
 {
  new StaticCode();
  new StaticCode();
  System.out.println("over");
 }
 static
 {
  System.out.println("c");
 }
}
输出:b c a over
------------------------------------------

class StaticCode
{
 static
 {
  System.out.println("a"); 
 } 
 public static void show()
 {
  System.out.println("show run"); 
 }
}
class StaticCodeDemo
{
 public static void main(String[] args)
 {
  StaticCode.show(); //类名调用静态方法,输出:a show run
  StaticCode s = null;//无输出结果
 } 
}
------------------------------------------
class StaticCode
{
 int num = 9;
 StaticCode()
 {
  System.out.println("b");//不会打印,没有与之对应的对象 
 } 
 
 static //静态代码块给类初始化
 {
  System.out.println("a"+num);//+num会报错,静态不能调用非静态
 }
 
 {
  System.out.println("c"+num);//构造代码块给对象初始化,可以+num(即+this.num) 
 }
 
 StaticCode(int x)//构造函数给对应对象初始化
 {
  System.out.println("d"); 
 }
 public static void show()
 {
  System.out.println("show run"); 
 }
}
class StaticCodeDemo
{
 public static void main(String[] args)
 {
   new StaticCode(4);
 } 
}
//输出:a c d

----------------------------------------------------------------------------------

个人总结:静态代码块给类初始化,构造代码块给对象初始化,构造函数给对应对象初始化

 

原创粉丝点击