【问题标题】:Getting a tab from constructor for method in the same class in Java从构造函数获取Java中同一类中的方法的选项卡
【发布时间】:2014-03-11 21:04:11
【问题描述】:

我是 java 的初学者,我的程序有问题,我想获得一个从构造函数到方法的选项卡,但我不知道该怎么做,有人能帮我吗? 这是我的代码:

public class pascal4 {
    static int tab[][];
    public pascal4(int n){
     int tab[][]=new int[n+1][n+1];
       tab[0][0] = 1;
       for(int i = 1; i <n; i++)
       {
           tab[i][0] = 1;
           for(int j = 1; j <n; j++)
               tab[i][j] = tab[i-1][j] + tab[i-1][j-1];
       }

    } 


 public static int[][] wspolczynnik(int m){
    return tab;
 }

我希望方法 wspolczynnik 将选项卡从构造函数返回到 main,我该怎么做?

【问题讨论】:

  • 我希望他们不会在课堂上教你这样的代码。
  • 很难判断你在哪里。是您根本不知道如何让main 使用wspolczynnik 的问题,还是您正在使用它并且它意外返回null 的问题,或者是其他原因,或者您只是很困惑,你真的不知道该问什么?
  • 您确实应该从代码中删除两个 static 关键字。调用构造函数的意义在于它创建一个对象,然后初始化属于该对象的数据。您的 static int tab 意味着每个对象只有一个 tab 而不是一个,因此您的构造函数构造了一个对象,但由于您没有在对象中设置任何数据,因此使该对象变得毫无用处。

标签: java methods constructor


【解决方案1】:

您只需要在构造函数 (int tab[][]=new int[n+1][n+1];) 中再次停止声明选项卡,并使用您的类 (static int tab[][];) 中的选项卡属性。

所以int tab[][]=new int[n+1][n+1]; 应该只是tab=new int[n+1][n+1]; 这意味着您使用类属性。

【讨论】:

    【解决方案2】:

    改变

    int tab[][]=new int[n+1][n+1];
    

    tab[][]=new int[n+1][n+1];
    

    这将使用类的tab 而不是构造函数的tab

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-12
      • 2012-06-22
      • 2014-01-13
      • 1970-01-01
      • 1970-01-01
      • 2013-10-04
      相关资源
      最近更新 更多