Day02-main方法和代码块

main()方法的使用说明

  1. main()方法作为程序的入口

  2. mian()方法也是一个普通的静态方法

  3. main()方法可以作为我们与控制台交互的一种方式.(之前使用的是Scanner)

    截图

    pubic static void main(String[] args){
    
    //1(多态)
        Person p=new Man();
        p.eat();
      //P.earnMoney()
    
    //2
        Man man=new Man();
        man.eat();
        man.earnMoney();
    }
    
    

    为什么要用第1段代码而不用直接用第2段代码?

​ 因为写方法的时候不知道有当前类有多少子类,有什么子类,说以会在形参里面直接用父类,比如上面可以在方法里面用person,而在new的时候直接new一个Man.

类的成员之四:代码块(或初始化块)

  1. 代码块的作用:用来初始化类,对象
  2. 代码块如果有修饰的话,只能使用static
  3. 分类:静态代码块 vs 非静态代码块
  4. 静态代码块
    • 内部可以有输出语句
    • 随着类的加载而执行,而且只执行一次
    • 作用:初始化当前类的信息
    • 如果一个类中定义了多个静态代码块,则按照声明的先后顺序执行
    • 静态代码块的执行优先于非静态代码块的执行
    • 静态代码块内只能调用静态的属性,静态的方法,不能调用非静态的结构
  5. 非静态代码块
    • 内部可以有输出语句
    • 随着对象的加载而执行
    • 每创建一个对象,就执行一次非静态代码块
    • 作用:可以在创建对象时,对对象的属性进行初始化
    • 如果一个类中定义了多个非静态代码块,则按照声明的先后顺序执行
    • 非静态代码块内只能调用静态的属性,静态的方法,可以调用静态的属性和方法,或调用非静态的属性和或方法

对属性可以赋值的位置

  • 默认初始化
  • 显式初始化
  • 构造器中初始化
  • 有了对象以后,可以通过"对象.属性"或"对象.方法"的方式,进行赋值
  • 在代码块中赋值

由父及子,静态先行

执行的顺序:

默认初始化 >显式初始化/在代码块中赋值 > 构造器中初始化 > 有了对象以后,可以通过"对象.属性"或"对象.方法"的方式,进行赋值

posted @ 2021-02-02 21:25  伟成李  阅读(55)  评论(0)    收藏  举报