您的位置:首页 > 编程语言

静态关键字static和静态代码块、局部代码快、构造代码块

2017-04-18 21:29 218 查看
 


静态关键字static和静态代码块、局部代码快、构造代码块

一、静态什么时候使用?

1、静态变量

分析对象中所具备的成员变量的值都相同时,而且这个成员不需要修饰,这时成员变量就可以被静态修饰

2、静态函数

该函数是否需要访问对象中的特有数据

二、static关键字的特点:用于修饰成员(属性和方法)

1、可以用类名直接调用,可以不用创建对象时就可以使用

2、可以使用对象的引用调用

3、被static修饰的成员可以被所有的该类的对象共享

三、static关键注意事项:

1、静态方法只能访问静态成员(非静态可以自由访问静态或非静态成员)

2、静态方法中不可以使用this和super关键字

3、主函数是静态的

四、成员变量和类变量(静态变量)的区别?

1、声明周期不同

成员变量随着对象的创建而创建,随着对象被回收而释放

静态变量随着类的加载而创建,随着类的消失而消失。

2、调用方式不同

成员变量只能被对象调用

静态变量可以被对象调用,也可以使用类调用(建议使用类调用)

3、别名不同

成员变量又叫实例变量

静态变量又叫类变量

4、数据存储位置不同

成员变量位于堆内存中

静态变量存储在方法区(数据区或者共享区)的静态区

<
4000
/span>注意:方法也放在方法区

静态方法:静态方法可以使用类来调用

五、三种代码块以及实例

静态代码块:

特点:1、随着类的加载而执行

 2、只执行一次

作用:用于给类初始化(有的类不用构造函数,而需要初始化)

构造代码块:  在类中的代码块

特点:1、在创建对象时执行,每创建一个对象,就执行一次

 2、在创建对象时执行,在静态代码块后执行,且在构造函数前执行

作用:可以给所有的对象进行初始化

局部代码块: 在函数中的代码块

作用:限定函数中的局部变量的生命周期

[java] view
plain copy

class StructureCode  

{  

    private String name;  

    static int num;  

    <span style="color:#ff0000;">//构造代码块</span>  

    {  

        System.out.println("我是构造代码块");  

        cry();   //没创建一个对象就执行一次cry(),代替下边两个构造函数中的cry()  

    }  

    <span style="color:#ff0000;">//静态代码块</span>  

    static  

    {  

        num=10;  

        num*=num;  

        System.out.println("我是静态代码块");  

    }  

    StructureCode()  

    {  

        name="baby";  

        System.out.println("我是构造函数");  

        // cry();  

    }  

    StructureCode(String name) //构造函数是给对应的对象初始化  

    {  

        this.name=name;  

        System.out.println("我是构造函数");  

        // cry();  

    }  

    private void cry()  

    {  

        System.out.println("哇哇");  

    }  

    public void show()  

    {         

        <span style="color:#ff0000;">//局部代码块</span>    

        {  

            int i=55;  

        }  

        System.out.println("上边是局部代码块");  

    }  

}  

  

class StaticDemo1  

{  

    public static void main(String args [])  

    {  

        StructureCode structureCode = new StructureCode("小强");  

    }  

}  



六、主函数

public static void main(String args [])

主函数的特殊之处:

1、格式是固定的

2、被JVM所识别

public:因为权限必须是最大的

static:不需要对象的 直接用主函数所属的类名调用即可

void:没有返回值

main:默认的方法名

String args [] 主函数的参数列表,是一个数组类型的参数,而且元素都是字符串类型的 

args:arguments的缩写,可变
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