Joseph Posted March 15, 2014 Share Posted March 15, 2014 (edited) Credits to @Divinity for letting me use his enum as an example Example: (I will be using this enum through out the whole tutorial, the variable will be shorten down to make space). public enum ThievingNPC { MAN("Man", 1), FARMER("Farmer", 10), FEMALE("HAM Female", 15), MALE("HAM Male", 20), HAM_GUARD("HAM Guard", 20), WARRIOR("Al-karid Warrior", 25), ROGUE("Rogue", 32), MASTER_FARMER("Master Farmer", 38), GUARD("Guard", 40), PALADIN("Paladin", 70), GNOME("Gnome", 75), HERO("Hero", 80), ELVE("Elve", 90); private String name; private int lvl; ThievingNPC(String name, int lvl){ this.name = name; this.lvl = lvl; } public String getName(){ return name; } public int getLevel(){ return lvl; } } What’s an Enum? An Enum is a data type, just like an interface and class. Enums and Classes consist of some similar characteristics, for example: constructor and some general methods. But the most unique things about Enums would be that they allow you to pre-define constants, which then allow you to access them at any time. What’s a Data Type? So a Data Types would be consider something like: Int, String, Boolean etc.. So what I’m trying to say, is that your allowed to create methods out of an Enum. You’re allowed to use them, like you would in an argument, constructor, and even a method. Example: public void something(Enum name) { } public EnumName somethingElse() { return enumVariable } Parts of an Enum: (in order) Example: //variables //private fields //Enum constructor //setters & getters methods //your own custom methods How to create an Enum: When you want to create an Enum, you will start off with a modifier (optional). Followed by the key word “enum”, then after follows the name of the Enum. Finally end it with brackets “{ }” Example: public enum ThievingNPC { } Enum Conventions: Naming the Enum: You must capitalize the first letter in every word (no spaces ). Example: //The only reason why my enum is called ThievingNPC, and npc is in all caps is because it is an acronym ThievingEnum YouGetItNow Naming Variables: You must capitalize all letters, and you must replace all spaces with underscores (“_”). Example: ROGUE MASTER_FARMER Adding in variable (use Conventions): This is where the fun begins. Now you are allow to add in as many variables as you want. Just know that after every variable you end it with a coma “,”. But at your last variable it must end in a semicolon “;”. Example: MAN(), HAM_GUARD(); More important info about variables: Once you create your variables, if you decide not to add any predefined constants (hence the infomation in between the parenthesis after the variable name), then you dont need to addin the parenthesis. The parenthesis are meant to help organize what information goes with which variable. Example: (this is part of my Magic Manager snippet) "If you dont understand then dont worry this isnt that important". public static enum Rune { STEAM, MIST, MUD, LAVA, SMOKE, DUST, EARTH, FIRE, WATER, AIR, ASTRAL, BLOOD, BODY, CHAOS, COSMIC, DEATH, LAW, MIND, NATURE, SOUL; @Override public String toString() { return super.name().toLowerCase() +" rune"; } } How to create Constructor: Optional adding a modifier. With Enum you’re not allowed to use the “public” keyword modifier. Since Enum variables are static. Use the Enum name followed by Arguments. Your constructor Argument must match the arguments within the variables. and end with brackets “{ }”. Example: MAN("Man", 1), FARMER("Farmer", 10); ThievingNPC(String name, int lvl) { } What to do within the Constructor: You must first create some private fields. Then make your Constructor argument equal those private fields. Example of the key word this: link Example: public enum ThievingNPC { MAN("Man", 1), FARMER("Farmer", 10); private String name; private int lvl; ThievingNPC(String name, int lvl){ this.name = name; this.lvl = lvl; } } Creating Methods: Since your fields are private you need some sort of way to be able to access the values. So this is where you would create your getter methods. Also any other custom method you would need. Example: public enum ThievingNPC{ MAN("Man", 1), FARMER("Farmer", 10); private String name; private int lvl; ThievingNPC(String name, int lvl){ this.name = name; this.lvl = lvl; } //from here and below are where you put your methods at public String getName(){ return name; } public int getLevel(){ return lvl; } } Some Default Enum Methods & Returns: These are some of the default methods that Enum's come with. There's many more, but these are the important ones, and the ones i like to use . *Format: (method name, return type) //comment if any. values(), Returns: an array of your enum variables. //Static valueOf(String s), Returns: an enum variables. //Static compareTo(E o), Returns: the distance between the two enum variable, using there ordinal(). ordinal(), Returns: the index in of the enum variable. name(), Returns: the exact enum variable name. toString(), Returns: the exact enum variable name. // if toString() isnt overrided. toString(), Returns: what ever you told the method to return. // if toString() is overrided. How to access the Enum and there variables (in order): Start with, the Enum name. followed by, the variable name. then, end with the method. Which returns the method. Example: ThievingNPC.MASTER_FARMER.getLevel(); Returns: 38 End of part one, beginner guide. Link to part two: link not yet ready Edited July 19, 2014 by josedpay 8 Link to comment Share on other sites More sharing options...
Swift Posted March 15, 2014 Share Posted March 15, 2014 Nice guideewrfdsadfsa Nice guideewrfdsadfsa Link to comment Share on other sites More sharing options...
GoldenGates Posted March 15, 2014 Share Posted March 15, 2014 Nice tutorial, Enums were a bit tricky for me to grasp when I was learning a few years ago. I don't blame anyone, they are a bit confusing at first. You might want to explain why you would use Enums, for example the Skill Enum in the API, use that as an example. 2 Link to comment Share on other sites More sharing options...
Joseph Posted March 15, 2014 Author Share Posted March 15, 2014 Nice tutorial, Enums were a bit tricky for me to grasp when I was learning a few years ago. I don't blame anyone, they are a bit confusing at first. You might want to explain why you would use Enums, for example the Skill Enum in the API, use that as an example. that will be coming up next, after i finish teaching them how to create them . And also ill be teaching them like little handy tricks you could do with enums Link to comment Share on other sites More sharing options...
Swizzbeat Posted March 15, 2014 Share Posted March 15, 2014 I would set private variables, because right now you cannot do anything with the enum as it would be impossible to implement getters and setters. Link to comment Share on other sites More sharing options...
Joseph Posted March 15, 2014 Author Share Posted March 15, 2014 I would set private variables, because right now you cannot do anything with the enum as it would be impossible to implement getters and setters. i know the topic is unfinished Link to comment Share on other sites More sharing options...
Dog_ Posted March 16, 2014 Share Posted March 16, 2014 Good work :-) Here're a few more things you may want to talk about: All enums implicitly extend java.lang.Enum The values() method Link to comment Share on other sites More sharing options...
Nezz Posted March 16, 2014 Share Posted March 16, 2014 You should work on your grammar (if your first language isn't English, then it's understandable), as it can sometimes make your point a little harder to understand. I like the tutorial though, Enums are a pretty hard thing to get a hang of, and once you do you realize how nifty they are and how useful they can be. Thanks, m8. Link to comment Share on other sites More sharing options...
Joseph Posted March 16, 2014 Author Share Posted March 16, 2014 (edited) my first language is Spanish. and once im done with my topic i re read and fix my grammar. I appreciate criticism Edited March 16, 2014 by josedpay 1 Link to comment Share on other sites More sharing options...
Nezz Posted March 16, 2014 Share Posted March 16, 2014 my first language is Spanish. and once im done with my topic i re read and fix my grammar. I appreciate criticism Okay, if you need help with the grammar bit, I'd be willing to help out as much as I can. Thanks again for the tutorial. Link to comment Share on other sites More sharing options...
Celeos Posted March 16, 2014 Share Posted March 16, 2014 Nice tutorial. I love enums. I can see why the tutorial is unfinished though. 1 Link to comment Share on other sites More sharing options...
Joseph Posted March 16, 2014 Author Share Posted March 16, 2014 (edited) Okay, if you need help with the grammar bit, I'd be willing to help out as much as I can. Thanks again for the tutorial. will do, ill let you know when im done, ill let you point out my grammar problem. and ill fix thanks Edited March 16, 2014 by josedpay 1 Link to comment Share on other sites More sharing options...
lare96 Posted March 16, 2014 Share Posted March 16, 2014 really good explanation, will definitely help out the java newbies Link to comment Share on other sites More sharing options...
Kenneh Posted March 22, 2014 Share Posted March 22, 2014 You use enums correctly here, but wrong in your own snippet xD Link to comment Share on other sites More sharing options...
Joseph Posted March 22, 2014 Author Share Posted March 22, 2014 (edited) Since the bot is down im going to update this. Edited March 26, 2014 by josedpay Link to comment Share on other sites More sharing options...