I’m just learning about interfaces and their significance in java, is it necessary to create a interface for an inner class such as the program i have created below? The purpose of this class is just to be a vague archetype of the government and how it operates in its simplest form. I have created several methods adding laws, senators, and congress members. Does this code work for what i am trying to accomplish?
public class usaGov
{
private int sizeOfSenate = 105;
private int sizeOfCongress = 308;
private int amtOfLaws = 0;
private int law = 0;
void addSenateMember(int numberOfSenators)
{
sizeOfSenate = sizeOfSenate + numberOfSenators;
}
void addCongressMember(int numberOfCongressMembers)
{
sizeOfCongress = sizeOfCongress + numberOfCongressMembers;
}
void removeSenateMember(int numberOfSenators)
{
sizeOfSenate = sizeOfSenate - numberOfSenators;
}
void removeCongressMember (int numberOfCongressMembers)
{
sizeOfCongress = sizeOfCongress - numberOfCongressMembers;
}
void passLaw()
{
if (law == 3)
{
amtOfLaws++;
}
}
private class Senate
{
void senateYes()
{
int yes = 1;
law = law + yes;
}
void senateNo()
{
int no = -1;
law = law + no;
}
}
private class Congress
{
void congressYes()
{
int yes = 1;
law = law + yes;
}
void congressNo()
{
int no = -1;
law = law + no;
}
}
private class President
{
void presidentYes()
{
int yes = 1;
law = law + yes;
}
void presidentNo()
{
int no = -1;
law = law + no;
}
}
}
Here is my interface:
public interface americanGov
{
void addSenateMember(int numberOfSenators);
void addCongressMember(int numberOfCongressMembers);
void removeSenateMember(int numberOfSenators);
void removeCongressMember (int numberOfCongressMembers);
}
In your case, all the law voting share the same code. You can significantly shorten and simplyfy the code by using only one class for all voting: