`

面向对象编程之块的定义

阅读更多

目录

1. 分类

2. 解析

3. 构造块和构造器的区别

4. 加载顺序

 

1. 分类

普通块: 方法内|块内

静态块:类中方法外+static 

构造块:类中方法外

同步块:多线程讲解synchronized

 

2.解析

    1. 静态块:初始化类信息,仅加载一次

    2. 构造块:初始化对象信息,先于构造器执行的,每创建一个对象 初始化一次

 

3.构造块和构造器的区别

     1. 构造块先于构造器执行

 

     2. 构造器能够动态传参。

 

/**
 * 块:{} 作用域问题
 * 
 * @author zhongaidong
 */
public class Block {
	int a = 30;
	// 静态块
	static {
		// 类中方法外 初始化类信息,仅加载一次
		System.out.println("静态块");
	}

	// int a =0; //成员变量

	// 构造块:每创建一个对象 初始化一次
	{
		// 类中方法外 初始化对象信息,先于构造器执行的
		System.out.println("构造块");
		a = 20; // 字面值
	}

	public Block() {
		System.out.println(a);
	}

	public Block(int a) {

		this.a = a;
		System.out.println(a);
	}

	public static void main(String[] args) {

		{
			// 普通块
			int a = 0; // a仅在该块中有效
		}
		System.out.println("......");
		new Block(); // 每创建一个对象 调用构造块 +调用构造器
		new Block(100);
	}
}

 

4. 加载顺序

     1、先父类后子类

     2、先静态后成员

     3、静态一次,成员多次

public class F {
	static {
		System.out.println("F-->static");
	}
	{
		System.out.println("F-->constructor block");
	}

	public static void main(String[] args) {
		new C();
		new C();
	}
}

class C extends F {
	static {
		System.out.println("C-->static");
	}

	{
		System.out.println("C-->constructor block");
	}

}

 

 

 

 

 

分享到:
评论

相关推荐

    Java面向对象程序设计

    1. **面向对象编程基础**:面向对象编程(OOP)是一种编程范式,它基于“对象”的概念,强调数据和操作数据的方法结合在一起。Java作为一款纯面向对象的语言,其一切皆为对象,包括基本类型都有对应的包装类。 2. *...

    java面向对象编程pdf

    面向对象编程(Object-Oriented Programming,OOP)是一种编程范式,它将程序设计看作是对象的交互,对象之间的关系和行为。 一、对象和类 在Java中,对象是指具有某些特征和行为的实体,例如人、学生、大象、冰箱...

    JAVA面向对象程序设计(期末考试试题及答案)

    JAVA面向对象程序设计是 Java 编程语言的核心 contents,涵盖了面向对象编程的基本概念、语法规则、编程技术和实际应用等方面的知识。本文总结了 JAVA面向对象程序设计的知识点,涵盖了 Java 语言的基本语法、面向...

    C#面向对象编程期末参考题

    【标题】"C#面向对象编程期末参考题"揭示了本次讨论的核心——C#编程语言中的面向对象编程(Object-Oriented Programming, OOP)概念,这是软件开发中的一种重要方法论。C#是一种现代、类型安全且面向对象的语言,...

    matlab面向对象编程.pdf

    面向对象编程在设计、测试和维护大型应用程序方面尤其有用。通过封装,可以隐藏不必要的信息,从而简化类的使用。继承促进了代码重用,并提供了一种自然的方式来模拟现实世界的层次结构。而多态性允许在软件中添加新...

    C++面向对象程序设计 经典例题 附练习题

    C++是一种强大的、通用的编程语言,以其支持面向对象编程(OOP)而闻名。面向对象编程是一种设计和实现软件的方式,它强调将现实世界的问题和解决方案映射到计算机程序中的对象。本资料包“C++面向对象程序设计 经典...

    c++面向对象编程实例大全

    《C++面向对象编程实例大全》是一本专为初级学习者设计的教程,旨在通过丰富的实例深入浅出地讲解C++的面向对象编程概念。面向对象编程(Object-Oriented Programming,简称OOP)是C++的核心特性,也是现代软件开发...

    C++面向对象程序设计教程——课件PPT

    C++是一种强大的编程语言,以其面向对象特性而闻名,它结合了过程化编程和面向对象编程的优势。在“C++面向对象程序设计教程——课件PPT”中,我们可以深入学习这一主题,由陈维兴和林小茶编著,清华大学出版社出版...

    Labview面向对象编程快速入门.pdf

    在面向对象编程中,**类**是一种定义通用特性的抽象模型,它描述了一组具有相同属性和行为的对象。例如,在本例中提到的“汽车”类就定义了所有汽车的共性特征,比如车门数量、变速箱配置等。而**对象**则是类的具体...

    Python实验一 面向对象程序设计实验.doc

    面向对象程序设计是 Python 中的一种重要编程范式,它基于类和对象的概念,强调数据封装、继承和多态性。本实验旨在让学生深入理解和实践面向对象编程的基本原理和技巧。 首先,实验要求学生掌握类的定义。在 ...

    PLC的面向对象编程

    DFB(分布式功能块)定义中包含了输入/输出参数、私有/共有变量和代码实现,这些都是面向对象编程中类的基本元素。创建类的实例就像创建一个普通的布尔变量一样简单,在“FunctionBlocks”中定义变量即可。 二、...

    Labview面向对象编程

    Labview面向对象编程是NI...通过学习和掌握Labview面向对象编程,开发者可以构建出更复杂、更易于维护的应用程序,适应不断变化的需求,并利用Labview的强大功能进行数据分析、控制工程、测试测量等领域的项目开发。

    面向对象编程基础_python面向对象_python教程_

    在Python中,面向对象编程是其核心特性之一,使得Python成为了一种非常适合进行复杂系统开发的语言。下面我们将深入探讨Python中的面向对象编程基础。 一、类与对象 1. **类(Class)**:类是面向对象编程的基础,...

    Matlab面向对象编程

    Matlab面向对象编程是一种在MATLAB环境下通过面向对象的方法来组织和构造程序代码的技术。面向对象编程(OOP)的基本特征包括抽象、封装、继承和多态。以下是根据给定的文件信息,对这些知识点的详细解释: 1. 抽象:...

    《面向对象的程序设计》期末试卷(A)答案.pdf

    类(Class)是面向对象编程的基本单元,它是一个蓝图,描述了创建对象时共有的属性和方法。对象(Object)是类的实例,具有类定义的属性和方法的副本。类的属性和方法称为成员(Members)。 2. 封装 封装...

    《C++面向对象程序设计》第2版编程题答案

    《C++面向对象程序设计》是C++编程领域的一本经典教材,由清华大学出版社出版,龚晓庆、付丽娜等多位专家共同编著。这本书深入浅出地讲解了C++语言的核心概念,特别是面向对象编程(OOP)的思想和技术。第二版在第一...

    面向对象程序设计教案

    1. **对象和类**:对象是面向对象编程的基本单元,它包含了数据(属性)和操作这些数据的方法(行为)。类是创建对象的模板或蓝图,定义了一组具有相同特征和行为的对象的通用描述。 2. **封装**:封装是面向对象的...

    C++面向对象程序设计课程大作业-通讯录管理系统

    本项目是基于C++的面向对象程序设计实现,旨在教授学生如何运用面向对象编程思想来构建实际的应用程序。** **一、面向对象编程基础** 面向对象编程(Object-Oriented Programming,OOP)是一种编程范式,其核心思想...

    c++面向对象程序设计课后习题答案

    C++是一种强大的、通用的编程语言,以其支持面向对象编程(OOP)而闻名。面向对象编程是一种编程范式,它以对象为中心,强调数据和操作数据的方法的封装。本资料集是关于“C++面向对象程序设计”的课后习题答案,...

Global site tag (gtag.js) - Google Analytics