SlideShare a Scribd company logo
เบื้องต้นเกี่ยวกับภาษาจาวา
คำจำกัดควำมของโปรแกรม
 ชุดคำสั่งที่ผู้ใช้งำนเขียนขึ้นเพื่อให้เครื่องคำนวณ (Computer)
ทำงำนตำมลำดับขั้นตอนที่ผู้ใช้ต้องกำร
 ชุดคำสั่งหรือภำษำเขียนที่ใกล้เคียงกับกำรทำงำนของ
เครื่องคอมพิวเตอร์มำกที่สุด คือ ภำษำเครื่อง (Machine
Language)
 ภำษำระดับสูง (High Level Language) ที่ใกล้เคียงกับ
ภำษำที่มนุษย์ใช้ในชีวิตประจำวัน ได้แก่ Assembly,
COBOL, Pascal, C, C++, Java ฯลฯ ซึ่งในแต่ละ
ภำษำต้องมีตัวแปลภำษำ (Translator) เพื่อแปลงชุดคำสั่งเป็น
ภำษำเครื่องอีกรอบหนึ่ง
 ตัวแปลภำษำดังกล่ำวมี 2 สองประเภท คือ คอมไพเลอร์
(Compiler) และอินเทอร์พรีเตอร์ (Interpreter)
พัฒนำกำรของภำษำจำวำ
 ปลำยปี ค.ศ. 1995
 ผู้คิดต้นแบบ คือ James Gosling และคณะ จำกบริษัท
Sun Microsystems
 วัตถุประสงค์เดิม คือ Oak สำหรับกำรเขียนโปรแกรมเพื่อฝังตัว
ในอุปกรณ์อิเล็กทรอนิกส์
 ผล คือ ภำษำสำหรับเขียนโปรแกรม (Application
Programming) ซึ่งเป็นลักษณะของโปรแกรมเชิงวัตถุ
(Object Oriented Programming) ซึ่งสำมำรถใช้
งำนบนเว็บได้ด้วย
 Java 2 SDK Standard Edition หรือ J2SDK
ประกอบด้วย features ต่ำง ๆ Class Libraries หรือที่
เรียกว่ำ Application Programmer Interfaces
หรือ APIs
ภำษำเชิงกระบวนคำสั่ง
(Procedural Programming)
 กำหนดตัวแปร (Variable) เพื่อจองเนื้ อที่ในหน่วยควำมจำ
และเตรียมเนื้ อที่ในกำรจัดเก็บข้อมูล
 เขียนขั้นตอนตำมลำดับ เพื่อสั่งให้คอมพิวเตอร์ทำงำนตำมที่
กำหนด ซึ่งลำดับในกำรทำงำนจะมีกำรจัดหมวดหมู่ในกำรทำงำน
เพื่อให้ได้ผลลัพธ์ที่ต้องกำรนำมำรวมในหมู่เดียวกัน โดยอำจส่ง
ค่ำตัวแปรไปให้และส่งข้อมูลคืนเมื่อกำรคำนวณเรียบร้อย
กำรเขียนโปรแกรมเชิงวัตถุ
(Objected Oriented Programming)
 ผู้พัฒนำต้องมีวิสัยทัศน์เชิงวัตถุ เพื่อหำควำมต่ำงของวัตถุแต่ละอย่ำงหรือ
คุณลักษณะประจำ (Attribute) ออกมำ ขณะเดียวกันต้องพิจำรณำ
พฤติกรรม (Method) ของวัตถุ และนำมำเขียนเป็นคลำส
(Class) ดังนั้น คลำสจะเป็นแม่แบบหรือพิมพ์เขียวในกำรสร้ำงวัตถุ
(Object) หรือ Instance ให้เกิดขึ้นและมีชีวิตในระบบ โดย
Object ที่สร้ำงจะมีรำยละเอียดที่ต่ำงกันไป
 ตัวอย่ำง คลำสของรถ ตัวแปรหรือคุณลักษณะที่ใช้อธิบำยควำมต่ำงของ
รถแต่ละคัน คือ ยี่ห้อ เช่น โตโยต้ำ, ฮอนด้ำ, นิสสัน เป็นต้น สีของรถ
หรือจำนวนคนที่สำมำรถโดยสำรได้ ก็เป็นอีกตัวแปรหนึ่งที่ใช้อธิบำย
ควำมต่ำงของรถ เป็นต้น ส่วนพฤติกรรมของรถ เช่น กำรขับเคลื่อนไป
ข้ำงหน้ำ ถอยหลัง หรือหยุด เป็นต้น จะถูกรวบรวมเป็นเสมือนพิมพ์เขียว
ในกำรผลิตรถ โดยรถแต่ละคันที่ผลิตออกมำเรียกว่ำเป็น Instance
ซึ่งจะมีลักษณะประจำ (Attribute) และพฤติกรรม (Method)
Computer Programming 1
หลักที่สนับสนุนกำรโปรแกรมเชิงวัตถุ
 ควำมสำมำรถในกำรสืบทอด (Inheritance) เป็นกำรสืบทอด
คุณสมบัติของคลำส โดยสร้ำงคลำสหลักซึ่งมีคุณสมบัติต่ำง ๆ
โดยรวมที่คลำสอื่นจำเป็นต้องมี จำกนั้นจึงสร้ำงคลำสอื่นขึ้นมำ เพื่อ
รับกำรถ่ำยทอดคุณสมบัติทั้งหมดจำกคลำสหลักโดยอัตโนมัติ โดย
ไม่ต้องสร้ำงขึ้นใหม่ และสำมำรถสร้ำงคุณสมบัติอื่น ๆ นอกจำกคลำส
หลักขึ้นได้
 ควำมสำมำรถในกำรเก็บซ่อน (Encapsulation) เป็นกำร
