2016-02-26 82 views
0

接收到大多数结果为Define the constructor, homeboy的此错误。深入了解我所犯的错误,因为我认为它是在我的课堂上定义的。我对Java很新,如果它很明显,不要撕碎我。Java构造函数错误:已定义构造函数,未找到

Error: constructor KServer in class KServer cannot be applied to given types; 
       KServer server = new KServer(port); 
    required: no arguments 
    found: int 
    reason: actual and formal argument lists differ in length 
1 error 

KServer.java

public class KServer { 
    private int port; 

    //isn't this the constructor defined? 
    public void KServer(int PORT) { 
     port = PORT; 
    } 
    public void Run() {...} 
} 

KServ.java

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

    if (args.length != 1) { 
     System.err.println("Usage: java KServ <port number>"); 
     System.exit(1); 
    } 

    int port = Integer.parseInt(args[0]); 
    KServer server = new KServer(port); 
    server.Run(); 

    } 

} 
+3

从您的“构造函数” – Reimeus

+0

中删除'void'关键字,它必须是noob错误。拉屎。它在技术上不是无效的吗? – Chemistpp

+1

一个构造函数没有返回类型 - 所以我想你的“构造函数”被解释为方法 – Rhayene

回答

2

没有返回类型的构造函数,否则你定义一个方法。

public KServer(int PORT) { 
    port = PORT; 
} 
+1

你赢了几个秒。该死的 ! Upvote为您的胜利。 –

3

从构造函数定义中删除字无效:

public KServer(int PORT) { 
    port = PORT; 
} 

有关如何编写构造函数,你可以看看here更多细节。

+1

JP赢得了比赛,我会接受他的回答,但你仍然会得到一个冷静的upvote;) – Chemistpp

+0

@Chemistpp哈哈。是啊。 –