3.课上练习

1.动手动脑1:类中定义的为有参构造函数,而主函数中引用的为无参,在类中没有函数与之相匹配。

2.java字段初始化的规律

Java进行初始化的地方有两个:初始化块和构造函数,其中初始化块又分为静态初始化块和实例初始化块。静态初始化块是类中由static修饰的初始化块,实例初始化块为类中没有任何关键字修饰的初始化语句。

如果在主函数中创建对象时没有形参时,如果在类中定义了公共的变量并给与了赋值,那么就会把值赋给主函数中的变量,再调用类中的默认构造函数,如果在主函数中创建对象时有形参,则调用类中对应的构造函数。

3.动手动脑2;

所有的静态初始化块都优先执行,其次才是非静态的初始化块和构造函数,它们的执行顺序是:

  1. 父类的静态初始化块
  2. 子类的静态初始化块
  3. 父类的初始化块
  4. 父类的构造函数
  5. 子类的初始化块
  6. 子类的构造函数

一个有趣的问题:

代码:

public class Example
 2 {
 3  int x = 3;//类的实例变量,初始化值为3
 4  static int  y = 4;//类的静态变量,初始化值为4
 5  public static void method()//静态方法
 6   {   
 7    System.out.println("实例变量x = " + new Example().x);//在静态方法中访问类的实例变量需首先进行类的实例化
 8    System.out.println("静态变量y = " + y);
 9   }
10 
11  public static void main(String[] args) 
12     {
13          Example.method();
14          Example ex = new Example();
15         System.out.println("x = " + ex.x);
16     }
17 }
在静态方法中访问类的实例变量需首先进行类的实例化
原文地址:https://www.cnblogs.com/lxy10375/p/7688846.html