ความรู้เบื้องต้นของภาษาจาวา (Introduction to Java Programming)

03:00 เขียนโดย QA Optimization - Performance and Stability

วัตถุประสงค์
• แนะนำหลักการของภาษาคอมพิวเตอร์
• อธิบายขั้นตอนการทำงานของคอมไพเลอร์และอินเตอร์พรีตเตอร์
•แนะนำประวัติโดยย่อและจุดเด่นของภาษาจาวา
•อธิบายหลักการของ Java Virtual Machine (JVM) และ Java Platform
•แนะนำซอฟต์แวร์ที่ใช้ในการพัฒนาโปรแกรมภาษาจาวา
•อธิบายและแสดงตัวอย่างของโปรแกรมจาวาประยุกต์และโปรแกรมจาวา แอปเพล็ต
•แนะนำวิธีการใช้คู่มือ Java API


องค์ประกอบของระบบคอมพิวเตอร์
• ฮาร์ดแวร์ (Hardware)
• ส่วนประกอบที่เป็นตัวเครื่องคอมพิวเตอร์
• ระบบปฏิบัติการ (Operating System)
• Windows XP, Linux และ Solaris
• โปรแกรมประยุกต์ (Application Programs)
• โปรแกรมทั่วๆไป อาทิเช่น Word processor เกม บราวเซอร์ (Browser)
• พัฒนาโดยใช้ภาษาคอมพิวเตอร์ต่างๆ เช่น ฟอร์แทน (FORTRAN) โคบอล (COBOL) C++ หรือจาวา

ภาษาคอมพิวเตอร์

ภาษาเครื่อง (Machine Language)
• 01010110
• ภาษาแอสเซมบลี้ (Assembly Language)
• ADD R1,R2
• ภาษาคอมพิวเตอร์ระดับสูง
• x = c1+c2

ภาษาคอมพิวเตอร์ระดับสูง
• ภาษายุคแรก
• ฟอร์แทรน โคบอล เบสิก (BASIC)
• ภาษาเชิงกระบวนการ (Procedural Language)
• ปาสคาล (Pascal) ซี (C)
• ภาษาเชิงออปเจ็ค (Object Oriented Programming)
• C++ Smalltalk จาวา

ตัวแปลภาษา

• ภาษาระดับสูงจะต้องใช้ตัวแปลภาษา (Language Translator) เพื่อเปลี่ยนซอร์ดโค้ด (Source Code) ให้เป็นคำสั่งที่คอมพิวเตอร์สามารถเข้าใจได้
• วิธีแปลภาษามีอยู่สองแบบ
• คอมไพเลอร์ (Compiler)
• อินเตอร์พรีตเตอร์ (Interpreter)


คอมไพเลอร์
• ทำหน้าที่แปลซอร์ดโค้ดทั้งโปรแกรมให้เป็นโค้ดที่สามารถทำงานได้ (executable code)
• โปรแกรม executable code จะสามารถถูกนำไปใช้งานได้ทันที
• ตัวอย่างของภาษาที่ใช้คอมไพเลอร์คือ ฟอร์แทรน ปาสคาล และ C++


ขั้นตอนการทำงานของคอมไพเลอร์























ข้อดีและข้อเสียของคอมไพเลอร์
• ข้อดี
•ทำงานได้เร็ว
•ตรวจสอบข้อผิดพลาดของโปรแกรมซอร์ดโค้ดในขั้นตอนของการคอมไพล์
• ข้อเสีย
•ต้องนำโปรแกรมซอร์ดโค้ดมาแปลใหม่เมื่อเปลี่ยนระบบปฏิบัติการ เนื่องจากคอมไพเลอร์เป็นตัวแปลภาษาที่ขึ้นอยู่กับแพลตฟอร์ม (Platform Specific)


อินเตอร์พรีตเตอร์
• แปลโปรแกรมซอร์ดโค้ดทีละบรรทัดให้เป็น executable code และทำงานทันที
• มีข้อดีคือ อินเตอร์พรีตเตอร์ถูกสร้างขึ้นได้ง่ายกว่าและมีขนาดเล็ก ทำให้ภาษาที่ใช้อินเตอร์พรีตเตอร์สามารถทำงานข้ามแพลตฟอร์มได้
• มีข้อเสียคือ ทำงานได้ช้ากว่าคอมไพเลอร์
• ตัวอย่างของภาษาที่ใช้อินเตอร์พรีตเตอร์คือ เบสิก โปรล็อก(Prolog) และ Smalltalk


