Using Java Using Java - AS Nida
Using Java Using Java - AS Nida
Using Java Using Java - AS Nida
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Object Oriented Programming<br />
<strong>Using</strong> <strong>Java</strong><br />
Enumerated Types<br />
Copyright © 2006 Pramote Kuacharoen – All rights reserved.<br />
Enumerated Types<br />
Pramote Kuacharoen<br />
Allows variables to hold a restricted set of values<br />
Not required that enum constants be capital letters; however,<br />
the Sun code convention states that constants are named in<br />
capital letters<br />
Can be declared as a separate class, or as a class member,<br />
however, they must not be declared within a method<br />
enum enum enum<br />
enum enum<br />
Size Size Size { { SMALL, SMALL, SMALL, SMALL, MEDIUM, MEDIUM, LARGE, LARGE, EXTRA_LARGE};<br />
EXTRA_LARGE};<br />
Size Size<br />
Size Size<br />
s s<br />
s s<br />
= =<br />
= =<br />
Size.MEDIUM<br />
Size.MEDIUM<br />
Size.MEDIUM<br />
2<br />
1
Ex: Declaring Enums<br />
enum enum<br />
enum enum<br />
Size Size { { SMALL, SMALL, SMALL, MEDIUM, MEDIUM, LARGE, LARGE, EXTRA_LARGE}<br />
EXTRA_LARGE}<br />
EXTRA_LARGE}<br />
class class<br />
class class<br />
Shirt Shirt<br />
Shirt Shirt Shirt<br />
{<br />
{<br />
{<br />
{<br />
Size Size<br />
Size Size<br />
size size; size<br />
size size; size<br />
}<br />
}<br />
public public public<br />
public public<br />
class class<br />
class class<br />
ShirtTest ShirtTest {<br />
{<br />
public public<br />
public public public<br />
static static<br />
static static<br />
void void<br />
void void<br />
main(String<br />
main(String[]<br />
main(String<br />
main(String<br />
main(String[]<br />
main(String<br />
[] [] [] args args {<br />
{<br />
Shirt Shirt<br />
Shirt Shirt<br />
shirt shirt = = new new Shirt();<br />
Shirt();<br />
shirt.size shirt.size<br />
shirt.size shirt.size<br />
= = Size.MEDIUM<br />
Size.MEDIUM;<br />
Size.MEDIUM<br />
Size.MEDIUM<br />
Size.MEDIUM;<br />
Size.MEDIUM<br />
}<br />
}<br />
}<br />
}<br />
Class<br />
Class<br />
Member<br />
Member<br />
class class<br />
class class<br />
Shirt Shirt Shirt<br />
Shirt Shirt Shirt<br />
{<br />
{<br />
{<br />
{<br />
enum enum<br />
enum enum<br />
Size Size { { SMALL, SMALL, MEDIUM, MEDIUM, LARGE, LARGE, EXTRA_LARGE}<br />
EXTRA_LARGE}<br />
Size Size<br />
Size Size<br />
size size; size<br />
size size; size<br />
}<br />
}<br />
public public<br />
public public<br />
class class class<br />
class class<br />
ShirtTest ShirtTest<br />
ShirtTest {<br />
{<br />
public public<br />
public public<br />
static static<br />
static static<br />
void void<br />
void void<br />
main(String<br />
main(String[]<br />
main(String<br />
main(String<br />
main(String[]<br />
main(String<br />
[] [] args args args args {<br />
{<br />
Shirt Shirt<br />
Shirt Shirt<br />
shirt shirt shirt = = new new Shirt();<br />
Shirt();<br />
shirt.size shirt.size<br />
shirt.size<br />
shirt.size shirt.size<br />
= = Shirt.Size.MEDIUM<br />
Shirt.Size.MEDIUM;<br />
Shirt.Size.MEDIUM<br />
Shirt.Size.MEDIUM<br />
Shirt.Size.MEDIUM;<br />
Shirt.Size.MEDIUM<br />
}<br />
}<br />
}<br />
}<br />
Copyright © 2006 Pramote Kuacharoen – All rights reserved.<br />
Optional Semicolon<br />
class class<br />
class class<br />
Shirt Shirt<br />
Shirt Shirt<br />
{<br />
{<br />
{<br />
{<br />
enum enum<br />
enum enum<br />
Size Size { { SMALL, SMALL, SMALL, MEDIUM, MEDIUM, LARGE, LARGE, LARGE, EXTRA_LARGE}<br />
EXTRA_LARGE};<br />
EXTRA_LARGE}<br />
EXTRA_LARGE}<br />
EXTRA_LARGE};<br />
EXTRA_LARGE}<br />
Size Size<br />
Size Size<br />
size size; size<br />
size size; size<br />
}<br />
}<br />
public public<br />
public public public<br />
class class<br />
class class<br />
ShirtTest ShirtTest<br />
ShirtTest {<br />
{<br />
public public<br />
public public<br />
static static<br />
static static<br />
void void<br />
void void<br />
main(String<br />
main(String[]<br />
main(String<br />
main(String<br />
main(String[]<br />
main(String<br />
[] [] args args {<br />
{<br />
Shirt Shirt<br />
Shirt Shirt Shirt<br />
shirt shirt shirt = = new new new Shirt();<br />
Shirt();<br />
shirt.size shirt.size<br />
shirt.size<br />
shirt.size shirt.size<br />
= = Shirt.Size.MEDIUM<br />
Shirt.Size.MEDIUM;<br />
Shirt.Size.MEDIUM<br />
Shirt.Size.MEDIUM<br />
Shirt.Size.MEDIUM;<br />
Shirt.Size.MEDIUM<br />
}<br />
}<br />
}<br />
}<br />
Copyright © 2006 Pramote Kuacharoen – All rights reserved.<br />
Separate<br />
Separate<br />
class<br />
class<br />
It is optional to put a semicolon at the end of the<br />
enum declaration<br />
3<br />
4<br />
2
Enum: A Special Kind of Class<br />
Enum can have constructors, methods, and<br />
variables<br />
enum enum<br />
enum enum<br />
Size Size {<br />
{<br />
SMALL(15), SMALL(15),<br />
SMALL(15), SMALL(15),<br />
MEDIUM(18), MEDIUM(18),<br />
MEDIUM(18), MEDIUM(18),<br />
LARGE(20), LARGE(20), LARGE(20),<br />
LARGE(20), LARGE(20),<br />
EXTRA_LARGE(25)<br />
EXTRA_LARGE(25)<br />
EXTRA_LARGE(25)<br />
EXTRA_LARGE(25)<br />
EXTRA_LARGE(25)<br />
private private<br />
private private<br />
int int length; length;<br />
length;<br />
Size(int Size(int<br />
Size(int Size(int<br />
length) length) length) {<br />
{<br />
this.length this.length<br />
this.length this.length<br />
= = length; length;<br />
length;<br />
}<br />
}<br />
public public<br />
public public<br />
int int getLength<br />
getLength() getLength<br />
getLength<br />
getLength() getLength<br />
() () {<br />
{<br />
return return<br />
return return return<br />
length;<br />
length;<br />
length;<br />
length;<br />
}<br />
}<br />
}<br />
}<br />
Copyright © 2006 Pramote Kuacharoen – All rights reserved.<br />
public public<br />
public public<br />
class class<br />
class class<br />
Shirt Shirt<br />
Shirt Shirt<br />
{<br />
{<br />
{<br />
{<br />
private private<br />
private private<br />
Size Size<br />
Size Size<br />
size;<br />
size;<br />
size;<br />
size;<br />
The enum Constructors<br />
public public<br />
public public<br />
static static<br />
static static<br />
void void<br />
void void<br />
main(String<br />
main(String[]<br />
main(String<br />
main(String<br />
main(String[]<br />
main(String<br />
[] [] args args {<br />
{<br />
Shirt Shirt<br />
Shirt Shirt<br />
shirt shirt = = new new Shirt();<br />
Shirt();<br />
shirt.size<br />
shirt.size shirt.size<br />
shirt.size shirt.size<br />
= = = Shirt.Size.MEDIUM<br />
Shirt.Size.MEDIUM;<br />
Shirt.Size.MEDIUM<br />
Shirt.Size.MEDIUM<br />
Shirt.Size.MEDIUM;<br />
Shirt.Size.MEDIUM<br />
System.out.println(shirt.size.getLength<br />
System.out.println(shirt.size.getLength();<br />
System.out.println(shirt.size.getLength<br />
System.out.println(shirt.size.getLength<br />
System.out.println(shirt.size.getLength();<br />
System.out.println(shirt.size.getLength<br />
();<br />
();<br />
}<br />
}<br />
}<br />
}<br />
The enum constructors are invoked automatically,<br />
with the arguments defined after the constant value<br />
The enum constructors can have many arguments<br />
The enum constructors can be overloaded<br />
The enum constructors can be define as anonymous<br />
inner class<br />
Copyright © 2006 Pramote Kuacharoen – All rights reserved.<br />
5<br />
6<br />
3
Ex: Enum with Anonymous Inner Class<br />
enum enum enum<br />
enum enum<br />
Size Size {<br />
{<br />
SMALL(15), SMALL(15),<br />
SMALL(15), SMALL(15),<br />
MEDIUM(18), MEDIUM(18),<br />
MEDIUM(18), MEDIUM(18),<br />
LARGE(20),<br />
LARGE(20),<br />
LARGE(20),<br />
LARGE(20),<br />
EXTRA_LARGE(25) EXTRA_LARGE(25)<br />
EXTRA_LARGE(25) EXTRA_LARGE(25)<br />
{<br />
{<br />
{<br />
{<br />
public public<br />
public public public<br />
String String<br />
String String<br />
getTag getTag() getTag<br />
getTag getTag() getTag<br />
() () {<br />
{<br />
return return return<br />
return return<br />
"Special "Special<br />
"Special "Special<br />
Tag";<br />
Tag";<br />
Tag";<br />
Tag";<br />
}<br />
}<br />
}<br />
}<br />
private private<br />
private private private<br />
int int length;<br />
length; length;<br />
Size(int Size(int<br />
Size(int Size(int<br />
length) length) {<br />
{<br />
this.length this.length<br />
this.length this.length<br />
= = length;<br />
length;<br />
}<br />
}<br />
public public public<br />
public public public<br />
int int getLength<br />
getLength() getLength<br />
getLength<br />
getLength() getLength<br />
() () () {<br />
{<br />
return return return<br />
return return<br />
length;<br />
length;<br />
length;<br />
length;<br />
}<br />
}<br />
public public<br />
public public<br />
String String String<br />
String String<br />
getTag getTag() getTag<br />
getTag getTag() getTag<br />
() () () {<br />
{<br />
return return return<br />
return return<br />
"Standard "Standard<br />
"Standard "Standard<br />
Tag";<br />
Tag";<br />
Tag";<br />
Tag";<br />
}<br />
}<br />
}<br />
}<br />
Copyright © 2006 Pramote Kuacharoen – All rights reserved.<br />
7<br />
4