在Java的main中创建同一类的新实例

在Java的main中创建同一类的新实例,java,object,Java,Object,在Java中,从类的主方法中实例化一个新的类实例是否正确 我看到了这个代码: public class MaxContiguousSum { public int get(int[] iArray){ if(iArray.length==0){ return 0; } int maxsum = iArray[0]; int currentsum = 0; for(int i=0;i < iArray.length;i++){ currentsum +=

在Java中,从类的主方法中实例化一个新的类实例是否正确

我看到了这个代码:

public class MaxContiguousSum {
 public int get(int[] iArray){
  if(iArray.length==0){
   return 0;
  }

  int maxsum = iArray[0];
  int currentsum = 0;

  for(int i=0;i < iArray.length;i++){
   currentsum += iArray[i];
   if(currentsum > maxsum){
    maxsum = currentsum;
   }
   if(currentsum < 0){
    currentsum=0;
   }
  }

  return maxsum;
 }

 public static void main(String[] args) {
  int[] iarr = {-7,-6,-5,-4,-5,-6,-7};
  MaxContiguousSum maxsum = new MaxContiguousSum();
  System.out.println(maxsum.get(iarr));
 }

}
公共类MaxContinguousSum{
公共int get(int[]iArray){
如果(iArray.length==0){
返回0;
}
int maxsum=iArray[0];
int currentsum=0;
for(int i=0;imaxsum){
最大和=当前和;
}
如果(当前和<0){
currentsum=0;
}
}
返回最大和;
}
公共静态void main(字符串[]args){
int[]iarr={-7,-6,-5,-4,-5,-6,-7};
MaxContiguousSum maxsum=新的MaxContiguousSum();
System.out.println(maxsum.get(iarr));
}
}

这让我有点困惑,因为主方法在类本身中,但正在实例化该类的对象。这在Java中正确吗?我的意思是,这是一个好的实践吗?

这不是一个坏的实践,但是您可能希望在同一个包中分离类,甚至在代码增长后在不同的包中分离类

如果是为了快速测试,那绝对没有问题

换句话说

main
方法是应用程序的入口点

如果您的应用程序只包含一个类或几个类,可能在同一个文件中,那么您的入口点可以是(其中一个)类的静态方法


一旦开始获取包层次结构和大量结构化代码,您可能希望将入口点与数据、演示文稿、资源等分离。

在正确的上下文中,一切都是正确的。你的确切问题是什么?如果它有效且清晰,那就好了。这里没有特别的代码味道,如果这是您要问的,至少在您的示例中没有。在更大的应用程序中,我不倾向于使用这样的代码,但对于使用单个源文件的快速一次性操作,它非常方便(老实说,这比在小程序中使所有内容都
静态
要好得多)。此外,有时,甚至在大型项目中,在特定类中放置
main
,对于快速测试或实用程序应用程序也很有用。