ภาษาเชิงกระบวนการและภาษาเชิงออปเจ็ค
• ภาษาเชิงกระบวนการ
•โปรแกรมจะแบ่งออกเป็นส่วนย่อยๆที่เรียกว่าโมดูล (module)
•แต่ละโมดูลจะต้องเป็นอิสระต่อกัน
•การออกแบบให้แต่ละโมดูลมีความเป็นอิสระต่อกันนั้นทำได้ยาก
•ต้นทุนในการพัฒนาโปรแกรมสูง
• ภาษาเชิงออปเจ็ค
•การพัฒนาโปรแกรมเป็นการเลียนแบบการทำงานเชิงออปเจ็ค
•สามารถนำโปรแกรมกลับมาใช้ใหม่ (reuse) ได้ดีกว่าภาษาเชิงกระบวนการ


โปรแกรมเชิงออปเจ็ค
• วิเคราะห์ปัญหาโดยมองปัญหาว่าประกอบไปด้วยออปเจ็คต่างๆ
• จำลองคุณลักษณะและพฤติกรรมของออปเจ็ค
• ออปเจ็คจะส่งข้อมูลกันโดยผ่านข่าวสาร (Message)
• แตกต่างจากภาษาเชิงกระบวนการที่วิเคราะห์ปัญหาโดยพิจารณาจากลำดับการทำงานและแบ่งการทำงานของโปรแกรมตามฟังก์ชันต่างๆ


ระบบทะเบียนนักศึกษา


• วิธีการเชิงกระบวนการ
• ลงทะเบียนรายวิชา
• ชำระเงิน
• เพิ่มวิชา


• วิธีแบบเชิงออปเจ็ค
• นักศึกษา
• ใบลงทะเบียน
• รายชื่อรายวิชา

ออปเจ็คชนิดนักศึกษา


• คุณลักษณะ
•ชื่อ
•รหัสนักศึกษา
•เกรดเฉลี่ย
• พฤติกรรม
•ลงทะเบียน
•เพิ่มหรือถอนวิชา

ข้อดีของการพัฒนาโปรแกรมเชิงออปเจ็ค


• แนวคิดการวิเคราะห์ปัญหาใกล้เคียงกับธรรมชาติของมนุษย์
• ระบบจริง (real life) แบ่งตามออปเจ็ค ไม่ได้ขึ้นอยู่กับฟังก์ชันการทำงาน
• ขบวนการพัฒนาโปรแกรมทำได้รวดเร็วขึ้น
• ง่ายต่อการพัฒนาและแก้ไข
• นำโปรแกรมกลับมาใช้ใหม่ได้ง่าย


คุณลักษณะเด่นของโปรแกรมเชิงออปเจ็ค


• การห่อหุ้ม (Encapsulation)
• การสืบทอด (Inheritance)
• การมีได้หลายรูปแบบ (Polymorphism)

ประวัติของภาษาจาวา


• พัฒนาขึ้นโดยทีมวิจัยของบริษัทซันไมโครซิสเต็มส์ (Sun Microsystems)
• พัฒนามาจากโครงการที่ต้องการพัฒนาระบบซอฟต์แวร์เพื่อควบคุมเครื่องใช้ไฟฟ้าขนาดเล็กภายในบ้าน
• ชื่อเดิมคือภาษา Oak ต่อมาเปลี่ยนชื่อเป็นภาษาจาวา
• ภาษาจาวาเริ่มเป็นที่นิยมแพร่หลายในปี ค.ศ. 1995
• ภาษาจาวาเป็นภาษาที่ไม่ขึ้นกับแพลตฟอร์ม (platform independent)
• JDK 1.0 ประกาศใช้เมื่อปี 1996
• JDK เวอร์ชันปัจจุบันคือ Java 2


จุดเด่นของภาษาจาวา


• ความง่าย (simple)
• ภาษาเชิงออปเจ็ค (object oriented)
• การกระจาย (distributed)
• การป้องกันการผิดพลาด (robust)
• ความปลอดภัย (secure)

จุดเด่นของภาษาจาวา


• สถาปัตยกรรมกลาง (architecture neutral)
• เคลื่อนย้ายง่าย (portable)
• อินเตอร์พรีต (interpreted)
• ประสิทธิภาพสูง (high performance)
• มัลติเธรด (multithreaded)
• พลวัต (dynamic)


Virtual Machine


