目录

代码块

内部类

内部类的分类


代码块

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

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

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{
}
}
//匿名内部类
interface Greeting {
void greet();
}
public class Test {
public static void main(String[] args) {
//匿名内部类是Java中⼀种特殊的嵌套类,它没有类名,在声明的同时完成实例化。匿名内部类通常⽤
于创建只需使⽤⼀次的类
Greeting greeting = new Greeting() {
@Override
public void greet() {
System.out.println("Hello!");
}
};//
greeting.greet();
}
}

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

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

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

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

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

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

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