35
1. Introduction to Java Faculty of Technology and Environment Prince of Songkla University, Phuket Campus 2/2551 140-140 Object-Oriented Programming การโปรแกรมเชิงวัตถุ

1.Introduction to java

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: 1.Introduction to java

1. Introduction to Java

Faculty of Technology and Environment

Prince of Songkla University, Phuket Campus

2/2551

140-140 Object-Oriented Programming

การโปรแกรมเชิงวัตถุ

Page 2: 1.Introduction to java

2Object-Oriented Programming 2/2551

Objectives

วัตถุประสงค์

เข้าใจความแตกต่างของ Structure Programming กับ OOP

รู้จักเทคโนโลยีจาวา

เข้าใจขั้นตอนการพัฒนาโปรแกรมด้วยภาษาจาวา

เข้าใจโครงสร้างโปรแกรมภาษาจาวา

เขียน คอมไพล์ และรันโปรแกรมจาวาง่าย ๆ ได้

รู้จักข้อผิดพลาดในการเขียนโปรแกรม

อธิบายข้อดีของภาษาจาวาได้

Page 3: 1.Introduction to java

3Object-Oriented Programming 2/2551

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 error

Page 4: 1.Introduction to java

4Object-Oriented Programming 2/2551

Structure Programming VS OOP

Structure programming - การโปรแกรมเชิงโครงสร้าง

เขียนโปรแกรมโดยแตกระบบงานออกเป็นหน้าที่งานต่าง ๆ (function)

การแก้ไขหรือข้อผิดพลาดอาจส่งผลกระทบต่อส่วนอื่น เพราะมีการใช้ข้อมูล

บางอย่างร่วมกัน

ตัวอย่างภาษาโปรแกรมเชิงโครงสร้าง ได้แก่ ภาษาซี ปาสคาล

Object-oriented programming - การโปรแกรมเชิงวัตถุ

เขียนโปรแกรมโดยแตกระบบออกเป็นวัตถุ โดยแทนวัตถุที่มีอยู่จริง

วัตถุจะถูกก าหนดให้มีคุณสมบัติและพฤติกรรมเพื่อด าเนินงานต่างๆ

ตัวอย่างภาษา OOP เช่น ภาษาจาวา C#

Page 5: 1.Introduction to java

5Object-Oriented Programming 2/2551

Structure Programming VS OOP

ตัวอย่าง การแตกระบบลงทะเบียน

Structure Programming

ลงทะเบียนเรียน

ช าระเงิน

เพิ่มรายวิชา

OOP

นักศึกษา

ใบลงทะเบียน

รายวิชา

ใบเสร็จรับเงิน

ข้อมูลที่สนใจ-รหัสนักศึกษา- ชื่อ สกุล-สาขาวิชา

พฤติกรรมในระบบ- ลงทะเบียน- เพิ่มวิชา-ช าระเงิน

Page 6: 1.Introduction to java

6Object-Oriented Programming 2/2551

Structure Programming VS OOP

OOP Benefits

การวิเคราะห์ปัญหาใกล้เคียงกับการคิดของคนทั่วไป

การแบ่งระบบเป็นวัตถุ ท าให้เป็นข้อมูลมีความเป็นอิสระ

การ reuse ท าได้ง่ายกว่า Structure Programming พัฒนาโปรแกรมได้เร็ว

แก้ไขและบ ารุงรักษาระบบได้ง่าย

Page 7: 1.Introduction to java

7Object-Oriented Programming 2/2551

Java Programming Language

Programming languages คือ ภาษาที่ใช้ในการเขียนโปรแกรม

โปรแกรมที่เขียนขึ้นสามารถน ามาใช้งานได้ในคอมพิวเตอร์

ภาษาจาวา เป็นภาษาการเขียนโปรแกรมระดับสูง

พัฒนาโดยบริษัท Sun Microsystems (www.sun.com)

เวอร์ชั่นแรกเริ่มใช้ในปี ค.ศ. 1996

ปัจจุบันเวอร์ชั่น 6

ต้องถูกแปลให้เป็นภาษาเครื่องก่อน

จึงจะสามารถประมวลผลหรือท างานได้

Page 8: 1.Introduction to java

