การเขียนโปรแกรมเชิงวัตถุ (object ... ·...

249
การเขียนโปรแกรมเชิงวัตถุ (Object Oriented Programming) เนื้อหา บทที2 แนะนาภาษาจาวา introduction to java .ดร. นัฐพงศ์ ส่งเนียม www.siam2dev.net Lec02_introduction_to_java_lastupdated_24_11_2562

Upload: others

Post on 31-Dec-2019

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

การเขียนโปรแกรมเชิงวัตถุ(Object Oriented Programming)

เนื้อหา• บทที่ 2 แนะน าภาษาจาวา introduction to java

อ.ดร. นัฐพงศ์ ส่งเนียมwww.siam2dev.net

Lec02_introduction_to_java_lastupdated_24_11_2562

Page 2: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

บทที่ 2 แนะน าภาษาจาวาintroduction to java

จาวาแพลตฟอร์ม, การติดตั้งจาวา,

วิธีการคอมไพล์, วิธีการรัน,

จาวาไลบรารี, คลาสพาธ,

โครงสร้างโปรแกรมจาวา, ข้อผิดพลาด

Page 3: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

รู้จักกับภาษา Java

• Java เกิดขึ้นได้อย่างไร

ภาษา Java นั้นได้รับการพัฒนามาจากบริษัท Sun Microsystems ซึ่งเป็นบริษัทคอมพิวเตอร์ชั้นน าของโลก โดยถือก าเนิดภายใต้โครงการ Green Project ในปี 1996 ซึ่งมีหัวหน้าทีมพัฒนาที่ชื่อว่า James Gosling ซึ่งโปรแกรมเมอร์ Java ทั่วโลกยกย่องว่าเป็น บิดาของ Java

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Sun Microsoft System.

Page 4: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 5: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

รู้จักกับภาษา Java (ต่อ)

• เหตุใดจึงนิยมเขียนโปรแกรมด้วยภาษา Java– ภาษา Java นั้นมีปรัชญาการสร้างมาจากการที่ต้องการท าให้เรา

เขียนโปรแกรมเพียงครั้งเดียว แต่สามารถน าไปใช้งานได้ในอุปกรณ์ชนิดต่างๆ ไม่จ ากัดว่าต้องเป็นเพียงแค่คอมพิวเตอร์อย่างเดียว

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

JVM

Page 6: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 7: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 8: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

จาวาแพลตฟอร์ม

• J2SE – Java Standard Edition

– แพร่หลาย ติดตั้งในเครื่องคอมพิวเตอร์ทั่วไป

• J2EE – Java Enterprise Edition

– ต้องใช้ J2SE ด้วย

– มีไลบรารีเพ่ิมขึ้น ซึ่งหมายถึงฟังก์ชันเพิ่มขึ้น

– มีมาตรฐานมารองรับเพิ่มขึ้น

• J2ME – Java Micro Edition

– อุปกรณ์ขนาดเล็ก หรือมีทรัพยากรจ ากัด

– ไม่ต้องใช้ J2SE

– มีไลบรารีน้อยกว่า

– มีข้อจ ากัด และความแตกต่างระหว่างผู้ผลิตค่อนข้างสูง

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

ฟังกช์นั คอื

ความสามารถใน

การท างานตาม

ค าสัง่

ฟังกช์นั ที ่ท างาน

เพือ่วตัถปุระสงค ์

เดยีวกนั

รวมตวักนัเป็น

“ไลบราร”ีANDROID

Page 9: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

แพล็ตฟอร์มของ Java

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 10: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

สาระส าคัญ

ส าหรับส่วนนี้เราได้เรียนรู้เกี่ยวกับภาษา Java ซึ่งเป็นภาษาเขียนโปรแกรมที่ได้รับการพัฒนาภายใต้แนวคิด Write Once Run Anywhere ท าให้เราเขียนโปรแกรมเพียงครั้งเดียว แต่สามารถน าไปรัน หรือใช้งานบนคอมพิวเตอร์ (หรืออุปกรณ์อิเล็กทรอนิกส์) แบบต่างๆ ได้อย่างสะดวก โดย Java ได้รับการพัฒนาให้มีความสามารถหลายหลาย รองรับการท างานในรูปแบบต่างๆ และปัจจุบันก็มีโปรแกรมเมอร์มากมายทั่วโลกศึกษา และติดตามอย่างใกล้ชิด

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 11: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

เตรียมตัวก่อนเขียนโปรแกรม

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

TOOLs >> IDE >> NetBeans 8.02 + JDKwww.netbeans.org

https://netbeans.org/

Page 12: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

การติดต้ัง

• J2SE มีตัวติดตั้ง 2 แบบ– J2SE runtime environments (JRE)

– J2SE development toolkits (JDK)

• ส าหรับเครื่องผู้พัฒนา– JDK

– JRE (ติดตั้งไว้เพื่อทดสอบการท างานในสภาพแวดล้อมจริง จะไม่ติดตั้งก็ได้)

• ส าหรับเครื่องผู้ใช้งาน– J2RE อย่างเดียวก็พอ

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 13: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

ภาษาการโปรแกรม

• ภาษาการโปรแกรม คือ ภาษาหนึ่งภาษาในโลก – มักมีลักษณะคล้ายคลึงกับภาษาอังกฤษ

– แต่มีโครงสร้างประโยคที่ค่อนข้างจ ากัด

• โปรแกรม จะต้องถูกแปลงเป็นภาษาเครื่องก่อน ถึงจะท างานได้

• คอมไพเลอร์ หรือตัวแปลภาษา จะท าหน้าที่แปลงซอร์สโค้ด ไปเป็นภาษาอื่น– โดยทั่วไป ภาษาอื่น คือ ภาษาเครื่อง

– คอมไพเลอร์ของภาษาจาวา แตกต่างออกไป

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

ซอรส์โคด้ คอื ไฟลข์อ้ความธรรมดา

ทีเ่ขยีนดว้นภาษาการโปรแกรม

ไม่สามารถน ามารนัได ้แตน่ ามาคอมไพลไ์ด ้

Page 14: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

การคอมไพล์ และ การรัน โปรแกรมจาวา

• Source Code เป็นไฟล์ .java

• จาวาคอมไพเลอร์ จะแปล จาวาซอร์สโค้ด ไปเป็นรูปแบบพิเศษ ที่เรียกว่า ไบต์โค้ด (Byte code) ซึ่งไฟล์ นามสกุล .class– จาวาไบต์โค้ด ไม่ใช่ ภาษาเครื่อง

• อินเตอร์พริตเตอร์ (Interpreter) เป็นอีกเครื่องมือที่จะแปลง ไบต์โค้ด เป็น ภาษาเครื่อง เป็นไฟล์ .exe– จาวา เมื่อคอมไพล์แล้ว สามารถน าไปรันเป็นเครื่องชนิดใดก็ได้

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 15: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

การคอมไพล์ และ การรัน โปรแกรมจาวา

จาวาซอรส์โคด้

ภาษาเครือ่ง

จาวาไบตโ์คด้

จาวา

อนิเตอรพ์รติเตอร ์

จาวา

คอมไพเลอร ์

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

.class

Java

compilerinterpreter

Page 16: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Java Virtual Machine

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 17: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

วิธีการคอมไพล์

• javac คือ คอมไพล์เลอรข์องเรา (มีอยู่ใน JDK เท่านั้น)– วิธีการใช้: javac <options> <ชื่อไฟล์>

– ชื่อไฟล์จะต้องมีนามสกุลเป็น ‘java’

• ถ้าการคอมไพล์ส าเร็จ ผลลัพธ์ที่ได้ คือ ไบต์โค้ด ซึ่งบรรจุอยู่ในไฟล์นามสกุล ‘class’ – โดยส่วนใหญ่ เราเรียกไฟล์นี้ว่า คลาสไฟล์

– โดยทั่วไป ผลลัพธ์จะถูกเก็บไว้ ในไดเร็คทอรีปัจจุบัน

– Options ‘-d <ไดเร็คทอร>ี’ ก าหนดไดเร็คทอรีที่จะเก็บคลาสไฟล์

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 18: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

วิธีการรันโปรแกรม

• java คืออินเตอร์พริตเตอร์ของเรา (มีอยู่ในทั้ง JDK และ JRE) – การใช้งาน: java <options> <ชื่อคลาส> <อาร์กิวเมนต>์– ชื่อคลาสที่ใช้ในค าสั่ง ต้องไม่เขียน ‘.class’– คลาสที่จะรันจะต้องมีเมธอด

• public static void main (String[] args)

• โปรแกรมจาวา สามารถบรรจุไว้ใน จารไ์ฟล์– จาร์ไฟล์ คือ ไฟล์ที่มีนามสกุล ‘jar’– การรันโปรแกรมในจาร์ไฟล์: java <options> –jar <จาร์ไฟล์> <args>– จาร์ไฟล์บางไฟล์ อาจไม่สามารถน ามารันได้

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

class A {

}

Page 19: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Source Code

Java Virtual Machine

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 20: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

จาวาไลบรารี• คลาสไฟล์หลายๆ ถูกรวบรวมไว้ภายใตจ้าร์ไฟล์ (jar file)

– จารไ์ฟล์ มีรูปแบบการรวบรวมเหมือนซิปไฟล์ (zip)

• จาวาไลบรารี จะใช้งานได้ เมื่อถูกระบุไว้ในคลาสพาท (Classpath) เท่านั้น

• คลาสพาท คือ กลุ่มของไดเร็คทอรีหรือจาร์ไฟล์ ที่คลาสจะถูกเรียกใช้ได้

• เราสามารถระบุคลาสพาทร่วมกับการใช้ค าสั่ง java และ javac ผ่าน– Option* ‘-cp <classpath>’

• คลาสพาทแต่ละอันจะถูกแบ่งด้วยเครื่องหมาย ; (ส าหรับ Windows) และ : (ส าหรับ Linux)

• ตัวอย่าง– java –cp .;c:\lib\extra_lib.jar HelloWorld

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

‘.’ คอื ไดเรค็ทอรปัีจจบุนั (working directory) ทีโ่ปรแกรม

ท างานอยู่

Page 21: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

แนวทางการเขียนโปรแกรม

• วัตถุประสงค์ในการเขียนโปรแกรม คือ การแก้ปัญหา

• ขั้นตอนทั่วไปในการแก้ปัญหาคือ– ศึกษาและท าความเข้าใจปัญหา

– แบ่งปัญหาออกเป็นส่วนๆ ถ้าปัญหาหรือโจทย์ใหญ่ หรือซับซ้อน

– ออกแบบล าดับ และแนวทางในการแก้ปัญหา

– มองหาแนวทางการแก้ปัญหาแบบอื่นๆ ที่อาจจะดีกว่า และท าให้ดีขึ้น

– ท าการสร้างโปรแกรม / เขียนโปรแกรม / เขียนโค้ด

– ทดสอบและแก้ไขปัญหาที่ตรวจพบ

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

• TOP-DOWN

• MODULE

Page 22: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

การแก้ปัญหา จงรับตัวเลขเข้ามา 10 จ านวน แล้วเรียงจากมาไปหาน้อย

7 9 8 5 4

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

4 5 7 8 9

SORT

9 8 7 5 4

ALGORITHMS

Page 23: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

การแก้ปัญหา จงรับตัวเลขเข้ามา 10 จ านวน แล้วเรียงจากมาไปหาน้อย

• รับตัวเลข• มีจ ำนวน จ ำกัดหรือไม่• แล้ว วิธีกำรเรียง ท ำอย่ำงไร• แสดงผลลัพธ์

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 24: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

PSEUDOCODE

1. START

2. …

3. …

4. …

5. ….

6. STOP/FINISH

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 25: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

• Identifier

• Data Member

• Method Member

• Literals

• Data Type

• Primitive Data Type

• Abstract Data TypeLec02_introduction_to_java.pptx---ภาษาจา

วาเบ้ืองตน้

หวัขอ้ทีจ่ะเรยีนภาษาจาวา

Page 26: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

• สัญลักษณ์แทน ค าต่างๆ ในภาษาจาวา

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 27: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

package B

• แพ็กเกจ (package) คือ สิ่งที่ใช้ในการรวบรวมคลาสที่มีความเกี่ยวข้องสัมพันธ์กันไว้ในกลุ่มเดียวกัน เพื่อให้ง่ายต่อการจัดการและง่ายต่อการค้นหาคลาส

แพ็กเกจและอิมพอร์ต (Package and Import)

package A

packageB

package C

PackageC import PackageB

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

import java.util.scanner;

Page 28: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 29: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 30: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

ภาษาการโปรแกรม ‘จาวา’

• ภาษาจาวา มีค า และสัญลักษณ์ต่างๆ ที่เราใช้ในการเขียนโปรแกรม

• ภาษาจาวา ก าหนดแนวทางในการผสมค า และสัญลักษณ์เข้าด้วยกัน เพื่อให้ได้ชุดค าสั่ง (program statements) ที่ถูกต้อง

• จาวา สร้างขึ้นโดยบริษัท Sun Microsystems– เป็นที่รู้จักตั้งแต่ปี 1995 และได้รับความนิยมอย่างต่อเนื่อง

– เป็นภาษาการโปรแกรมเชิงวัตถุ (OO: Object-oriented)

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 31: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

โครงสร้างโปรแกรมจาวา

• ในการเขียนโปรแกรมจาวา:– โปรแกรมใดๆ เกิดจาก คลาส (class) จ านวนหนึ่งคลาสหรือมากกว่า

– คลาสหนึ่งประกอบด้วย เมธอด (method) ต่างๆ

– เมธอดหนึ่งประกอบด้วย ค าสั่ง (statement) ต่างๆ

• ค าเหล่านี้จะได้เรียนรู้ต่อไปในบทถัดๆ ไป

• โปรแกรมจาวา จะต้องมีเมธอด ที่ชื่อว่า main เสมอ

ไฟลจ์าวาหน่ึงไฟล ์(มกั) มี คลาสหน่ึงคลาสไฟลจ์าวาท่ีมี คลาส ท่ีมี เมธอด ช่ือ main เรียกวา่โปรแกรมจาวา

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 32: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

โครงสร้างโปรแกรมจาวา

public class MyProgram

{

}

// ค าอธิบายเกี่ยวกับ class นี้

หัวของ class

ตัวของ class

เราสามารถใส่ค าอธิบายโปรแกรมได้เกือบทุกที่ในคลาส

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 33: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

โครงสร้างโปรแกรมจาวา

public class MyProgram

{

}

public static void main (String[] args)

{

}

// ค าอธิบายเกี่ยวกับ class นี้

// ค าอธิบายเกี่ยวกับเมธอดนี้

หัวของ methodตัวของ method

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 34: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

โครงสร้างของโปรแกรมอย่างง่าย ๆimport . . .

import . . .

. . .

import . . .

class class-name1{

data-member

constructor

method-member

}

public class class-name2{

data-member

constructor

method-member}

น ำเข้ำ Package เพื่อเรียกใช้ class จำก Package อื่น ๆ

สร้ำง class และตั่งชื่อ class

สมำชิก Method ในclass

สมำชิก ข้อมูล ใน class

พฤติกรรมเริ่มต้นเม่ือวัตถุถูกสร้ำง

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 35: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

ตัวอย่างโปรแกรม Javaclass Hello{

public static void main(String[] args) {System.out.println(“Hello World!”);

} }

• ชื่อคลาส Hello• เมธอด main() เป็นเมธอดหลักของโปรแกรมในการเริ่มต้นท างาน • System.out.println(“Hello World!”); เป็นค าสั่งพิมพ์ข้อความทางจอภาพ System.out เป็นคลาส println() เป็นเมธอด• ปิดประโยคด้วยเครื่องหมาย Semicolon(“ ; ”)• ครอบคลุมส่วนของ class และ method ด้วยเครื่องหมาย { }

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 36: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 37: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 38: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 39: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 40: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

• OO• Traditional

Page 41: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

HelloWorld

Page 42: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 43: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

การพิมพ์ตัวแปร

• println(“X”)

• println(x)

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้ String Operator

“” double quote‘’ single quote

Page 44: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

ประเภท หรือ ชนิดข้อผิดพลาด(ERROR)

• 1. Syntax Error

• 2. Run Time Error

• 3. Logical Error

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 45: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Syntax Error

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 46: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

จะตอ้งไม่มี syntax error ถึงจะรันโปรแกรมผา่น

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 47: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

warning

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 48: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

มีการน าค่า x ไปใชง้าน

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

ไม่มี Syntax Error

Page 49: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

RUN-TIME error

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Compile ผา่นRun ไม่ผา่น

Page 50: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Syntax Error

• เป็นขอ้ผิดพลาดท่ีเกิด จากการพิมพค์ าสั่งไมถ่กูตอ้งตามหลกัไวยากรณ์ของภาษานัน้ เช่น พิมพ ์ พิมพต์ก พิมพค์ าสั่งไมค่รบ พิมพต์วัเลก็ตวัใหญ่ไม่ตรง

• ต.ย.

• System.out.printnl(“”)

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 51: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Logical Error

• Compile ผา่น

• RUN ได้• แตค่ าตอบผิด

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

เกิดจากตีความหมายโจทย ์ผดิหรือ เขียน algorithm ผดิ

Page 52: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

F6

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 53: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

สร้าง Project ใหม่ ช่ือ Test_Opt02

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

สูตร พ.ท. : ½*ฐ*ส

ฐาน

สูง

Page 54: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

วเิคราะหปั์ญหา (Problem Analysis)

1) สิง่ทีโ่จทยต์อ้งการ1) สิง่ทีโ่จทยต์อ้งการคอื พ.ท. สามเหลีย่ม

