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

Post on 31-Dec-2019

4 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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---ภาษาจาวาเบ้ืองตน้

top related