2022-7-27 学习日记(17th day)内部类/外部类/代码块/static

目录

外部类:

内部类:

 代码块:

静态代码块:

 实例代码块:

static静态


外部类:

一个java文件里只能有一个public声明的类,而且类名必须和.java的文件名相同

如果想在这个类外面再创建一个类就在class类外部再写一个class 类名{}

public class Test01{}
class Test02{}

这样编译.java文件会生成两个独立的.class文件。

内部类:

顾名思义,就是在类里面建立的类:(在一个类内部进行其他类结构的嵌套操作)

public class Test{
    //静态内部类
    public static class A{}
    //实例内部类
    public class B{}    
}

类的内部结构:

属性、方法、构造器、代码块、内部类

 代码块:

代码块又称为初始化块,属于类的一个成员,它是将逻辑语句封装在方法体中。通过{}包裹。代码块没有方法名,没有参数,没有返回值,只有方法体它是不需要通过对象或类进行显示的调用,它会在类加载或者创建对象时主动的隐式调用

静态代码块:

一个类被加载时会被调用一次,做一些初始化的工作 

 实例代码块:

每次创建实例,都会被调用一次,用的很少

那有人就说了:没有方法名,没有返回值,咋用这个代码块里的内容啊?

演示:

public class Test01 {    
    static{
        //静态代码块
        System.out.println("静态代码块...");
    }
    {   //实例代码块
        System.out.println("实例代码块...");
    }
    public static void main(String[] args) {
        Test01 test01=new Test01();
        Test01 test02=new Test01();
    }
}

结果:

 

静态代码类只会实现一次,而实例代码类每次调用都会运行一次

那么问题就来啦,如果有一个类继承了父类,父类里有一个构造器,有一个实例块,有一个静态块

谁先执行?

先是静态代码块,后是实例代码块,再是构造器。

接着问题:在子类里也创建构造器,实例块,静态块,调用对象时,谁先执行?

先走父类的静态块,然后是子类的静态块,之后是父类的实例块,弗雷德构造器,子类的实例块,子类的构造器。

总结:

当没有继承关系时,就一个类:静态块---实例块---构造器

当有继承关系时,父类静态块---子类静态块---父类实例块---父类构造器---子类实例块---子类构造器

static静态

属性,方法,代码块

用static修饰的结构,不属于任何一个对象

static的内存解析:

1.静态的变量或者静态方法存在于方法区的。静态的结构不会被垃圾回收
2.不属于某一个实例对象,只存在于方法去。调用静态结构,直接用类名

实例方法和静态方法的互相调用:

1.静态方法中不可以直接调用实例方法,如果想用,必须:对象方法.方法名:

eg:new Test03().show();

2.实例方法中可以直接调用静态方法吗?可以哦

静态的结构的加载,随着类的加载而加载!!!

非静态的结构,随着对象的创建而加载!!!

静态方法无论在哪里都是类名.方法调用.

public class Test03 {
    static String name="里奥·梅西";
    public static void show(){
        //静态方法
        System.out.println("静态方法...");
    }
    public static void main(String[] args) {
        System.out.println(Test03.name);
        Test03.show();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值