美文网首页
Think In Java(四)初始化

Think In Java(四)初始化

作者: 如雨随行2020 | 来源:发表于2022-01-16 02:08 被阅读0次
  1. 指定初始化
    如果想为某个变量赋初始值,有一种很直接的办法,就是在定义类成员变量的地方为其赋值(在C++里不能这样做,尽管C++的新手们总想这样做)。以下代码片段直接给成员变量赋初值。
public class InitialValues {
    boolean bool = false;
    char ch = 'x';
    int i = 939;//....
}

也可以用同样的方法初始化非基本类型的对象。如果Depth是一个类

class Depth{}

public class Measurement {
    Depth d = new Depth();
    //....
}

甚至可以通过调用某个方法来提供初值:

public class MethodInit {
    int i = f();
    int f() {return 11;}
}

这个方法也可以带有参数,但这些参数必须是已经被初始化了的。

public class MethodInit2 {
    int i = f();
    int j = g(i);
    int f() { return 11; }
    int g int(int n) { return n * 10; }
  1. 构造器初始化(略)

  2. 初始化顺序
    例子:

    public class Initialization {
        Cup cup1 = new Cup(1);
        {
            System.out.println("init statament");
            Cup cup2 = new Cup(2);
        }
        Cup cup3 = new Cup(3);
    
        static Cup cup5 = new Cup(5);
        static {
            System.out.println("static init statament");
            Cup cup4 = new Cup(4);
        }
        static Cup cup6 = new Cup(6);
        public static void main(String[] args) {
            System.out.println("main()");
            Initialization initialization = new Initialization();
            staticInit();
        }
        public Initialization() {
            System.out.println("Initialization()");
            Cup cup7 = new Cup(7);
        }
    
        public static void staticInit() {
            System.out.println("staticInit()");
            Cup cup8 = new Cup(8);
        }
    }
    class Cup {
        public Cup(int i) {
            System.out.println("cup:" + i);
        }
    }
    
    

    输出:

cup:5
static init statament
cup:4
cup:6
main()
cup:1
init statament
cup:2
cup:3
Initialization()
cup:7
staticInit()
cup:8

总结:1)语句块对初始化顺序没有影响(即有没有大括号不影响顺序)
2)静态初始化语句—>>main—>>非静态初始化语句—>>构造器。
3)静态初始化语句只初始化一次
4)被static修饰的初始化块内都属于静态初始化语句;
5)没想到吧,加上大括号后还能写除定义成员变量以外的语句

相关文章

  • Think In Java(四)初始化

    指定初始化如果想为某个变量赋初始值,有一种很直接的办法,就是在定义类成员变量的地方为其赋值(在C++里不能这样做,...

  • Think in Java

    类描述了具有相同特性和行为的对象的集合。所以类实际上是一个数据类型。 public表示任何人都可以使用privat...

  • Think in Java

    一切皆对象 引用 每种编程语言都有操纵内存中元素的方式。例如C/C++之于指针、Java之于引用把对象看作电视机(...

  • Think in java 学习笔记:初始化与清理

    1.用构造器确保初始化 以下为带有构造器的简单类class Rock{ Rock(){ System.out.pr...

  • OOP

    java in think 起因 自从买了Java in think 这本书,一直想认真仔细的品味下这本某种意义的...

  • 读书笔记 | 《Think in Java》Ⅴ 初始化与清理

    Ⅴ 初始化与清理 ---4.9更新--- 随着计算机革命的发展,“不安全”的编程方式已经逐渐成为编程代价高昂的主因...

  • Think in Java(目录)

    最近打算读一读《Think in Java》(第四版中文) 先放上一段读者评论, 每个Java程序员都应该反复研读...

  • 2019-06-12

    java同步二 synchronized(obj)块有四种 局部块 构造块 初始化对象信息 静态块 初始化类,先于...

  • 《Effective Java》—Java进阶必备

    《Effective Java》是 Java 领域的经典之作,其影响力不亚于《Think in Java》。它是每...

  • Think In Java 笔记

    Think in java 中的记录 return的作用一种是返回参数所用的关键字,假如一个有返回值的方法执行完了...

网友评论

      本文标题:Think In Java(四)初始化

      本文链接:https://www.haomeiwen.com/subject/ehyraltx.html