8Object-Oriented Programming 2/2551

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, NetBean

Page 9: 1.Introduction to java

9Object-Oriented Programming 2/2551

Java Platform

Java platform เป็นแพลตฟอร์มที่เป็นซอฟต์แวร์ ซึ่งสามารถรันโปรแกรม

จาวา

Java Development Kit (JDK) คือ ชุดพฒันาโปรแกรมภาษาจาวา สามารถ download ได้ที่ http://java.sun.com

JDK ประกอบด้วย ตัวแปลภาษาจาวา (Java compiler)

สภาพแวดล้อมส าหรับรันโปรแกรมจาวา (Java Runtime Environment หรือ JRE)

• JVM (Java Virtual Machine)

• Java API (Library)

JRE

API

JVM

JavaCompiler JDK

Page 10: 1.Introduction to java

10Object-Oriented Programming 2/2551

http://java.sun.com/javase/technologies/index.jsp#overview

Page 11: 1.Introduction to java

11Object-Oriented Programming 2/2551

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 ส าหรับเขียนโปรแกรมบนอุปกรณ์อิเล็กทรอนิกส์เช่น โทรศัพท์มือถือ PDA

Page 12: 1.Introduction to java

12Object-Oriented Programming 2/2551

From source code to running program

Editor Compiler InterpretorRunning

ProgramClass files

Library files

Source file

Page 13: 1.Introduction to java

13Object-Oriented Programming 2/2551

Java Compiler

Compiler เป็นโปรแกรมทีใ่ช้แปลภาษาระดับสูงเป็นภาษาเครื่องซึ่งเปน็ชุดค าสั่งที ่CPU สามารถน าไปประมวลผลได้

Java Compiler คือ ตัวแปลภาษาจาวา ท าหน้าที่แปลรหัสค าสั่งภาษาจาวา (source code) ให้เป็นชุดค าสั่งที่เรียกว่า bytecode

Source code compiled by Bytecode

(file.java) Java compiler (file.class)

(javac.exe)

Page 14: 1.Introduction to java

14Object-Oriented Programming 2/2551

Write once, run anywhere (WORA)

ปกติโปรแกรมภาษาอื่น ๆ เช่น ภาษาซี เมื่อถูกแปลจากเครื่องหนึ่งไม่สามารถน าไปใชง้านกับเครื่องที่ใช้ภาษาเครือ่งต่างกันได้

(เครื่องที่มี CPU ต่างยี่ห้อกัน หรือใช้ระบบปฏิบตัิการต่างกัน)

bytecode ท าให้จาวาเป็นภาษาทีไ่ม่ขึ้นกบัระบบปฏิบตัิการ (platform-

independent)

โปรแกรมที่เขียนด้วยภาษาจาวาสามารถน าไปประมวลผลบนระบบปฏิบัติการที่

กันได้ เช่น Windows, Linux, Unix หรือใช้ CPU ต่างกัน เช่น Intel, AMD

Bytecode (file.class)

Page 15: 1.Introduction to java

15Object-Oriented Programming 2/2551

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 Files

Page 16: 1.Introduction to java

16Object-Oriented Programming 2/2551

Java Runtime Environment (JRE)

เครื่องคอมพิวเตอร์ที่ติดตั้ง JRE ไว้จะสามารถรันโปรแกรมที่เขียนด้วย

ภาษาจาวาได้

bytecode ท าหน้าท่ีเสมือนเป็นภาษาเครื่องส าหรับ JVM ท าให้สามารถน าbytecode ไปใช้งานในเครื่องที่มีการติดตั้ง JVM

Page 17: 1.Introduction to java

17Object-Oriented Programming 2/2551

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

เป็นชุดพัฒนาโปรแกรมจาวา

Page 18: 1.Introduction to java

18Object-Oriented Programming 2/2551

Basic Java Application

JDK ประกอบด้วย Java Compiler และ Java Runtime Enviroment

แต่ไม่มีโปรแกรมส าหรับเขียน java source code

สามารถเขียนโปรแกรมจาวาได้โดยใช ้Text editor เช่น Notepad,

EditPlus

หรือใช้โปรแกรมที่มีเครื่องมืออ านวยความสะดวกในการเขียนโปรแกรม