• จาวาเทคโนโลยีใช้ทั้งคอมไพเลอร์และอินเตอร์พรีตเตอร์ ในการคอมไพล์และรันโปรแกรม
• โปรแกรมภาษาจาวามีซอร์ดโค้ดเป็น .java และจะแปลเป็นโปรแกรมไบท์โค้ด (byte code) ที่เป็น .class
• โปรแกรมไบท์โค้ดจะรันบนระบบคอมพิวเตอร์ โดยใช้ JVM (Java Virtual Machine) ที่เป็นอินเตอร์พรีตเตอร์ ซึ่งจะแปลโปรแกรมไบท์โค้ดให้เป็นภาษาเครื่องที่ขึ้นอยู่กับแพลตฟอร์มนั้น


Java Virtual Machine (JVM)


• เครื่องคอมพิวเตอร์ที่จะสามารถรันโปรแกรมไบท์โค้ดได้จะต้องมี JVM อยู่
• JVM อาจเป็นซอฟต์แวร์หรือฮาร์ดแวร์
• ในปัจจุบัน JVM มีอยู่ใน
•ระบบปฏิบัติการคอมพิวเตอร์ต่างๆ
•โปรแกรมเว็บบราวเซอร์
•เครื่องใช้ไฟฟ้าต่างๆ
•โทรศัพท์
•เครื่องมือสื่อสาร
•สมาร์ทการ์ด


Java Platform


• แพลตฟอร์มก็คือ ฮาร์ดแวร์และ software environment ที่จะใช้ในการรันโปรแกรม
• แพลตฟอร์มของภาษาจาวาประกอบด้วย
•Java Virtual Machine
•Java Application Programming Interface (Java API)


Java Platform


• บริษัทซันไมโครซิสเต็มส์ได้กำหนดแพลตฟอร์มของ Java 2 ไว้สามรูปแบบคือ
•Java 2 Platform, Standard Edition (J2SE)
•Java 2 Platform, Enterprise Edition (J2EE)
•Java 2 Platform, Micro Edition (J2ME)

Java Platform


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

•Java 2 SDK (Software Development Kit)
•เดิมชื่อ JDK แต่ต่อมาเปลี่ยนชื่อเป็น Java 2 ตั้งแต่ JDK 1.2
•เวอร์ชั่นปัจจุบันคือเวอร์ชั่น 1.4
•โปรแกรม Java 2 SDK
•Javac.exe : โปรแกรมคอมไพเลอร์
•Java.exe : โปรแกรมอินเตอร์พรีตเตอร์ (JVM)
•Java 2 SDK ไม่มีโปรแกรมอิดีเตอร์

ชุดพัฒนาโปรแกรมภาษาจาวาอื่นๆ

•Forte for Java ของบริษัท Sun Microsystem (www.forte.com)
•Visual Cafe ของบริษัท Web Gain (www.webgain.com)
•Visual Age for Java ของบริษัท IBM (www.ibm.com)
•Visual J++ ของบริษัท Microsoft (www.microsoft.com)
•JBuilder ของบริษัท Borland/Inprise (www.inprise.com)

Java อิดีเตอร์

• โปรแกรมสำหรับเขียนซอร์ดโค้ด
•RealJ เป็นฟรีแวร์ที่สามารถ download ได้ที่ www.realj.com
•JCreator ของบริษัท Xinox Software (www.jcreator.com)
•WinEdit ของบริษัท WinEdit Software (www.winedit.com)

โปรแกรมจาวา

• โปรแกรมจาวาประยุกต์ (Java Application)
•โปรแกรมใช้งานทั่วไป
•โปรแกรมทำงานภายใต้จาวาอินเตอร์พรีตเตอร์
•โปรแกรมแบบ Standalone
• โปรแกรมจาวาแอปเพล็ต (Java Applet)
•โปรแกรมที่ทำงานภายใต้โปรแกรมเวบบราวเซอร์ที่มี JVM

การสร้างโปรแกรมจาวาประยุกต์

• เขียนซอร์ดโค้ด C HelloWorld.java
• คอมไพล์โปรแกรม
javac HelloWorld.java
C HelloWorld.class
• รันโปรแกรม
java HelloWorld

HelloWorld.java

public class HelloWorld {
public static void main(String args[]){
System.out.println("Hello World");
}
}

การสร้างโปรแกรมจาวาแอปเพล็ต