2) รปูแบบผลลัพธ์1) พ.ท. สามเหลีย่ม เทา่กบั xx.xx ตร.ม.

3) ขอ้มลูน าเขา้1) ฐาน2) สงู

4) ตวัแปรทีใ่ช ้1) INPUT … Base แทนฐาน , Height แทน สงู2) PROCESS … TriangleArea แทน พ.ท. สามเหลีย่ม3) OUTPUT … TriangleArea พ.ท. สามเหลีย่ม

5) วธิกีารประมวลผล1) Algorithm >> PSEUDO CODE

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 55: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

วธิกีารประมวลผลAlgorithm >> PSEUDO CODE

1. START

2. …

3. STOP

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

1. INTIALIZATION STAGE2. INPUT STAGE3. PROCESS STAGE4. OUTPUT STAGE

Page 56: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

วธิกีารประมวลผลAlgorithm >> PSEUDO CODE

1. START

2. DEFINE/Declare Variables

2.1 SET BASE 0.0 ,

2.2 SET HEIGHT 0.0,

2.3 SET TRIANGLEAREA 0.0

3. READ / INPUT / ENTER

3.1 PRINT “Plz. Enter Based : ”

3.2 READ BASE

3.3 PRINT “Plz. Enter Height : ”

3.4 READ HEIGHT

