内容简介:执行结果:构造函数的作用是用于给对象进行初始化一个对象建立,构造函数只运行一次
构造函数
public class Hello{
public Hello(String name){//构造函数
System.out.println("Hello " + name );
}
public static void main(String []args) {
Hello A = new Hello("xiaoming");
}
}
执行结果:
$ java Hello Hello xiaoming
构造函数的作用是用于给对象进行初始化
一个对象建立,构造函数只运行一次
构造代码块
public class Hello{
{//构造代码块
System.out.println("Hello World");
}
public static void main(String []args) {
Hello A = new Hello();
}
}
执行结果:
$ java Hello Hello World
构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象初始化
构造函数可以是多个,构造代码块中定义的是不同对象共性的初始化内容。如下:
public class Hello{
{//构造代码块
System.out.println("Hello Java");
}
public Hello(){//构造函数A
System.out.println("Hello A");
}
public Hello(String name){//构造函数B
System.out.println("Hello " + name );
}
public static void main(String []args) {
Hello A = new Hello(); //对象A 调用构造函数A
Hello B = new Hello("B"); //对象B 调用构造函数B
}
}
执行结果:
$ java Hello Hello Java Hello A Hello Java Hello B
静态代码块
public class Hello{
static{//静态代码块
System.out.println("Static Code");
}
public static void main(String []args) {//主函数
System.out.println("Main ()");
}
}
执行结果:
$ java Hello Static Code Main ()
静态代码块是给类初始化的,而构造代码块是给对象初始化的。
静态代码块在同一类中只执行一次,如下:
public class Hello{
static {//静态代码块
System.out.println("Static Code");
}
public Hello(){//构造函数
System.out.println("Hello World");
}
public static void main(String []args) {
Hello A = new Hello();
Hello B = new Hello();
}
}
执行结果:
$ java Hello Static Code Hello World Hello World
Java类初始化顺序
public class Hello{
static {//静态代码块
System.out.println("Hello A");
}
{//构造代码块
System.out.println("Hello B");
}
public Hello () {//构造函数
System.out.println("Hello C");
}
public static void main(String []args) {
System.out.println("Main ()");
Hello A =new Hello();
}
}
执行结果:
$ java Hello Hello A Main () Hello B Hello C
静态代码块>构造代码块>构造函数
对于继承
class HelloA{
static {//静态代码块
System.out.println("A的静态代码块");
}
{//构造代码块
System.out.println("A的构造代码块");
}
public HelloA(){//构造函数
System.out.println("A的构造函数");
}
}
public class HelloB extends HelloA{
static {//静态代码块
System.out.println("B的静态代码块");
}
{//构造代码块
System.out.println("B的构造代码块");
}
public HelloB(){//构造函数
System.out.println("B的构造函数");
}
public static void main(String[] args) {
HelloB B = new HelloB();
}
}
执行结果
$ java HelloB A的静态代码块 B的静态代码块 A的构造代码块 A的构造函数 B的构造代码块 B的构造函数
父类的静态代码块>子类的静态代码块>父类的构造代码块>执行父类的构造函数>子类的构造代码块>执行子类的构造函数
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 解读Java静态代码块和构造代码块
- 少说话多写代码之Python学习046——类的成员(构造函数)
- 少说话多写代码之Python学习047——类的成员(调用父类构造函数)
- TS 的构造签名和构造函数类型是啥?傻傻分不清楚
- 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式)
- 构造函数、原型、原型链、继承
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
恰如其分的软件架构
George Fairbanks / 张逸、倪健、高翌翔 / 华中科技大学出版社 / 2013-9-1 / 88.00
本书描述了一种恰如其分的软件架构设计方法。作者建议根据项目面临的风险来调整架构设计的成本,并从多个视角阐述了软件架构的建模过程和方法,包括用例模型、概念模型、域模型、设计模型和代码模型等。本书不仅介绍方法,而且还对方法和概念进行了归类和阐述,将软件架构设计融入开发实践中,与 敏捷开发方法有机地结合在一起,适合普通程序员阅读。 . 这是一本超值的书,案例丰富有趣,言简意赅,阅读轻松。当年......一起来看看 《恰如其分的软件架构》 这本书的介绍吧!