课后作业

 

 以上代码无法编译因为如果类提供了一个自定义的构造方法,将导致系统不再提供默认构造方法。

      Java字段初始化规律

在Java中定义一个类后,有三种方式可以对其中的变量进行初始化:直接输入,初始化块,构造函数。

而对于这三者的优先级,其应该是:

1.类的构造函数(构造方法):

当创建一个对象时,其构造函数就会自动调用。构造方法必须与类名相同,无返回值。

如果程序员没有定义一个构造函数时,系统会自动定义一个不含参数的“默认构造函数”,在自定义构造函数后就不再产生默认的构造函数了。

对于同一个类来说,可以有很多个构造函数,也就是所谓方法重载的运用。其之间可以相互调用。

2.类的初始化块

指的是在类中用{}括起来的几行代码,可以直接作为类的成员。多用于类中变量的初始化。

3.在执行类成员的时候默认给出的值

       静态初始化块的执行顺序

首先是各个类的静态初始化块先按照先父类后子类的顺序先后执行;然后再次由父类到子类开始依次执行它们的普通初始化块和无参构造器,若是子类初始化中需要为父类传参,那么在执行子类普通初始化内容前就要先执行父类的含参构造函数

        静态方法中只允许访问静态数据,那么,如何在静态方法中访问类的实例成员(即没有附加static关键字的字段或方法)?

package test.two;

 

public class jingtaihanshu

{

        int x = 3;

static int  y = 4;

public static void Method()//静态方法

     {  

           System.out.println("实例变量x = " + new jingtaihanshu().x);

           System.out.println("静态变量y = " + y);    

           }

         public static void void main(String[] args)

         {jingtaihanshu.Method();

              jingtaihanshuex = new jingtaihanshu();

                            System.out.println("x = " + ex.x);

         }

                 

}

 

posted @ 2022-10-08 19:56  Weebles  阅读(64)  评论(0)    收藏  举报