STOP

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

1. INTIALIZATION STAGE2. INPUT STAGE3. PROCESS STAGE4. OUTPUT STAGE

Page 57: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

วธิกีารประมวลผลAlgorithm >> PSEUDO CODE

1. START

2. DEFINE/Declare Variables

2.1 SET BASE 0.0 ,

2.2 SET HEIGHT 0.0,

2.3 SET TRIANGLEAREA 0.0

3. READ / INPUT / ENTER

3.1 PRINT “Plz. Enter Based : ”

3.2 READ BASE

3.3 PRINT “Plz. Enter Height : ”

3.4 READ HEIGHT

4. COMPUTE TRIANGLEAREA ½*BASE*HEIGHT

STOP

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

1. INTIALIZATION STAGE2. INPUT STAGE3. PROCESS STAGE4. OUTPUT STAGE

PROCESS STAGE

Page 58: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

วธิกีารประมวลผลAlgorithm >> PSEUDO CODE

1. START

2. DEFINE/Declare Variables

2.1 SET BASE 0.0 ,

2.2 SET HEIGHT 0.0,

2.3 SET TRIANGLEAREA 0.0

3. READ / INPUT / ENTER

3.1 PRINT “Plz. Enter Based : ”

3.2 READ BASE

3.3 PRINT “Plz. Enter Height : ”

3.4 READ HEIGHT

4. COMPUTE TRIANGLEAREA ½*BASE*HEIGHT

5. PRINTLN “Triangle Area is : ” + TRIANGLEAREA “ SQM. ”

6. STOP

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

1. INTIALIZATION STAGE2. INPUT STAGE3. PROCESS STAGE4. OUTPUT STAGE

OUTPUT STAGE

TriangleArea

Page 59: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

การรับ/น าเขา้ขอ้มูล ใน java & netbean

• 3 วิธี– รับผ่านอาร์กิวเมนท์

– รับโดยใช้คลาส Scanner

– รบัโดยใช ้BuffedReader

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 60: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

รับผ่านอาร์กวิเมนท์

• รบัโดยการก าหนด อารกิ์วเมนต์ ใน netbean

• ไปท่ี RUN

• เลือก Set Project Configuration

• เลือก Customize

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 61: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

ถา้ตอ้งการรับขอ้มูล 2 ชุด ใหก้ าหนดดงัรูป

10 20

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

ฐาน สูง

Page 62: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Incompaoble types:String cannot be converted to double

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 63: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Type Converting

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Stringdouble

Page 64: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 65: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

