您的位置:首页 > 职场人生

黑马程序员--代码块小知识总结

2013-11-22 15:03 148 查看
-------
android培训、java培训:期待与您交流! ---------

Java---static代码块、构造函数代码块

一、实例代码

         先看下面一示例代码:

class Person
{
private static int num=9;
private String name;
private int age;
//下面是构造函数代码块
{
name="zhanshan";
age=22;
System.out.println("构造函数代码块");
}
//下面是静态代码块
static {
System.out.println("static代码块");
}
Person()
{
System.out.println(name+"::"+age);
}
Person(String name)
{
this.name=name;
System.out.println(name+"::"+age);
}
Person(String name,int age)
{
this.name=name;
this.age=age;
System.out.println(name+"::"+age);
}
}
class ConstructorDemo
{
public static void main(String[] args)
{
new Person();
new Person("lisi");
new Person("wangwu",90);
}
}
 

上面代码的运行结果为:



       

二、static代码块

        1,从代码中可以看到静态代码块的格式是:

               static {

                       需要运行代码;

                }

          注意:因为是静态的,运行代码中不能调用非静态成员。

         2,作用:随着类的加载而执行,只执行一次。用于给类进行初始化(也就是一个类进入内存,在不需要对象的情况下,类需要先做什么)。

三、构造函数代码块

         1,从代码中可以看到构造代码块的格式是:只有一个大括号。

               {

                       需要运行代码;

                }

          2,作用:随着对象的生成而加载执行,也是给对象进行初始化。

四、作用与区别

         作用:静态代码块和构造函数代码块可以说都是进行初始化。

         区别:静态代码块是对类进行初始化,因为静态代码块早于对象的创建。所以它只能做在一个类进入内存,在不需要对象的情况下,类需要先做什么。

                     构造函数代码块是对对象进行初始化,当对象创建使,才加载构造函数代码块。

                     注意:静态代码块和构造函数代码块是jvm自动调用。另外构造函数代码块和构造函数有区别。

-------
android培训、java培训:期待与您交流! ---------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息