当我们编写一个小型的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());
}
}请说出各个方法的利弊^_^
第一:
直接利用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());
}
}请说出各个方法的利弊^_^
import java.io.*;
class Mytest{
int mynum=20;
public int myfunction()
{
return mynum+1;
}
Mytest t=new Mytest();
}public class Test {
public static void main(String[] args) {
Mytest f=new Mytest();
System.out.println(f.mynum);
System.out.println(f.myfunction());
}
}
编译通过,但显然不能正常运行,我不明白,为什么要允许在类的内部new一个类的对象?
如下程序是正确的:
import java.io.*;
class Mytest{
int mynum=20;
public int myfunction()
{
Mytest t=new Mytest();
return t.mynum;
}
}public class Test {
public static void main(String[] args) {
Mytest f=new Mytest();
System.out.println(f.mynum);
System.out.println(f.myfunction());
}
}
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());
}
}
甚至是:public class Test {
int mynum = 20;
public int myfunction() {
return mynum + 1;
}
public static void main(String[] args) {
Test f = new Test();
System.out.println(f.mynum);
System.out.println(f.myfunction());
}
}
谢谢你的详细解答,其实我只是不理解为什么允许在类里面声明一个改类的对象而已