F6

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 66: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

แกไ้ข อาร์กิวเมนท์ เป็น

• 12.5 10.25

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 67: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

วิธีรับขอ้มูลโดยใชค้ลาส Scanner

• 1. import java.util.Scanner;• 2. ก าหนด ตวั ออบเจ็กตข์องคลาส Scanner ดว้ยค าสั่ง

– Scanner sc = new Scanner(System.in);3. รบัคา่ แตล่ะชนิด ดว้ย sc.Next

เช่น int x;

x = sc.NextInt();

double x;x = sc.NextDouble();

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 68: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

สร้าง Project ใหม่

• CalTrapedZoidArea

• Trapezoid แปลว่าสี่เหลี่ยมคางหมู

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

½*(ด1 + ด2)*ส

Page 69: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

½*(ด1 + ด2)*ส

ด้านที่ 1

ด้านที ่2

สูง

Page 70: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

• 1. import java.util.Scanner;

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 71: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

2. ก าหนด ตวั ออบเจก็ตข์องคลาส Scanner ดว้ยค าสัง่

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 72: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

3. รบัคา่ แตล่ะชนิด ดว้ย sc.Next

เช่น int x;

x = sc.NextInt();

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 73: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

ทดสอบ 10 20 5

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 74: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

RUN

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 75: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

จงหา ปริมาตร ทรงกระบอก

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

10 เมตร

30 เมตร

9,420

โปรเจ็กต์นีค้วรตั้งช่ือว่าอย่างไรVolume cylindrical

calVolume_Cylindrical

Page 76: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

สร้าง Project ใหม่

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

calVolume_Cylindrical

Page 77: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Import Scanner class

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 78: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

ขอ้มูลน าเขา้/ตวัแปรท่ีใช้

• R: Radius แทน รัศมี

• H: Height แทน สูง

• Pi = 3.14 ไม่ตอ้งน ำเข้ำ เป็นค่ำคงที่

• Volume_Cylendrical แทน ปริมำตร

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 79: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

CODE

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 80: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Function

• การเข้าถึง Function ของคลาส ปกติ จะต้องวัตถุก่อน ถึงจะใช้ได้

• ถ้า ไม่ต้องการสร้าง วัตถุ ให้ใส่ static น าหน้า Function/Method

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Attributes >> data memberFunction >> method member

OO java

Page 81: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

class

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

คน รถยนต์เป็นเจ้าของ

1 *

ช่ือนามสกลุ

Real worldProblem Domain

Page 82: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

class

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

คน รถยนต์เป็นเจ้าของ

1 *

ช่ือนามสกลุ

Real worldProblem Domain

Page 83: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

รถยนต์

ล้อ เครื่องยนต์ ตัวถัง

Require Component

Optional Component

1

1

1

4..4

Aggregation Abstraction

Page 84: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

CAR

aCAR :CARรถยนต ์คนัหน่ึง

Is member Of

class CAR {

}

CAR aCar = new CAR();

aCar.Uturn();

Page 85: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

hello

• D:\Java_OOP

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 86: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 87: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

• D:\Java_OOP\Hello2016\src\hello2016

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 88: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Set as Main Project

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 89: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

args[1]

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 90: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Syntax (1.)

• Term …… x , 5 , y , z , salary , VAT , TAX , AVG• Expression ….. X+5 , y*5 , x+x , x^y …• Statement ….. int x; , x = x + y; , x++;• Block … () , {} ..

if (x > y) {.. }

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 91: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

term

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Statement

Expression

Page 92: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

ถา้เป็น int แลว้ไม่ก าหนดค่า ค่า default เป็น null

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 93: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 94: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Syntax (2):: Blank , White Space

• x = 8 ;• X =Y -5;• X

= 5 + 2 ;

int x y;int x;int x_y;i nt x;

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

ข้อผิดพลำด มี 3 ประเภท1. Syntax Error2. Runtime Error3. Logical/Technical Error

Page 95: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Variables

1. ตัวแปร Variables

2. ตัวแปล Translator …. Compiler , Interpreter

3. ค่าคงตัว (ค่า C) ..7 ,78 , 9,5 55

4. ค่าคงที่ (Constant) PI = 3.14 , VAT= 7

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 96: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Case sensitive/ None case sensitive

• int x;

• X=8;

• X=20;

• X=50;

• X= x-5;

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Syntax Error

Page 97: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Project2_24_07_2559

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Project2_24_07_2559

Page 98: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 99: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

• ไมพ่บสัญลักณ์

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 100: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Syntax(3)

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

String Operator , concade

Page 101: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 102: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Type

• PDT : Primitive Data Type– Integral

• byte• Short• int• long

– Floating – Point• float• double

– boolean– char , String– … date/time

• ADT : Abstract Data Type– Object , class..

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

0 1 2 …-1-2-n

00000000

byte

short

int

long

Page 103: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

ค าถาม ถ้า b= -200 ?

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 104: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

เราจะรู้ได้อย่างไร ว่า byte เก็บค่าสูงสุดต่ าสุดเท่าไร

• Type … byte

• Wrapper Type .. Byte

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

System.out.println("Maximum of Byte : " + Byte.MAX_VALUE);

System.out.println("Maximum of Long : " + Long.MAX_VALUE);

Page 105: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

จงเขียนโปรแกรมเพื่อตรวจสอบว่าค่า สูงสุด-ต่ าสุด แต่ละชนิด เป็นเท่าไร

• Byte

• Short

• Int >> Integer

• Long

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

1 byte

2 byte

4 byte8 byte

•อาย ุคน•น ้าหนกั•ส่วนสูง•ราคาสินคา้•จ านวนหอ้งพกั•จ านวน นกัศึกษา มรภ.พระนคร•จ านวน อาจารย ์มรภ. พระนคร•จ านวน นกัศึกษา ทัว่ประเทศ•จ านวน ประชากร มด•จ านวน ประเทศในโลก

Page 106: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

จงเขียนโปรแกรมแก้ปัญหาโจทย์ต่อไปนี้

• ก าหนด a = 2 , b = 3 , c= 4 , d = 5;

• X คือผลลัพธ์ ของ

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

2X a b= +

53 4a b

Xd c−

=+

23 4a b

Xb c+

=−

floatdouble

Logical Errorตคีวามหมายผดิหรือ คดิอลักอริทึม ผดิ

Page 107: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

int

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 108: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

การประกาศตัวแปร + การก าหนดค่า

• การประกาศตัวแปร Variables Declaration• …. TYPE var_name;• …. TYPE var_name = VALUE;• การก าหนดค่า Assign Values• ในจาวา…. =

• ในขั้นตอนวิธี Algorithm เช่น– SET x 5 – SET x Y

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

int X;

int price;

int weight;

int price=0;

float price=0.0;doube x=0.0;

Page 109: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

ถ้าใส่ค่าที่เกินที่จะรับได้ จะแจ้ง error

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 110: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

RUN

• ถ้าต้องการทดสอบการท างานในเบ้ืองต้นให้ คลิกที่ ปุ่ม

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 111: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

• ถ้าต้องการเปิด ไฟล์ source code

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 112: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

การแสดง ข้อความไปที่หน้าจอ

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Hello Java 2016

Page 113: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

