【问题标题】:How to combine two classes in java如何在java中组合两个类
【发布时间】:2021-09-12 01:16:16
【问题描述】:

现在我将这两个文件放在单独的 java 文件中,但我似乎无法弄清楚如何将它们组合在一起。当我结合它们并运行它时,通常只有一个类会真正起作用,而另一个则什么都不做。我尝试摆脱一个类并将它们组合成一个大类,但随后出现错误错误:方法 main(String[]) 已在类 lapTimes public static void main (String[] args) 中定义

class GFG
{

    static void ConvertSectoDay(int n)
    {

        n %= 3600;
        int minutes = n / 60 ;

        n %= 60;
        int seconds = n;

        System.out.println( minutes + " "
                           + "minutes " + seconds + " "
                           + "seconds ");
    }

    public static void main (String[] args)
    {
        
        int n = 200;
        ConvertSectoDay(n);

    }
}

public class lapTimes {
    
  public void lap1(int lap) {
    System.out.println("How many seconds for lap one: " + lap);
  }
  public void lap2(int lap) {
    System.out.println("How many seconds for lap two: " + lap);
  }
  public void lap3(int lap) {
    System.out.println("How many seconds for lap three: " + lap);
  }
  public void lap4(int lap) {
    System.out.println("How many seconds for lap four: " + lap);
  }
   
  public static void main(String[] args) {
    lapTimes run = new lapTimes();   
    run.lap1(34);
    run.lap2(54);
    run.lap3(43);
    run.lap4(61);              
  }
}

【问题讨论】:

  • Java 程序有一个 main 入口点。就是这样……嗯,大多数编程语言曾经编写过的工作。如果你想让某事发生,则需要从main 直接或间接调用它。
  • 问题比这更根本。 Java 类不能有两个或多个具有相同名称和参数类型的方法。不是main。没有任何其他名称。

标签: java class


【解决方案1】:

如果您将GFGlapTimes 类中的所有方法都放在一个类中,那么您显然有两个名为main 的方法,其参数为String[] args。这不是有效的 Java。

您不能在同一个类中拥有两个 static 方法(或两个实例方法),它们的参数类型相同且相同。

为什么?因为如果你这样做了,那么当调用 main 时,Java 将不知道 使用哪个方法 ...

因此,如果您希望您的 combined 类执行由现有 main 方法完成的stuff,那么显而易见的解决方案是组合 @ 987654328@方法合二为一;例如

public static void main(String[] args) {
    int n = 200;
    ConvertSectoDay(n);

    NewClass run = new NewClass();   
    run.lap1(34);
    run.lap2(54);
    run.lap3(43);
    run.lap4(61);              
}

但这在概念上看起来是错误的。您现在有一个代表 both 4 圈比赛的类......并且......无论 GFG 应该代表什么。

  1. 你应该使用表明类目的的类名。 (我知道GFG 是什么意思!)

    只需几秒钟即可键入描述性名称。选择一个合适的名称可能需要更长的时间......但是如果您使用不透明的名称,其他人将需要更多的时间来理解您的代码。您应该编写代码供其他人阅读。 (其他人包括你自己,在 5 年后,你完全忘记了 GFG 类应该做什么。)

  2. 您不应该将不相关的抽象和函数组合到一个类中。它使您的代码混乱。

  3. 你应该遵循Java风格的标识符规则:

    • 类名不应以小写字母开头。
    • 方法名称不应以大写字母开头。

【讨论】:

    猜你喜欢
    • 2013-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-02
    • 2016-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多