日期:2014-05-20  浏览次数:20668 次

小型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 {