• พิมพ์แล้ว เคอร์เซอร์ กระโดดขึ้นบรรทัดใหม่ println

• การพิมพ์แล้ว เคอร์เซอร์ ไม่ขึ้นบรรทัดใหม่ print

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 114: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

ให้เขียนโปรแกรมแสดงข้อความดังนี้

ID : ……………………….. Name : …………………………

Program : …………….. ………………………………..

Faculty : ……….……. University : …………………………………….

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

print()

print()

print()

println()

println()

println()

Page 115: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

ใน DOS

• javac hello.java ➔ hello.class

• java hello

• java hello 5 10

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 116: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 117: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

เมื่อรัน เกิดข้อผิดพลาดในลักษณะแบบ

• เรา สามารถรับค่า บางอย่างผ่านทาง main ได้

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 118: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

args[] เป็นสตริง/ข้อความ จะไปค านวณไม่ได้

• จ าเป็นต้องแปลงเป็นชนิดจ านวนเต็ม ด้วย เมธอด parseInt

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 119: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

• RUN

• Set Project Configuration

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 120: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

INPUT PROCESS OUTPUT

Page 121: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

• 10

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 122: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

[0] [1] [2] [3]

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

4-1

Page 123: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

ไปที่ เมนู RUN >> Customize

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 124: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 125: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 126: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Empty classes

Page 127: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 128: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

• .java

• .class

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 129: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

1. มีกี่ package

2. มีกี่ไฟล์

3. มี่กี่คลาส

4. มีกี่ วัตถุ

5. มีกี่ แอตทริบิวต์

6. มีกี่เมธอด

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

c

class hello

class Aclass B

Page 130: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

• มีเมธอด main() เพียง 1 เมธอดต่อ 1 โปรแกรมเท่านั้น

• โปรแกรมจะเริ่มต้นท างานที่ เมธอด main() เสมอ

• จะต้องมีค่า Accessibility เป็น “public” เสมอ ไม่เช่นนั้นจะรันโปรแกรมไม่ได้

• จะไม่มีการส่งค่ากลับคืน จึงใช้คีย์เวิร์ด “void” ร่วมด้วยเสมอ

• เพื่อให้สามารถเรียกใช้งานได้ทันทีโดยไม่ต้องสร้างออ็บเจ็กต์ จึงต้องระบุคีย์เวิร์ด “static”ไว้ด้วย

• รูปแบบของ Parameter จะใช้ “(String args[])” หรือ “(String []args)” ก็ได้ และสามารถเปลี่ยนชื่อของ Parameter “args” ได้

เมธอด main()

public static void main(String args[]) หรอื

public static void main(String []args)Lec02_introduction_to_java.pptx---ภาษาจา

วาเบ้ืองตน้

Page 131: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

ค าอธิบายโปรแกรม

• ใช้อธิบายหน้าที่การท างานของคลาส เมธอด หรือค าสั่ง เพื่อความง่ายในการท าความเข้าใจ

• เขียนด้วยภาษาอะไรก็ได้ (ภาษาไทยก็ได้)• ไม่มีผลกระทบกับการท างานของโปรแกรม• เราสามารถเขียนค าอธิบายโปรแกรมได้ 3 แบบ คือ

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 132: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

มี comment ให้ใช้ได้ตามความเหมาะสม 3 แบบด้วยกันคือ

1. ค าอธิบายได้หลายๆ บรรทัด

2. ค าอธิบายบอกจุดเริ่มต้นจนจบบรรทัด

3. ค าอธิบายเพื่อใช้ค าเอกสารรูปแบบไฟล์ HTML

ส่วนค าอธิบายโปรแกรม(comment)

/** This is the comment for create HTML file

Create Date: 19 April 2003 */

/* This is the comment for

multiple lines */

// This is start point of comment until end of line

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 133: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 134: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

ค าระบุชื่อ(Identifier)

• ค าระบุชื่อ (Identifier) คือ ค าที่ผู้พัฒนาโปรแกรมใช้ในโปรแกรม– เกิดจาก ตัวอักษร ตัวเลข เครื่องหมาย_ และ $– จะต้องไม่ขึ้นต้นดว้ยตัวเลข

• จาวา แยกความแตกต่างระหว่างตัวเลก็และตัวใหญ่– Total และ total คือ ค าระบุช่ือที่ต่างกัน

• ชื่อ คลาส และ เมธอด เป็นไปตามกฎค าระบุชื่อ• ค าระบุชื่อ บางค า เป็น ค าสงวน เราไม่สามารถน ามาตั้งชื่อของเราได้• ความยาวตัวอักษรไม่ควรเกิน 65536 ตัวอักษร

– ในทางปฏิบัต ิไม่ควรเกิน 31 ตัว

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 135: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 136: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 137: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

การตั้งชื่อ (identifier)

• จะมีเครื่องหมาย หรือตัวด าเนินการไม่ได้

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 138: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

ห้ามซ้ ากับค าสงวน

• ค าสั่ง ค าสงวน ชนิดตัวแปร จะมาก าหนดเป็นช่ือไม่ได้

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 139: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

int int;

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 140: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

statement ประโยค

_____ ;x = 5;int x;

x = x +3 – 2;

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

การประกาศตวัแปร ถือวา่ เป็นรูปประโยค

Page 141: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 142: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 143: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

การประกาศตัวแปร

data_type var_name ;

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 144: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 145: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

จงวิเคราะห์ปัญหา ของการหาค่าเฉลี่ยของตัวเลข 3 จ านวน

• เช่น ค่าเฉลี่ยของ 28 35 47 = ?

• เช่น ค่าเฉลี่ยของ 74 45 34 = ?

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

กำรวิเครำะห์ปัญหำ

• สิ่งที่โจทย์ต้องกำร

• รูปแบบผลลัพธ์

• ข้อมูลน ำเข้ำ

• ตัวแปรที่ใช้

• วิธีกำรประมวลผล

โจทยต์อ้งการจริงๆ คือใหเ้ขียนโปรแกรมแต่ก่อนจะเขียนตอ้งวเิคราะห์ปัญหาไดแ้ลว้

Page 146: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

สิ่งที่โจทย์ต้องการ

1. สิ่งที่โจทย์ต้องการ คือ ค่าเฉลี่ยของตัวเลข 3 จ านวน

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 147: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

รูปแบบผลลัพธ์

เป็นการออกแบบจอ

สมัยก่อน(DOS)ไม่มีหน้าจอมาให้ ต้อง ออกแบบ

โปรแกรมยุค ปัจจุบัน เป็น หน้าจอ ออกแบบ หน้าจอผลลัพธ์ เป็นแบบเดียว WYSIWYG

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

ค่ำเฉลี่ยของตัวเลข 3 ชุด คือ xx.xx

Page 148: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

ข้อมูลน าเข้า

• ไม่ได้ น า / รับจาก main()• ถ้าต้องการรับ ก็รับ ตัว 3 ตัว x1 x2 x3

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 149: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

4. ตัวแปรที่ใช้

• INPUT x1 x2 x3x1 แทน ตัวเลขชุดท่ี 1x2 แทน ตัวเลขชุดท่ี 2x3 แทน ตัวเลขชุดท่ี 3

