将方法更改为静态方法并更改方法的调用(Java)

时间:2013-08-30 22:57:35

标签: java

快速注意:我还是新手编程,我以前的课程中没有涉及静态方法。我曾尝试与我的教授取得联系,但似乎她现在有点忙于回应。以下是未评分的作业;我只是想知道我在这里想做什么。

我想要做的是:

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

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

  6.   
  7. 在HelloPrinter中,声明一个名为counter1的私有变量并将其初始化为零,声明另一个名为counter2的int变量并将其初始化为零
  8.   
  9. 为counter2添加static。
  10.   
  11. 为HelloPrinter类创建一个不接受参数的构造函数。在构造函数的主体中,将counter1和counter2都加1。
  12.   
  13. 在名为getCounter1()的类中定义另一个方法,该方法不接受任何参数但返回counter1的值。对counter2做同样的事情
  14.   
  15. 为HelloPrinter类定义toString()方法。该方法将使用标签返回counter1和counter2的值。
  16.   
  17. 测试主程序中的所有方法
  18.   

我有什么:

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。

3 个答案:

答案 0 :(得分:0)

  

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

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.
    }

}

答案 1 :(得分: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。

答案 2 :(得分:0)

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

首先,main已经被认为是一种静态方法;它的签名是

public static void main(String args[])

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

(如果你在说“主要方法”时没有谈到main,你可以在此之前忽略这三行)

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

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

毕竟,你应该从main本身调用所有这些方法(作为9个问题)。