其他分享
首页 > 其他分享> > 2022-07-27 第4组 蒋萍 代码块和static关键字

2022-07-27 第4组 蒋萍 代码块和static关键字

作者:互联网

面向对象(7)

目录

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

image

1、代码块

??: 初始化块,属于类的成员,是将一些逻辑语句封装在方法体中,(但不是方法体)通过{}包裹起来;代码块没方法名,没参数,没返回值,没返回权限,它不需要通过对象或类进行显式调用,它会在类加载或创建对象时隐式调用

2、代码块分类

2.1 静态代码块

静态变量:静态变量不能声明在内部类还有方法里,并且在内存中只有一个拷贝空间

static{
    // 静态代码块,方法里能写啥,这里就能写啥
}

2.2 实例代码块

public class name{
    {
        System.out.println("实例代码块");
    }   
}

面试:静态块优于其他,父类优于子类

(1)当没有继承关系(1个类):执行顺序为 静态块,实例块,构造器

public class CodeBlock {
    {
        System.out.println("实例代码块"); // 2
    }
    static {
        System.out.println("静态代码块"); // 1
    }
    public CodeBlock(){
        System.out.println("无参构造函数"); // 3
    }

    public static void main(String[] args) {
        new CodeBlock(); // 测试

    }
}

(2)有继承关系:父类静态块,子类静态块,父类实例块,父类构造,子类实例块,子类构造器

3、static关键字

3.1 static修饰变量

static 修饰的变量是常量吗??

不是,static 修饰的变量是唯一的,但不是不变的,加上final修饰的就是常量

调用时:类名.属性名

3.2 static修饰类

image

3.3 static修饰方法 (也叫类方法或静态方法)

调用时,不用对象

image

4、static内存解析

尽量别用静态

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

实例方法要通过 对象.方法名 的方式调用

​ 非静态结构随对象的创建而加载

​ - 静态方法无论在哪,包括构造器,都是通过类名.方法名调用

​ 同一个类的静态调用静态时是可以省略类名的

6、静态方法怎么用

Arrays.toString()

Arrays.sort()

String.ValueOf()

啥时候用呢??

设计一些工具类时

其他

image

一些优化:

image

补充

(开发中常量的声明基本上是这样的)

最后

今天晚上状态不错,继续努力 !!
自己敲代码实现记忆更深刻,感觉今天的导图做的不太好,会继续改进的。

标签:27,07,静态,代码,调用,蒋萍,实例,static,方法
来源: https://www.cnblogs.com/fulfill/p/16526878.html