• PROCESS TOTAL , AVGTOTAL แทน ค่าผลรวมของตัวเลข 3 จ านวนAVG แทน ค่าเฉลี่ยของตัวเลข 3 จ านวน

• OUTPUT : AVGAVG แทน ค่าเฉลี่ยของตัวเลข 3 จ านวน

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 150: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

5. วิธีการประมวล / ALGO / PSEUDOCODE

1. เริ่มต้น

2. ก าหนดตัวแปรที่ใช้

3. รับค่าเข้ามา

4. หาผลรวม

5. เอาผลรวม หารตัว 3 {เรารู้ว่า 3 ตัว}

6. แสดงค่า เฉลี่ย

7. สิ้นสุด

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

คร้ังที่ 1

Page 151: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

5. วิธีการประมวล / ALGO / PSEUDOCODE

1. เริ่มต้น

2. ก าหนดตัวแปรที่ใช้ x1 = 0 , x2 = 0 x3 = 0

3. รับค่าเข้ามา เก็บไว้ในตัวแปร แต่ละตัว

4. หาผลรวม

5. เอาผลรวม หารตัว 3 {เรารู้ว่า 3 ตัว}

6. แสดงค่า เฉลี่ย

7. สิ้นสุด

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

คร้ังที่ 2 ปรับปรุง 1

Initialization stage

Page 152: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

5. วิธีการประมวล / ALGO / PSEUDOCODE

1. เริ่มต้น

2. ก าหนดตัวแปรที่ใช้ x1 0 , x2 0 x3 0 , TOTAL 0

3. รับค่าเข้ามา เก็บไว้ในตัวแปร แต่ละตัว

4. หาผลรวม เอา TOTAL x1 + x2 + x35. เอาผลรวม หารตัว 3 {เรารู้ว่า 3 ตัว}6. แสดงค่า เฉลี่ย7. สิ้นสุด

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

คร้ังที่ 2 ปรับปรุง 2

Initialization stage

Assign value

Page 153: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

5. วิธีการประมวล / ALGO / PSEUDOCODE

1. เริ่มต้น

2. ก าหนดตัวแปรที่ใช้ x1 0 , x2 0 x3 0 , TOTAL 0

3. รับค่าเข้ามา เก็บไว้ในตัวแปร แต่ละตัว

4. หาผลรวม เอา TOTAL x1 + x2 + x3

5. เอาผลรวม หารตัว 3 {เรารู้ว่า 3 ตัว} AVG TOTAL / 3

6. แสดงค่า เฉลี่ย / DISPLAY AVG

7. สิ้นสุด

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

คร้ังที่ 3 ปรับปรุง 3

Initialization stage

Assign value

Computation / Calculate

OUTPUT

Page 154: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

5. วิธีการประมวล / ALGO / PSEUDOCODE

1. START/BEGIN

2. SET x1 0 , x2 0 x3 0 , TOTAL 0

3. ENTER / INPUT / READ …

4. COMPUTE TOTAL x1 + x2 + x3

5. COMPUTE AVG TOTAL / 3

6. DISPLAY AVG

7. STOP / FINISH

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

คร้ังที่ 4 ปรับปรุง 4

Initialization stage

Assign value

Computation / Calculate

OUTPUT

Page 155: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

5. วิธีการประมวล / ALGO / PSEUDOCODE

class {

}

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

OUTPUT

Page 156: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 157: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

รับ จาก อาร์กิวเม้นต์

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 158: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Type Casting

• การแปลงชนิดข้อมูล – จาก String เป็น int

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 159: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

การแปลงด้วย Type Wrapper Class

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 160: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 161: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 162: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

การตั้งชื่อตามรูปแบบ การแนะน าของ Oracle

• เมื่อต้ังช่ือ คลาส ควรต้ังช่ือคลาสเป็นภาษาอังกฤษ และตั้งพยัญชนะตัวแรกเป็นตัวพิมพใ์หญ่ตัวอักษรที่เหลือในค าเดียวกันให้เป็นพิมพ์เล็ก– เช่น MyClass, HelloWorld, HelloJava, CalculateCirleArea เป็นต้น

• เมื่อตั้งชื่อดาต้า หรือตัวแปร ตัวอักษรทุกตัวเป็นพิมพ์เล็กหมด – เช่น color, mynames, height, width เป็นต้น

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 163: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

การตั้งชื่อตามรูปแบบ การแนะน าของ Oracle(ต่อ)

• เมื่อต้ังช่ือ ดาต้าหรือตัวแปร ที่เก็บค่าคงที่ (const) ในภาษาจาวา จะมีคีย์เวิรด์ final ก ากับไว้ด้านหน้า ให้ใช้ตัวอักษรทุกตัวเป็นพิมพ์ใหญ่– เช่น SIZE, VAT, PI , AMOUNT เป็นต้น

• เมื่อต้ังช่ือเมธอด ก าหนดให้ตัวแรกในช่ือเป็นตัวอักษรพิมพ์เล็ก ส่วนค าถัดไปตัวขึ้นต้นเป็นพิมพ์ใหญ่ที่เหลือเป็นพิมพ์เล็ก – เช่น countMoney, openFile, setSize, setWeight, setHeight เป็นต้น

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 164: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

ค่าคงที่

• ไม่สามารถเปลี่ยนแปลงค่าได้ภายหลังประกาศแลว้

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 165: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 166: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 167: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 168: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 169: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

• ตัวอย่างที่ถูกต้องnumber

Numb

Sum_$

$_100

asian4u

Public

ตัวอย่างการตั้งชื่อต่างๆ (identifier)

• ตัวอย่างที่ไม่ถูกต้อง

4Thai

All/done

get-big-fast

5Soi3_AsokRoad

public

Final-1

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 170: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

ค าสงวน (Reserved word)

• ค าสงวนในภาษาจาวามีดังนี้

abstract

boolean

break

byte

byvalue

case

cast

catch

char

class

const

continue

default

do

double

else

extends

false

final

finally

float

for

future

generic

goto

if

implements

import

inner

instanceof

int

interface

long

native

new

null

operator

outer

package

private

protected

public

rest

return

short

static

super

switch

synchronized

this

throw

throws

transient

true

try

var

void

volatile

while

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 171: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

ที่ว่างสีขาว (White space)

• ช่องว่าง บรรทัดว่างๆ และแทบ เรียกว่า white space

• White space ใช้ส าหรับการแยกค า และ สัญลักษณ์ต่างๆ ในโปรแกรม

• ที่ว่างที่มากกว่าช่องว่างหนึ่งอัน จะไม่มีผลกับโปรแกรม

• จาวาโปรแกรมหนึ่งๆ อาจถูกจัดรูปแบบต่างกัน แต่ท างานเหมือนกัน

– โปรแกรมควรถูกจัดรูปแบบให้ง่ายต่อการอ่าน

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 172: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

SimpleClass1.java

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 173: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

SimpleClass2.java

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 174: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

2. Data member

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 175: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 176: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

2. Data member

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 177: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

New Empty file

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

sampleClass

Page 178: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 179: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 180: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 181: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

การสร้างประโยค ต้องอยู่ Method

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 182: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 183: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Data Member

Method Member

Page 184: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

car

-Wheel wheel;-Door door;

+ Start()+ Stop()

class Car {

private Wheel wheel;

private Door door;

public void Start() {}

public void Sop() {}

}

