在类之间共享Java中的变量

时间:2019-12-20 09:56:13

标签: java

我在自己的公共类中有三种静态方法。简单的算术方法可以帮助我学习。

这些方法使用三个变量,这些变量在主方法中定义为静态int变量。该程序有效。

现在,根据对已阅读内容的理解,我应该能够将变量定义移至另一个类并将其定义为public。然后,其自己的公共类中的main方法应该能够找到这些定义并运行。但这不会发生。相反,我的Eclipse工作区报告无法将定义解析为变量。

这是非常简单的代码(这给了我编译错误):

package christmas;

public class addintegers {
    public int number1 = 5;
    public int number2 = 10;
    public int answer;

    public static int add2numbers(int a, int b) {
        return (a + b);
    }
}

第2类

package christmas;

public class subtractintegers {
    public static int sub2numbers(int a, int b) {
        return (a - b);
    }
}

然后我有我的主要方法。这是我收到编译错误的地方。

package christmas;

public class glue {
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        System.out.println(addintegers.add2numbers(number1, number2));
        System.out.println(subtractintegers.sub2numbers(number1, number2));
        answer = (addintegers.add2numbers(number1, number2)) + (subtractintegers.sub2numbers(number1, number2));
        System.out.println("answer =" + answer);
    }
}

我得到的错误是:

>create local variable number1
>create local variable number2
>create local variable answer

3 个答案:

答案 0 :(得分:0)

首先,

  • 类名称应为名词,并使用 UpperCamelCase
  • 方法名称应为动词,并使用 lowerCamelCase

例如,类似以下内容的东西:

public class Addition {

    public static int add(int a, int b) {
        return a + b;
    }
}
public class Subtraction {  

    public static int subtract(int a, int b) {
        return a - b;
    }    
}

如果您想在我重命名为number1的类中拥有number2answerAddition字段,通常您要做的就是将它们设为{{1 }}实例变量,并通过getter公开它们:

private

然后您可以通过创建该类的实例来访问它们,例如:public class Addition { private int number1 = 5; public int getNumber1() { return number1; } } 。由于new Addition().getNumber1();Addition类似乎是 utility类,因此声明这些字段Subtraction也许更有意义,因此您不必实例化课程:

private static

然后您可以通过引用该类而不是该类的实例(例如:public class Addition { private static int number1 = 5; public static int getNumber1() { return number1; } } )来访问它们。

答案 1 :(得分:-1)

您快到了。您缺少2个关键点:

  • 要共享变量number1,number2和answer而不实例化addIntegers类,您需要将它们设置为静态。
  • 要从胶水类的main方法中访问变量number1,number2和answer,您需要在变量之前添加addIntegers类。
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>



<div class="modal-body predefineModal">
  <div class="bs-example">
    <div id="myCarousel" class="carousel slide">
      <!-- Carousel indicators -->
      <ol class="carousel-indicators">
        <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
        <li data-target="#myCarousel" data-slide-to="1"></li>
      </ol>
      <!-- Wrapper for carousel items -->
      <div class="carousel-inner">
        <div class="carousel-item active">
          <div class="table-responsive">
            <table class="table table-bordered">
              <thead class="party_head">
                <tr>
                  <th>#</th>
                  <th>S.No</th>
                  <th>Trans.Type</th>
                  <th>Voucher Date</th>
                  <th>To A/c Name</th>
                  <th>Narration</th>
                  <th>Debit</th>
                  <th>Credit</th>
                </tr>
              </thead>
              <tbody>
                <tr class="line-content">
                  <td><input id="indeterminate-checkbox" type="checkbox" /></td>
                  <td>1</td>
                  <td>CP</td>
                  <td>DD-MM-YYYY</td>
                  <td>JOE</td>
                  <td>Narration</td>
                  <td>Debit</td>
                  <td>Credit</td>
                </tr>
                <tr class="line-content">
                  <td>
                  <input type="checkbox" id="indeterminate-checkbox"/>
                  </td>
                  <td>2</td>
                  <td>BP</td>
                  <td>DD-MM-YYYY</td>
                  <td>PLUMZ</td>
                  <td>Narration</td>
                  <td>Debit</td>
                  <td>Credit</td>
                </tr>
                <tr class="line-content">
                  <td><input id="indeterminate-checkbox" type="checkbox" /></td>
                  <td>3</td>
                  <td>CR</td>
                  <td>DD-MM-YYYY</td>
                  <td>text</td>
                  <td>Narration</td>
                  <td>Debit</td>
                  <td>Credit</td>
                </tr>
                <tr class="line-content">
                  <td><input id="indeterminate-checkbox" type="checkbox" /></td>
                  <td>4</td>
                  <td>CR</td>
                  <td>DD-MM-YYYY</td>
                  <td>text</td>
                  <td>Narration</td>
                  <td>Debit</td>
                  <td>Credit</td>
                </tr>
                <tr class="line-content">
                  <td><input id="indeterminate-checkbox" type="checkbox" /></td>
                  <td>5</td>
                  <td>CR</td>
                  <td>DD-MM-YYYY</td>
                  <td>text</td>
                  <td>Narration</td>
                  <td>Debit</td>
                  <td>Credit</td>
                </tr>
                <tr class="line-content">
                  <td><input id="indeterminate-checkbox" type="checkbox" /></td>
                  <td>6</td>
                  <td>CR</td>
                  <td>DD-MM-YYYY</td>
                  <td>text</td>
                  <td>Narration</td>
                  <td>Debit</td>
                  <td>Credit</td>
                </tr>
              </tbody>
            </table>
          </div>
        </div>
      </div>
      <!-- Carousel controls -->
      <ul id="pagin"><a class="carousel-control-prev" data-slide="prev">
          <span class="carousel-control-prev-icon"></span>
        </a>
      <a class="carousel-control-next" data-slide="next">
          <span class="carousel-control-next-icon"></span>
        </a></ul>
    </div>
  </div>
</div>
    package christmas;

    public class addintegers {
        public static int number1 = 5;
        public static int number2 = 10;
        public static int answer;

        public static int add2numbers(int a, int b) {
            return (a+b);
        }
    }

答案 2 :(得分:-2)

df['column'] = None #This works. This will create a new column with None type
df.column = None #This will work only when the column is already present in the dataframe