Your SlideShare is downloading. ×
  • Like
1.Introduction to java
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

1.Introduction to java

  • 3,200 views
Published

สื่อการเรียนการสอน เรื่อง การโปรแกรมเชิงวัตถุ โดยคุณ Kan

สื่อการเรียนการสอน เรื่อง การโปรแกรมเชิงวัตถุ โดยคุณ Kan

Published in Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
3,200
On SlideShare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
63
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 140-140 Object-Oriented Programming การโปรแกรมเชิงวัตถุ 1. Introduction to Java Faculty of Technology and Environment Prince of Songkla University, Phuket Campus 2/2551
  • 2. Objectives  วัตถุประสงค์  เข้าใจความแตกต่างของ Structure Programming กับ OOP  รู้จักเทคโนโลยีจาวา  เข้าใจขั้นตอนการพัฒนาโปรแกรมด้วยภาษาจาวา  เข้าใจโครงสร้างโปรแกรมภาษาจาวา  เขียน คอมไพล์ และรันโปรแกรมจาวาง่าย ๆ ได้  รู้จักข้อผิดพลาดในการเขียนโปรแกรม  อธิบายข้อดีของภาษาจาวาได้Object-Oriented Programming 2/2551 2
  • 3. Contents  Structure programming VS Object-oriented programming  Java programming language  Java platform  Java Development Kit  Basic Java application  How to compile and run program?  Type of errorObject-Oriented Programming 2/2551 3
  • 4. Structure Programming VS OOP  Structure programming - การโปรแกรมเชิงโครงสร้าง  เขียนโปรแกรมโดยแตกระบบงานออกเป็นหน้าที่งานต่าง ๆ (function)  การแก้ไขหรือข้อผิดพลาดอาจส่งผลกระทบต่อส่วนอื่น เพราะมีการใช้ข้อมูล บางอย่างร่วมกัน  ตัวอย่างภาษาโปรแกรมเชิงโครงสร้าง ได้แก่ ภาษาซี ปาสคาล  Object-oriented programming - การโปรแกรมเชิงวัตถุ  เขียนโปรแกรมโดยแตกระบบออกเป็นวัตถุ โดยแทนวัตถุที่มีอยู่จริง  วัตถุจะถูกกาหนดให้มีคุณสมบัติและพฤติกรรมเพื่อดาเนินงานต่างๆ  ตัวอย่างภาษา OOP เช่น ภาษาจาวา C#Object-Oriented Programming 2/2551 4
  • 5. Structure Programming VS OOP ตัวอย่าง การแตกระบบลงทะเบียน  Structure Programming ข้อมูลที่สนใจ -รหัสนักศึกษา  ลงทะเบียนเรียน - ชื่อ สกุล  ชาระเงิน -สาขาวิชา  เพิ่มรายวิชา  OOP พฤติกรรมในระบบ  นักศึกษา - ลงทะเบียน  ใบลงทะเบียน - เพิ่มวิชา -ชาระเงิน  รายวิชา  ใบเสร็จรับเงินObject-Oriented Programming 2/2551 5
  • 6. Structure Programming VS OOP  OOP Benefits  การวิเคราะห์ปัญหาใกล้เคียงกับการคิดของคนทั่วไป  การแบ่งระบบเป็นวัตถุ ทาให้เป็นข้อมูลมีความเป็นอิสระ  การ reuse ทาได้ง่ายกว่า Structure Programming พัฒนาโปรแกรมได้เร็ว  แก้ไขและบารุงรักษาระบบได้ง่ายObject-Oriented Programming 2/2551 6
  • 7. Java Programming Language  Programming languages คือ ภาษาที่ใช้ในการเขียนโปรแกรม  โปรแกรมที่เขียนขึ้นสามารถนามาใช้งานได้ในคอมพิวเตอร์  ภาษาจาวา เป็นภาษาการเขียนโปรแกรมระดับสูง  พัฒนาโดยบริษัท Sun Microsystems (www.sun.com)  เวอร์ชั่นแรกเริ่มใช้ในปี ค.ศ. 1996  ปัจจุบันเวอร์ชั่น 6 ต้องถูกแปลให้เป็นภาษาเครื่องก่อน จึงจะสามารถประมวลผลหรือทางานได้Object-Oriented Programming 2/2551 7
  • 8. Java Platform  Platform - hardware or software environment in which a program runs  เป็นสภาพแวดล้อมหรือระบบที่โปรแกรมอาศัยทางาน  อาจรวมทั้งฮาร์ดแวร์และซอฟต์แวร์ เช่น • Wintel platform หมายถึง คอมพิวเตอร์ที่ใช้ CPU Intel และ OS Windows  อาจหมายถึงซอฟต์แวร์อย่างเดียว เช่น • ระบบปฏิบัติการ Windows, Linux, Unix, Mac OS • โปรแกรมที่เป็นสภาวะแวดล้อมในการพัฒนาซอฟต์แวร์อื่น ๆ (Integrated Development Environment : IDE) เช่น VB.Net, Eclipse, NetBeanObject-Oriented Programming 2/2551 8
  • 9. Java Platform  Java platform เป็นแพลตฟอร์มที่เป็นซอฟต์แวร์ ซึ่งสามารถรันโปรแกรม จาวา  Java Development Kit (JDK) คือ ชุดพัฒนาโปรแกรมภาษาจาวา สามารถ download ได้ที่ http://java.sun.com  JDK ประกอบด้วย Java  ตัวแปลภาษาจาวา (Java compiler) Compiler JDK  สภาพแวดล้อมสาหรับรันโปรแกรมจาวา JRE (Java Runtime Environment หรือ JRE) API • JVM (Java Virtual Machine) JVM • Java API (Library)Object-Oriented Programming 2/2551 9
  • 10. http://java.sun.com/javase/technologies/index.jsp#overviewObject-Oriented Programming 2/2551 10
  • 11. Edition of Java Java platform แบ่งเป็น 3 ประเภทตามการใช้งาน ดังนี้  Java Standard Edition (Java SE) สาหรับเขียนโปรแกรมทั่วไปและโปรแกรม ที่ทางานบนเว็บบราวเซอร์ทเี่ รียกว่า applet  Java Enterprise Edition (Java EE) สาหรับเขียนโปรแกรมระดับองค์กร โดย เพิ่มความสามารถจาก Java SE เพื่อรองรับการทางานสาหรับการให้บริการใน ระบบขนาดใหญ่ได้  Java Micro Edition (Java ME) เป็น platform สาหรับเขียนโปรแกรมบน อุปกรณ์อิเล็กทรอนิกส์เช่น โทรศัพท์มือถือ PDAObject-Oriented Programming 2/2551 11
  • 12. From source code to running program Class files RunningEditor Source file Compiler Interpretor Program Library filesObject-Oriented Programming 2/2551 12
  • 13. Java Compiler  Compiler เป็นโปรแกรมทีใช้แปลภาษาระดับสูงเป็นภาษาเครื่องซึ่งเป็น ่ ชุดคาสั่งที่ CPU สามารถนาไปประมวลผลได้  Java Compiler คือ ตัวแปลภาษาจาวา ทาหน้าที่แปลรหัสคาสั่งภาษาจาวา (source code) ให้เป็นชุดคาสั่งที่เรียกว่า bytecode Source code  compiled by  Bytecode (file.java) Java compiler (file.class) (javac.exe)Object-Oriented Programming 2/2551 13
  • 14. Write once, run anywhere (WORA)  ปกติโปรแกรมภาษาอื่น ๆ เช่น ภาษาซี เมื่อถูกแปลจากเครื่องหนึ่งไม่ สามารถนาไปใช้งานกับเครื่องที่ใช้ภาษาเครืองต่างกันได้ ่ (เครื่องที่มี CPU ต่างยี่ห้อกัน หรือใช้ระบบปฏิบติการต่างกัน) ั  bytecode ทาให้จาวาเป็นภาษาทีไม่ขึ้นกับระบบปฏิบติการ (platform- ่ ั independent)  โปรแกรมที่เขียนด้วยภาษาจาวาสามารถนาไปประมวลผลบนระบบปฏิบัติการที่ กันได้ เช่น Windows, Linux, Unix หรือใช้ CPU ต่างกัน เช่น Intel, AMDObject-Oriented Programming 2/2551 Bytecode (file.class) 14
  • 15. Java Runtime Environment (JRE)  Java Runtime Environment เป็นโปรแกรมที่ใช้ประมวลผล bytecode ประกอบด้วย  Java Virtual Machine (JVM) หรือ โปรแกรมเครื่องจักรเสมือนจาวาสาหรับ ประมวลผล Bytecode ทาหน้าที่เป็น interpreter แปลไบต์โค้ดเป็นภาษาเครื่อง สาหรับระบบปฎิบัติการนั้น  Library files (Java API-Application Programming Interface) คือ คลาสหลัก ของภาษาจาวา Bytecode  interpreted by JRE  Program (file.class) (java.exe) Library FilesObject-Oriented Programming 2/2551 15
  • 16. Java Runtime Environment (JRE)  เครื่องคอมพิวเตอร์ที่ติดตั้ง JRE ไว้จะสามารถรันโปรแกรมที่เขียนด้วย ภาษาจาวาได้  bytecode ทาหน้าที่เสมือนเป็นภาษาเครื่องสาหรับ JVM ทาให้สามารถนา bytecode ไปใช้งานในเครื่องที่มีการติดตั้ง JVMObject-Oriented Programming 2/2551 16
  • 17. Java Version  Toolkit product version – Developer version  JDK 1- Java 1.1 (1996)  SDK 2 - Java 1.2-1.4 (2000)  SDK 5 - Java 1.5 (2004)  SDK 6 - Java 1.6 JDK = Java Development Kit เป็นชุดพัฒนาโปรแกรมจาวาObject-Oriented Programming 2/2551 17
  • 18. Basic Java Application  JDK ประกอบด้วย Java Compiler และ Java Runtime Enviroment แต่ไม่มีโปรแกรมสาหรับเขียน java source code  สามารถเขียนโปรแกรมจาวาได้โดยใช้ Text editor เช่น Notepad, EditPlus  หรือใช้โปรแกรมที่มีเครื่องมืออานวยความสะดวกในการเขียนโปรแกรม ซึ่งเรียกว่า Integrated Development Environment(IDE) เช่น NetBeans และ Eclipse เป็นต้นObject-Oriented Programming 2/2551 18
  • 19. Basic Java Application  องค์ประกอบหลักของโปรแกรมจาวา  Class คือ ชิ้นส่วนของโปรแกรมที่เล็กที่สุดของภาษาจาวา  แต่ละชิ้นส่วนสามารถนามาประกอบกันเพื่อสร้างเป็นโปรแกรมขนาดใหญ่ๆ ได้  แต่ละคลาสประกอบด้วย method ซึ่งเป็นชุดของการดาเนินงาน  แต่ละเมธอด ประกอบด้วยคาสั่งในการดาเนินงานต่าง ๆ (statement) Class Method1 Statement; Method2 Statement; Statement;Object-Oriented Programming 2/2551 19
  • 20. Ex. 1 Java application HelloWorld คาที่บอกว่าเป็นคลาส ชื่อคลาส comments ไม่มี return type ชื่อเมธอดclassmethod คาสั่งให้แสดงผลไปยังจอภาพ ข้อความที่แสดง statement Object-Oriented Programming 2/2551 20
  • 21. Java Comment  บรรทัดที่ 1,2 – เรียกว่า comments  เป็นคาอธิบายโปรแกรม ไม่ถูกคอมไพล์เป็น bytecode ด้วย java compiler  รูปแบบการเขียน comment  บรรทัดเดียว ให้ใช้เครื่องหมาย // นาหน้า //……your comment……..  หลายบรรทัด จะอยู่ภายในเครืองหมาย /*…………..*/ ่ /*…………your comment ……………………………………..….*/Object-Oriented Programming 2/2551 21
  • 22. Ex.1 Java application HelloWorld  บรรทัดที่ 4 - ประกาศคลาส  คาว่า class เป็นเหมือนตัวบอกถึงชิ้นส่วนของโปรแกรม  รายละเอียดในแต่ละคลาสจะอยู่ภายในวงเล็บปีกกา class {………..}  ภายในคลาสประกอบด้วยเมธอดได้หลายเมธอด  คาว่า public ระบุให้คลาสอื่นทุกคลาสเรียกใช้งานคลาสนี้ได้  HelloWord เป็นชื่อคลาสObject-Oriented Programming 2/2551 22
  • 23. Ex. 1 Java application HelloWorld  บรรทัดที่ 6 - method signature  main เป็นชื่อ method ในจาวา main() จะเป็นเมธอดแรกที่ถูกเรียกให้ทางาน  แต่ละเมธอด มีคาสั่งอยู่ภายในวงเล็บปีกกา {………..}  บรรทัดที่ 8 - statement  เป็นคาสั่งในการพิมพ์ข้อความออกทางจอภาพ  ในโปรแกรมมีได้หลายคาสั่ง แต่ละคาสั่งต้องจบด้วยเครื่องหมาย semicolon ;Object-Oriented Programming 2/2551 23
  • 24. Compile and Run program  การ compile โปรแกรม  เปิด command prompt และย้าย prompt ไปที่ folder ที่จัดเก็บโปรแกรม  ทาการคอมไพล์โดยพิมพ์คาสั่ง javac HelloWorld.java  การรันโปรแกรม  พิมพ์คาสั่ง java HelloWorld ผลลัพธ์Object-Oriented Programming 2/2551 24
  • 25. Class with a main method  ในจาวา ทางานด้วย class – การรันโปรแกรมคือ การรันคลาส  การรันโปรแกรม เป็นการบอกให้ JVM ให้โหลดคลาส Hello ขึ้นมา  จากนั้นทางานใน method main() ซึ่งจะทางานจนหมดคาสั่งใน main()Object-Oriented Programming 2/2551 25
  • 26. Syntax Errors  Syntax error หรือ Compile-time error  Syntax error คือข้อผิดพลาดจากการฝ่าฝืนกฏหรือไวยากรณ์ของภาษา  การตรวจสอบไวยากรณ์ว่าถูกต้องหรือไม่ จะเกิดขึ้นขณะคอมไพล์โปรแกรมโดย คอมไพเลอร์  หากเราเขียนไม่ถูกต้อง คอมไพเลอร์จะแจ้งข้อผิดพลาดให้ทราบ และไม่สร้าง bytecode ให้  เช่น จบคาสั่งโดยไม่มีเครื่องหมาย ; หรือ ใส่วงเล็บปีกกาไม่ครบ เป็นต้น ระวัง ตัวอักษรตัวใหญ่และตัวเล็กในภาษาจาวา ถือว่าเป็นคนละตัวกันObject-Oriented Programming 2/2551 26
  • 27. Syntax Errors Compile…..Object-Oriented Programming 2/2551 27
  • 28. Syntax Errors Compile…..Object-Oriented Programming 2/2551 28
  • 29. Syntax Errors Compile…..Object-Oriented Programming 2/2551 29
  • 30. Syntax Errors Compile…..Object-Oriented Programming 2/2551 30
  • 31. Logic Errors  Logic error หรือ Run-time error  Logic error คือข้อผิดพลาดจากการที่โปรแกรมทางานไม่ตรงกับที่เราต้องการ  โปรแกรมที่เขียนขึ้นถูกต้องตามหลักไวยากรณ์ของภาษาจาวา สามารถคอมไพล์ ได้  อาจสามารถรันโปรแกรมได้แต่ทางานได้ไม่ตรงกับที่เราคิดไว้ หรือทางานไม่ได้  Programmer ต้องตรวจสอบข้อผิดพลาดนี้เอง ตัวอย่างเช่น • ไม่ใส่วงเล็บในการคานวณ • ลาดับคาสั่งผิดObject-Oriented Programming 2/2551 31
  • 32. Logic Errors Compile…..Run…..  Exception คือ ข้อผิดพลาดObject-Oriented Programming 2/2551 32
  • 33. Logic Errors Compile…..Run….. -5  ต้องการให้ทาการคานวณตามลาดับคือ (10-3)*5 = 35  แต่โปรแกรมคานวณให้คือ 10-(3x5) = -5Object-Oriented Programming 2/2551 33
  • 34. ข้อดีของภาษาจาวา  Write once, run anywhere  Code security มีกลไกการตรวจสอบไบต์โค้ด (ฺBytecode verifier) ว่าต้องเป็นโค้ดที่ ไม่ทาให้ระบบเสียหาย  Exception มีกลไกให้โปรแกรมเมอร์จัดการข้อผิดพลาดที่เกิดขึ้นในการรัน โปรแกรม  มี Garbage collection เป็นกลไกจัดการคืนพื้นที่ในหน่วยความจาอัตโนมัติ โปรแกรมเมอร์ไม่ต้องจัดการเอง  มี library ให้ใช้มากมาย – database storage, cryptography, networking, GUI  สนับสนุน OOP  Free !!!Object-Oriented Programming 2/2551 34
  • 35. Summary  Structure programming เน้นการแตกระบบเป็นฟังก์ชั่นการทางาน OOP เน้นการแตก ระบบเป็นวัตถุในระบบ  Java Compiler แปลโปรแกรมที่เขียนด้วยภาษาระดับสูงเป็นภาษาเครื่องสาหรับ JVM เรียกว่า bytecode  โครงสร้างโปรแกรมจาวาประกอบด้วย คลาส ภายในคลาสมีเมธอด แต่ละเมธอดมีคาสั่ง  เมธอด main() เป็นเมธอดที่จะถูกเรียกให้ทางานตอนรันโปรแกรม  Syntax error เกิดในขณะคอมไพล์จากข้อผิดพลาดจากการเขียนโปรแกรมผิด syntax  Logic error เกิดขณะรันจากการที่โปรแกรมทางานได้ไม่ตรงกับที่ต้องการหรือรันไม่ได้Object-Oriented Programming 2/2551 35