Java 无法从主方法输出值

Java 无法从主方法输出值,java,java-io,Java,Java Io,我不熟悉编码,我对Java有一个问题。这是我的家庭作业问题:编写一个程序,调用一个名为Sum100的方法,该方法返回从1到100(包括1到100)的整数之和。我已经写了我的方法 public int sum100() { int sum = 0; for (int count=1; count <= 100; count++) sum += count; return sum; } 您可以在任何地

我不熟悉编码,我对Java有一个问题。这是我的家庭作业问题:编写一个程序,调用一个名为Sum100的方法,该方法返回从1到100(包括1到100)的整数之和。我已经写了我的方法

    public int sum100()
     {
        int sum = 0;
        for (int count=1; count <= 100; count++)
        sum += count;
        return sum;
     }

您可以在任何地方进行sysout,但我建议您在函数之外进行输出,因为您可能希望将日志记录与代码的其余部分分开(以防代码的另一部分希望调用此函数但不记录任何内容)。

如果您只需将
sum100
方法更改为
静态
,您的代码就可以完美运行:

public static int sum100()
 {
    int sum = 0;
    for (int count=1; count <= 100; count++)
    sum += count;
    return sum;
 }
publicstaticintsum100()
{
整数和=0;

对于(int count=1;countMain)是静态的,它不能调用另一个非静态的方法,它可以引用对象而不是类。创建类的对象并使用该对象调用该方法

class myclass{
public static void main(String[] args) {
 myclass obj=new myclass();
System.out.println(obj.sum100());//it will  working

}    
public int sum100()
   {
    int sum = 0;
    for (int count=1; count <= 100; count++)
    sum += count;
    return sum;
   }

 }
class-myclass{
公共静态void main(字符串[]args){
myclass obj=新的myclass();
System.out.println(obj.sum100());//它会工作的
}    
公共int sum100()
{
整数和=0;

对于(int count=1;count您的方法
main
是静态的,并且它不能调用另一个非静态的方法,前提是它引用的是
对象,而不是


因此,您应该实例化
类的一个对象,并调用该对象的非静态方法,或者使
sum100
方法
静态
按以下方式使用它对我有效

class SumClass {
    public int sum100() {
        int sum = 0;
        for (int count = 1; count <= 100; count++)
            sum += count;
        return sum;
    }
    public static void main(String[] args) {
        SumClass obj = new SumClass();
        System.out.println("Sum->" + obj.sum100());

    }


}
class类{
公共int sum100(){
整数和=0;
对于(int count=1;countclass Yourclass{

public static void main(String[] args) {
    SumClass obj = new SumClass();
    int currrent_sum=obj.sun100();
    System.out.println("Sum of 100 numbers is: " +current_sum);

}
public int sum100() {
    int sum = 0;
    for (int count = 1; count <= 100; count++)
        sum += count;
    return sum;
}
publicstaticvoidmain(字符串[]args){
SumClass obj=新的SumClass();
int current_sum=obj.sun100();
System.out.println(“100个数字的总和为:“+当前总和”);
}
公共int sum100(){
整数和=0;

对于(int count=1;count)我会在main或method中这样做吗?在main(调用者)“不工作”:您会收到什么错误消息,idf any?您能试试它吗System.out.println(new YourClassName().sum100());或者使您的方法像-public static int sum100()一样是静态的吗好的,这是有效的,现在它是说,回报总额;有一个令人困惑的indentation@AshwinMukhija你能给我们解释一下为什么静态被认为是不好的,尤其是在这种情况下吗?@DragonAge99:我不熟悉这个信息。它是某种自动评分工具吗?@Christophersy Oh boy。如果你在Ja中没有使用面向对象的概念va把一切都变成了静态,为什么还要使用Java呢?静态打破了OO的基本原理,静态使测试更加困难,静态只能在Java中声明常量。对于任何其他用途,如果你使用静态,总有更好的方法。@AshwinMukhija:我强烈反对你的观点。静态方法肯定有一个在Java中放置,在很多地方都可以使用。好的例子包括
集合
数学
类。
public static void main(String[] args) {
    SumClass obj = new SumClass();
    int currrent_sum=obj.sun100();
    System.out.println("Sum of 100 numbers is: " +current_sum);

}
public int sum100() {
    int sum = 0;
    for (int count = 1; count <= 100; count++)
        sum += count;
    return sum;
}