Java 为什么要将main()放在专用类中?
我没有任何Java经验,有C语言背景 我想创建一个新的数据类型,比如抽象数据类型。在C语言中,这可以通过为新的数据类型创建一个结构来实现;我知道在Java中,您为该新数据类型创建一个类,然后开始为该类创建对象 我用两种不同的方法写了这篇文章,而且两种方法似乎都有效。但我不理解第二种方法的缺点Java 为什么要将main()放在专用类中?,java,oop,Java,Oop,我没有任何Java经验,有C语言背景 我想创建一个新的数据类型,比如抽象数据类型。在C语言中,这可以通过为新的数据类型创建一个结构来实现;我知道在Java中,您为该新数据类型创建一个类,然后开始为该类创建对象 我用两种不同的方法写了这篇文章,而且两种方法似乎都有效。但我不理解第二种方法的缺点 在这里,我为数据类型创建一个类,创建它的一个实例,然后执行操作。我发现这是互联网教程中使用的设计 public class DesignOne { public static void main(S
public class DesignOne {
public static void main(String[] args) {
MyDataType obj = new MyDataType(3,4);
System.out.println(obj.sum());
}
}
class MyDataType {
int i;
int j;
MyDataType(int i, int j) {
this.i = i;
this.j = j;
}
int sum() {
return this.i + this.j;
}
}
sum
这样的操作也被定义为类的成员。基本上,只有一门课
public class DesignTwo {
int i;
int j;
DesignTwo(int i, int j) {
this.i = i;
this.j = j;
}
int sum() {
return this.i + this.j;
}
public static void main(String[] args) {
DesignTwo obj = new DesignTwo(3,4);
System.out.println("sum == "+obj.sum());
}
}
DesignTwo的缺点是什么?为什么首选DesignOne?两者之间没有本质区别(尽管通常不鼓励使用非最终公共字段)。唯一的区别是将main方法放在何处,它在概念上不属于任何特定类。在大型程序中,它通常存在于一个单独的启动程序类中,只是因为将它绑定到某个任意类是没有意义的,但这与数据建模基本无关 基本上可以归结为。你应该试着给每个班级一个角色。在这里,您需要担任两个角色:
因此,您应该使用两个类。一旦您开始希望在程序中使用和显示多种类型的内容,优势就变得更加明显。实际上,这些都相当于一种方法,我更倾向于第一种方法,在这种方法中,您有一个额外的类只用于主方法,因为您不会用不属于主方法的不必要的主方法来混乱您的类。相反,您可以使用一个定义良好的main方法作为程序的入口点。此外,如果您希望长期保存数据,将MyDataType保留为仅数据对象在将来具有优势。(另见)