You are on page 1of 19

Java Programming

Mr. Suradet Petcharanon

Chapter 1 Object Oriented


16 December 2006
Object Oriented Programming (OOP)
การเขยนโปรแกรมเชงวตถ
 OOP การเขยนโปรแกรมทประกอบไปดวยกล!มของObject ซ(งแต!ละ Object
จะถ+กจดกล!มอย+ใ! นร+ ปของClass ซ(งแต!ละ Class
จะมการถ!ายทอดลกษณะ(Inheritance)กนลงมาอย!างเป: นล;าดบ
 แนวคดแบบ Object Model Technology (OMT)
 แนวคดเกยวกบ Abstraction
 Object และ Class
 Message และ Method
 Interface และ Implementation
 Encapsulation และ Information Hiding

Suradet Petcharanon Java Programming 2


Object Oriented Programming (OOP)
การเขยนโปรแกรมเชงวตถ
 แนวคดแบบ Object Model Technology (OMT)
 Reuse
 Inheritance
 Composition
 Polymorphism

Suradet Petcharanon Java Programming 3


แนวคดแบบ Object Model Technology (OMT)

 Abstraction
 หรL อการมองแบบนามธรรม หมายถ(งการมองออปเจ:กตNต!างๆ แลวใส! แนวความคด
(Concept) ลงไปเพLอก;าหนด คณสมบตทส;าคญและจ;าเป: นของออปเจ:กตNนS นๆ โดย
คณสมบตทถ+กก;าหนดข(Sนจากออปเจ:กตNเดยวกนอาจจะแตกต!างกนไดตามความสนใจ
ของผ+มอง
 Object และ Class
 Object คLอตวแทนของบคคล สถานท หรL อสงของทเราสนใจในเหตการณNหน(ง ซ( ง
อาจจบตองไดหรL อไม!ได โดยทออปเจ:กตNจะประกอบไปดวย
 Class คLอกล!มของออปเจ:กตNทมคณลกษณะ (Attribute) และพฤตกรรม (Behavior)
หรL อการกระท;า (Action) โดยทวไปเหมLอนกน
Suradet Petcharanon Java Programming 4
แนวคดแบบ Object Model Technology (OMT)

 Object และ Class


 การแยกแยะออปเจ:กตNนS นจะตองใชลกษณะดงต!อไปนS
 Identity เป: นเอกลกษณNทใช!แยกความแตกต!างระหว!างออปเจ:กตNของคลาสหน(งกบอกคลาสหน(ง
ซ(งในภาษาจาวา Identity จะหมายถ(ง Attribute หรL อตวแปร (Variable)
 State หมายถ(งสถานะของออปเจ:กตN ณ เวลาใดๆ ซ(งสามารถเปลยนแปลงไดเมLอมการกระตน
จากออปเจ:กตNอLน โดยการส! ง Message ซ(งในภาษาจาวา State จะหมายถ(งค!าของ Attribute
(Value of Attribute)
 Behavior คLอ พฤตกรรมทออปเจ:กตNกระท;าและตอบสนองทกครS ง โดยการกระตนของออปเจ:กตN
อLนดวยการส! ง Message ซ(งในภาษาจาวา Behavior จะหมายถ(ง Method

Suradet Petcharanon Java Programming 5


แนวคดแบบ Object Model Technology (OMT)

 ตวอย!างของ Class และ Object String getName(){


//Books.java return names;
class Books{ }// End Method getName()
private String names; Void setAuthor(String strAuthor){
private String author; author = strAuthor;
private String years; }//End Method setAuthor()
Books(String strName){ String getAuthor(){
names = strName; return author;
} // End Constructor }// End Method getAuthor()

Suradet Petcharanon Java Programming 6


แนวคดแบบ Object Model Technology (OMT)

Void setYear(String strYear){ Books ชLอClass


-names :String
years = strYear; Attribute /
-author :String
ตวแปร
} // End Method setYear() -years :String
String getYear(){ Books(strName : String)

return years; getName() :String


setAuthor(strAuthor :String :Void
} // End Method getYear() Method
getAuthor() :String
} //End Class Books setYear(strYear : String) :Void
getYear() :String

Suradet Petcharanon Java Programming 7


แนวคดแบบ Object Model Technology (OMT)

 Message และ Method


 ในทาง Object Orientation นS นการทออปเจ:กตNจะเกดกจกรรมใดๆ ไดนS นจะตองม
interaction กบอกออปเจ:กตNหน(ง จะกระท;าโดยการส! ง Message จากออปเจ:กตNหน(งท
เป: นฝ! ายส! ง ไปยงออปเจ:กตNหน( งทเป: นฝ! ายรบ ซ( งเรยกวธการส! ง Message แบบนS วา! “
Method Invocation”
 ซ( งเมธอดสามารถเปรยบไดกบ Function และ Procedure ในการเขยนโปรแกรมแบบ
เดม

Suradet Petcharanon Java Programming 8


แนวคดแบบ Object Model Technology (OMT)

 ตวอย!าง Message และ Method


//TestMethod.java
class TestMethod{
public static void main(String args[]){
Books javaProgram = new Books(Java Programming);
javaProgram.setAuthor(“Suradet Petcharanon”);
javaProgram.setYear(“2549”);
System.out.println(“หนงสL อเรL อง :” + javaProgram.getName());
System.out.println(“แต!งโดย :” +javaProgram.getAuthor());
System.out.println(“แต!งเมLอป :”+ javaProgram.getYear());
} //End of method main()
} //End of Class TestMethod

Suradet Petcharanon Java Programming 9


แนวคดแบบ Object Model Technology (OMT)

 Interface และ Implementation


 Interface หมายถ(ง ส!วนทใช!แสดงเฉพาะโครงสรางภายนอกของคลาส ทสามารถ
มองเห:นไดจากออปเจ:กตNของคลาสอLนๆ กล!าวคLอ คลาสทเป: น Interface นS นจะบอก
แค!วา! คลาสนS ทา; อะไรแต!จะไม!บอกว!าท;าอย!างไร
 Implementation คLอ คลาสทจะน;าเอาคลาสทเป: น Interface ไปใชโดยจะบอกราย
ละเอยดว!าคลาสนS ทา; อะไรและท;าอย!างไร

Suradet Petcharanon Java Programming 10


แนวคดแบบ Object Model Technology (OMT)

 ตวอย!าง Interface และ Implementation


// TestInterface.java
class TestInterface{
public static void main(String args[]){
Circle newCircle = new CircleA(5.3);
System.out.pirntln(“พLSนทวงกลม”);
newCircle.showArea();
} //End of Main()
} //End of class TestInface

Suradet Petcharanon Java Programming 11


แนวคดแบบ Object Model Technology (OMT)

 ตวอย!าง Interface และ Implementation


// Interface Circle
//Circle.java
interface Circle{
public finall double PI = 3.14159;
public double findArea(double r);
public void showArea();
}

Suradet Petcharanon Java Programming 12


แนวคดแบบ Object Model Technology (OMT)

 ตวอย!าง Interface และ Implementation


// class CircleA
//CircleA.java
class CircleA implement Circle{
private double r;
CircleA(double r){
this.r = r;
} //End of constructor
public double findArea(double r){
return PI*r*r;
} //End of findArea()
public void showArea(){
System.out.println(“รศม = ”+r);
System.out.println(“พLSนทวงกลมคLอ : ”+findArea(r));
} //End of showArea()
} // End of Calss

Suradet Petcharanon Java Programming 13


แนวคดแบบ Object Model Technology (OMT)

 Encapsulation และ Information Hiding


 Encapsulation คLอ การห!อหม Attribute และ Method ของออปเจ:กตN เขาไวดวยกน
เพLอปกปดการมองเห:นและการเขาถ(งจากออปเจ:กตNอLน
 Information Hiding หมายถ(ง การซ!อนขอม+ลของออปเจ:กตNทS งส! วนทเป: น Attribute
และ Method

Suradet Petcharanon Java Programming 14


แนวคดแบบ Object Model Technology (OMT)

 Reuse
 Inheritance คLอการทคลาสหน(งคลาส หรL อหลายๆ
คลาสถ+กสรางข(Sนมาใหม!(subclass) ภายใตคลาสใดๆ (superclass) โดยจะสL บทอดคณ
ลกษณะ(Attribute) และ พฤตกรรม(Behavior) หรL อการกระท;า(Method) มาดวย ดง
นS น Subclass จะม Attribute และ Method เหมLอนกบ Superclass และยงสามารถเพม
ไดอก
 Composition คLอการทคลาสหน(งสามารถเรยกใชคลาสอLนทสรางไวแลวมาใชใหม!ได
โดยคลาสทถ+กสรางไวแลวเรยกว!า Composition แต!เมLอมนถ+กเรยกโดยคลาสอLน จะ
เรยกคลาสนS นว!า Component

Suradet Petcharanon Java Programming 15


แนวคดแบบ Object Model Technology (OMT)

 Polymorphism
 หมายถ(ง การทออปเจ:กตNมากกว!า 1 ออปเจ:กตNสามารถตอบสนองต!อ Message เดยว
กนดวยการแสดงพฤตกรรมทแตกต!างกน เช!น สตวN ทกตวมพฤตกรรมการเคลLอนไหว
แต!มวธการทแตกต!างกน อาท ง+ เลLSอย ปลาว!ายน;Sา เป: นตน

Suradet Petcharanon Java Programming 16


แนวคดแบบ Object Model Technology (OMT)

 ตวอย!าง Polymorphism
// TestPolymorphiam.java
class TestPolymorphism{
public static void main(String args[]){
Animal kapongA = new Fish();
Animal nokkaewA = new Bird();
System.out.println(“เรยก polymorphism ดวยปลา”);
runPolymorphism(kapongA);
System.out.println(“เรยก polymorphism ดวยนก”);
runPolymorphism(nokkaewA);
}
static void runPolymorphism(Animal Obj){
Obj.move()
}
}

Suradet Petcharanon Java Programming 17


แนวคดแบบ Object Model Technology (OMT)

 Polymorphism
//Animal.java
interface Animal{
public void move();
} // End of Class Animal
//Fish()
class Fish implement Animal{
public void move(){
System.out.println(“ปลาว!ายน;Sา”);
} //end of method move
} //end of class Fish

Suradet Petcharanon Java Programming 18


แนวคดแบบ Object Model Technology (OMT)

 ตวอย!าง Polymorphism
class Bird implement Animal{
public void move(){
System.out.println(“นกบน”);
} //end of method move
} //end of class Bird
class Snake implement Animal{
public void move(){
System.out.println(“ง+เลLSอย”);
} //end of method move
} //end of class Snake

Suradet Petcharanon Java Programming 19

You might also like