美文网首页
2021-03-20

2021-03-20

作者: 轻丨尘 | 来源:发表于2022-07-16 10:32 被阅读0次

    [toc]

    局部变量在声明时必须初始化或者赋值

    main方法

    使用 main() 方法时应该注意如下几点:

    • 访问控制权限是公有的(public)。
    • main() 方法是静态的。如果要在 main() 方法中调用本类中的其他方法,则该方法也必须是静态的,否则需要先创建本类的实例对象,然后再通过对象调用成员方法。
    • main() 方法没有返回值,只能使用 void。
    • main() 方法具有一个字符串数组参数,用来接收执行 Java 程序的命令行参数。命令行参数作为字符串,按照顺序依次对应字符串数组中的元素。
    • 字符串中数组的名字(代码中的 args)可以任意设置,但是根据习惯,这个字符串数组的名字一般和 Java 规范范例中 main() 参数名保持一致,命名为 args,而方法中的其他内容都是固定不变的。
    • main() 方法定义必须是“public static void main(String[] 字符串数组参数名)”。
    • 一个类只能有一个 main() 方法,这是一个常用于对类进行单元测试(对软件中的最小可测试单元进行检查和验证)的技巧。

    static

    • static声明的变量常量和方法称为静态成员,静态成员属于类所有,通过:类.静态成员 来访问
    • 静态数据或者静态方法作用是为了提供共享数据或方法
      注意:
      1.静态方法中不可以用this
      2.静态方法中不可以直接调用非静态方法
      3.不能将方法体内的局部变量声明为static
      静态代码块指 Java 类中的 static{ } 代码块,主要用于初始化类,为类的静态变量赋初始值,提升程序性能。

    静态代码块
    特点如下:

    • 静态代码块类似于一个方法,但它不可以存在于任何方法体中。
    • 静态代码块可以置于类中的任何地方,类中可以有多个静态初始化块。
    • Java 虚拟机在加载类时执行静态代码块,所以很多时候会将一些只需要进行一次的初始化操作都放在 static 代码块中进行。
    • 如果类中包含多个静态代码块,则 Java 虚拟机将按它们在类中出现的顺序依次执行它们,每个静态代码块只会被执行一次。
    • 静态代码块与静态方法一样,不能直接访问类的实例变量和实例方法,而需要通过类的实例对象来访问。
        public static int count = 0;
        {
            count++;
            System.out.println("非静态代码块 count=" + count);
        }
        static {
            count++;
            System.out.println("静态代码块1 count=" + count);
        }
        static {
            count++;
            System.out.println("静态代码块2 count=" + count);
        }
        public static void main(String[] args) {
            System.out.println("StaticCode1 执行");
            StaticCode sct1 = new StaticCode();
            System.out.println("*************** StaticCode2 执行 ***************");
            StaticCode sct2 = new StaticCode();
        }
    }
    

    如上述示例,为了说明静态代码块只被执行一次,特地添加了非静态代码块作为对比,并在主方法中创建了两个类的实例对象。上述示例的执行结果为:

    静态代码块1 count=1
    静态代码块2 count=2
    *************** StaticCode1 执行 ***************
    非静态代码块 count=3
    *************** StaticCode2 执行 ***************
    非静态代码块 count=4
    

    上述代码中 { } 代码块为非静态代码块,非静态代码块是在创建对象时自动执行的代码,不创建对象不执行该类的非静态代码块。代码域中定义的变量都是局部的,只有域中的代码可以调用。

    相关文章

      网友评论

          本文标题:2021-03-20

          本文链接:https://www.haomeiwen.com/subject/zdoicltx.html