运行通过 public class abc { public static void main(String[] args) { int[] tt={5,5}; System.out.println(tt[0]); System.out.println(tt[1]); } }javac abc.java java abc 结果: 5 5
我知道楼上说的是对的。但是我这样做错了吗?书上是这样写的啊。我本来要做的是申请一个二维数组:我这样写的: private int shotpic[][]=new int[2][]; //这句编译是通过的。 shotpic[0]=new int [5]; shotpic[1]=new int [8]; //这两句就通不过了,把8变成5也不对。 谢谢大侠指点一下
我把后面两句: shotpic[0]=new int [5]; shotpic[1]=new int [8]; 换成 shotpic[0]=new int {1,2,3,4,5} shotpic[1]=new int {1,2,3,4,5,6,7,8}; 这样也不对,大侠指点一下啊
shotpic[]=new int {1,2,3,4,5} shotpic[]=new int {1,2,3,4,5,6,7,8};
不知道是不是这样 int tt[]; //过后tt就已经有空间了,不应该再去new了
int shotpic[]={1,2,3,4,5} int shotpic[]={1,2,3,4,5,6,7,8};
int tt[]=new int[]{1,3,5,7,8}; 一样可以
private int shotpic[][]=new int[2][]; //这句编译是通过的。 shotpic[0]=new int [5]; shotpic[1]=new int [8]; 这样的做法是对的。运行可以通过。 记得在《Thinking in JAVA》中说到数组的初始化的时候,就是特别提到要这样初始化的。这样做没错。
楼上的大侠编译的错误是这样,小弟初次接触java。实在摸不着头脑,帮忙指点一下啊 d:\javacode\changepos.java:12: ']' expected shotpic[0]=new int {1,2,3,4,5}; ^ d:\javacode\changepos.java:12: <identifier> expected shotpic[0]=new int {1,2,3,4,5}; ^ d:\javacode\changepos.java:13: ']' expected shotpic[1]=new int {1,2,3,4,5,6,7,8}; ^ d:\javacode\changepos.java:13: <identifier> expected shotpic[1]=new int {1,2,3,4,5,6,7,8}; ^ d:\javacode\changepos.java:12: cannot resolve symbol symbol : class shotpic location: class ChangePos shotpic[0]=new int {1,2,3,4,5}; ^ d:\javacode\changepos.java:13: cannot resolve symbol symbol : class shotpic location: class ChangePos shotpic[1]=new int {1,2,3,4,5,6,7,8}; ^
public class Test { public static void main(String[] args) {
int shotpic[][]=new int[2][]; shotpic[0]=new int [5]; shotpic[1]=new int [8];
}
}
shotpic[0]=new int {1,2,3,4,5}; ~~~~~~~ shotpic[0]={1,2,3,4,5};
我把后面两句: shotpic[0]=new int [5]; shotpic[1]=new int [8]; 换成 shotpic[0]=new int {1,2,3,4,5} shotpic[1]=new int {1,2,3,4,5,6,7,8}; 这样也不对,大侠指点一下啊 ---------------- class Test { public static void main(String[] args) {
int shotpic[][]=new int[2][]; shotpic[0]=new int[]{1,2,3,4,5}; shotpic[1]=new int[]{1,2,3,4,5,6,7,8};
public class abc
{
public static void main(String[] args)
{
int[] tt={5,5};
System.out.println(tt[0]);
System.out.println(tt[1]);
}
}javac abc.java
java abc
结果:
5
5
private int shotpic[][]=new int[2][]; //这句编译是通过的。
shotpic[0]=new int [5];
shotpic[1]=new int [8]; //这两句就通不过了,把8变成5也不对。
谢谢大侠指点一下
shotpic[0]=new int [5];
shotpic[1]=new int [8];
换成
shotpic[0]=new int {1,2,3,4,5}
shotpic[1]=new int {1,2,3,4,5,6,7,8};
这样也不对,大侠指点一下啊
shotpic[]=new int {1,2,3,4,5,6,7,8};
int tt[];
//过后tt就已经有空间了,不应该再去new了
int shotpic[]={1,2,3,4,5,6,7,8};
一样可以
shotpic[0]=new int [5];
shotpic[1]=new int [8]; 这样的做法是对的。运行可以通过。
记得在《Thinking in JAVA》中说到数组的初始化的时候,就是特别提到要这样初始化的。这样做没错。
d:\javacode\changepos.java:12: ']' expected
shotpic[0]=new int {1,2,3,4,5};
^
d:\javacode\changepos.java:12: <identifier> expected
shotpic[0]=new int {1,2,3,4,5};
^
d:\javacode\changepos.java:13: ']' expected
shotpic[1]=new int {1,2,3,4,5,6,7,8};
^
d:\javacode\changepos.java:13: <identifier> expected
shotpic[1]=new int {1,2,3,4,5,6,7,8};
^
d:\javacode\changepos.java:12: cannot resolve symbol
symbol : class shotpic
location: class ChangePos
shotpic[0]=new int {1,2,3,4,5};
^
d:\javacode\changepos.java:13: cannot resolve symbol
symbol : class shotpic
location: class ChangePos
shotpic[1]=new int {1,2,3,4,5,6,7,8};
^
public class Test { public static void main(String[] args) {
int shotpic[][]=new int[2][];
shotpic[0]=new int [5];
shotpic[1]=new int [8];
}
}
~~~~~~~
shotpic[0]={1,2,3,4,5};
shotpic[0]=new int [5];
shotpic[1]=new int [8];
换成
shotpic[0]=new int {1,2,3,4,5}
shotpic[1]=new int {1,2,3,4,5,6,7,8};
这样也不对,大侠指点一下啊
----------------
class Test { public static void main(String[] args) {
int shotpic[][]=new int[2][];
shotpic[0]=new int[]{1,2,3,4,5};
shotpic[1]=new int[]{1,2,3,4,5,6,7,8};
}
}
这样就行了!!
正确的语法是:int[] i=new int[]{1,2,3,};或只声明个数int[] i=new int[3];
无论是哪一种,都是对数组明确地进行初始化(后一种自动赋予默认值0)
所以,
基本类型的数组的"new"与对象的"new"还是有相同之处的.