2017-05-25 57 views
-4

我是JAVA新手。我想創建一個類並在其中寫入一個函數。然後我想在類main中使用該功能。Java:在主類中添加類函數

import java.util.Scanner; 

public class multi_fun { 
    public static void main(String[] args) { 

     Scanner scan = new Scanner(System.in); 
     int a, b, c; 

     System.out.println("Enter 1st number: "); 
     a = scan.nextInt(); 
     System.out.println("Enter 2nd number: "); 
     b = scan.nextInt(); 
     Addition obj = new Addition(); 
     c = obj.add(a,b); 
     System.out.println("The sum is "+c); 
     scan.close(); 
    } 
} 
class Addition{ 
    public int add (int a, int b) 
    { 
     return(a+b); 
    } 
} 
+0

我收到一條錯誤消息,類型Addition已經定義。 –

+0

你正在做一個好的想法,你的代碼工作正常,那麼你的問題是什麼? –

+0

添加您的錯誤消息,也有一些說明 – Blasanka

回答

1

我認爲,根據錯誤信息您在評論中提到的問題:

Exception in thread "main" java.lang.NoSuchMethodError: Addition.add(II)I at multi_fun.main(multi_fun.java:15)

看來,你是把類Addition聲明multi_fun.java相同的源文件中程序。

你應該創建一個名爲Addition.java一個Java類文件,並把你的類的代碼吧:

class Addition{ 
    public int add (int a, int b) 
    { 
     return(a+b); 
    } 
} 

,它應該沒有任何錯誤後做事。

更新

您可以檢查此Answer其解釋'java.lang.NoSuchMethodError: main Exception in thread 「main」'原因這將是你的問題的一個有用的解決方案。

+0

不需要在同一個類中創建Addition.java文件就可以有多個類。但要確保所有課程都不是「公共」的。並且只運行主類。 – Blasanka

+1

是的,他可以這樣做。但最好將類文件從主java程序文件中分離出來。 他應該清楚,有組織地編寫java程序的最佳實踐。 此外,我還更新了我的答案,並把鏈接到這個錯誤的原因和建議的解決方案。 – Oghli

1

確保兩個java文件都在同一個文件夾中。

MultiFun.java

import java.util.Scanner; 

public class MultiFun { 

    public static void main(String[] args) { 
     Addition obj = new Addition(); 

     Scanner scan = new Scanner(System.in); 
     int a, b, c; 

     System.out.println("Enter 1st number: "); 
     a = scan.nextInt(); 
     System.out.println("Enter 2nd number: "); 
     b = scan.nextInt(); 

     c = obj.add(a, b); 
     System.out.println("The sum is " + c); 
     scan.close(); 

    } 

} 

Addition.java

class Addition { 
    public int add(int a, int b) { 
     return (a + b); 
    } 
} 

運行以下命令

javac MultiFun.java 
java MultiFun 
+0

他在同一個文件中的兩個類。 – Blasanka

+0

不需要使用一個java文件創建兩個java文件,這可以完成。 – Blasanka

+0

是的..我們可以用兩種方法做到這一點。 –

0

如果您正在運行使用終端命令提示符程序( cmd) mak確定運行主要方法(從Addition類創建對象)的類。並且不會在類別中創建主要方法,也不會將類別public添加到Addition類別中。

最後一件事:編譯和運行只有主類(multi_fun)。這是,

javac multi_fun.java 
java multi_fun 
0
import java.util.Scanner; 

public class multi_fun { 

    public static void main(String[] args) { 

     Scanner scan = new Scanner(System.in); 
     int a, b, c; 

     System.out.println("Enter 1st number: "); 
     a = scan.nextInt(); 
     System.out.println("Enter 2nd number: "); 
     b = scan.nextInt(); 
     add(a,b); 
     System.out.println("The sum is "+c); 
     scan.close(); 

    } 

} 


public static int add (int a, int b) 
{ 
    return(a+b); 
} 
0

此錯誤的原因是在名爲Addition的同一文件夾中已有其他文件。所以當我編寫一個具有相同名稱的類並嘗試創建一個對象時,它給出了錯誤消息,因爲參數不同。

謝謝大家的幫助。