Android自定义开发当中的继承view的时候,我们一般会使用3个构造函数
因为四个参数的构造函数是API21之后才出来的,所以我们暂时都是使用的都是这3种。在我自己学习自定义的过程当中,就在这个构造函数的地方出了问题。将super和this的用法弄错了。所以自己在这里记录下来,希望为大家提供一点帮助。
super:必须写在子类构造方法的第一排,调用基类的构造方法,还能调用基类中的方法。
this:this表示的是调用本类当中的其他的构造函数。
在自定义的时候,我使用的是AS编译器,它自动给我生成的的super();方法,但是我是在第三个构造函数中初始化的数据,在执行的过程中,第三个构造函数是没有执行到的。所以,导致我会一直报错。然后我将super改成了this,因为之前就说到了,this是用于调用本类当中的其他的构造方法,我在1 2 两个构造函数中使用this调用的其他的构造函数,所以程序能正常执行。
tip:在java代码中new 对象的时候一般使用的是第一个构造函数,在xml中使用的是前两个构造函数。所以,如果你的数据是在第三个构造函数中定义的,你一定要在前两个构造函数中使用this来将你的第三个函数引进去,以免发生不必要的错误。
这就是我遇到的问题,希望对大家能用一点作用。
this()和super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块