Page 185: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

private

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 186: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

private

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 187: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 188: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 189: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 190: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 191: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

3. Method Member

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 192: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 193: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

เป็นค่าที่ใช้ในการก าหนดขอบเขตการใช้งานตัวแปร เมธอด และคลาส

public◦ เรียกใช้ได้เมื่ออยู่ใน Package เดียวกัน หรือ ต่าง Package กัน

protected◦ เรียกใช้ได้เมื่ออยู่ใน Package เดียวกัน หรือเป็นคลาสที่ Inherit ไป (Subclass) แต่อยู่ต่าง

Package

private◦ เรียกใช้ได้เมื่ออยู่ใน คลาสเดียวกันเท่านั้น

default◦ ถ้าไม่ได้ระบุคีย์เวิร์ดตัวใดตัวหนึ่งไว้ จะเรียกใช้ได้เมื่ออยู่ใน package เดียวกัน

Accessibility

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 194: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

3. Method Member

Page 195: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

4. Literals

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 196: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

4. Literals

Page 197: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

4. Literals

Page 198: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

4. Literals

Page 199: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

• Boolean

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

4. Literals

Page 200: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

4. Literals

Page 201: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

5. Data Type

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 202: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

5.1 Primitive Data Type

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 203: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

5.1 Primitive Data Type

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 204: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

5.1 Primitive Data Type

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 205: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

• Literal

คือล าดับของตัวอักษรที่ใช้แสดงค่าคงที่ใน source code แบ่งออกเป็น

• ข้อมูล Literal มี 5 ประเภทดังนี้

– Integral literal คือค่าคงที่ของเลขจ านวนเต็ม

– Floating-point Literal คือค่าคงที่เลขทศนิยม

– Boolean Literal คือค่าคงที่ความจริง (truth value) มีค่าเป็น true หรือ false

– Character Literals คือค่าคงทีตัวอักษร

– String Literals มีรูปแบบคล้าย ๆ กับ character ต่างกันที่จะถูกแสดงอยู่ใน double quote และการจะแสดงเครื่องหมาย single quote ไม่จ าเป็นต้องใช้ escaped character

ข้อมูล Literal

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 206: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

ค่าคงที่ตัวเลขจ านวนเต็ม (Integer Literal)

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 207: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

ค่าคงที่ตัวเลขจ านวนเต็ม (Integer Literal)

• INTEGER

– ตวัเลขฐานสบิ -897, 356, 0

– ตวัเลขฐานแปด 0700, 0356, 00

– ตวัเลขฐานสบิหก 0x89A, 0x356, 0x0

• LONG INTEGER

– ตวัอยา่ง 50000000000L,23145l,-13L

-(231+1) to 231-1

-(263+1) to 263-1

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 208: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

• คลาสของชนิดข้อมูลเลขจ านวนเต็มใน Java ซึ่งประกอบด้วย Byte , Short , Integer , Long

คลาสของชนิดข้อมูล

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 209: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

ค่าคงที่ตัวเลขจ านวนจริง (Floating-point Literal)

• Float 1.4 x 10-45 and +3.4 x 1038

• Double 4.9 x 10-324 and 1.7 x 10308

Example

10.2F, 3.14f, 2.35E5F, -3.14e45F

Example

10.2D, -1.89d, 2.35E5D, -1.4e309D

Suffix ‘F’ or ‘f’

Suffix ‘D’ or ‘d’

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 210: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

System.out.println(Float.MAX_VALUE);

System.out.println(Float.MIN_VALUE);

System.out.println(Double.MAX_VALUE);

System.out.println(Double.MIN_VALUE);

ทดสอบค่าตัวเลขจ านวนจริง

3.4028235E38

1.4E-45

1.7976931348623157E308

4.9E-324

ผลการรนัโปรแกรม

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 211: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

• มีด้วยกัน 2 ค่าคือ– true แทนค่าความเป็นจริงที่เป็นจริง

– false แทนค่าความเป็นจริงที่เป็นเท็จ

• ตัวอย่าง

ค่าคงที่เชิงตรรก (Boolean Literal)

boolean myFlag = true;boolean cStatus = false;

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 212: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

System.out.println(true);System.out.println(false);System.out.println(1<2);System.out.println('A'=='B');

ทดสอบ boolean

truefalsetruefalse

ผลการรนัโปรแกรม

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 213: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

\u0061 \u0041 \u007a \u005a \u0030 \u0039 \u00a7

‘a’ ‘A’ ‘z’ ‘Z’ ‘0’ ‘9’ ‘β’

ค่าคงที่ตัวอักษร (Character Literals)

‘a’ ‘A’ ‘z’ ‘Z’ ‘0’ ‘9’ ‘β’

• ตัวอักขระทุกตัวจะถูกเข้ารหัสยูนิโค้ด ใช้เนื้อที่เก็บ 16 บิตต่อ 1 อักษร

• ตัวอักขระจะแสดงโดยมีเครื่องหมาย ‘ ’ (single quote)

• หากเขียนในรูปยูนิโค้ดจะต้องมี \u น าหน้าตามด้วยตัวเลขฐาน 16 จ านวน 4 หลัก

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 214: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

• เป็นอักขระพิเศษที่เป็นเสมือนค าสั่งในการแสดงคือ

ตัวอักษรควบคุมการพิมพ์ (Escape Sequence)

‘\\' แสดงผลเครื่องหมาย \ (Back Slash)‘\‘' แสดงผลเครื่องหมาย ‘ (Single Quote)'\"' แสดงผลเครื่องหมาย “ (Double Quote)'\b' ย้าย Cursor กลับมาข้างหลัง 1 ต าแหน่ง'\t' ย้าย Cursor ไปต าแหน่ง Tab ถัดไป'\n' ย้าย Cursor ไปขึ้นบรรทัดใหม่‘\r’ ย้าย Cursor ไปต าแหน่งเริ่มต้นของบรรทัดปจัจุบัน‘\f’ ย้าย Cursor ไปเริ่มต้นหน้าใหม่

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 215: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

• คือการประกอบกันของตัวอักขระหลายๆ ตัวเข้าเป็นข้อความ

ค่าคงที่ข้อความ (String Literals)

Example

“Hello World” Hello World

“Good Morning.\n

Sir.”

Good Morning.

Sir.

“a and \u0061” a and a

“I said \”yes\”.” I said “yes”.

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 216: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Escape Character

• Escape_Character

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 217: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

System.out.println("backapace = <\b> ");

System.out.println("new line = <\n> ");

System.out.println("return = <\r>");

System.out.println("formfeed = <\f>");

System.out.println("tab = <\t>");

System.out.println("backslash = <\\>");

System.out.println("single quote = <\'>");

System.out.println("double quote = <\">");

System.out.println("null = <\0>");

ทดสอบ Character

backapace = < > new line = <> return = <>formfeed = <>tab = < >backslash = <\>single quote = <'>double quote = <">null = <>

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 218: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

• เป็นสิ่งที่ใช้เก็บค่า ซ่ึงอาจจะเปลี่ยนแปลงไปตามสถานการณ์ ตัวแปรจ าแนกได้ 2 ประเภทคือ– ตัวแปรพื้นฐาน (Primitive data type) คือตัวแปรที่มีชนิดข้อมูลพื้นฐาน

