java基础第三十四篇 再谈代码块

 1、代码块的作用:用来初始化类对象
 2、代码块如果有修饰的话,只能使用static
 3、分类:静态代码块  和  非静态代码块
  
 4.、静态代码块:
        内部可以有输出语句。
        随着类的加载而执行,而且只执行一次
        作用:初始化类的信息。
        如果一个类中定义了多个静态代码块,则按照声明的先后顺序执行。
        静态代码块的执行要优先于非静态代码块的执行。
        静态代码块内只能调用静态的属性、静态的方法,不能调用非静态的结构。
  
  5. 非静态代码块:
         内部可以有输出语句
         随着对象的创建而执行。
         每创建一个对象,就执行一次非静态代码块。
         作用:可以在创建对象时,对对象的属性等进行初始化
         如果一个类中定义了多个非静态代码块,则按照声明的先后顺序执行。
         非静态代码块内可以调用静态的属性静态的方法,或非静态的属性非静态的方法

 

例子:

package com.hao.zhi.lv.blockTest;

public class BlockTest {
    public static void main(String args[]){
        String desc=Person.desc;
        System.out.println(desc);

        Person p1=new Person();
        Person p2=new Person();

        System.out.println(p1.age);
        Person.happy();
    }

}


class Person {
    String name;
    Integer age;
    static String desc="我是一个人";

    public  Person(){
        System.out.println("Person类的构造器");
    }

    public  Person(String name, Integer age){
        this();
        this.name=name;
        this.age=age;

    }

    static {
        System.out.println("Person类的静态代码块1");
    }

    static {
        System.out.println("Person类的静态代码块2");
        //调用静态属性
        desc="我是一个快乐的人";
        //调用静态方法
        happy();

    }

    {
        System.out.println("Person类的非静态代码块1");
    }

    {
        System.out.println("Person类的非静态代码块2");
        //调用静态属性
        desc="我是一个努力的人";
        //调用静态方法
        happy();


        //调用非静态属性
        name="架构师";
        age=21;
        //调用非静态方法
        eat();


    }



    public void eat(){
        System.out.println("人要吃饭");
    }


    public static void happy(){
        System.out.println("我是一个快乐的人");
    }

}

输出:

 

参考来自尚硅谷

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随风而行无疾而歌

看官,觉得不错,奖励一下呗

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值