标签:生命周期 声明 sys dem rgs [] 构造方法 分类 概述
代码块
1.代码块概述
在Java中,使用{}括起来的代码被称为代码块。
2.代码块分类
根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块。
3.代码块的应用(创建对象,就会先走构造代码块然后再走构造方法)
1) 局部代码块
在方法中出现;限定变量生命周期,及早释放,提高内存利用率,(在大括号内有效)
public static void main(String[] args) {
{
int x = 10;
} //出了这个范围就访问不到了,开发中作用小
}
2) 构造代码块 (初始化块)
在类中方法外出现;多个构造方法方法中相同的代码可以存放到构造代码块中,每次调用构造都执行,并且在构造方法前执行
3) 静态代码块
在类中方法外出现,并加上static修饰;用于给类进行初始化(一般用于加载驱动),在加载的时候就执行,并且只执行一次。随着类的加载而加载.静态代码块是优先于主方法执行的
class bj08_01 {
public static void main(String[] args) {
{ //局部代码块
int x = 10;
}
Student s = new Student();
System.out.println("-------------------------------");
Student s2 = new Student("张三",23);
}
static{
System.out.println("我是在主方法类中的静态代码块");
}
}
class Student {
private String name; //姓名
private int age; //年龄
public Student() {
System.out.println("空参构造");
} //空参
public Student(String name,int age) {
this.name = name;
this.age = age;
System.out.println("有参构造");
}
public void setName(String name) { //设置姓名
this.name = name;
}
public String getName() { //获取姓名
return name;
}
public void setAge(int age) { //设置姓名
this.age = age;
}
public int getAge() { //获取姓名
return age;
}
{
System.out.println("构造代码块");
}
public void study() {
System.out.println("学生学习");
}
static { //静态代码块 //优先于主方法执行
System.out.println("静态代码块");
}
}
执行结果:
我是在主方法类中的静态代码块
静态代码块
构造代码块
空参构造
-------------------------------------
构造代码块
有参构造
案例演示:
例一:
class Student {
static {
System.out.println("Student 静态代码块");
}
{
System.out.println("Student 构造代码块");
}
public Student() {
System.out.println("Student 构造方法");
}
}
class Demo2_Student {
static {
System.out.println("Demo2_Student静态代码块");
}
public static void main(String[] args) {
System.out.println("我是main方法");
Student s1 = new Student();
Student s2 = new Student();
}
}
结果是
Demo2_Student静态代码块
我是main方法
Student 静态代码块
Student 构造代码块
Student 构造方法
Student 构造代码块
Student 构造方法
例二:
class Fu {
static {
System.out.println("静态代码块Fu");
}
{
System.out.println("构造代码块Fu");
}
public Fu() {
System.out.println("构造方法Fu");
}
}
class Zi extends Fu {
static {
System.out.println("静态代码块Zi");
}
{
System.out.println("构造代码块Zi");
}
public Zi() {
System.out.println("构造方法Zi");
}
}
Zi z = new Zi(); 请执行结果。
静态代码块Fu
静态代码块Zi
构造代码块Fu
构造方法Fu
构造代码块Zi
构造方法Zi
标签:生命周期 声明 sys dem rgs [] 构造方法 分类 概述
原文地址:http://www.cnblogs.com/wk520hll/p/6120271.html