– ตัวแปรอ้างอิง (Abstract data type) คือตัวแปรที่เสมือนเก็บกรอบของวัตถุ ซึ่งใช้อ้างอิงแทนวัตถุ

ตัวแปร (Variable)

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 219: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

type size Default Contains

byte 8 bits 0 Signed integer

short 16 bits 0 Signed integer

int 32 bits 0 Signed integer

long 64 bits 0 Signed integer

float 32 bits 0.0 IEEE754 floating point

double 64 bits 0.0 IEEE754 floating point

boolean 1 bits false (true,false)

char 16 bits \u0000 Unicode Character

ตัวแปรพื้นฐาน (Primitive data type)

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 220: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

• รูปแบบการก าหนดตัวแปร

การก าหนดตัวแปรพื้นฐาน

<Type> <identifier>[=<value>][,<identifier>[=<value>]…]

Example

int x;

float a, b;

double half = 0.5;

double pi = 3.14, g = 10;

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 221: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

int x = 123;

แนวคิดนามธรรมของตัวแปร

address 1000

name x

value 123

address 1000

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 222: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

int a;short b,c,d;int e,f = 1234;byte g = -45, h;long salary;long revenue = 987654321L;long budget = 123456789l;

Defining Integer Variables

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 223: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

double d1;double d2 = 12.0;double d3 = 78.6D;double d4 = 987.654d;float f1;float f2 = 17.5f;float f3 = 24F;float f4 = 12.0; // ผิด!

Defining Floating Point Variables

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 224: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

char m;

char n, p, q;

char r = 'a';

char c = '\u0041'; // ‘A’

char d = '\\'; // backslash

char e = '\''; // single quote

Defining Character Variables

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 225: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

boolean cond1;

boolean sold, state;

boolean endOfList = false;

boolean EveryThingOK = true;

Defining Boolean Variables

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 226: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

• String เป็นคลาสหนึ่งใน Package “java.lang” ท าหน้าที่เป็นข้อมูลที่เป็น ชุดของตัวอักษร

• เป็นคลาสส าเร็จรปูสามารถเรยีกใช้ได้ทันที • โดยมีรูปแบบการสร้างตัวแปรแบบ String ดังนี้

การเก็บชุดของตัวอักษรด้วย String

String VariableName =“Value”;

String myName = “noppadon”;

String myName = “”;

String myName = “\”noppadon\””;

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 227: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

ถ้าต้องการให้ตัวแปรมีค่าคงที่ตลอดการใช้งาน ไม่สามารถเปลี่ยนแปลงค่าได้ จะใช้ค าว่า final ใส่ไว้หน้าชนิดของตัวแปร เช่น

final int x = 1;

ค่าของ x จะไม่สามารถเปลี่ยนแปลงได้ ตลอดการท างานของโปรแกรม

การประกาศตัวแปรค่าคงที่

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 228: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

• เป็นตัวแปรที่ใช้อ้างอิงถึงวัตถุที่ถูกสร้างขึ้นมาจากคลาส อาจกล่าวว่ามันคือ พอยเตอรก์็ได้ ถ้าเปรียบในภาษาซีแล้ว แต่ในจาวาไม่มีพอยเตอร์ จึงเรียกว่าตัวแปรอ้างอิง

ตัวแปรอ้างอิง (Abstract Data Type)

MyClass i_am = new MyClass();

i_am MyClass

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 229: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

public class MyInfo {

public static void main(String [] args){

String myInfo = "";

String myFname = “Dr.nattapong";

String myLname = “Songneam";

String myGroup = "10.xx";

String myID = "123456789";

myInfo = "ชื่อ :"+myFname+" "+myLname+"\nหมู่เรียน :"+ myGroup+"\nรหัส :"+myID

System.out.println(myInfo);

}

}

ทดสอบการท างาน

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 230: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

ใช้คลาสที่อยู่ใน package java.io คือคลาส BufferedReader ร่วมกับ InputStreamReder

โดยจะใช้ 2 ค าสั่งต่อไปนี้คือ

และ

ซึ่งจะต้องท าการ Import package java.io.* เข้ามาใช้งานด้วย

และจะต้องมีการใช้ throws IOException เพื่อป้องกันความผิดพลาดในการป้อนข้อมูลด้วย

การรับข้อมูลทางจอภาพ

BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));

strInput = stdin.readLine();

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 231: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

import java.io.*;

public class MyInfo {

public static void main(String [] args)throws IOException{

BufferedReader stdin =new BufferedReader(new InputStreamReader(System.in));

String myInfo,myFname,myLname = "";

System.out.print("กรุณาใส่ชื่อ -> ");

myFname = stdin.readLine();

System.out.print("กรุณาใส่นามสกุล -> ");

myLname = stdin.readLine();

myInfo = "ยินดีต้อนรับ คุณ"+myFname+" "+myLname;

System.out.println(myInfo);

}

}

ทดสอบ การรับข้อมูล

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

1.

2.

3.

4.

Page 232: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

แปลง String เป็น Integer ใช้intNum = Interger.parseInt(strNum);แปลง String เป็น Double ใช้douNum = Double.parseDouble(strNum);

การแปลงชนิดข้อมูลตัวอักษรเป็นตัวเลข

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 233: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

5.2 Reference Data Type

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 234: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

6. Variables

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 235: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

6. Variables

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 236: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

6.1 Class Variables

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 237: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

6.1 Class Variables

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 238: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

6.1 Class Variables

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 239: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

6.1 Class Variables

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 240: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 241: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 242: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 243: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 244: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 245: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 246: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 247: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 248: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

ข้อผิดพลาด

• ข้อผิดพลาดในการพัฒนาโปรแกรม มี 3 แบบ คือ

• Syntax Error หรือ Compile Error คือการพบข้อผิดพลาดกบัโครงสร้างทางภาษา – เรียกว่า ความผิดพลาดขณะคอมไพล์ (compile-time errors)

– ถ้าความผิดพลาดนี้ยังอยู่ คลาสไฟล์จะไม่ถูกสร้างขึ้น

• โปรแกรมผิดพลาดในขณะตอนท างาน – เช่น ความพยายามในการหารตัวเลขด้วย 0

– อาจท าให้โปรแกรมหยุดท างานทันที

– เรียกความผิดพลาดแบบนี้ว่า ความผิดพลาดขณะรันโปรแกรม (run-time errors)

• โปรแกรมรัน แต่ได้ผลลัพธ์ไม่ถูกตอ้ง– เรียกว่า ความผิดพลาดทางตรรกะ (logical errors)

Run-Time Error

Logical Error

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้

Page 249: การเขียนโปรแกรมเชิงวัตถุ (Object ... · 2019-11-25 · การเขียนโปรแกรมเชิงวัตถุ (Object

• สร้างโปรเจ็คโดยตั้งชื่อโปรเจ็คว่า Exersice1 ชื่อpackage showmyname ชื่อไฟล์ ShowMyName

• เขียนโปรแกรมให้แสดงผลลัพธ์ดังนี้

Exercise-01

**************************** Noppadon Phumeechanya ** Group 10.1X ** ID 4932XXXXX ****************************

ชือ่นักศกึษา

หมูเ่รยีน

รหสั

Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้