ซ่อนส่วนของกำรทำงำนภำยในที่ไม่เกี่ยวข้องกับภำยนอกไว้โดยผ่ำน
คลำส เพื่อไม่ให้ผู้นำคลำสไปใช้เห็น หรือทรำบรำยละเอียดขั้นตอน
กำรทำงำนของคลำส เพื่อไม่ให้มีกำรแก้ไขเปลี่ยนแปลงส่วนที่ซ่อนไว้
ผู้นำคลำสไปใช้จะดัดแปลงได้เฉพำะส่วนที่อนุญำตเท่ำนั้น
Computer Programming 1
Superclass
attribute
method()
Subclass
extends
Quadruped
+ food
+ location
+ eat()
+ sleep()
+ roar()
Dog Cat Tiger
extends
 ควำมสำมำรถในกำรแปลงร่ำง (Polymorphism) :- ไม่
จำเป็นต้องสืบทอดคุณสมบัติทุกอย่ำงเสมอไป เนื่องจำกกำรแก้ไข
ลำดับกำรทำงำนของฟังก์ชันเดิม ทำให้เสียเวลำในกำรตำมแก้ไข
ทำงที่ดี คือ อนุญำตให้มีกำรเขียนชุดคำสั่งใหม่ภำยใต้ชื่อฟังก์ชัน
เดิมที่มี ตัวอย่ำงเช่น กำร Save To File ของ Memo จะ
ได้ Text File ที่เก็บข้อควำมนั้น ขณะที่ Save To File
ของ Image จะได้ไฟล์รูปภำพ
 ควำมสำมำรถในกำรจัดโครงสร้ำงแบบเชิงนำม (Abstract)
ข้อมูลแบบเชิงนำม คือ ข้อมูลหรือกระบวนกำรที่ยังไม่เกิดขึ้น กำร
สร้ำงคลำสแบบเชิงนำมเป็นวิธีหนึ่งที่ช่วยไม่ให้กำรพัฒนำระบบงำน
ต้องหยุดชะงัก เนื่องจำกข้อมูลอำจจะยังไม่เกิด หรือยังไม่สำมำรถ
อธิบำยได้ว่ำ ขั้นตอนกำรทำงำนจะเป็นอย่ำงไร
Computer Programming 1
ข้อดีของกำรพัฒนำโปรแกรมด้วยจำวำ
 ง่ำย เนื่องจำกเลียนแบบภำษำ C/C++ ไม่มีคำสั่ง GOTO และ
pointer
 เป็นภำษำเชิงวัตถุที่สมบูรณ์
 มีกำรป้ องกันกำรผิดพลำด (Robust) กำรกำจัดสิ่งที่ไม่ใช้
(Garbage Collection) แบบอัตโนมัติ และกำรจัดกำรควำม
ผิดพลำด (Exception Handling) แบบอัตโนมัติ
 มีควำมปลอดภัยในกำรที่จะประมวลผล (Secure) โดยไม่ทำลำย
ทรัพยำกรของเครื่อง
 Multithread ใน java.lang :- ควำมสำมำรถในกำรประมวลผล
หลำยงำนพร้อมกัน
 Architecture neutral and portable :- สำมำรถ
เคลื่อนย้ำยได้ง่ำย รวมทั้งใช้งำนในสภำวะแวดล้อมที่ต่ำงกัน และใช้กับ
คอมพิวเตอร์ได้ทุกระบบ (Multi Platform) โดยไม่ต้องปรับแต่ง
 กำรเชื่อมโยงแบบพลวัต (Dynamic Link) และกำรประมวลผลแบบ
กระจำย (Distributed) ในระบบเครือข่ำย
Java Platform
Hardware
Java Virtual Machine
(Java VM)
Java API
(Java Application Programming
Interface)
โปรแกรมภำษำจำวำ
ข้อกำหนดเบื้องต้นในกำรเขียนโปรแกรม
 แต่ละประโยคต้องจบด้วยเครื่องหมำย ; เสมอ
 สัญลักษณ์อื่นที่ใช้แยกข้อควำมหรือคำสั่งอีก เช่น
 ( ) ใช้สำหรับแยกลำดับในกำรประมวลผล
 { } ใช้สำหรับแยกชุดคำสั่ง หรือรวมชุดคำสั่งเป็นบล็อก
 , ให้ควำมต่อเนื่องในกำรทำงำน เช่น กำรกำหนดตัวแปรที่มี
ประเภทข้อมูลแบบเดียวกัน
 . ใช้ในกำรแยก package กับ class หรือ object
กับ method
 หลักเกณฑ์กำรตั้งชื่อต่ำง ๆ เช่น ชื่อ class, ชื่อ data,
ชื่อ method และชื่อตัวแปร
 ประกอบด้วยตัวอักษรภำษำอังกฤษ ตัวเลข และสัญลักษณ์ _ หรือ $
เช่น age, int2float, _name$ เป็นต้น
 ควำมยำวไม่ควรเกิน 65535 ตัวอักษร
 ไม่ควรใช้ตัวเลขเป็นตัวแรก เช่น 101database, 2name
 ไม่ควรใช้ช่องว่ำง (spaces) หรือ . (periods)
 ตัวอักษรตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ถือว่ำต่ำงกัน เช่น Count,
