การเขียนโปรแกรมเชิงวัตถุ (object ... ·...
TRANSCRIPT
การเขียนโปรแกรมเชิงวัตถุ(Object Oriented Programming)
เนื้อหา• บทที่ 2 แนะน าภาษาจาวา introduction to java
อ.ดร. นัฐพงศ์ ส่งเนียมwww.siam2dev.net
Lec02_introduction_to_java_lastupdated_24_11_2562
บทที่ 2 แนะน าภาษาจาวาintroduction to java
จาวาแพลตฟอร์ม, การติดตั้งจาวา,
วิธีการคอมไพล์, วิธีการรัน,
จาวาไลบรารี, คลาสพาธ,
โครงสร้างโปรแกรมจาวา, ข้อผิดพลาด
รู้จักกับภาษา Java
• Java เกิดขึ้นได้อย่างไร
ภาษา Java นั้นได้รับการพัฒนามาจากบริษัท Sun Microsystems ซึ่งเป็นบริษัทคอมพิวเตอร์ชั้นน าของโลก โดยถือก าเนิดภายใต้โครงการ Green Project ในปี 1996 ซึ่งมีหัวหน้าทีมพัฒนาที่ชื่อว่า James Gosling ซึ่งโปรแกรมเมอร์ Java ทั่วโลกยกย่องว่าเป็น บิดาของ Java
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Sun Microsoft System.
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
รู้จักกับภาษา Java (ต่อ)
• เหตุใดจึงนิยมเขียนโปรแกรมด้วยภาษา Java– ภาษา Java นั้นมีปรัชญาการสร้างมาจากการที่ต้องการท าให้เรา
เขียนโปรแกรมเพียงครั้งเดียว แต่สามารถน าไปใช้งานได้ในอุปกรณ์ชนิดต่างๆ ไม่จ ากัดว่าต้องเป็นเพียงแค่คอมพิวเตอร์อย่างเดียว
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
JVM
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
จาวาแพลตฟอร์ม
• J2SE – Java Standard Edition
– แพร่หลาย ติดตั้งในเครื่องคอมพิวเตอร์ทั่วไป
• J2EE – Java Enterprise Edition
– ต้องใช้ J2SE ด้วย
– มีไลบรารีเพ่ิมขึ้น ซึ่งหมายถึงฟังก์ชันเพิ่มขึ้น
– มีมาตรฐานมารองรับเพิ่มขึ้น
• J2ME – Java Micro Edition
– อุปกรณ์ขนาดเล็ก หรือมีทรัพยากรจ ากัด
– ไม่ต้องใช้ J2SE
– มีไลบรารีน้อยกว่า
– มีข้อจ ากัด และความแตกต่างระหว่างผู้ผลิตค่อนข้างสูง
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
ฟังกช์นั คอื
ความสามารถใน
การท างานตาม
ค าสัง่
ฟังกช์นั ที ่ท างาน
เพือ่วตัถปุระสงค ์
เดยีวกนั
รวมตวักนัเป็น
“ไลบราร”ีANDROID
แพล็ตฟอร์มของ Java
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
สาระส าคัญ
ส าหรับส่วนนี้เราได้เรียนรู้เกี่ยวกับภาษา Java ซึ่งเป็นภาษาเขียนโปรแกรมที่ได้รับการพัฒนาภายใต้แนวคิด Write Once Run Anywhere ท าให้เราเขียนโปรแกรมเพียงครั้งเดียว แต่สามารถน าไปรัน หรือใช้งานบนคอมพิวเตอร์ (หรืออุปกรณ์อิเล็กทรอนิกส์) แบบต่างๆ ได้อย่างสะดวก โดย Java ได้รับการพัฒนาให้มีความสามารถหลายหลาย รองรับการท างานในรูปแบบต่างๆ และปัจจุบันก็มีโปรแกรมเมอร์มากมายทั่วโลกศึกษา และติดตามอย่างใกล้ชิด
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
เตรียมตัวก่อนเขียนโปรแกรม
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
TOOLs >> IDE >> NetBeans 8.02 + JDKwww.netbeans.org
https://netbeans.org/
การติดต้ัง
• J2SE มีตัวติดตั้ง 2 แบบ– J2SE runtime environments (JRE)
– J2SE development toolkits (JDK)
• ส าหรับเครื่องผู้พัฒนา– JDK
– JRE (ติดตั้งไว้เพื่อทดสอบการท างานในสภาพแวดล้อมจริง จะไม่ติดตั้งก็ได้)
• ส าหรับเครื่องผู้ใช้งาน– J2RE อย่างเดียวก็พอ
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
ภาษาการโปรแกรม
• ภาษาการโปรแกรม คือ ภาษาหนึ่งภาษาในโลก – มักมีลักษณะคล้ายคลึงกับภาษาอังกฤษ
– แต่มีโครงสร้างประโยคที่ค่อนข้างจ ากัด
• โปรแกรม จะต้องถูกแปลงเป็นภาษาเครื่องก่อน ถึงจะท างานได้
• คอมไพเลอร์ หรือตัวแปลภาษา จะท าหน้าที่แปลงซอร์สโค้ด ไปเป็นภาษาอื่น– โดยทั่วไป ภาษาอื่น คือ ภาษาเครื่อง
– คอมไพเลอร์ของภาษาจาวา แตกต่างออกไป
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
ซอรส์โคด้ คอื ไฟลข์อ้ความธรรมดา
ทีเ่ขยีนดว้นภาษาการโปรแกรม
ไม่สามารถน ามารนัได ้แตน่ ามาคอมไพลไ์ด ้
การคอมไพล์ และ การรัน โปรแกรมจาวา
• Source Code เป็นไฟล์ .java
• จาวาคอมไพเลอร์ จะแปล จาวาซอร์สโค้ด ไปเป็นรูปแบบพิเศษ ที่เรียกว่า ไบต์โค้ด (Byte code) ซึ่งไฟล์ นามสกุล .class– จาวาไบต์โค้ด ไม่ใช่ ภาษาเครื่อง
• อินเตอร์พริตเตอร์ (Interpreter) เป็นอีกเครื่องมือที่จะแปลง ไบต์โค้ด เป็น ภาษาเครื่อง เป็นไฟล์ .exe– จาวา เมื่อคอมไพล์แล้ว สามารถน าไปรันเป็นเครื่องชนิดใดก็ได้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
การคอมไพล์ และ การรัน โปรแกรมจาวา
จาวาซอรส์โคด้
ภาษาเครือ่ง
จาวาไบตโ์คด้
จาวา
อนิเตอรพ์รติเตอร ์
จาวา
คอมไพเลอร ์
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
.class
Java
compilerinterpreter
Java Virtual Machine
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
วิธีการคอมไพล์
• javac คือ คอมไพล์เลอรข์องเรา (มีอยู่ใน JDK เท่านั้น)– วิธีการใช้: javac <options> <ชื่อไฟล์>
– ชื่อไฟล์จะต้องมีนามสกุลเป็น ‘java’
• ถ้าการคอมไพล์ส าเร็จ ผลลัพธ์ที่ได้ คือ ไบต์โค้ด ซึ่งบรรจุอยู่ในไฟล์นามสกุล ‘class’ – โดยส่วนใหญ่ เราเรียกไฟล์นี้ว่า คลาสไฟล์
– โดยทั่วไป ผลลัพธ์จะถูกเก็บไว้ ในไดเร็คทอรีปัจจุบัน
– Options ‘-d <ไดเร็คทอร>ี’ ก าหนดไดเร็คทอรีที่จะเก็บคลาสไฟล์
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
วิธีการรันโปรแกรม
• java คืออินเตอร์พริตเตอร์ของเรา (มีอยู่ในทั้ง JDK และ JRE) – การใช้งาน: java <options> <ชื่อคลาส> <อาร์กิวเมนต>์– ชื่อคลาสที่ใช้ในค าสั่ง ต้องไม่เขียน ‘.class’– คลาสที่จะรันจะต้องมีเมธอด
• public static void main (String[] args)
• โปรแกรมจาวา สามารถบรรจุไว้ใน จารไ์ฟล์– จาร์ไฟล์ คือ ไฟล์ที่มีนามสกุล ‘jar’– การรันโปรแกรมในจาร์ไฟล์: java <options> –jar <จาร์ไฟล์> <args>– จาร์ไฟล์บางไฟล์ อาจไม่สามารถน ามารันได้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
class A {
}
Source Code
Java Virtual Machine
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
จาวาไลบรารี• คลาสไฟล์หลายๆ ถูกรวบรวมไว้ภายใตจ้าร์ไฟล์ (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) ทีโ่ปรแกรม
ท างานอยู่
แนวทางการเขียนโปรแกรม
• วัตถุประสงค์ในการเขียนโปรแกรม คือ การแก้ปัญหา
• ขั้นตอนทั่วไปในการแก้ปัญหาคือ– ศึกษาและท าความเข้าใจปัญหา
– แบ่งปัญหาออกเป็นส่วนๆ ถ้าปัญหาหรือโจทย์ใหญ่ หรือซับซ้อน
– ออกแบบล าดับ และแนวทางในการแก้ปัญหา
– มองหาแนวทางการแก้ปัญหาแบบอื่นๆ ที่อาจจะดีกว่า และท าให้ดีขึ้น
– ท าการสร้างโปรแกรม / เขียนโปรแกรม / เขียนโค้ด
– ทดสอบและแก้ไขปัญหาที่ตรวจพบ
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
• TOP-DOWN
• MODULE
การแก้ปัญหา จงรับตัวเลขเข้ามา 10 จ านวน แล้วเรียงจากมาไปหาน้อย
7 9 8 5 4
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
4 5 7 8 9
SORT
9 8 7 5 4
ALGORITHMS
การแก้ปัญหา จงรับตัวเลขเข้ามา 10 จ านวน แล้วเรียงจากมาไปหาน้อย
• รับตัวเลข• มีจ ำนวน จ ำกัดหรือไม่• แล้ว วิธีกำรเรียง ท ำอย่ำงไร• แสดงผลลัพธ์
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
PSEUDOCODE
1. START
2. …
3. …
4. …
5. ….
6. STOP/FINISH
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
• Identifier
• Data Member
• Method Member
• Literals
• Data Type
• Primitive Data Type
• Abstract Data TypeLec02_introduction_to_java.pptx---ภาษาจา
วาเบ้ืองตน้
หวัขอ้ทีจ่ะเรยีนภาษาจาวา
• สัญลักษณ์แทน ค าต่างๆ ในภาษาจาวา
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
package B
• แพ็กเกจ (package) คือ สิ่งที่ใช้ในการรวบรวมคลาสที่มีความเกี่ยวข้องสัมพันธ์กันไว้ในกลุ่มเดียวกัน เพื่อให้ง่ายต่อการจัดการและง่ายต่อการค้นหาคลาส
แพ็กเกจและอิมพอร์ต (Package and Import)
package A
packageB
package C
PackageC import PackageB
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
import java.util.scanner;
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
ภาษาการโปรแกรม ‘จาวา’
• ภาษาจาวา มีค า และสัญลักษณ์ต่างๆ ที่เราใช้ในการเขียนโปรแกรม
• ภาษาจาวา ก าหนดแนวทางในการผสมค า และสัญลักษณ์เข้าด้วยกัน เพื่อให้ได้ชุดค าสั่ง (program statements) ที่ถูกต้อง
• จาวา สร้างขึ้นโดยบริษัท Sun Microsystems– เป็นที่รู้จักตั้งแต่ปี 1995 และได้รับความนิยมอย่างต่อเนื่อง
– เป็นภาษาการโปรแกรมเชิงวัตถุ (OO: Object-oriented)
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
โครงสร้างโปรแกรมจาวา
• ในการเขียนโปรแกรมจาวา:– โปรแกรมใดๆ เกิดจาก คลาส (class) จ านวนหนึ่งคลาสหรือมากกว่า
– คลาสหนึ่งประกอบด้วย เมธอด (method) ต่างๆ
– เมธอดหนึ่งประกอบด้วย ค าสั่ง (statement) ต่างๆ
• ค าเหล่านี้จะได้เรียนรู้ต่อไปในบทถัดๆ ไป
• โปรแกรมจาวา จะต้องมีเมธอด ที่ชื่อว่า main เสมอ
ไฟลจ์าวาหน่ึงไฟล ์(มกั) มี คลาสหน่ึงคลาสไฟลจ์าวาท่ีมี คลาส ท่ีมี เมธอด ช่ือ main เรียกวา่โปรแกรมจาวา
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
โครงสร้างโปรแกรมจาวา
public class MyProgram
{
}
// ค าอธิบายเกี่ยวกับ class นี้
หัวของ class
ตัวของ class
เราสามารถใส่ค าอธิบายโปรแกรมได้เกือบทุกที่ในคลาส
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
โครงสร้างโปรแกรมจาวา
public class MyProgram
{
}
public static void main (String[] args)
{
}
// ค าอธิบายเกี่ยวกับ class นี้
// ค าอธิบายเกี่ยวกับเมธอดนี้
หัวของ methodตัวของ method
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
โครงสร้างของโปรแกรมอย่างง่าย ๆ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---ภาษาจาวาเบ้ืองตน้
ตัวอย่างโปรแกรม 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---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
• OO• Traditional
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
HelloWorld
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
การพิมพ์ตัวแปร
• println(“X”)
• println(x)
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้ String Operator
“” double quote‘’ single quote
ประเภท หรือ ชนิดข้อผิดพลาด(ERROR)
• 1. Syntax Error
• 2. Run Time Error
• 3. Logical Error
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Syntax Error
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
จะตอ้งไม่มี syntax error ถึงจะรันโปรแกรมผา่น
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
warning
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
มีการน าค่า x ไปใชง้าน
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
ไม่มี Syntax Error
RUN-TIME error
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Compile ผา่นRun ไม่ผา่น
Syntax Error
• เป็นขอ้ผิดพลาดท่ีเกิด จากการพิมพค์ าสั่งไมถ่กูตอ้งตามหลกัไวยากรณ์ของภาษานัน้ เช่น พิมพ ์ พิมพต์ก พิมพค์ าสั่งไมค่รบ พิมพต์วัเลก็ตวัใหญ่ไม่ตรง
• ต.ย.
• System.out.printnl(“”)
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Logical Error
• Compile ผา่น
• RUN ได้• แตค่ าตอบผิด
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
เกิดจากตีความหมายโจทย ์ผดิหรือ เขียน algorithm ผดิ
F6
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
สร้าง Project ใหม่ ช่ือ Test_Opt02
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
สูตร พ.ท. : ½*ฐ*ส
ฐาน
สูง
วเิคราะหปั์ญหา (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---ภาษาจาวาเบ้ืองตน้
วธิกีารประมวลผลAlgorithm >> PSEUDO CODE
1. START
2. …
3. STOP
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
1. INTIALIZATION STAGE2. INPUT STAGE3. PROCESS STAGE4. OUTPUT STAGE
วธิกีารประมวลผล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
วธิกีารประมวลผล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
วธิกีารประมวลผล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
การรับ/น าเขา้ขอ้มูล ใน java & netbean
• 3 วิธี– รับผ่านอาร์กิวเมนท์
– รับโดยใช้คลาส Scanner
– รบัโดยใช ้BuffedReader
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
รับผ่านอาร์กวิเมนท์
• รบัโดยการก าหนด อารกิ์วเมนต์ ใน netbean
• ไปท่ี RUN
• เลือก Set Project Configuration
• เลือก Customize
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
ถา้ตอ้งการรับขอ้มูล 2 ชุด ใหก้ าหนดดงัรูป
10 20
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
ฐาน สูง
Incompaoble types:String cannot be converted to double
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Type Converting
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Stringdouble
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
F6
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
แกไ้ข อาร์กิวเมนท์ เป็น
• 12.5 10.25
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
วิธีรับขอ้มูลโดยใชค้ลาส 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---ภาษาจาวาเบ้ืองตน้
สร้าง Project ใหม่
• CalTrapedZoidArea
• Trapezoid แปลว่าสี่เหลี่ยมคางหมู
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
½*(ด1 + ด2)*ส
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
½*(ด1 + ด2)*ส
ด้านที่ 1
ด้านที ่2
สูง
• 1. import java.util.Scanner;
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
2. ก าหนด ตวั ออบเจก็ตข์องคลาส Scanner ดว้ยค าสัง่
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
3. รบัคา่ แตล่ะชนิด ดว้ย sc.Next
เช่น int x;
x = sc.NextInt();
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
ทดสอบ 10 20 5
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
RUN
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
จงหา ปริมาตร ทรงกระบอก
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
10 เมตร
30 เมตร
9,420
โปรเจ็กต์นีค้วรตั้งช่ือว่าอย่างไรVolume cylindrical
calVolume_Cylindrical
สร้าง Project ใหม่
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
calVolume_Cylindrical
Import Scanner class
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
ขอ้มูลน าเขา้/ตวัแปรท่ีใช้
• R: Radius แทน รัศมี
• H: Height แทน สูง
• Pi = 3.14 ไม่ตอ้งน ำเข้ำ เป็นค่ำคงที่
• Volume_Cylendrical แทน ปริมำตร
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
CODE
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Function
• การเข้าถึง Function ของคลาส ปกติ จะต้องวัตถุก่อน ถึงจะใช้ได้
• ถ้า ไม่ต้องการสร้าง วัตถุ ให้ใส่ static น าหน้า Function/Method
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Attributes >> data memberFunction >> method member
OO java
class
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
คน รถยนต์เป็นเจ้าของ
1 *
ช่ือนามสกลุ
Real worldProblem Domain
class
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
คน รถยนต์เป็นเจ้าของ
1 *
ช่ือนามสกลุ
Real worldProblem Domain
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
รถยนต์
ล้อ เครื่องยนต์ ตัวถัง
Require Component
Optional Component
1
1
1
4..4
Aggregation Abstraction
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
CAR
aCAR :CARรถยนต ์คนัหน่ึง
Is member Of
class CAR {
}
CAR aCar = new CAR();
aCar.Uturn();
hello
• D:\Java_OOP
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
• D:\Java_OOP\Hello2016\src\hello2016
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Set as Main Project
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
args[1]
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
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---ภาษาจาวาเบ้ืองตน้
term
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Statement
Expression
ถา้เป็น int แลว้ไม่ก าหนดค่า ค่า default เป็น null
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
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
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---ภาษาจาวาเบ้ืองตน้
Case sensitive/ None case sensitive
• int x;
• X=8;
• X=20;
• X=50;
• X= x-5;
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Syntax Error
Project2_24_07_2559
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Project2_24_07_2559
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
• ไมพ่บสัญลักณ์
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Syntax(3)
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
String Operator , concade
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
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
ค าถาม ถ้า b= -200 ?
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
เราจะรู้ได้อย่างไร ว่า 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);
จงเขียนโปรแกรมเพื่อตรวจสอบว่าค่า สูงสุด-ต่ าสุด แต่ละชนิด เป็นเท่าไร
• Byte
• Short
• Int >> Integer
• Long
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
1 byte
2 byte
4 byte8 byte
•อาย ุคน•น ้าหนกั•ส่วนสูง•ราคาสินคา้•จ านวนหอ้งพกั•จ านวน นกัศึกษา มรภ.พระนคร•จ านวน อาจารย ์มรภ. พระนคร•จ านวน นกัศึกษา ทัว่ประเทศ•จ านวน ประชากร มด•จ านวน ประเทศในโลก
จงเขียนโปรแกรมแก้ปัญหาโจทย์ต่อไปนี้
• ก าหนด 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ตคีวามหมายผดิหรือ คดิอลักอริทึม ผดิ
int
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
การประกาศตัวแปร + การก าหนดค่า
• การประกาศตัวแปร 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;
ถ้าใส่ค่าที่เกินที่จะรับได้ จะแจ้ง error
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
RUN
• ถ้าต้องการทดสอบการท างานในเบ้ืองต้นให้ คลิกที่ ปุ่ม
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
• ถ้าต้องการเปิด ไฟล์ source code
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
การแสดง ข้อความไปที่หน้าจอ
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Hello Java 2016
• พิมพ์แล้ว เคอร์เซอร์ กระโดดขึ้นบรรทัดใหม่ println
• การพิมพ์แล้ว เคอร์เซอร์ ไม่ขึ้นบรรทัดใหม่ print
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
ให้เขียนโปรแกรมแสดงข้อความดังนี้
ID : ……………………….. Name : …………………………
Program : …………….. ………………………………..
Faculty : ……….……. University : …………………………………….
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
print()
print()
print()
println()
println()
println()
ใน DOS
• javac hello.java ➔ hello.class
• java hello
• java hello 5 10
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
เมื่อรัน เกิดข้อผิดพลาดในลักษณะแบบ
• เรา สามารถรับค่า บางอย่างผ่านทาง main ได้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
args[] เป็นสตริง/ข้อความ จะไปค านวณไม่ได้
• จ าเป็นต้องแปลงเป็นชนิดจ านวนเต็ม ด้วย เมธอด parseInt
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
• RUN
• Set Project Configuration
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
INPUT PROCESS OUTPUT
• 10
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
[0] [1] [2] [3]
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
4-1
ไปที่ เมนู RUN >> Customize
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Empty classes
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
• .java
• .class
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
1. มีกี่ package
2. มีกี่ไฟล์
3. มี่กี่คลาส
4. มีกี่ วัตถุ
5. มีกี่ แอตทริบิวต์
6. มีกี่เมธอด
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
c
class hello
class Aclass B
• มีเมธอด 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---ภาษาจา
วาเบ้ืองตน้
ค าอธิบายโปรแกรม
• ใช้อธิบายหน้าที่การท างานของคลาส เมธอด หรือค าสั่ง เพื่อความง่ายในการท าความเข้าใจ
• เขียนด้วยภาษาอะไรก็ได้ (ภาษาไทยก็ได้)• ไม่มีผลกระทบกับการท างานของโปรแกรม• เราสามารถเขียนค าอธิบายโปรแกรมได้ 3 แบบ คือ
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
มี 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---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
ค าระบุชื่อ(Identifier)
• ค าระบุชื่อ (Identifier) คือ ค าที่ผู้พัฒนาโปรแกรมใช้ในโปรแกรม– เกิดจาก ตัวอักษร ตัวเลข เครื่องหมาย_ และ $– จะต้องไม่ขึ้นต้นดว้ยตัวเลข
• จาวา แยกความแตกต่างระหว่างตัวเลก็และตัวใหญ่– Total และ total คือ ค าระบุช่ือที่ต่างกัน
• ชื่อ คลาส และ เมธอด เป็นไปตามกฎค าระบุชื่อ• ค าระบุชื่อ บางค า เป็น ค าสงวน เราไม่สามารถน ามาตั้งชื่อของเราได้• ความยาวตัวอักษรไม่ควรเกิน 65536 ตัวอักษร
– ในทางปฏิบัต ิไม่ควรเกิน 31 ตัว
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
การตั้งชื่อ (identifier)
• จะมีเครื่องหมาย หรือตัวด าเนินการไม่ได้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
ห้ามซ้ ากับค าสงวน
• ค าสั่ง ค าสงวน ชนิดตัวแปร จะมาก าหนดเป็นช่ือไม่ได้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
int int;
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
statement ประโยค
_____ ;x = 5;int x;
x = x +3 – 2;
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
การประกาศตวัแปร ถือวา่ เป็นรูปประโยค
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
การประกาศตัวแปร
data_type var_name ;
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
จงวิเคราะห์ปัญหา ของการหาค่าเฉลี่ยของตัวเลข 3 จ านวน
• เช่น ค่าเฉลี่ยของ 28 35 47 = ?
• เช่น ค่าเฉลี่ยของ 74 45 34 = ?
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
กำรวิเครำะห์ปัญหำ
• สิ่งที่โจทย์ต้องกำร
• รูปแบบผลลัพธ์
• ข้อมูลน ำเข้ำ
• ตัวแปรที่ใช้
• วิธีกำรประมวลผล
โจทยต์อ้งการจริงๆ คือใหเ้ขียนโปรแกรมแต่ก่อนจะเขียนตอ้งวเิคราะห์ปัญหาไดแ้ลว้
สิ่งที่โจทย์ต้องการ
1. สิ่งที่โจทย์ต้องการ คือ ค่าเฉลี่ยของตัวเลข 3 จ านวน
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
รูปแบบผลลัพธ์
เป็นการออกแบบจอ
สมัยก่อน(DOS)ไม่มีหน้าจอมาให้ ต้อง ออกแบบ
โปรแกรมยุค ปัจจุบัน เป็น หน้าจอ ออกแบบ หน้าจอผลลัพธ์ เป็นแบบเดียว WYSIWYG
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
ค่ำเฉลี่ยของตัวเลข 3 ชุด คือ xx.xx
ข้อมูลน าเข้า
• ไม่ได้ น า / รับจาก main()• ถ้าต้องการรับ ก็รับ ตัว 3 ตัว x1 x2 x3
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
4. ตัวแปรที่ใช้
• INPUT x1 x2 x3x1 แทน ตัวเลขชุดท่ี 1x2 แทน ตัวเลขชุดท่ี 2x3 แทน ตัวเลขชุดท่ี 3
• PROCESS TOTAL , AVGTOTAL แทน ค่าผลรวมของตัวเลข 3 จ านวนAVG แทน ค่าเฉลี่ยของตัวเลข 3 จ านวน
• OUTPUT : AVGAVG แทน ค่าเฉลี่ยของตัวเลข 3 จ านวน
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
5. วิธีการประมวล / ALGO / PSEUDOCODE
1. เริ่มต้น
2. ก าหนดตัวแปรที่ใช้
3. รับค่าเข้ามา
4. หาผลรวม
5. เอาผลรวม หารตัว 3 {เรารู้ว่า 3 ตัว}
6. แสดงค่า เฉลี่ย
7. สิ้นสุด
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
คร้ังที่ 1
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
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
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
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
5. วิธีการประมวล / ALGO / PSEUDOCODE
class {
}
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
OUTPUT
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
รับ จาก อาร์กิวเม้นต์
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Type Casting
• การแปลงชนิดข้อมูล – จาก String เป็น int
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
การแปลงด้วย Type Wrapper Class
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
การตั้งชื่อตามรูปแบบ การแนะน าของ Oracle
• เมื่อต้ังช่ือ คลาส ควรต้ังช่ือคลาสเป็นภาษาอังกฤษ และตั้งพยัญชนะตัวแรกเป็นตัวพิมพใ์หญ่ตัวอักษรที่เหลือในค าเดียวกันให้เป็นพิมพ์เล็ก– เช่น MyClass, HelloWorld, HelloJava, CalculateCirleArea เป็นต้น
• เมื่อตั้งชื่อดาต้า หรือตัวแปร ตัวอักษรทุกตัวเป็นพิมพ์เล็กหมด – เช่น color, mynames, height, width เป็นต้น
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
การตั้งชื่อตามรูปแบบ การแนะน าของ Oracle(ต่อ)
• เมื่อต้ังช่ือ ดาต้าหรือตัวแปร ที่เก็บค่าคงที่ (const) ในภาษาจาวา จะมีคีย์เวิรด์ final ก ากับไว้ด้านหน้า ให้ใช้ตัวอักษรทุกตัวเป็นพิมพ์ใหญ่– เช่น SIZE, VAT, PI , AMOUNT เป็นต้น
• เมื่อต้ังช่ือเมธอด ก าหนดให้ตัวแรกในช่ือเป็นตัวอักษรพิมพ์เล็ก ส่วนค าถัดไปตัวขึ้นต้นเป็นพิมพ์ใหญ่ที่เหลือเป็นพิมพ์เล็ก – เช่น countMoney, openFile, setSize, setWeight, setHeight เป็นต้น
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
ค่าคงที่
• ไม่สามารถเปลี่ยนแปลงค่าได้ภายหลังประกาศแลว้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
• ตัวอย่างที่ถูกต้องnumber
Numb
Sum_$
$_100
asian4u
Public
ตัวอย่างการตั้งชื่อต่างๆ (identifier)
• ตัวอย่างที่ไม่ถูกต้อง
4Thai
All/done
get-big-fast
5Soi3_AsokRoad
public
Final-1
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
ค าสงวน (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---ภาษาจาวาเบ้ืองตน้
ที่ว่างสีขาว (White space)
• ช่องว่าง บรรทัดว่างๆ และแทบ เรียกว่า white space
• White space ใช้ส าหรับการแยกค า และ สัญลักษณ์ต่างๆ ในโปรแกรม
• ที่ว่างที่มากกว่าช่องว่างหนึ่งอัน จะไม่มีผลกับโปรแกรม
• จาวาโปรแกรมหนึ่งๆ อาจถูกจัดรูปแบบต่างกัน แต่ท างานเหมือนกัน
– โปรแกรมควรถูกจัดรูปแบบให้ง่ายต่อการอ่าน
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
SimpleClass1.java
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
SimpleClass2.java
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
2. Data member
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
2. Data member
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
New Empty file
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
sampleClass
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
การสร้างประโยค ต้องอยู่ Method
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Data Member
Method Member
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() {}
}
private
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
private
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
3. Method Member
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
เป็นค่าที่ใช้ในการก าหนดขอบเขตการใช้งานตัวแปร เมธอด และคลาส
public◦ เรียกใช้ได้เมื่ออยู่ใน Package เดียวกัน หรือ ต่าง Package กัน
protected◦ เรียกใช้ได้เมื่ออยู่ใน Package เดียวกัน หรือเป็นคลาสที่ Inherit ไป (Subclass) แต่อยู่ต่าง
Package
private◦ เรียกใช้ได้เมื่ออยู่ใน คลาสเดียวกันเท่านั้น
default◦ ถ้าไม่ได้ระบุคีย์เวิร์ดตัวใดตัวหนึ่งไว้ จะเรียกใช้ได้เมื่ออยู่ใน package เดียวกัน
Accessibility
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
3. Method Member
4. Literals
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
4. Literals
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
4. Literals
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
4. Literals
• Boolean
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
4. Literals
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
4. Literals
5. Data Type
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
5.1 Primitive Data Type
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
5.1 Primitive Data Type
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
5.1 Primitive Data Type
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
• 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---ภาษาจาวาเบ้ืองตน้
ค่าคงที่ตัวเลขจ านวนเต็ม (Integer Literal)
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
ค่าคงที่ตัวเลขจ านวนเต็ม (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---ภาษาจาวาเบ้ืองตน้
• คลาสของชนิดข้อมูลเลขจ านวนเต็มใน Java ซึ่งประกอบด้วย Byte , Short , Integer , Long
คลาสของชนิดข้อมูล
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
ค่าคงที่ตัวเลขจ านวนจริง (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---ภาษาจาวาเบ้ืองตน้
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---ภาษาจาวาเบ้ืองตน้
• มีด้วยกัน 2 ค่าคือ– true แทนค่าความเป็นจริงที่เป็นจริง
– false แทนค่าความเป็นจริงที่เป็นเท็จ
• ตัวอย่าง
ค่าคงที่เชิงตรรก (Boolean Literal)
boolean myFlag = true;boolean cStatus = false;
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
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---ภาษาจาวาเบ้ืองตน้
\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---ภาษาจาวาเบ้ืองตน้
• เป็นอักขระพิเศษที่เป็นเสมือนค าสั่งในการแสดงคือ
ตัวอักษรควบคุมการพิมพ์ (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---ภาษาจาวาเบ้ืองตน้
• คือการประกอบกันของตัวอักขระหลายๆ ตัวเข้าเป็นข้อความ
ค่าคงที่ข้อความ (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---ภาษาจาวาเบ้ืองตน้
Escape Character
• Escape_Character
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
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---ภาษาจาวาเบ้ืองตน้
• เป็นสิ่งที่ใช้เก็บค่า ซ่ึงอาจจะเปลี่ยนแปลงไปตามสถานการณ์ ตัวแปรจ าแนกได้ 2 ประเภทคือ– ตัวแปรพื้นฐาน (Primitive data type) คือตัวแปรที่มีชนิดข้อมูลพื้นฐาน
– ตัวแปรอ้างอิง (Abstract data type) คือตัวแปรที่เสมือนเก็บกรอบของวัตถุ ซึ่งใช้อ้างอิงแทนวัตถุ
ตัวแปร (Variable)
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
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---ภาษาจาวาเบ้ืองตน้
• รูปแบบการก าหนดตัวแปร
การก าหนดตัวแปรพื้นฐาน
<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---ภาษาจาวาเบ้ืองตน้
int x = 123;
แนวคิดนามธรรมของตัวแปร
address 1000
name x
value 123
address 1000
•
•
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
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---ภาษาจาวาเบ้ืองตน้
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---ภาษาจาวาเบ้ืองตน้
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---ภาษาจาวาเบ้ืองตน้
boolean cond1;
boolean sold, state;
boolean endOfList = false;
boolean EveryThingOK = true;
Defining Boolean Variables
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
• String เป็นคลาสหนึ่งใน Package “java.lang” ท าหน้าที่เป็นข้อมูลที่เป็น ชุดของตัวอักษร
• เป็นคลาสส าเร็จรปูสามารถเรยีกใช้ได้ทันที • โดยมีรูปแบบการสร้างตัวแปรแบบ String ดังนี้
การเก็บชุดของตัวอักษรด้วย String
String VariableName =“Value”;
String myName = “noppadon”;
String myName = “”;
String myName = “\”noppadon\””;
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
ถ้าต้องการให้ตัวแปรมีค่าคงที่ตลอดการใช้งาน ไม่สามารถเปลี่ยนแปลงค่าได้ จะใช้ค าว่า final ใส่ไว้หน้าชนิดของตัวแปร เช่น
final int x = 1;
ค่าของ x จะไม่สามารถเปลี่ยนแปลงได้ ตลอดการท างานของโปรแกรม
การประกาศตัวแปรค่าคงที่
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
• เป็นตัวแปรที่ใช้อ้างอิงถึงวัตถุที่ถูกสร้างขึ้นมาจากคลาส อาจกล่าวว่ามันคือ พอยเตอรก์็ได้ ถ้าเปรียบในภาษาซีแล้ว แต่ในจาวาไม่มีพอยเตอร์ จึงเรียกว่าตัวแปรอ้างอิง
ตัวแปรอ้างอิง (Abstract Data Type)
MyClass i_am = new MyClass();
i_am MyClass
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
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---ภาษาจาวาเบ้ืองตน้
ใช้คลาสที่อยู่ใน 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---ภาษาจาวาเบ้ืองตน้
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.
แปลง String เป็น Integer ใช้intNum = Interger.parseInt(strNum);แปลง String เป็น Double ใช้douNum = Double.parseDouble(strNum);
การแปลงชนิดข้อมูลตัวอักษรเป็นตัวเลข
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
5.2 Reference Data Type
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
6. Variables
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
6. Variables
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
6.1 Class Variables
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
6.1 Class Variables
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
6.1 Class Variables
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
6.1 Class Variables
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
ข้อผิดพลาด
• ข้อผิดพลาดในการพัฒนาโปรแกรม มี 3 แบบ คือ
• Syntax Error หรือ Compile Error คือการพบข้อผิดพลาดกบัโครงสร้างทางภาษา – เรียกว่า ความผิดพลาดขณะคอมไพล์ (compile-time errors)
– ถ้าความผิดพลาดนี้ยังอยู่ คลาสไฟล์จะไม่ถูกสร้างขึ้น
• โปรแกรมผิดพลาดในขณะตอนท างาน – เช่น ความพยายามในการหารตัวเลขด้วย 0
– อาจท าให้โปรแกรมหยุดท างานทันที
– เรียกความผิดพลาดแบบนี้ว่า ความผิดพลาดขณะรันโปรแกรม (run-time errors)
• โปรแกรมรัน แต่ได้ผลลัพธ์ไม่ถูกตอ้ง– เรียกว่า ความผิดพลาดทางตรรกะ (logical errors)
Run-Time Error
Logical Error
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้
• สร้างโปรเจ็คโดยตั้งชื่อโปรเจ็คว่า Exersice1 ชื่อpackage showmyname ชื่อไฟล์ ShowMyName
• เขียนโปรแกรมให้แสดงผลลัพธ์ดังนี้
Exercise-01
**************************** Noppadon Phumeechanya ** Group 10.1X ** ID 4932XXXXX ****************************
ชือ่นักศกึษา
หมูเ่รยีน
รหสั
Lec02_introduction_to_java.pptx---ภาษาจาวาเบ้ืองตน้