这可能是一个非常简单的答案,但我甚至不确定要搜索什么,以便我最好问。
我真的不明白如何创建一个我可以在整个java程序中使用的变量(特别是一个数组)?需要从多个方法访问变量,并根据用户输入(args)设置它的大小。谁能对此有所了解?欢呼任何帮助。
Public class example{
//this is the array that needs accessing from multiple places
int anArray[][];
public static void main(String args[]){
int size = 5;
add1(size);
add2(size);
}
public static void add1(int size){
//seeing as the size of the array is being defined by the user input, it's created here after being passed the size argument.
}
public static void add2(int size){
//add more content to the array here
}
}
答案 0 :(得分:2)
小心点亮那些讨厌的静态修饰符......在处理多线程的东西时可能会遇到很多麻烦......
你应该在对象实例中思考。 main
方法是静态的:它属于类本身,而不是实例。首先,您必须创建一个类的实例,方法是使用new
关键字构建一个实例:
Public class Example{ //note: Class Names Start UpperCased!
//this is the array that needs accessing from multiple places
int anArray[][];
public static void main(String args[]){
int size = 5;
Example example = new Example(); // create instance
example.add1(size); //using the instance
example.add2(size);
}
public void add1(int size){ //note: no static!
//seeing as the size of the array is being defined by the user input, it's created here after being passed the size argument.
anArray = new int[size][size]; //you can create it here
}
public void add2(int size){ //note: no static
//add more content to the array here
//do something here
System.out.prin
}
}
然而,OOP编程有很多细微之处,比如我在构造函数中进行初始化,接受初始大小等等。
答案 1 :(得分:2)
首先要为类创建一个构造函数,用于初始化对象:
public example() {
anArray = new Integer[10][10]();
}
现在你已经初始化了,你可以在其他方法中访问变量,比如add1方法:
public void add1(int size) {
anArray[1][1] = size;
}
你是对的,这个问题非常基础,最好先用Java做一个基础课程。 tutorial that Oracle provides非常好,如果你不想花钱,我会推荐它。如果你愿意花一些钱,Liangs introduction to Java, the comprehensive editio n是一个很好的起点。
答案 2 :(得分:1)
首先,您正在错误地初始化它。
int anArray[][];
应该是:
int[][] anArray;
这是您设置变量的方式。首先,在这种情况下声明你的类型为int,但是它是一个2d数组的int,所以你必须使用int [] []。此时应该可以访问整个班级。
现在在main方法中,您必须使用args []获取用户输入(如果这是您想要的方式)。现在你自己设置值为5。
如果你知道args []是如何工作的,那么int size = args [0]可能会有效。 以下是对此的解释:What is "String args[]"? parameter in main method Java
获得大小整数后,必须调用anArray的构造函数,因为现在它尚未构造。 这看起来像(如果你想要它是一个正方形):
anArray = new int[size][size]
此链接可能有助于更多地了解如何创建2D阵列:http://www.java2s.com/Code/Java/Collections-Data-Structure/CreatingaTwoDimensionalArray.htm
答案 3 :(得分:0)
使用:
static int anArray[][];
静态变量可以通过静态和非静态方法访问。
静态方法无法访问非静态变量。
答案 4 :(得分:0)
我建议在你正在使用的任何编辑器中创建一个新项目(eclipse或我假设的一些),然后创建一个包含构建其他对象(逻辑类或GUI)fx的主程序的类文件。
设置类的好方法是这样的:
class ClassYourMaking {
// Field Values go here. (variables that are used throughout a
// class is called field values).
variable1; (notice no instanciation.)
variable 2;
// etc.
// Constructor(s).
public ClassYourMaking() { // perhaps some params if it makes sense.
// field values are usually initialized in the constructor somehow.
}
// Methods goes here.
public void method1() {
// something.
}
}
然后你可以有一个主程序,它不一定是唯一的方法,但你可能习惯于制作一个小的主程序。
class ClassYourMakingsMainProgram {
public static void main(String[] args) {
ClassYourMaking newInstance = new ClassYourMaking();
// you can then reach into the object of your class like so:
newInstance.method1();
}
}
如果这一切对你没有任何意义,请帮自己一个忙,阅读类层次结构并使用Java中的对象。它可能很难通过前几英里,但一旦你习惯它就不会有这么多问题。