在整个Java类中使用变量

时间:2013-03-04 13:48:21

标签: java variables global

这可能是一个非常简单的答案,但我甚至不确定要搜索什么,以便我最好问。

我真的不明白如何创建一个我可以在整个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
 }
}

5 个答案:

答案 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中的对象。它可能很难通过前几英里,但一旦你习惯它就不会有这么多问题。