小型java程序编程风格的讨论
当我们编写一个小型的java控制台程序时,可以使用如下3种风格:
第一:
直接利用public class类,直接在public class类内部写我们需要的方法和成员变量。因为main方法是static的,因此我们的方法和成员变量也全部写成static。
import java.io.*;
public class Test {
static int mynum=20;
public static int myfunction()
{
return mynum+1;
}
public static void main(String[] args) {
System.out.println (mynum);
System.out.println (myfunction());
}
}
第二:
直接在public class类内部new一个public class类的对象,这样所有的方法和成员变量都不必一定要是static的,这种方法太怪。
import java.io.*;
public class Test {
int mynum=20;
public int myfunction()
{
return mynum+1;
}
public static void main(String[] args) {
Test myclass=new Test();
System.out.println (myclass.mynum);
System.out.println (myclass.myfunction());
}
}
第三种:
也是最正常的一种,建立一个class,然后在public class类内部new一个刚才建立的class。
import java.io.*;
class Mytest{
int mynum=20;
public int myfunction()
{
return mynum+1;
}
}
public class Test {
public static void main(String[] args) {
Mytest f=new Mytest();
System.out.println (f.mynum);
System.out.println (f.myfunction());
}
}
请说出各个方法的利弊^_^
------解决方案--------------------需求决定工具和手段:)
------解决方案--------------------这样的程序一般是用于进行临时测试,怎么顺手怎么写
------解决方案--------------------To zuilang(3木):
你的两段代码语法上讲都没有问题,只是你都定义了Mytest t=new Mytest();这是没有必要的。
你可以这么来考虑:main方法是一个启动程序的入口点,先不要管它在哪个类里面。在main方法里你声明了一个Mytest对象,Mytest f=new Mytest();那Mytest对象是什么呢?这个对象包含了一个成员属性,即mynum,还包含了方法myfunction()。main方法中声明了Mytest类型的f,当然可以调用f的属性和方法。
Test中的main方法是静态的,是属于Test类而不是实例的。其实,main属于哪个类都一样可以执行。
你回复里的两段代码实际上可以写为:
class Mytest {
int mynum = 20;
public int myfunction() {
return mynum + 1;
}
}
public class Test {