java静态初始化代码块

/*
 * 为什么Java中为什么没有静态构造函数。其实Java中不叫静态构造函数,称作静态初始化,或者静态代码块。
 * 可以通过这样的代码实现相同的功能:
 */
public class test {

    /**
     * @param args
     */
    public static void main(String[] args) {
        System.out.println(Point.getValue());
        System.out.println(new Point());  //why?不直接调用方法即可呢
    }
}

class Point {
    private static int value = 0;

    public static int getValue() {
        return value;
    }
    //静态代码块*1
    static {
        value++;
    }
   //静态代码块*2
    static {
        value++;
    }

    private int x = 0;
    private int y = 0;

    {
        this.x = 10;
    }

    {
        this.y = 10;
    }

    public String toString() {
        return "(x:" + this.x + ",y:" + this.y + ")";
    }
}

  

时间: 2024-10-07 00:58:45

java静态初始化代码块的相关文章

Java(静态)变量和(静态)代码块的执行顺序

本文讨论Java中(静态)变量.(静态)代码块的执行顺序 首先创建3个类: 1.Foo类,用于打印变量 public class Foo { public Foo(String word) { System.out.println(word); } } 2.Parent类 public class Parent { static Foo FOO = new Foo("Parent's static parameter"); Foo foo = new Foo("Parent'

Java中动态代码块,构造代码块,静态代码块之间的执行顺序

Java中动态代码块,构造代码块,静态代码块之间的执行顺序 /** * Java中动态代码块,构造代码块,静态代码块之间的执行顺序 * @author Administrator * */ class HelloA { public HelloA() { System.out.println("HelloA"); } { System.out.println("I'm A class"); } static { System.out.println("st

java提高篇-----代码块

自己添加部分 构造代码块在变量初始化之后执行:也符合java编程思想中  ---- 静态构造代码块>变量初始化>普通构造代码块 在编程过程中我们可能会遇到如下这种形式的程序: public class Test { { //// } } 这种形式的程序段我们将其称之为代码块,所谓代码块就是用大括号({})将多行代码封装在一起,形成一个独立的数据体,用于实现特定的算法.一般来说代码块是不能单独运行的,它必须要有运行主体.在Java中代码块主要分为四种: 一. 普通代码块 普通代码块是我们用得最多

静态构造代码块、构造代码块、构造方法执行的顺序问题

/ 当前方法的执行结果是什么?请简述原理 / class Demo1 { static { Demo2 d = new Demo2(); } { System.out.println("我是Demo1的构造代码块"); } public Demo1() { System.out.println("我是Demo1的构造方法"); } } class Demo2 { static { Demo1 d = new Demo1(); } { System.out.print

Java中普通代码块,构造代码块,静态代码块区别及代码示例

//普通代码块:在方法或语句中出现的{}就称为普通代码块.普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--"先出现先执行"public class CodeBlock01{ public static void main(String[] args){ { int x=3; System.out.println("1,普通代码块内的变量x="+x); } int x=1; System.out.println("主方法内的变量x="

关于java中普通代码块、构造代码块与静态代码块

1.普通代码块 public static void main(String[] args) { /*普通代码块: *直接定义在在方法或语句中出现”{普通代码的执行语句}“的就称为普通代码块. *普通代码块执行顺序由他们在代码中出现的次序决定--“先出现先执行” * */ { System.out.println("这里是普通代码块A"); } //new A(); { System.out.println("这里是普通代码块B"); } } 执行结果:这里是普通代

Java中普通代码块,构造代码块,静态代码块的代码示例及区分

//执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1 普通代码块 <span style="font-size:12px;">//普通代码块:在方法或语句中出现的{}就称为普通代码块.普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--"先出现先执行" public class CodeBlock01{ public static

转载:Java中普通代码块,构造代码块,静态代码块区别及代码示例

//执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1.普通代码块 1 //普通代码块:在方法或语句中出现的{}就称为普通代码块.普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行” 2 public class CodeBlock01{ 3 public static void main(String[] args){ 4 5 { 6 int x=3; 7 Syst

Java static 变量,方法 静态初始化化块

static修饰的变量和方法属于类,在类加载时在内存中分配空间: 调用时可以直接通过类名调用,当通过创建对象改变的是静态变量时,那么该静态变量就改变了: 静态方法中不能直接访问非静态的成员变量和方法,可以通过创建对象访问:反之,非静态的成员变量可以访问静态的变量和方法: 可以通过构造器,初始化块和静态初始化块来给成员变量赋值:相比于构造器和初始化块在没创建一个对象时执行一次,并且初始化块在构造器之前执行:静态代码块只执行一次: