快速注意:我还是新手编程,我以前的课程中没有涉及静态方法。我曾尝试与我的教授取得联系,但似乎她现在有点忙于回应。以下是未评分的作业;我只是想知道我在这里想做什么。
我想要做的是:
- 创建一个名为HelloPrinter的类,该类有一个方法可以执行以下操作: 一个。接受一个int参数作为次数。 湾使用该param作为循环中使用的sentinel值。 C。在循环中,如果数字是奇数,则使用switch语句打印出“Hello,Zhang博士”,如果数字是偶数,则打印出“Hello,Class”。
在main方法中,实例化该类的对象并使用它来调用该方法。
将方法更改为静态方法并更改方法的调用
- 在HelloPrinter中,声明一个名为counter1的私有变量并将其初始化为零,声明另一个名为counter2的int变量并将其初始化为零
- 为counter2添加static。
- 为HelloPrinter类创建一个不接受参数的构造函数。在构造函数的主体中,将counter1和counter2都加1。
- 在名为getCounter1()的类中定义另一个方法,该方法不接受任何参数但返回counter1的值。对counter2做同样的事情
- 为HelloPrinter类定义toString()方法。该方法将使用标签返回counter1和counter2的值。
- 测试主程序中的所有方法
醇>
我有什么:
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。
答案 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个问题)。