Java SE 代码块与内部类
2026/7/9 2:45:07 网站建设 项目流程

代码块

使⽤ {} 定义的⼀段代码称为代码块。

根据代码块定义的位置以及关键字,⼜可分为以下四种

1. 普通代码块

2. 构造块(有的书上叫实例代码块)

3. 静态块

4. 同步代码块

public class Student{ private String name; private String gender; private int age; private double score; private static String classRoom; // 实例代码块 { this.name = "bit"; this.age = 12; this.gender = "man"; System.out.println("I am instance init()!"); } // 静态代码块 static { classRoom = "bit306"; System.out.println("I am static init()!"); } public Student(){ System.out.println("I am Student init()!"); } public static void main(String[] args) { Student s1 = new Student(); Student s2 = new Student(); } }

注意:

1.静态代码块不管⽣成多少个对象,其只会执⾏⼀次

2. 静态成员变量是类的属性,因此是在JVM加载类时开辟空间并初始化的

3.如果⼀个类中包含多个静态代码块,在编译代码时,编译器会按照定义的先后次序依次执⾏(合并)

4.实例代码块只有在创建对象时才会执⾏

代码块与构造方法的执行顺序

1.父类的静态代码块

2.子类的静态代码块

3.父类的实例代码块

4.父类的构造方法

5.父类的实例代码块

6.父类的构造方法

内部类

当⼀个事物的内部,还有⼀个部分需要⼀个完整的结构进⾏描述,⽽这个内部的完整的结构⼜只为外 部事物提供服务,那么这个内部的完整结构最好使⽤内部类。在Java中,可以将⼀个类定义在另⼀个 类或者⼀个⽅法的内部,前者称为内部类,后者称为外部类。内部类也是封装的⼀种体现。

内部类的分类

1. 成员内部类(普通内部类:未被static修饰的成员内部类和静态内部类:被static修饰的成员内部类)

2. 局部内部类(不谈修饰符)、匿名内部类 注意:内部类其实⽇常开发中使⽤并不是⾮常多,⼤家在看⼀些库中的代码时候可能会遇到的⽐较 多,⽇常开始中使⽤最多的是匿名内部类。

public class OutClass { // 成员位置定义:未被static修饰 --->实例内部类 public class InnerClass1{ } // 成员位置定义:被static修饰---> 静态内部类 //用来创建节点 static class InnerClass2{ } public void method(){ // ⽅法中也可以定义内部类---> 局部内部类:⼏乎不⽤ class InnerClass5{ } } }

1. 外部类中的任何成员都可以在实例内部类⽅法中直接访问

2. 实例内部类所处的位置与外部类成员位置相同,因此也受public、private等访问限定符的约束

3. 在实例内部类⽅法中访问同名的成员时,优先访问⾃⼰的,如果要访问外部类同名的成员,必须: 外部类名称.this.同名成员来访问

4. 实例内部类对象必须在先有外部类对象前提下才能创建

5. 实例内部类的⾮静态⽅法中包含了⼀个指向外部类对象的引⽤

6. 外部类中,不能直接访问实例内部类中的成员,如果要访问必须先要创建内部类的对象。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询