count และ CoUnT ถือว่ำเป็นคนละชื่อ
 ต้องไม่ตรงกับคำศัพท์สงวน (Key Word) ในภำษำจำวำ
 ชื่อ class ควรขึ้นต้นด้วยตัวพิมพ์ใหญ่ ส่วนที่เหลือเป็นตัวเล็ก
 ชื่อ data หรือตัวแปรควรเป็นตัวพิมพ์เล็กทั้งหมด
 ชื่อค่ำคงที่ควรเป็นตัวพิมพ์ใหญ่ทั้งหมด
 ชื่อ method คำแรกควรเป็นตัวเล็กทั้งหมด คำถัดไปตัวแรกควรเป็น
ตัวพิมพ์ใหญ่ ที่เหลือจึงเป็นตัวเล็ก เช่น setCount, testFirst
เป็นต้น
คำศัพท์สงวน (Key Word) ในภำษำจำวำ
abstract boolean break byte case
catch char class const continue
default do double else extends
final finally float for goto
if implements import instanceof int
interface long native new package
private protected public return short
static super switch synchronized this
throw throws transient try void
volatile while
 กำรเขียนหมำยเหตุ (Comment) สำมำรถทำได้ 3 รูปแบบ คือ
//single line comment
/* multiple line comments
…*/
/** This is a javadoc comment*/
 โปรแกรมที่สร้ำงจำกจำวำต้องสำมำรถสร้ำงได้อย่ำงน้อยหนึ่งคลำสโดยมี
