0

快速说明:我对编程仍然很陌生,我之前的课程中没有涉及静态方法。我曾尝试与我的教授取得联系,但她现在似乎有点忙,无法回复。以下是非评分作业;我只是想知道我想在这里做什么。

我想做什么:

  1. 创建一个名为 HelloPrinter 的类,该类具有一个将执行以下操作的方法:接受一个 int 参数作为次数。湾。将该参数用作要在循环中使用的标记值。C。在循环中,如果数字是奇数,则使用 switch 语句打印“Hello,Dr. Zhang”,如果数字是偶数,则打印“Hello, Class”。
  2. 在 main 方法中,实例化该类的一个对象并使用它来调用该方法。

  3. 将方法更改为静态方法并更改方法的调用

  4. 在 HelloPrinter 中,声明一个名为 counter1 的私有变量并将其初始化为零,声明另一个名为 counter2 的 int 变量并将其初始化为零
  5. 为 counter2 添加单词 static。
  6. 为不接受参数的 HelloPrinter 类创建一个构造函数。在构造函数的主体中,将 counter1 和 counter2 都加一。
  7. 在名为 getCounter1() 的类中定义另一个方法,该方法不接受任何参数但返回 counter1 的值。对 counter2 执行相同操作
  8. 为 HelloPrinter 类定义一个 toString() 方法。该方法将返回带有标签的 counter1 和 counter2 的值。
  9. 测试主程序中的所有方法

我有的:

public class HelloPrinter{
      private int counter1 = 0;
      private static int counter2 = 0;

      public HelloPrinter(int n){
           for(int x=1;x<=n;x++){

                int i=x;
      //        System.out.println(x); <---testing only
                switch(i%2){
                case 0:
                      System.out.println("Hello Dr. Z");
                      break;
                case 1:
                      System.out.println("Hello Class");
                      break;
     }
  }

}

(我也已经有了getter(getCounter1/getCounter2)和toString,只是不想泛滥。)我的问题是如何将main方法更改为静态方法并更改方法的调用?需要做什么?我将如何去做呢?同样,这不是一个等级。它应该是Java的复习。不幸的是,上学期我们的课程落后了,因为她一直在跳过部分内容,以后不得不回去学习(我去的大学需要不止一位编程教授。如果你问我的话)。

任何帮助将不胜感激...谢谢-Iain。

4

3 回答 3

0

main 始终是静态的。

我认为你被要求做的是在你的类中有一个非静态方法来进行打印。为了从 main 调用它,您需要从该类创建一个对象。然后在你的类中添加一个静态方法。要调用静态方法,您不需要从您的类中创建对象。

所以:

1-

  public static void main(String[] args) {
     MyClass obj = new MyClass();
     obj.nonStaticMethod();
  }

2-

  public static void main(String[] args) {
     MyClass.staticMethod();
  }

此外,main 可以在同一个类 (MyClass) 中,或者您可以创建另一个类来单独包含 main。

于 2013-08-30T23:07:31.783 回答
0

“我的问题是如何将main方法改成静态方法,并改变方法的调用?需要做什么?我将如何去做?”

首先,main应该是静态方法;它的签名是

public static void main(String args[])

(名称String[]无关紧要,但其余的需要在那里。)

(如果你main说“main方法”时不是在说,你可以忽略这前面的三行)

其次,看起来你已经完成了 4、5、7 和 8 个。要解决 1,2 和 3,您需要创建一个完全不同的方法(例如 how getCounter1()getCounter2()并且toString()应该是它们自己的不同方法),并按照说明进行操作。

对于 6,您给我们的代码有一个构造函数,它接受一个参数 ( public HelloPrinter(int x)),执行 1、2 和 3 中的方法应该执行的操作。就像它说的那样,您需要一个不带参数的构造函数(即public HelloPrinter() { ...)。

毕竟,您应该从main自身调用所有这些方法(如 9 所要求的那样)。

于 2013-08-30T23:08:34.307 回答
0

是如何将主方法更改为静态方法并更改方法的调用?需要做什么?

main方法是一个静态方法:

public static void main(String[] args)
{
    // This is the entry point into any JAR file. This is the first line of use 
    // code ran by the JRE.
}

如果您没有main方法,您的程序将不会作为应用程序运行。您应该main向该类添加一个方法,例如用于测试的类,Test.

public class Test
{
    public static void main(String[] args) {
       // Add in your testing code here.
    }

}
于 2013-08-30T23:01:36.700 回答