ซึ่งเรียกว่า Integrated Development Environment(IDE) เช่น NetBeans

และ Eclipse เป็นต้น

Page 19: 1.Introduction to java

19Object-Oriented Programming 2/2551

Basic Java Application

องค์ประกอบหลักของโปรแกรมจาวา

Class คือ ชิ้นส่วนของโปรแกรมที่เล็กที่สุดของภาษาจาวา

แต่ละชิ้นส่วนสามารถน ามาประกอบกันเพื่อสร้างเป็นโปรแกรมขนาดใหญ่ๆ ได้

แต่ละคลาสประกอบด้วย method ซึ่งเป็นชุดของการด าเนินงาน

แต่ละเมธอด ประกอบด้วยค าสั่งในการด าเนินงานต่าง ๆ (statement)

Class

Method1Statement;

Method2Statement;

Statement;

Page 20: 1.Introduction to java

20Object-Oriented Programming 2/2551

Ex. 1 Java application HelloWorld

comments

ค าสั่งให้แสดงผลไปยังจอภาพ ข้อความที่แสดง statement

ค าที่บอกว่าเป็นคลาส ชื่อคลาส

ไม่มี return type ชื่อเมธอด

class

method

Page 21: 1.Introduction to java

21Object-Oriented Programming 2/2551

Java Comment

บรรทัดที่ 1,2 – เรียกว่า comments

เป็นค าอธบิายโปรแกรม ไม่ถูกคอมไพล์เป็น bytecode ด้วย java compiler

รูปแบบการเขียน comment

บรรทัดเดียว ให้ใช้เครื่องหมาย // น าหน้า

//……your comment……..

หลายบรรทัด จะอยู่ภายในเครือ่งหมาย /*…………..*/

/*…………your comment

……………………………………..….*/

Page 22: 1.Introduction to java

22Object-Oriented Programming 2/2551

Ex.1 Java application HelloWorld

บรรทัดที่ 4 - ประกาศคลาส

ค าว่า class เป็นเหมือนตัวบอกถึงชิ้นส่วนของโปรแกรม

รายละเอียดในแต่ละคลาสจะอยู่ภายในวงเล็บปีกกา class {………..}

ภายในคลาสประกอบด้วยเมธอดได้หลายเมธอด

ค าว่า public ระบุให้คลาสอื่นทุกคลาสเรียกใช้งานคลาสนี้ได้

HelloWord เป็นชื่อคลาส

Page 23: 1.Introduction to java

23Object-Oriented Programming 2/2551

Ex. 1 Java application HelloWorld

บรรทัดที่ 6 - method signature

main เป็นชื่อ method ในจาวา main() จะเป็นเมธอดแรกที่ถูกเรียกให้ท างาน

แต่ละเมธอด มีค าสั่งอยู่ภายในวงเล็บปีกกา {………..}

บรรทัดที่ 8 - statement

เป็นค าสั่งในการพิมพ์ข้อความออกทางจอภาพ

ในโปรแกรมมีได้หลายค าสั่ง แต่ละค าสั่งต้องจบด้วยเครื่องหมาย semicolon ;

Page 24: 1.Introduction to java

24Object-Oriented Programming 2/2551

Compile and Run program

การ compile โปรแกรม

เปิด command prompt และย้าย prompt ไปที่ folder ที่จัดเก็บโปรแกรม

ท าการคอมไพล์โดยพิมพ์ค าสั่ง

javac HelloWorld.java

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

พิมพ์ค าสั่ง

java HelloWorld

ผลลพัธ์

Page 25: 1.Introduction to java

25Object-Oriented Programming 2/2551

Class with a main method

ในจาวา ท างานด้วย class – การรันโปรแกรมคือ การรันคลาส

การรันโปรแกรม เป็นการบอกให้ JVM ให้โหลดคลาส Hello ขึ้นมา

จากน้ันท างานใน method main() ซึ่งจะท างานจนหมดค าสั่งใน main()

Page 26: 1.Introduction to java

26Object-Oriented Programming 2/2551

Syntax Errors

Syntax error หรือ Compile-time error

Syntax error คือข้อผิดพลาดจากการฝ่าฝืนกฏหรือไวยากรณ์ของภาษา

