Java Programming 001

  • Uploaded by: Suradet Petcharanon
  • 0
  • 0
  • October 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Java Programming 001 as PDF for free.

More details

  • Words: 857
  • Pages: 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 //Books.java class Books{ private String names; private String author; private String years; Books(String strName){ names = strName; } // End Constructor 

Suradet Petcharanon

String getName(){ return names; }// End Method getName() Void setAuthor(String strAuthor){ author = strAuthor; }//End Method setAuthor() String getAuthor(){ return author; }// End Method getAuthor() Java Programming

6

แนวคดแบบ Object Model Technology (OMT) Void setYear(String strYear){ years = strYear; } // End Method setYear() String getYear(){ return years; } // End Method getYear() } //End Class Books

Suradet Petcharanon

ชLอClass

Books -names

:String

-author

:String

-years

:String

Attribute / ตวแปร

Books(strName : String) getName()

:String

setAuthor(strAuthor :String

:Void

getAuthor()

:String

setYear(strYear : String)

:Void

getYear()

:String

Java Programming

Method

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

Related Documents


More Documents from "Aphroditety Z"

Java Programming 003
October 2019 7
Java Programming 002
October 2019 30
Java Programming 001
October 2019 17
Java Programming 004
October 2019 12