`
uqortbsa
  • 浏览: 14721 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

初始化的实例

F# 
阅读更多
说明:包含main()方法的类中包含有static类,static类先初始化


class Bowl1 {
	Bowl1(int marker) {
		System.out.println("Bowl(" + marker + ")");
	}
	void f1(int marker) {
		System.out.println("f1(" +marker + ")");
	}
}

class Table1 {
	static Bowl1 bow1 = new Bowl1(1);
	Table1() {
		System.out.println("Table1()");
		bowl2.f1(1);
	}
	void f2(int marker) {
		System.out.println("f2(" + marker + ")");
	}
	static Bowl1 bowl2 = new Bowl1(2);
}

class Cupboard1 {
	Bowl1 bowl3 = new Bowl1(3);
	static Bowl1 bowl4=new Bowl1(4);
	Cupboard1() {
		System.out.println("Cupboard1()");
		bowl4.f1(2);
	}
	void f3(int marker) {
		System.out.println("f3(" + marker + ")");
	}
	static Bowl1 bowl5 = new Bowl1(5);
}
public class StaticInitialzation {
	public static void main(String[] args){
		System.out.println("Creating new CupBoard1() in main");
		new Cupboard1();
		System.out.println("Creating new CupBoard1() in main");
		new Cupboard1();
		table.f2(1);
		Cupboard.f3(1);
	}
	static Table1 table = new Table1();
	static Cupboard1 Cupboard = new Cupboard1();
}


结果:
Bowl(1)
Bowl(2)
Table1()
f1(1)
Bowl(4)
Bowl(5)
Bowl(3)
Cupboard1()
f1(2)
Creating new CupBoard1() in main
Bowl(3)
Cupboard1()
f1(2)
Creating new CupBoard1() in main
Bowl(3)
Cupboard1()
f1(2)
f2(1)
f3(1)
class B1 {

	void f(){
		System.out.println(1);
	}
}

class A1 {
	static B1 b;
	static {
		 b=new B1();
	}
	
	A1(){
		System.out.print("a");
	}
}
public class StaticInitialzation {
	public static void main(String args[]) {
	A1.b.f();
		
	}
}

静态初始化只有在必要时刻才会进行(不是说会自动初始化所有类中的静态变量或者静态块):
1.当第一引用类中的static变量时,所有的static变量和static块都会被初始化,类本身不会初始化(A1没有初始化)
2.创建类(B1)
分享到:
评论

相关推荐

    C#中结构(struct)的部分初始化和完全初始化实例分析

    本文将深入探讨结构的两种初始化方式:部分初始化和完全初始化,并通过实例分析其特点和注意事项。 首先,我们来看部分初始化。部分初始化是指在创建结构实例时只给一部分字段赋值,而其余字段保持默认状态。以下是...

    VB 数组的初始化实例

    在VB中,有多种方法可以初始化数组,本篇文章将深入探讨这些方法,并通过实例来说明。 ### 1. 静态初始化 静态初始化是在声明数组的同时为每个元素赋予特定的初始值。在VB中,可以使用以下语法: ```vb Dim 数组...

    4-4python中初始化实例属性.pdf

    总之,Python的`__init__()`方法是初始化实例属性的关键。通过它,我们可以确保每个实例在创建时都有预定义的属性,并且还可以接受任意数量的额外属性,增强了类的灵活性。正确使用`self`参数并结合`**kwargs`关键字...

    java代码的初始化顺序demo

    实例初始化块(非静态初始化块)在这个过程中执行,用于初始化实例变量。 4. **构造函数**: 构造函数是创建新对象时必须调用的方法,它负责设置对象的初始状态。`init`文件可能包含了各种构造函数的实现,展示...

    C#类的创建与初始化实例解析

    本文以一个实例简单实现了类的创建与初始化,实现代码如下所示: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace C_program_test { class Person { public ...

    ts-class-initializable:TypeScript抽象类,允许从普通对象初始化实例属性

    ts-class-initializable 一个小助手,用于从纯对象启用类实例属性的初始化。 扩展一个Initializable类,您的类构造函数将接受一... // 'foobar'班级有几种口味: Initializable :构造函数需要一个普通对象来初始化实例

    java 中数组初始化实例详解

    Java 中数组初始化实例详解 Java 中数组初始化是 Java 编程语言中的一种基本概念,它允许开发者创建和操作数组对象。在本文中,我们将深入探讨 Java 中数组初始化的概念,包括数组初始化的定义、可变参数列表的使用...

    Struts2中实现web应用的初始化实例详解

    Struts2中实现web应用的初始化实例详解 在JavsSE中,main方法为应用提供了入口,而在Android中,我们可以使用Application对于整个应用的生命周期进行管理,那么在基于Struts2的JavaEE应用中,如何实现类似的功能呢。...

    Java变量初始化

    Java 变量初始化的时机可以分为两类:实例变量初始化和类变量初始化。 实例变量初始化 实例变量初始化可以在三个地方进行: 1. 定义实例变量的时候指定初始值; 2. 非静态初始化代码块中对实例变量指定初值; 3. ...

    Java类的加载连接和初始化实例分析

    Java类的加载、连接和初始化实例分析 Java类的加载、连接和初始化是Java虚拟机(JVM)中的一些重要步骤,它们对Java类的生命周期产生了深远的影响。在本文中,我们将详细介绍Java类的加载、连接和初始化的原理和...

    tencentyun#qcloud-documents#初始化实例1

    1. 接口描述 2. 输入参数 3. 输出参数 4. 错误码表 5. 示例

    Vue源码探究之状态初始化

    initState是Vue实例创建过程中最早被调用的方法之一,它负责初始化实例中的各种状态。这个函数主要做了几件事: 1. 定义实例的私有属性_watchers,它用于存储所有的显式监视器。 2. 获取实例的配置对象($options)...

    深入Java初始化.pdf

    3. 当创建对象时,JVM会调用`<init>`方法来初始化实例变量和实例初始化块。 4. 构造函数(如果有的话)在`<init>`方法中调用,用于完成特定对象的初始化。 JVM的初始化过程是高度内化的,程序员通常不需要直接操作...

    java学习之神奇初始化

    4. **实例变量的显式初始化**:在构造器调用之前,会按照声明顺序初始化实例变量。 5. **构造器中的初始化**:构造器中定义的初始化逻辑。 6. **非静态初始化块**:位于类体中的非静态初始化块按照它们出现的顺序被...

    java对象的初始化顺序[参考].pdf

    - 在实例化过程中,按顺序初始化实例成员变量、实例成员函数,最后调用构造函数。 了解这个顺序对于理解和调试涉及多层继承和复杂初始化逻辑的Java代码至关重要。正确掌握这个顺序可以帮助我们避免因初始化顺序不当...

    通过Java字节码发现有趣的内幕之初始化篇(下)Java开

    这部分代码通常在构造函数中,但其实Java字节码层面还有一个特殊的()方法,它负责初始化实例变量。不同于静态初始化,实例初始化只对特定的对象生效。 静态初始化则涉及到类级别的变量。在类加载的准备阶段,静态...

    Objective-C 2.0 with Cocoa Foundation--- 7,对象的初始化以及实例变量的作用域

    在Objective-C中,对象的初始化和实例变量的作用域是编程中的关键概念,对于理解和创建健壮的iOS和macOS应用程序至关重要。 首先,让我们深入理解对象的初始化过程。在Objective-C中,初始化通常涉及`init`方法。每...

    类初始化和实例初始化1

    在Java编程语言中,类和实例的初始化是程序运行中的重要环节,对于理解和优化代码的执行效率至关重要。这里我们将深入探讨这两个概念。 首先,我们来看类的初始化过程,也称为类加载与初始化。当Java虚拟机(JVM)...

    Java类加载器:静态变量初始化.docx

    4. 如果静态变量的赋值语句中包含实例变量的引用,则先初始化实例变量。 在上面的代码示例中,我们可以看到,Singleton 类中的静态变量 a 和 b 都是通过静态块来初始化的。在 Singleton 类的静态块中,我们首先对 a...

Global site tag (gtag.js) - Google Analytics