การตรวจสอบไวยากรณ์ว่าถูกต้องหรือไม่ จะเกิดขึ้นขณะคอมไพลโ์ปรแกรมโดย

คอมไพเลอร์

หากเราเขียนไม่ถูกต้อง คอมไพเลอร์จะแจ้งข้อผิดพลาดให้ทราบ และไม่สร้าง

bytecode ให้

เช่น จบค าสั่งโดยไม่มีเครื่องหมาย ; หรือ ใส่วงเล็บปีกกาไม่ครบ เป็นต้น

ระวัง ตัวอักษรตัวใหญ่และตัวเล็กในภาษาจาวา ถือว่าเป็นคนละตัวกัน

Page 27: 1.Introduction to java

27Object-Oriented Programming 2/2551

Syntax Errors

Compile…..

Page 28: 1.Introduction to java

28Object-Oriented Programming 2/2551

Syntax Errors

Compile…..

Page 29: 1.Introduction to java

29Object-Oriented Programming 2/2551

Syntax Errors

Compile…..

Page 30: 1.Introduction to java

30Object-Oriented Programming 2/2551

Syntax Errors

Compile…..

Page 31: 1.Introduction to java

31Object-Oriented Programming 2/2551

Logic Errors

Logic error หรือ Run-time error

Logic error คือข้อผิดพลาดจากการที่โปรแกรมท างานไม่ตรงกับที่เราต้องการ

โปรแกรมที่เขียนขึ้นถูกต้องตามหลักไวยากรณ์ของภาษาจาวา สามารถคอมไพล์

ได้

อาจสามารถรันโปรแกรมได้แต่ท างานได้ไม่ตรงกับที่เราคิดไว้ หรือท างานไม่ได้

Programmer ต้องตรวจสอบข้อผิดพลาดนี้เอง ตัวอย่างเช่น

• ไม่ใส่วงเล็บในการค านวณ

• ล าดับค าสั่งผิด

Page 32: 1.Introduction to java

32Object-Oriented Programming 2/2551

Logic Errors

Exception คือ ข้อผิดพลาด

Compile…..Run…..

Page 33: 1.Introduction to java

33Object-Oriented Programming 2/2551

Logic Errors

-5

ต้องการให้ท าการค านวณตามล าดับคือ (10-3)*5 = 35

แต่โปรแกรมค านวณให้คือ 10-(3x5) = -5

Compile…..Run…..

Page 34: 1.Introduction to java

34Object-Oriented Programming 2/2551

ข้อดีของภาษาจาวา

Write once, run anywhere

Code security มีกลไกการตรวจสอบไบต์โค้ด ( ฺBytecode verifier) ว่าต้องเป็นโค้ดที่ไม่ท าให้ระบบเสียหาย

Exception มีกลไกให้โปรแกรมเมอร์จัดการข้อผิดพลาดที่เกิดขึ้นในการรัน

โปรแกรม

มี Garbage collection เป็นกลไกจัดการคืนพื้นที่ในหน่วยความจ าอัตโนมัติ โปรแกรมเมอร์ไม่ต้องจัดการเอง

มี library ให้ใช้มากมาย – database storage, cryptography, networking, GUI

สนับสนุน OOP

Free !!!

Page 35: 1.Introduction to java

35Object-Oriented Programming 2/2551

Summary

Structure programming เน้นการแตกระบบเป็นฟังก์ชั่นการท างาน OOP เน้นการแตก

ระบบเป็นวัตถุในระบบ

Java Compiler แปลโปรแกรมที่เขียนด้วยภาษาระดับสูงเป็นภาษาเครื่องส าหรับ JVM

เรียกว่า bytecode

โครงสร้างโปรแกรมจาวาประกอบด้วย คลาส ภายในคลาสมีเมธอด แต่ละเมธอดมีค าสั่ง

เมธอด main() เป็นเมธอดที่จะถูกเรียกให้ท างานตอนรันโปรแกรม

Syntax error เกิดในขณะคอมไพล์จากข้อผิดพลาดจากการเขียนโปรแกรมผิด syntax

Logic error เกิดขณะรันจากการที่โปรแกรมท างานได้ไม่ตรงกับที่ต้องการหรือรันไม่ได้