Java 在单独的构造函数类中创建数组
这是很新的。我试图从一个单独的类文件中调用一个构造函数方法,该类文件将生成一个数组。我没有把我正在做的工作发布到作业上,而是做了一个更简单的通用版本 我所期望的是main将调用MakeArray,它将创建一个包含3个整数的数组:[0,1,2],然后main将添加这些项,唯一的输出将是总数,2 从我的主要观点:Java 在单独的构造函数类中创建数组,java,arrays,class,constructor,Java,Arrays,Class,Constructor,这是很新的。我试图从一个单独的类文件中调用一个构造函数方法,该类文件将生成一个数组。我没有把我正在做的工作发布到作业上,而是做了一个更简单的通用版本 我所期望的是main将调用MakeArray,它将创建一个包含3个整数的数组:[0,1,2],然后main将添加这些项,唯一的输出将是总数,2 从我的主要观点: MakeArray trial = new MakeArray() System.out.println(trial[0] + trial[1] + trial[2]); int
MakeArray trial = new MakeArray()
System.out.println(trial[0] + trial[1] + trial[2]);
int[] trial = MakeArray.newArray(3);
System.out.println(trial[0] + ", " + trial[1] + ", "+trial[2]);
从我的类文件:
final int CONSTANT = 3;
public MakeArray()
{
int[] demo = new int[CONSTANT];
for(int i=0; i<CONSTANT; i++)
{
demo[i]=i;
}
return demo[];
}
final int CONSTANT = 3;
public class MakeArray
{
public int[] demo;
public MakeArray()
{
demo = new int[CONSTANT];
for(int i=0; i<CONSTANT; i++)
{
demo[i]=i;
}
}
}
final int常量=3;
公共MakeArray()
{
int[]demo=新的int[常数];
对于(int i=0;i您似乎不需要MakeArray
的新实例,我建议您将其作为一种实用方法
从我的主要观点:
MakeArray trial = new MakeArray()
System.out.println(trial[0] + trial[1] + trial[2]);
int[] trial = MakeArray.newArray(3);
System.out.println(trial[0] + ", " + trial[1] + ", "+trial[2]);
具有定义为
enum MakeArray { ;
static int[] newArray(int n) {
int[] demo = new int[n];
for (int i = 0; i < n; i++)
demo[i]=i;
return demo;
}
}
enum MakeArray{;
静态int[]新数组(int n){
int[]demo=新的int[n];
对于(int i=0;i
您不能以数组的形式访问MakeArray对象。但是,您可以创建一个返回所述数组的方法:
class MakeArray {
public static int[] makeArray() {
int[] demo = new int[CONSTANT];
for(int i=0; i<CONSTANT; i++) {
demo[i]=i;
}
return demo;
}
}
一种方法是在类中添加实例变量及其相应的getter方法:
final int CONSTANT = 3;
int[] demo;
public MakeArray()
{
demo = new int[CONSTANT];
for(int i=0; i<CONSTANT; i++)
{
demo[i]=i;
}
}
public getArray(){
return demo;
}
创建这样的数组是行不通的,因为数组不是普通对象,而是特殊对象。
因此,您不能只创建一个与数组工作相同的对象,而是创建一个静态方法(可以在没有类实例的情况下调用该方法)并使其返回数组,如下所示:
static final int CONSTANT = 3;
public static int[] MakeArray()
{
int[] demo = new int[CONSTANT];
for(int i=0; i<CONSTANT; i++)
{
demo[i]=i;
}
return demo;
}
当然,只有将此方法放入名为“MakeArray”的类中时,此方法才有效。否则,您必须在点前面放置其他内容。据我所知,您可能需要这样的内容
类文件:
final int CONSTANT = 3;
public MakeArray()
{
int[] demo = new int[CONSTANT];
for(int i=0; i<CONSTANT; i++)
{
demo[i]=i;
}
return demo[];
}
final int CONSTANT = 3;
public class MakeArray
{
public int[] demo;
public MakeArray()
{
demo = new int[CONSTANT];
for(int i=0; i<CONSTANT; i++)
{
demo[i]=i;
}
}
}
您不能在构造函数中使用“return”如果对象不是数组,则不能将其用作数组。谢谢您的帮助!非常好(而且非常快)回答我的问题。我用这个作为模型,效果很好!谢谢彼得的帮助!这是我第一次通过发布问题来使用这个网站-伟大而快速的反馈是一个巨大的帮助!@theninja在发布问题时,如果你发布编译的代码,你会得到更高的可信度。在这种情况下,这不是问题,而是一个常见的错误采取的方法是:a)在询问之前不要简单地搜索解决方案;b)首先使用调试器调试程序。(这就是它的用途)谢谢您的帮助!