รูปแบบโครงสร้ำงดังนี้
[<access_specifier>] class <class_name>
{ //data members
//methods }
 access_specifier :- ระดับกำรเข้ำถึงข้อมูล เช่น public และ
private
 public หมำยถึง ระดับกำรเข้ำถึงข้อมูลที่ไม่มีข้อจำกัดใดๆ
 private หมำยถึง ระดับกำรเข้ำถึงข้อมูลสำหรับกำรใช้งำนในคลำส
 ในหนึ่งโปรแกรมต้องมีเพียงหนึ่งคลำสที่มีชื่อเดียวกับโปรแกรมและต้องเป็น
ชนิด public เสมอ
 data members เป็นส่วนประกอบหนึ่งของคลำส ใช้
สำหรับกำหนดชื่อและชนิดของตัวแปรที่ใช้สำหรับเก็บข้อมูล
โดยมีรูปแบบดังนี้
[<access_specifier>] [<modifier>]
<datatype> <variable_name>
 modifier เป็นกำรกำหนดคุณลักษณะพิเศษในกำรใช้งำน
ตัวแปรและ method เช่น static และ final
 static หำก Data ใดนำหน้ำด้วยคำศัพท์สงวน static
แล้ว Data นั้น จะถูกโหลดลงในหน่วยควำมจำและพร้อม
ใช้งำนทันที เมื่อมีกำรอ้ำงถึงตำมข้อกำหนดของระดับกำร
เข้ำถึง (Accessibility)
 final หำก Data ใดนำหน้ำด้วยคำศัพท์สงวน final แล้ว
Data นั้นใช้สำหรับเก็บข้อมูลค่ำคงที่ (Constant) ซึ่ง
ไม่สำมำรถเปลี่ยนค่ำได้
 methods มีรูปแบบดังนี้
[<access_specifier>] [<modifier>] < return_type >
<method_name> ([argument_list])
{ //Statements }
 return_type :- ชนิดของข้อมูลที่ถูกส่งคืนหลังสิ้นสุดกำรทำงำน
ของ method
 argument_list :- ช่องทำงในกำรผ่ำนข้อมูลเพื่อส่งให้
method ใช้ในกำรทำงำน
 Statement :- คำสั่งควบคุมกำรทำงำนของนิพจน์ เพื่อกำหนด
หลักกำรและวิธีกำรประมวลผลภำยใน method
 ในหนึ่งโปรแกรมจะต้องมี Method ที่ชื่อ main เสมอ โดย
Method main จะเป็น Method แรกที่โปรแกรมเรียกใช้ ซึ่ง
ในหนึ่งโปรแกรมจะต้องมีเพียง 1 main Method เท่ำนั้น ซึ่ง
จะต้องมีค่ำ Accessibility เป็น static เสมอ และเนื่องจำกไม่มี
กำรส่งค่ำกลับ จึงใช้ Accessibility void ร่วมด้วยเสมอ
 ท้ำยชื่อของ Method ต้องตำมด้วยเครื่องหมำย ( ) หำก
ไม่มีกำรส่งค่ำพำรำมิเตอร์ใดไปด้วย หำกมีกำรส่งค่ำ จะต้องอยู่
ในรูปแบบใดแบบหนึ่งเสมอ เช่น (String args[ ]) หรือ
(String[ ] args)
 กำรแสดงผลทำงจอภำพสำมำรถทำด้วย method ที่ชื่อว่ำ
println ซึ่งอยู่ใน System.out โดยคำสั่งนี้ ต้องกำร
ข้อมูลที่เป็น String เพื่อนำไปแสดงบนจอภำพ แต่ทั้งนี้ อำจ
ส่งข้อมูลที่เป็น Integer ร่วมด้วยได้โดยใช้เครื่องหมำย +
ข้อมูลทั้งหมดจะถูกแปลงเป็น String โดยอัตโนมัติ
ตัวอย่ำงโปรแกรม
 โปรแกรมที่เขียนแบบ Applet ต้องมีกำรเพิ่มคลำสต่ำง ๆ
โดยเฉพำะ java.applet.* และ java.awt.Graphics
 Package หรือ Java Class Library เป็นที่เก็บ
รวบรวม Class ต่ำง ๆ แต่ละ Package จะถูกเก็บแยกไว้
ในแต่ละ Directory และแต่ละ Package จะเก็บ
Class ต่ำง ๆ แยกไว้ในแต่ละ Directory เช่นเดียวกัน ใน
แต่ละ Class จะมี methods ให้เลือกนำมำใช้ให้เหมำะกับ
งำนที่ต้องกำรโดยไม่ต้องเขียนขึ้นมำเอง
 Class ใน Package หนึ่งสำมำรถเรียกใช้ Class อื่นใน
Package เดียวกันได้ แต่จะเรียกใช้ Class ที่อยู่ต่ำง
Package กันได้หรือไม่ขึ้นอยู่กับกำรกำหนดค่ำ
Accessible
ข้อกำหนดเพิ่มเติมในกำรเขียน Java Applet
 กำรเรียกใช้ Package สำมำรถทำได้ด้วยคำสั่ง import ซึ่ง
ต้องวำงไว้ตอนแรกสุดของโปรแกรมเสมอ เพื่อให้ Compiler
นำ Package ต่ำง ๆ ที่อ้ำงถึงมำเชื่อมโยงเข้ำกับโปรแกรม
ก่อนที่จะมำเรียกใช้ methods ต่ำง ๆ ภำยในโปรแกรม
 โปรแกรม Applet ต้องเขียนในรูป
public class hello2 extends Applet
ซึ่งเป็นกำรสืบทอดคุณสมบัติของคลำส Applet
 กำรแสดงข้อมูลบนจอภำพ ต้องใช้คำสั่ง drawString ซึ่งเป็น
method ของคลำส Graphics
ตัวอย่ำงกำรเขียน Java Applet
import java.applet.*;
import java.awt.Graphics;
public class hello2 extends Applet
{
public void paint(Graphics g)
{
g.drawString("Hello World!",20,60);
}
}
Computer Programming 1
ตัวอย่ำง Standard Package ในภำษำ Java
Package Class ที่เป็นส่วนประกอบ
java.applet Class ที่จำเป็นต่อกำรสร้ำง Applet
java.awt Class ทีใช้ประโยชน์ในกำรสร้ำง GUI
java.io Class สำหรับปฏิบัติงำนด้ำน I/O
java.lang Class พื้นฐำนของ Java ไม่ต้อง import
java.net Class ที่ใช้ติดต่อกับเครือข่ำย ใช้ควบคู่กับ java.io
java.util Class ที่เป็น Utility เช่น กำรเข้ำรหัส กำรถอดรหัส
java.awt.images Class ที่ใช้ในกำรสร้ำงและทำงำนกับรูปภำพ
java.swing Class ที่ใช้สร้ำง Swing ช่วยให้ทำงำนง่ำยกว่ำ java.awt

More Related Content

PDF
Presentation1
PDF
งานทำBlog บทที่ 10
PDF
งานทำBlog บทที่ 10
PPT
พื้นฐานภาษาจาวา
PDF
พื้นฐานภาษาจาวา
PPTX
บทที่2
PDF
พื้นฐานภาษาจาวา
PPTX
Lab Computer Programming 1
Presentation1
งานทำBlog บทที่ 10
งานทำBlog บทที่ 10
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
บทที่2
พื้นฐานภาษาจาวา
Lab Computer Programming 1

What's hot (6)

PDF
พื้นฐานภาษาจาวา
PDF
Java-Chapter 06 File Operations
PDF
Javacentrix com chap05-0
PDF
3.1 โครงสร้างของภาษาซี
PDF
lesson2 JSP
PDF
lesson3 JSP
พื้นฐานภาษาจาวา
Java-Chapter 06 File Operations
Javacentrix com chap05-0
3.1 โครงสร้างของภาษาซี
lesson2 JSP
lesson3 JSP
Ad

Viewers also liked (20)

PDF
ระบบคอมพิวเตอร์
PDF
Lecture5 ฐานข้อมูลเชิงสัมพันธ์
PDF
6 - functions
PDF
Lecture1 การประมวลผลข้อมูล และฐานข้อมูล
PPT
การวิเคราะห์อัลกอริทึม
PDF
อุปกรณ์รับและแสดงผล
PDF
การกำหนดปัญหาและศึกษาความเป็นไปได้
PDF
การแก้ปัญหาการออกแบบและพัฒนาขั้นตอนวิธี
PDF
สถาปัตยกรรมฐานข้อมูล
PDF
การ Setup disk quota กับ user ทุกคน
PPT
Lesson1 programing concept
PDF
Linklist
PDF
Hashing function
PDF
Algorithm flow chart
PDF
Search
PDF
Sorting
PDF
Lecture7 การแปลงโมเดลแบบ E-R เป็นรูปแบบโมเดลเชิงสัมพันธ์
PDF
DFD ภาษาอังกฤษ
PDF
01 ความรู้เกี่ยวกับการ web programming
PDF
การรวบรวมความต้องการ
ระบบคอมพิวเตอร์
Lecture5 ฐานข้อมูลเชิงสัมพันธ์
6 - functions
Lecture1 การประมวลผลข้อมูล และฐานข้อมูล
การวิเคราะห์อัลกอริทึม
อุปกรณ์รับและแสดงผล
การกำหนดปัญหาและศึกษาความเป็นไปได้
การแก้ปัญหาการออกแบบและพัฒนาขั้นตอนวิธี
สถาปัตยกรรมฐานข้อมูล
การ Setup disk quota กับ user ทุกคน
Lesson1 programing concept
Linklist
Hashing function
Algorithm flow chart
Search
Sorting
Lecture7 การแปลงโมเดลแบบ E-R เป็นรูปแบบโมเดลเชิงสัมพันธ์
DFD ภาษาอังกฤษ
01 ความรู้เกี่ยวกับการ web programming
การรวบรวมความต้องการ
Ad

Similar to Computer Programming 1 (20)

PPTX
พื้นฐานการสร้าง Java
PPTX
ภาษาจาวา 1
PDF
Unit 2 Java Programming
PDF
ความรู้เบื้องต้นภาษาจาวา
PDF
Unit2 เรื่องการเขียนโปรแกรมด้วยภาษาจาวา
DOC
3 software deverlop
PDF
Intermediate Java Programming Language (in Thai)
PPT
Java Programming [1/12] : Introduction
PPT
Java Programming [2/12] : Overview of Java Programming Language
PPT
การพัฒนาโปรแกรม วิชญา เลขที่ 26.2
PDF
Java 7&12 6 2
PPT
การพัฒนาโปรแกรม วิชญา เลขที่ 26.2
PPT
งาน
PDF
Programming
 
PPT
การพัฒนาโปรแกรม วิชญา
PDF
การเขียนโปรแกรมภาษา
PPT
PDF
หลักการเขียนโปรแกรม
PPT
Java intro
พื้นฐานการสร้าง Java
ภาษาจาวา 1
Unit 2 Java Programming
ความรู้เบื้องต้นภาษาจาวา
Unit2 เรื่องการเขียนโปรแกรมด้วยภาษาจาวา
3 software deverlop
Intermediate Java Programming Language (in Thai)
Java Programming [1/12] : Introduction
Java Programming [2/12] : Overview of Java Programming Language
การพัฒนาโปรแกรม วิชญา เลขที่ 26.2
Java 7&12 6 2
การพัฒนาโปรแกรม วิชญา เลขที่ 26.2
งาน
Programming
 
การพัฒนาโปรแกรม วิชญา
การเขียนโปรแกรมภาษา
หลักการเขียนโปรแกรม
Java intro

More from Saranyu Srisrontong (11)

PPTX
Computer Programming 4
PPTX
Computer Programming 3
PPT
Computer Programming 2.2
PPTX
Computer Programming 2.1
PPT
Ac current46
PPT
electric potential
PPT
พลังงานไฟฟ้า
PPT
PDF
Intellec.pro for final exam
PPT
Network fundamental
PPTX
Computer systemarchitecture
Computer Programming 4
Computer Programming 3
Computer Programming 2.2
Computer Programming 2.1
Ac current46
electric potential
พลังงานไฟฟ้า
Intellec.pro for final exam
Network fundamental
Computer systemarchitecture

Computer Programming 1

  • 2. คำจำกัดควำมของโปรแกรม  ชุดคำสั่งที่ผู้ใช้งำนเขียนขึ้นเพื่อให้เครื่องคำนวณ (Computer) ทำงำนตำมลำดับขั้นตอนที่ผู้ใช้ต้องกำร  ชุดคำสั่งหรือภำษำเขียนที่ใกล้เคียงกับกำรทำงำนของ เครื่องคอมพิวเตอร์มำกที่สุด คือ ภำษำเครื่อง (Machine Language)  ภำษำระดับสูง (High Level Language) ที่ใกล้เคียงกับ ภำษำที่มนุษย์ใช้ในชีวิตประจำวัน ได้แก่ Assembly, COBOL, Pascal, C, C++, Java ฯลฯ ซึ่งในแต่ละ ภำษำต้องมีตัวแปลภำษำ (Translator) เพื่อแปลงชุดคำสั่งเป็น ภำษำเครื่องอีกรอบหนึ่ง  ตัวแปลภำษำดังกล่ำวมี 2 สองประเภท คือ คอมไพเลอร์ (Compiler) และอินเทอร์พรีเตอร์ (Interpreter)
  • 3. พัฒนำกำรของภำษำจำวำ  ปลำยปี ค.ศ. 1995  ผู้คิดต้นแบบ คือ James Gosling และคณะ จำกบริษัท Sun Microsystems  วัตถุประสงค์เดิม คือ Oak สำหรับกำรเขียนโปรแกรมเพื่อฝังตัว ในอุปกรณ์อิเล็กทรอนิกส์  ผล คือ ภำษำสำหรับเขียนโปรแกรม (Application Programming) ซึ่งเป็นลักษณะของโปรแกรมเชิงวัตถุ (Object Oriented Programming) ซึ่งสำมำรถใช้ งำนบนเว็บได้ด้วย  Java 2 SDK Standard Edition หรือ J2SDK ประกอบด้วย features ต่ำง ๆ Class Libraries หรือที่ เรียกว่ำ Application Programmer Interfaces หรือ APIs
  • 4. ภำษำเชิงกระบวนคำสั่ง (Procedural Programming)  กำหนดตัวแปร (Variable) เพื่อจองเนื้ อที่ในหน่วยควำมจำ และเตรียมเนื้ อที่ในกำรจัดเก็บข้อมูล  เขียนขั้นตอนตำมลำดับ เพื่อสั่งให้คอมพิวเตอร์ทำงำนตำมที่ กำหนด ซึ่งลำดับในกำรทำงำนจะมีกำรจัดหมวดหมู่ในกำรทำงำน เพื่อให้ได้ผลลัพธ์ที่ต้องกำรนำมำรวมในหมู่เดียวกัน โดยอำจส่ง ค่ำตัวแปรไปให้และส่งข้อมูลคืนเมื่อกำรคำนวณเรียบร้อย
  • 5. กำรเขียนโปรแกรมเชิงวัตถุ (Objected Oriented Programming)  ผู้พัฒนำต้องมีวิสัยทัศน์เชิงวัตถุ เพื่อหำควำมต่ำงของวัตถุแต่ละอย่ำงหรือ คุณลักษณะประจำ (Attribute) ออกมำ ขณะเดียวกันต้องพิจำรณำ พฤติกรรม (Method) ของวัตถุ และนำมำเขียนเป็นคลำส (Class) ดังนั้น คลำสจะเป็นแม่แบบหรือพิมพ์เขียวในกำรสร้ำงวัตถุ (Object) หรือ Instance ให้เกิดขึ้นและมีชีวิตในระบบ โดย Object ที่สร้ำงจะมีรำยละเอียดที่ต่ำงกันไป  ตัวอย่ำง คลำสของรถ ตัวแปรหรือคุณลักษณะที่ใช้อธิบำยควำมต่ำงของ รถแต่ละคัน คือ ยี่ห้อ เช่น โตโยต้ำ, ฮอนด้ำ, นิสสัน เป็นต้น สีของรถ หรือจำนวนคนที่สำมำรถโดยสำรได้ ก็เป็นอีกตัวแปรหนึ่งที่ใช้อธิบำย ควำมต่ำงของรถ เป็นต้น ส่วนพฤติกรรมของรถ เช่น กำรขับเคลื่อนไป ข้ำงหน้ำ ถอยหลัง หรือหยุด เป็นต้น จะถูกรวบรวมเป็นเสมือนพิมพ์เขียว ในกำรผลิตรถ โดยรถแต่ละคันที่ผลิตออกมำเรียกว่ำเป็น Instance ซึ่งจะมีลักษณะประจำ (Attribute) และพฤติกรรม (Method)
  • 7. หลักที่สนับสนุนกำรโปรแกรมเชิงวัตถุ  ควำมสำมำรถในกำรสืบทอด (Inheritance) เป็นกำรสืบทอด คุณสมบัติของคลำส โดยสร้ำงคลำสหลักซึ่งมีคุณสมบัติต่ำง ๆ โดยรวมที่คลำสอื่นจำเป็นต้องมี จำกนั้นจึงสร้ำงคลำสอื่นขึ้นมำ เพื่อ รับกำรถ่ำยทอดคุณสมบัติทั้งหมดจำกคลำสหลักโดยอัตโนมัติ โดย ไม่ต้องสร้ำงขึ้นใหม่ และสำมำรถสร้ำงคุณสมบัติอื่น ๆ นอกจำกคลำส หลักขึ้นได้  ควำมสำมำรถในกำรเก็บซ่อน (Encapsulation) เป็นกำร ซ่อนส่วนของกำรทำงำนภำยในที่ไม่เกี่ยวข้องกับภำยนอกไว้โดยผ่ำน คลำส เพื่อไม่ให้ผู้นำคลำสไปใช้เห็น หรือทรำบรำยละเอียดขั้นตอน กำรทำงำนของคลำส เพื่อไม่ให้มีกำรแก้ไขเปลี่ยนแปลงส่วนที่ซ่อนไว้ ผู้นำคลำสไปใช้จะดัดแปลงได้เฉพำะส่วนที่อนุญำตเท่ำนั้น
  • 10.  ควำมสำมำรถในกำรแปลงร่ำง (Polymorphism) :- ไม่ จำเป็นต้องสืบทอดคุณสมบัติทุกอย่ำงเสมอไป เนื่องจำกกำรแก้ไข ลำดับกำรทำงำนของฟังก์ชันเดิม ทำให้เสียเวลำในกำรตำมแก้ไข ทำงที่ดี คือ อนุญำตให้มีกำรเขียนชุดคำสั่งใหม่ภำยใต้ชื่อฟังก์ชัน เดิมที่มี ตัวอย่ำงเช่น กำร Save To File ของ Memo จะ ได้ Text File ที่เก็บข้อควำมนั้น ขณะที่ Save To File ของ Image จะได้ไฟล์รูปภำพ  ควำมสำมำรถในกำรจัดโครงสร้ำงแบบเชิงนำม (Abstract) ข้อมูลแบบเชิงนำม คือ ข้อมูลหรือกระบวนกำรที่ยังไม่เกิดขึ้น กำร สร้ำงคลำสแบบเชิงนำมเป็นวิธีหนึ่งที่ช่วยไม่ให้กำรพัฒนำระบบงำน ต้องหยุดชะงัก เนื่องจำกข้อมูลอำจจะยังไม่เกิด หรือยังไม่สำมำรถ อธิบำยได้ว่ำ ขั้นตอนกำรทำงำนจะเป็นอย่ำงไร
  • 12. ข้อดีของกำรพัฒนำโปรแกรมด้วยจำวำ  ง่ำย เนื่องจำกเลียนแบบภำษำ C/C++ ไม่มีคำสั่ง GOTO และ pointer  เป็นภำษำเชิงวัตถุที่สมบูรณ์  มีกำรป้ องกันกำรผิดพลำด (Robust) กำรกำจัดสิ่งที่ไม่ใช้ (Garbage Collection) แบบอัตโนมัติ และกำรจัดกำรควำม ผิดพลำด (Exception Handling) แบบอัตโนมัติ  มีควำมปลอดภัยในกำรที่จะประมวลผล (Secure) โดยไม่ทำลำย ทรัพยำกรของเครื่อง  Multithread ใน java.lang :- ควำมสำมำรถในกำรประมวลผล หลำยงำนพร้อมกัน  Architecture neutral and portable :- สำมำรถ เคลื่อนย้ำยได้ง่ำย รวมทั้งใช้งำนในสภำวะแวดล้อมที่ต่ำงกัน และใช้กับ คอมพิวเตอร์ได้ทุกระบบ (Multi Platform) โดยไม่ต้องปรับแต่ง  กำรเชื่อมโยงแบบพลวัต (Dynamic Link) และกำรประมวลผลแบบ กระจำย (Distributed) ในระบบเครือข่ำย
  • 13. Java Platform Hardware Java Virtual Machine (Java VM) Java API (Java Application Programming Interface) โปรแกรมภำษำจำวำ
  • 14. ข้อกำหนดเบื้องต้นในกำรเขียนโปรแกรม  แต่ละประโยคต้องจบด้วยเครื่องหมำย ; เสมอ  สัญลักษณ์อื่นที่ใช้แยกข้อควำมหรือคำสั่งอีก เช่น  ( ) ใช้สำหรับแยกลำดับในกำรประมวลผล  { } ใช้สำหรับแยกชุดคำสั่ง หรือรวมชุดคำสั่งเป็นบล็อก  , ให้ควำมต่อเนื่องในกำรทำงำน เช่น กำรกำหนดตัวแปรที่มี ประเภทข้อมูลแบบเดียวกัน  . ใช้ในกำรแยก package กับ class หรือ object กับ method
  • 15.  หลักเกณฑ์กำรตั้งชื่อต่ำง ๆ เช่น ชื่อ class, ชื่อ data, ชื่อ method และชื่อตัวแปร  ประกอบด้วยตัวอักษรภำษำอังกฤษ ตัวเลข และสัญลักษณ์ _ หรือ $ เช่น age, int2float, _name$ เป็นต้น  ควำมยำวไม่ควรเกิน 65535 ตัวอักษร  ไม่ควรใช้ตัวเลขเป็นตัวแรก เช่น 101database, 2name  ไม่ควรใช้ช่องว่ำง (spaces) หรือ . (periods)  ตัวอักษรตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ถือว่ำต่ำงกัน เช่น Count, count และ CoUnT ถือว่ำเป็นคนละชื่อ  ต้องไม่ตรงกับคำศัพท์สงวน (Key Word) ในภำษำจำวำ  ชื่อ class ควรขึ้นต้นด้วยตัวพิมพ์ใหญ่ ส่วนที่เหลือเป็นตัวเล็ก  ชื่อ data หรือตัวแปรควรเป็นตัวพิมพ์เล็กทั้งหมด  ชื่อค่ำคงที่ควรเป็นตัวพิมพ์ใหญ่ทั้งหมด  ชื่อ method คำแรกควรเป็นตัวเล็กทั้งหมด คำถัดไปตัวแรกควรเป็น ตัวพิมพ์ใหญ่ ที่เหลือจึงเป็นตัวเล็ก เช่น setCount, testFirst เป็นต้น
  • 16. คำศัพท์สงวน (Key Word) ในภำษำจำวำ abstract boolean break byte case catch char class const continue default do double else extends final finally float for goto if implements import instanceof int interface long native new package private protected public return short static super switch synchronized this throw throws transient try void volatile while
  • 17.  กำรเขียนหมำยเหตุ (Comment) สำมำรถทำได้ 3 รูปแบบ คือ //single line comment /* multiple line comments …*/ /** This is a javadoc comment*/  โปรแกรมที่สร้ำงจำกจำวำต้องสำมำรถสร้ำงได้อย่ำงน้อยหนึ่งคลำสโดยมี รูปแบบโครงสร้ำงดังนี้ [<access_specifier>] class <class_name> { //data members //methods }  access_specifier :- ระดับกำรเข้ำถึงข้อมูล เช่น public และ private  public หมำยถึง ระดับกำรเข้ำถึงข้อมูลที่ไม่มีข้อจำกัดใดๆ  private หมำยถึง ระดับกำรเข้ำถึงข้อมูลสำหรับกำรใช้งำนในคลำส  ในหนึ่งโปรแกรมต้องมีเพียงหนึ่งคลำสที่มีชื่อเดียวกับโปรแกรมและต้องเป็น ชนิด public เสมอ
  • 18.  data members เป็นส่วนประกอบหนึ่งของคลำส ใช้ สำหรับกำหนดชื่อและชนิดของตัวแปรที่ใช้สำหรับเก็บข้อมูล โดยมีรูปแบบดังนี้ [<access_specifier>] [<modifier>] <datatype> <variable_name>  modifier เป็นกำรกำหนดคุณลักษณะพิเศษในกำรใช้งำน ตัวแปรและ method เช่น static และ final  static หำก Data ใดนำหน้ำด้วยคำศัพท์สงวน static แล้ว Data นั้น จะถูกโหลดลงในหน่วยควำมจำและพร้อม ใช้งำนทันที เมื่อมีกำรอ้ำงถึงตำมข้อกำหนดของระดับกำร เข้ำถึง (Accessibility)  final หำก Data ใดนำหน้ำด้วยคำศัพท์สงวน final แล้ว Data นั้นใช้สำหรับเก็บข้อมูลค่ำคงที่ (Constant) ซึ่ง ไม่สำมำรถเปลี่ยนค่ำได้
  • 19.  methods มีรูปแบบดังนี้ [<access_specifier>] [<modifier>] < return_type > <method_name> ([argument_list]) { //Statements }  return_type :- ชนิดของข้อมูลที่ถูกส่งคืนหลังสิ้นสุดกำรทำงำน ของ method  argument_list :- ช่องทำงในกำรผ่ำนข้อมูลเพื่อส่งให้ method ใช้ในกำรทำงำน  Statement :- คำสั่งควบคุมกำรทำงำนของนิพจน์ เพื่อกำหนด หลักกำรและวิธีกำรประมวลผลภำยใน method  ในหนึ่งโปรแกรมจะต้องมี Method ที่ชื่อ main เสมอ โดย Method main จะเป็น Method แรกที่โปรแกรมเรียกใช้ ซึ่ง ในหนึ่งโปรแกรมจะต้องมีเพียง 1 main Method เท่ำนั้น ซึ่ง จะต้องมีค่ำ Accessibility เป็น static เสมอ และเนื่องจำกไม่มี กำรส่งค่ำกลับ จึงใช้ Accessibility void ร่วมด้วยเสมอ
  • 20.  ท้ำยชื่อของ Method ต้องตำมด้วยเครื่องหมำย ( ) หำก ไม่มีกำรส่งค่ำพำรำมิเตอร์ใดไปด้วย หำกมีกำรส่งค่ำ จะต้องอยู่ ในรูปแบบใดแบบหนึ่งเสมอ เช่น (String args[ ]) หรือ (String[ ] args)  กำรแสดงผลทำงจอภำพสำมำรถทำด้วย method ที่ชื่อว่ำ println ซึ่งอยู่ใน System.out โดยคำสั่งนี้ ต้องกำร ข้อมูลที่เป็น String เพื่อนำไปแสดงบนจอภำพ แต่ทั้งนี้ อำจ ส่งข้อมูลที่เป็น Integer ร่วมด้วยได้โดยใช้เครื่องหมำย + ข้อมูลทั้งหมดจะถูกแปลงเป็น String โดยอัตโนมัติ
  • 22.  โปรแกรมที่เขียนแบบ Applet ต้องมีกำรเพิ่มคลำสต่ำง ๆ โดยเฉพำะ java.applet.* และ java.awt.Graphics  Package หรือ Java Class Library เป็นที่เก็บ รวบรวม Class ต่ำง ๆ แต่ละ Package จะถูกเก็บแยกไว้ ในแต่ละ Directory และแต่ละ Package จะเก็บ Class ต่ำง ๆ แยกไว้ในแต่ละ Directory เช่นเดียวกัน ใน แต่ละ Class จะมี methods ให้เลือกนำมำใช้ให้เหมำะกับ งำนที่ต้องกำรโดยไม่ต้องเขียนขึ้นมำเอง  Class ใน Package หนึ่งสำมำรถเรียกใช้ Class อื่นใน Package เดียวกันได้ แต่จะเรียกใช้ Class ที่อยู่ต่ำง Package กันได้หรือไม่ขึ้นอยู่กับกำรกำหนดค่ำ Accessible ข้อกำหนดเพิ่มเติมในกำรเขียน Java Applet
  • 23.  กำรเรียกใช้ Package สำมำรถทำได้ด้วยคำสั่ง import ซึ่ง ต้องวำงไว้ตอนแรกสุดของโปรแกรมเสมอ เพื่อให้ Compiler นำ Package ต่ำง ๆ ที่อ้ำงถึงมำเชื่อมโยงเข้ำกับโปรแกรม ก่อนที่จะมำเรียกใช้ methods ต่ำง ๆ ภำยในโปรแกรม  โปรแกรม Applet ต้องเขียนในรูป public class hello2 extends Applet ซึ่งเป็นกำรสืบทอดคุณสมบัติของคลำส Applet  กำรแสดงข้อมูลบนจอภำพ ต้องใช้คำสั่ง drawString ซึ่งเป็น method ของคลำส Graphics
  • 24. ตัวอย่ำงกำรเขียน Java Applet import java.applet.*; import java.awt.Graphics; public class hello2 extends Applet { public void paint(Graphics g) { g.drawString("Hello World!",20,60); } }
  • 26. ตัวอย่ำง Standard Package ในภำษำ Java Package Class ที่เป็นส่วนประกอบ java.applet Class ที่จำเป็นต่อกำรสร้ำง Applet java.awt Class ทีใช้ประโยชน์ในกำรสร้ำง GUI java.io Class สำหรับปฏิบัติงำนด้ำน I/O java.lang Class พื้นฐำนของ Java ไม่ต้อง import java.net Class ที่ใช้ติดต่อกับเครือข่ำย ใช้ควบคู่กับ java.io java.util Class ที่เป็น Utility เช่น กำรเข้ำรหัส กำรถอดรหัส java.awt.images Class ที่ใช้ในกำรสร้ำงและทำงำนกับรูปภำพ java.swing Class ที่ใช้สร้ำง Swing ช่วยให้ทำงำนง่ำยกว่ำ java.awt