Re: ENUMs
Jeff Higgins wrote:
John wrote:
Jeff Higgins wrote:
class TestPromotion{ // this is only a test.
public static void main(String args){
Correction: public static void main(String[] args){
System.out.println(Rank.PFC.promote());
}
public static enum Rank {
PRIVATE,
PFC,
CORPORAL,
SERGENT,
CAPTAIN,
MAJOR,
LT_COLONEL,
COLONEL,
GENERAL,
ADMIRAL;
Rank promote(){
Rank ret = null;
Rank[] r = Rank.values();
if(!this.equals(r[r.length-1])){
for(int i=0; i<r.length; i++)
if(this.equals(r[i])){
ret = r[i+1];
return ret;
}
}
return ret;
}
};
}
Fantastic. Question...why does the promote method have to be in the enum?
I would rather have the promote method in the Soldier class. Is there a
way to do this?
What Lew said.
public Rank promote(Rank rank) {
Rank ret = null;
Rank[] r = Rank.values();
if(!rank.equals(r[r.length-1])){
for(int i=0; i<r.length; i++)
if(rank.equals(r[i])){
ret = r[i+1];
return ret;
}
}
return ret;
}
I should have withdrawn my question. After I got it working, I thought
about the process and it made perfectly good sense to keep the promote
inside the enum. And yes, I spotted your typo but fixed it no problem.
I've actually expanded my enum
http://www.easternct.edu/personal/faculty/pocock/ranks.htm
I took a look at this site
http://www.militarydial.com/army-force-structure.htm
and thought I would try to create an "Army". So I've set up classes
which are defined based on the criteria in the above site. For example,
here is a Squad
package militaryStructure;
import java.util.ArrayList;
public class Squad {
Soldier CommandingOfficer;
ArrayList<Soldier> roster = new ArrayList<Soldier>();
public Squad(Soldier commandingOfficer, ArrayList<Soldier> squad) {
CommandingOfficer = commandingOfficer;
roster = squad;
}
}
And to create a Squad, I simply, create 10 soldiers, make one of them
the CO and create a "roster" out of the rest. Then I call the constructor
Squad Alpha = new Squad(ss, roster);
where ss is the Staff_Sergeant I created and roster is the ArrayList of
soldiers.
I'm going to try to create a Platoon now. Wish me luck!!