内容简介:解读Java静态代码块和构造代码块
一、对静态代码块和非静态代码块进行简单的总结
1.静态代码块:
静态代码块是在当类被载入(内存)时最先被调用的,且之被执行一次,静态块常用来执行类属性的初始化。执行 类 的载入之前就会调用。
2.非静态代码块:
非静态代码块是在当类的对象被创建载入(内存)时最先被调用的,每创建一个对象,即每载入一个对象,非静态代码块都执行一次。执行 类对象 的载入之前就会调用。
3.静态方法、非静态方法:都是调用时,才执行的。静态方法属于类的,加载完类就可以调用静态方法;非静态方法是属于对象的,加载完对象就可以调用非静态方法。
二、相关示例演示
1 public class Cc {
2 public static void main(String[] args) {
3 test p=new test();
4 }
5 }
6
7 class test {
8 test() { //在类对象创建的时候就开始执行。简称创建即执行。
9 System.out.println("这是构造函数");
10 }
11
12 { //构造代码块,执行在构造函数之前,每当在创建类对象的时候都执行。
13 System.out.println("这是构造代码块");
14 }
15
16 static { //静态代码块,最早执行,且值执行一次。
17 System.out.println("这是静态代码块");
18 }
19 }
打印结果:
演示当被调用两次的时候,会发生什么打印结果。加深对静态代码块的理解。
1 public class Ccc {
2 public static void main(String[]args)
3 {
4 MyTest p=new MyTest();
5 MyTest p2=new MyTest();//两次调用
6 }
7 }
8 class MyTest{
9
10 MyTest(){
11 System.out.println("这是构造函数");
12 }
13
14 {
15 System.out.println("这是构造代码块");
16 }
17
18 static{
19 System.out.println("这是静态代码块");
20
21 }
22 }
打印结果如下:
Cccc {
2 public static voidmain(String[] args) {
3 new Person(77);
4 newPerson();
5}
6}
7Person {
9Person() {
11 System.out.println("a");
12}
1314
15 Person( int x) { // 注意带参数了!!
System.out.println(x);
17}
18{
20 System.out.println("b");
21}
22{
24 System.out.println("c");
25}
26
}
打印结果:
本文永久更新链接地址 : http://www.linuxidc.com/Linux/2017-06/144875.htm
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Java类 静态代码块、构造代码块、构造函数初始化顺序
- 少说话多写代码之Python学习046——类的成员(构造函数)
- 少说话多写代码之Python学习047——类的成员(调用父类构造函数)
- TS 的构造签名和构造函数类型是啥?傻傻分不清楚
- 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式)
- 构造函数、原型、原型链、继承
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Head First Python
Paul Barry / O'Reilly Media / 2010-11-30 / USD 49.99
Are you keen to add Python to your programming skills? Learn quickly and have some fun at the same time with Head First Python. This book takes you beyond typical how-to manuals with engaging images, ......一起来看看 《Head First Python》 这本书的介绍吧!