Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

java - invalid method declaration; return type required [duplicate]

Tags:

java

oop

On a Java OOP project I got three errors on my constructor:

.\Voter.java:14: error: invalid method declaration; return type required

.\Candidates.java:7: error: invalid method declaration; return type required

.\Candidates.java:14: error: invalid method declaration; return type required

codes for constructor:

public class Voter{
    private String name;
    private int votNum;
    private int precint;

    public Voter(String name, int votNum, int precint)
    {
        this.name = name;
        this.votNum = votNum;
        this.precint = precint;
    }

    public setDetails(String name, int votNum, int precint)
    {
        this.name = name;
        this.votNum = votNum;
        this.precint = precint;
    }...}



public class Candidates
{
    public String candName;
    private int position;
    private int totalVotes;

    public Candidate (String candName, int position, int totalVotes)
    {
        this.candName = candName;
        this.position = position;
        this.totalVotes = totalVotes;
    }

    public setDetails (String candName, int position, int totalVotes)
    {
        this.candName = candName;
        this.position = position;
        this.totalVotes = totalVotes;
    }...}

i declared my constructors like this:

public class MainClass{
    public static void main(String[] args){
        System.out.println("Previous voter's info: ");
        Voter vot1 = new Voter("voter name", 131, 1);
        System.out.println("The Candidates: ");
        Candidates cand1 = new Candidates("candidate name", 1, 93);
    }
}

Anything I missed?

like image 612
Ella Avatar asked Mar 29 '13 06:03

Ella


1 Answers

In your method setDetails you haven't specified anything for the return type, if it is not returning anything then specify void

For Voter class

public void setDetails(String name, int votNum, int precint)

for Candidates class

public void setDetails (String candName, int position, int totalVotes)

One other thing, (Thanks to Frank Pavageau) your class name is Candidates and you have defined the constructor with Candidate without s, that is why it is being considered as a normal method, and thus should have a return type. You your rename your constructor as Candidates, or rename your class as Candidate which is better.

like image 200
Habib Avatar answered Oct 12 '22 23:10

Habib