• โปรแกรมจาวาแอปเพล็ตจะมีไฟล์ที่เขียนขึ้นสองไฟล์คือ
•โปรแกรมซอร์ดโค้ด (.java)
•โปรแกรมเว็บเพจ (.html)
• ขั้นตอนการทำงาน
•เขียนโปรแกรมซอร์ดโค้ด C HelloWorldApplet.java
•คอมไพล์โปรแกรม C HelloWorldApplet.class
•ใช้โปรแกรมเว็บบราวเซอร์ใดๆเปิดโปรแกรม HelloWorld.html

HelloWorldApplet.java

import java.awt.*;
import java.applet.*;
public class HelloWorldApplet extends Applet {
public void paint(Graphics g) {
g.drawString("Hello World",20,20);
}
}

HelloWorld.html



HelloWorld Example


WIDTH="300" HEIGHT="300">



Java API Documentation

• เอกสารในรูปแบบของ HTML ที่อธิบายข้อมูลเกี่ยวกับ API (Application Programming Interface) ของภาษาจาวา
• สามารถที่จะ download ได้จาก http://java.sun.com
• เรียกดู online ได้ที่ http://java.sun.com/j2SE/1.3/docs/api

สรุปเนื้อหาของบท

• ระบบคอมพิวเตอร์ประกอบไปด้วยส่วนหลักสามส่วนคือ ฮาร์ดแวร์ ระบบปฏิบัติการ และโปรแกรมประยุกต์
• ภาษาคอมพิวเตอร์แบ่งออกเป็นสามประเภทคือ ภาษาเครื่อง ภาษาแอสเซมบลี และภาษาระดับสูง
• ภาษาระดับสูงแบ่งออกเป็นสองประเภทคือ ภาษาเชิงกระบวนการ และภาษาเชิงออปเจ็ค
• ตัวแปลภาษาแบ่งออกเป็นสองแบบคือ คอมไพเลอร์ และอินเตอร์พรีตเตอร์
• ภาษาจาวาเป็นภาษาเชิงออปเจ็คที่ใช้ทั้งตัวแปลภาษาแบบคอมไพเลอร์และอินเตอร์พรีตเตอร์ในการคอมไพล์และรันโปรแกรม

สรุปเนื้อหาของบท

• คอมไพเลอร์ของภาษาจาวาจะทำหน้าที่แปลโปรแกรมภาษาจาวาให้เป็นโปรแกรมไบท์โค้ด ซึ่งจะใช้อินเตอร์พรีตเตอร์ (JVM) ในการแปลโปรแกรมไบท์โค้ดให้เป็นภาษาเครื่อง
• โปรแกรมภาษาจาวาสามารถทำงานข้ามแพลตฟอร์มได้ถ้าระบบคอมพิวเตอร์นั้นมี JVM อยู่
• แพลตฟอร์มของจาวาประกอบไปด้วย JVM และ Java API ซึ่ง Java 2 มีแพลตฟอร์ม 3 แบบคือ J2SE, J2EE และ J2ME
• ชุดพัฒนาโปรแกรมภาษาจาวา Java 2 SDK ประกอบไปด้วยโปรแกรมต่างๆที่สำคัญคือ โปรแกรมคอมไพเลอร์ (javac.exe) และโปรแกรมอินเตอร์พรีตเตอร์ (java.exe)

สรุปเนื้อหาของบท

• โปรแกรมจาวาที่อยู่บนแพลตฟอร์ม J2SE สามารถพัฒนาได้สองรูปแบบคือโปรแกรมจาวาประยุกต์ซึ่งจะทำงานภายใต้ JVM โดยตรง และโปรแกรมจาวาแอปเพล็ตซึ่งจะทำงานภายใต้เว็บบราวเซอร์ที่มี JVM
• คู่มือ Java API จะช่วยในการค้นหารายละเอียดของแพคเก็จและคลาสต่างๆที่มีอยู่ในชุดพัฒนาโปรแกรม Java 2 SDK

แบบฝึกหัด

• แบบฝึกหัดที่ 1 การเขียนโปรแกรมจาวาประยุกต์อย่างง่าย
•เขียนโปรแกรมจาวาประยุกต์เพื่อแสดงข้อความ Hello World
•แบบฝึกหัดที่ 2 การเขียนโปรแกรมจาวาแอปเพล็ตอย่างง่าย
•เขียนโปรแกรมจาวาแอปเพล็ตเพื่อแสดงข้อความ Welcome to Java
• แบบฝึกหัดที่ 3 การใช้คู่มือ Java API

0 ความคิดเห็น:

แสดงความคิดเห็น