Java教程

Java的代码块

本文主要是介绍Java的代码块,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Java的代码块

/*
类的成员之四:代码块(或初始化块)
1、代码块的作用:用来初始化类、对象
2、代码块如果有修饰的话,只能用static
3、分类:静态代码块 vs非静态代码块
4、静态代码块
    >可以有输出语句
    >随着类的加载而执行
    >作用:初始化类的信息
    >如果一个类中定义多个静态代码块,则按照声明的先后顺序执行
    >静态代码块的中心要优先于非静态代码块的执行
    >静态代码块内只能调用静态的属性,静态的方法,不能调用非静态属性和方法

5、非静态代码块
    >可以有输出语句
    >随着对象的创建而执行
    >每创建一个对象,就只送一次非静态代码块
    >作用:可以在创建对象时,对对象的属性等进行初始化
    >如果一个类中定义多个非静态代码块,则按照声明的先后顺序执行
    >静态代码块内只能调用静态的属性,静态的方法,可以调用非静态属性和方法

 */
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.info();
    }
}
class Person {
    //属性
    String name;
    int age;
    static String desc = "一个人";

    //构造器
    Person() {

    }

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

    //static代码块
    static {
        System.out.println("hello,static Block1");
        //调用静态结构
        desc="我是一个帅哥 ";
        info();
//        eat();
//        name="tom";
    }
    //static代码块
    static {
        System.out.println("hello,static Block2");
    }
    //非static代码块
{
        System.out.println("hello,Block");
        //调用非静态结构
        age=1;
        eat();
        //调用静态结构
        info();
        name="tom";
        }
        //方法
    public void eat(){
     System.out.println("吃饭");
    }
    public String toString(){
        return "Person[name="+name+",age="+age+"]";
    }
    public static void info(){
        System.out.println("我是个快乐的人");
    }
}

这篇关于Java的代码块的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!