为什么在JAVA中,成员属性数组 int a;int [] s=new int[a];然后在构造方

为什么在JAVA中,成员属性数组 int a;int [] s=new int[a];然后在构造方法里赋予a=1。int [] s=new int [1]。为什么运行第一个会报错?

原因很简单,因为private ini[] s=new int[a]比构造方法public shuzhu(int a){...}先执行,所以当你new shuzhu(1)的时候,先执行了private ini[] s=new int[a]这条语句,此时a还没赋值,而int类型的在声明时如果没有赋值,应该是默认初始化为0的,所以相当于数组s大小为0,尽管接着执行了构造方法时将a赋值为1了,但是此时数组s已经不会再次初始化了,所以对一个数组大小为0的数字s,想要输出他的第1个元素s[0],就会报数数组越界异常了追问

成员变量比构造方法跟先执行吗?

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-05-20
s[0]没赋值。

java中的成员方法和构造方法有什么区别
public class Text { int i = 0;int j = 0;\/ Text 的构造函数 将i和J的值重新初始化赋值 \/ public Text() { i = 1;j = 2;};public static void main(String[] args) { Text s = new Text();\/\/此时当你NEW完Text()时程序已经自动执行了Text的构造 函数i和j的值已经是1和2 S...

JAVA中的属性、方法、构造器,你真的弄懂了吗?
简单解析一下:因为是对象数组,所有初始值每个默认值都是null,当给people[0]创建对象时,会在堆空间中开辟一个空间用来储存成员变量name、age;对象赋值的过程与对象内存解析的方式一样。运行结果:五、方法使用介绍1、方法的声明:权限修饰符 返回值类型 方法名(形参列表){ 方法体 } 2、返回值类型...

java在同一类中构造方法能调用成员方法,为什么成员方法不能调用构造方...
1、你需要知道构造方法是用来干嘛的,构造方法是用来构造对象实例的。而成员方法是用来执行某种功能的,需要对象实例来调用。所以顺序是:构造方法执行得到对象实例,对象实例调用成员方法。 所以成员方法中调用构造方法是不可能的,不知道你为什么要这么做。2、super只能放在子类构造方法中的第一行。其它地方...

JAVA中构造方法和普通方法的区别
1.建构函式的命名必须和类名完全相同;在java中普通函式可以和建构函式同名,但是必须带有返回值。 2.建构函式的功能主要用于在类的物件建立时定义初始化的状态.它没有返回值,也不能用void来修饰.这就保证了它不仅什么也不用自动返回,java中构造方法和成员方法的区别 构造方法是类的一种特殊方法,用...

java 中抽象类虽然不能够创建对象,但是可以有构造方法,构造方法也可 ...
1.首先你要搞清楚java里new这个关键字,new说的是要调用构造方法,分配内存空间,创建实例,这是显示的new出来一个对象,抽象类是不允许new的,但是抽象类可以有构造方法,我们知道通常创建类的实例需要new 类();这种形式,但是只能说new调用构造方法才是创建对象,而抽象类不可以有实例,但是可以调用构造...

Java中,在构造方法里调用本类中的方法是不是可以省略this?
可以 Java关键字this只能用于方法方法体内。当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是this。因此,this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this,这在“Java关键字static、final使用总结”一文中给出了明确解释。并且...

java 中提示:方法声明无效;需要返回类型是怎么回事
原因是在第二个类中你用了构造函数:public A(int i) {..},并且在第一个类中你了有这样调用这个类:A a=new A(5); 所以你第二个类名一定是写错了。而且在一个包中不能有同名的类,这也是你犯的一个错误。还有在你第一个类中的public static void main(String args) 中要麼不要带参数...

java语言中构造方法和方法重载在什么时候使用?有什么作用?请详细说明一...
构造方法是在创建对象时使用,用于设定对象初始状态。假设有一个Person类,里面有身高、性别、名字等属性。如果你不写任何构造方法,系统会给你创建一个隐藏的,将属性设置为空的构造方法。如果你设定了构造函数,你就可以在new 这个对象时直接指定这个person对象的身高、性别、名字,不用创建完成后再一个...

构造方法的作用是什么
public first(int a,int b){ ...} public first(){ ...} 也可以,在实例类的时候,不要使用无参数的构造方法,使用t=new first(3,2);btw:构造方法前面加void就变成了成员方法,这是Java编程考试中经常出现的一个考点。hehe 问题六:c++什么叫构造函数,它的作用是什么 构造函数的名字和类的...

Java 普通方法和构造方法的区别
public class bean{ private int a; private int b; public void setA(int a){ this.a = a; } public int getA(){ return a; } public void setB(int b){ this.b = b; } public int getB(){ return b; } public bean(){}\/\/空的...

相似回答