Blog นี้ผมจะขอเริ่มต้นที่เรื่องราวของ Soft ware ล้วนๆ นะครับ โดยจะเริ่มต้นจาก การติดตั้งและและการใช้งานเบื่องต้น ตั่งแต่ยุคเริ่มแรกของ Software กันเลยที่เดียว การแก้ปัญหาของเครื่องโดยใช้ Dos และอาจจะรวมไปถึงการ ทำแผ่นบูต ด้วย CD DVD และ Drive USB ชนิดต่างๆ โดยใช้ OS ต่างๆกันไปครับ และรวมไปถึง การติดตั้งและใช้งานโปรแกรมต่างๆ ที่เป็นที่นิยม และหน้าสนใจ ผมอาจจะใส่ข้อมูลการเขียนโปรแกรมด้วยนะครับ ข้อให้คุณผู้อ่านอย่าเบื่อก่อนนะครับ และผมคิดว่าคงมีประโยชน์ต่อทุกท่านไม่มากก็น้อยละครับ

Translate

เรียนภาษา Java กัน

Java คืออะไร?

Java เป็นภาคภาษาคอมพิวเตอร์ที่ได้รับการออกแบบ สำหรับการใช้บนอินเตอร์เน็ต โดยมีส่วนของการ "look and feel" แบบภาษา C++ แต่ง่ายกว่าการใช้ C++ และสามารถสร้างมุมมองโดยโปรแกรมได้ Java สามารถใช้ในการสร้างการประยุกต์แบบสมบูรณ์ ซึ่งสามารถเรียกใช้ได้เฉพาะเครื่องคอมพิวเตอร์ หรือการกระจายระหว่างเครื่องแม่ข่ายกับลูกข่ายในระบบเครือข่าย และสามารถสร้างโมดูลการประยุกต์ขนาดเล็กหรือ applet สำหรับเป็นส่วนของเว็บเพจ applet ทำให้มีความเป็นได้ในด้านการตอบสนองของผู้ใช้กับเว็บเพ็จ
(Applet คืออะไร Applet หรือ Java Applet คือ โปรแกรมขนาดเล็ก ในภาษา Java (ที่ไม่สามารถรันได้ด้วยตนเอง ต้องมีโปรแกรมอื่นๆ มาเรียกใช้งาน เช่นWeb server ที่ติดตั้ง JRE (java runtime environment) หรือ Sun's AppletViewer) มักถูกกำหนดไว้ให้ใช้งานได้บนเว็บเพจ โดยแสดงผลผ่านเว็บบราวเซอร์ Applet นั้นมีจุดเด่นที่สามารถสร้างส่วนติดต่อผู้ใช้งานเป็น Graphic User Interface (GUI ) ได้ทำให้สามารถแสดงข้อความ และสามารถตกแต่งด้วยภาพกราฟิกสวยงามได้)

คุณลักษณะของ JAVA

  • โปรแกรมมีขนาดเล็กในระบบเครือข่าย การคอมไพล์จะแปลงโปรแกรมเป็น Java bytecode ซึ่งสามารถเรียกใช้งานได้ทุกที่ภายในเครือข่าย Java virtual machine เป็นตัวแปร bytecode ให้เป็นโปรแกรมเพื่อใช้งานบนเครื่องคอมพิวเตอร์ มีความหมายว่า platform ที่แตกต่างกันของคอมพิวเตอร์ สามารถใช้โปรแกรมนี้ได้

  • คำสั่งเป็นแบบ "Robust" มีความหมายว่า อ็อบเจคของ Java ไม่มีการอ้างอิงข้อมูล หรืออ็อบเจคจากภายนอกซึ่งแตกต่างจาก C++ และภาษาอื่น ๆ เป็นการทำให้มั่นใจไม่มีการเก็บตำแหน่งของข้อมูล ในโปรแกรมประยุกต์อื่น หรือในระบบปฏิบัติการที่ทำให้โปรแกรมไม่ทำงาน Java virtual machine ทำการตรวจสอบแต่ละอ็อบเจคที่ใช้ในโปรแกรม

  • Java เป็นเหมือนกับอ็อบเจคหนึ่ง สามารถได้รับประโยชน์จาก class หรือคำสั่ง เนื่องจากอ็อบเจคมีคุณสมบัติเป็น "นาม" ซึ่งทำให้ติดต่อกับผู้ใช้ได้ ในขณะนี้ภาษาดั้งเดิมมีคุณสมบัติเป็น "กริยา" ดังนั้น method จะได้การรับรู้เป็นความสามารถของอ็อบเจคหรือพฤติกรรม

  • การประมวลผลทำที่เครื่องลูกข่าย ดังนั้น Java applet มีคุณลักษณะในการออกแบบให้ทำงานได้เร็ว

  • Java ง่ายกว่า C++ โดยเปรียบเทียบ
Java ได้รับการแนะนำโดย Sun Microsystems ในปี 1995 และทำให้เกิดทัศนคติการตอบสนองของเว็บ ทำให้ web browser รายหลักได้รวม Java virtual machine เป็นส่วนหนึ่งของ browser ผู้พัฒนาระบบปฏิบัติการเกือบทั้งหมดได้ร่วม Java complier เป็นส่วนหนึ่งของผลิตภัณฑ์ Java virtual machine รวมถึงตัวเลือกคือ Just-in-time complier ซึ่งเป็น complier แบบไดนามิคในการคอมไพล์ byte code เป็นคำสั่งที่ประมวลผลได้ เป็นตัวเลือกในการแปร bytecode ในหลาย ๆ กรณี dynamic JIT สามารถคอมไพล์ได้เรียกว่าการแปรของ Java virtual machine JavaScript เป็นภาษาที่พัฒนาโดย Netscape ซึ่งเป็นตัวแปร (Interpreter) ภาษาระดับสูงและง่ายกว่าการเขียนด้วย Java แต่ขาดความกะทัดรัดเหมือน Java และความเร็วไม่มาก เนื่องจาก Java applet สามารถใช้งานได้รับเกือบทุกระบบปฏิบัติการ โดยไม่ต้องคอมไพล์ใหม่และ Java ไม่ใช้ส่วนขยายของระบบปฏิบัติการหรือตัวแปร ดังนั้น Java จึงได้รับพิจารณาเป็นภาษาหลักในการพัฒนาการประยุกต์บนเว็บ

เริ่มต้นโปรแกรมภาษาจาวา
(Introduction Java Programming)

1.1 ความรู้พื้นฐานเกี่ยวกับภาษาจาวา

1.1.1 ประวัติความเป็นมา
เป็นภาษาที่ถูกพัฒนาโดย Dr.Jame Gosling บริษัท Sun Microsystems เดิมทีชื่อ ภาษาโอ๊ค (Oak) เป็นชื่อต้นไม้ใหญ่ที่อยู่ในบริเวณบ้าน ที่ทีมวิศวกรของซัน ทำงานอยู่ นำมาใช้ในการพัฒนาโปรแกรมขนาดจิ๋วสำหรับ อุปกรณ์ เครื่องใช้อิเล็คทรอนิกส์ ได้ทำการพัฒนาต่อมาเรื่อยๆ และได้เปลี่ยนชื่อใหม่เป็น ภาษาจาวา (Java) ตามชื่อกาแฟที่ทีมพัฒนาดื่ม
1.1.2 จุดเด่น
  1. เป็นภาษาสำหรับการเขียนโปรแกรมเชิงวัตถุ (OOP: Object Oriented Programming)
  2. Java คือ platform independence หมายความว่าความสามารถของโปรแกรมที่เขียนด้วย java สามารถทำงานได้ในระบบปฏิบัติการที่ต่างกัน โดยไม่ต้องดัดแปลงแก้ไขใหม่
  3. Free และ เป็นโปรแกรมประเภท Open Source
1.1.3 ชนิดของโปรแกรม Java
  1. Java Application
    เป็นการนำโปรแกรม Java มาเขียนเป็นโปรแกรมที่สามารถนำมาใช้งานได้อย่างอิสระ
  2. Java Applets
    เป็นการนำ Java มาเขียนเป็นโปรแกรมเช่นเดียวกัน แต่ไม่สามารถเรียกใช้งานได้ตามลำพัง ต้องนำมาใส่ไว้ในเอกสาร HTML แล้วใช้โปรแกรม Web Browser หรือ Utilities ของ Java เพื่อเรียกดูผลลัพธ์

1.2 สถาปัตยกรรมของภาษาจาวา

1.2.1 สถาปัตยกรรมของจาวา ประกอบด้วยส่วนสำคัญ 4 ส่วน
  1. Java programming Language คือ โปรแกรมที่เขียนด้วยภาษา java (.java) ในรูปของ text ที่สามารถอ่านได้ เรียกว่า ซอร์สโค้ด (Source code)

  2. Java class file คือ ซอร์สโค้ด ที่ถูกแปลง (compile) เป็น .class หรือ ไบต์โค้ด (byte code) ที่อยู่ในรูปของคำสั่งที่ Java Virtual Machine (Java VM) เข้าใจ

  3. Java API คือ กลุ่มของ ready-made software components โดยจะรวมอยู่ใน ไลบารีของคลาสและอินเตอร์เฟช ซึ่งสามารถนำมาใช้ได้โดยไม่ต้องเขียนเอง

  4. Java Virtual Machine (JVM) คือ ส่วนที่จะไปติดต่อสั่งงานโดยตรงต่อคอมพิวเตอร์ ภายในประกอบด้วย - Class loader ทำหน้าที่โหลด Class file จากโปรแกรมและจาก Java API - Execution engine ทำการแปล(interpret) ไบต์โค้ด ซึ่งมีหลายรูปแบบ เช่น Just in time, Adaptive optimizer

1.2.2 การแปลงโค้ดของภาษาจาวา
  1. Java program คือโปรแกรมที่เราเขียนขึ้นโดยใช้ภาษาจาวา จะอยู่ในรูปเท็กซ์ (text) ที่สามารถอ่านได้ โดยชื่อไฟล์จะมีนามสกุล .java เราเรียกว่า ซอร์สโค้ด (Source code) ซึ่งซอร์สโค้ดจะถูกคอมไพล์เป็น java class file หรือ ไบต์โค้ด ชื่อไฟล์จะมีนามสกุล .class ซึ่งอยู่ในรูปของคำสั่งที่ java virtual Machine เข้าใจ

  2. API คือโค้ดที่คอมไพล์แล้ว ช่วยให้โปรแกรมแอกเซสในส่วนของ system services ของระบบปฏิบัติการ ส่วน Java API คือกลุ่มของ ready-made software components โดยรวมเป็น ไลบราลีของคลาส Java Virtual Machine จะโหลด Java API เมื่อโปรแกรมจาวาถูก run



1.3 เครื่องมือ และขั้นตอน ในการพัฒนาโปรแกรม

1.3.1 เครื่องมือพัฒนาโปรแกรม
Java Development Kit ได้ถูกเปลี่ยนให้มีชื่อเป็น J2SDK – Java 2 Software Development Kit เป็นชุดโปรแกรมที่ใช้สำหรับสร้างและพัฒนาโปรแกรมภาษาจาวา ภายในชุดประกอบด้วยโปรแกรมต่าง ๆ ดังนี้
  1. javac เป็นเครื่องมือที่ใช้ในการ Compile ที่ทำการเปลี่ยน Source Code ที่เขียนขึ้นให้เป็น Byte Code

  2. java เป็นเครื่องมือที่ใช้ในการ Execute Byte Code สำหรับโปรแกรมที่เขียนขึ้นในแบบของ application

  3. appletviewer เป็นเครื่องมือที่ใช้การ Execute โปรแกรมที่เขียนขึ้นในแบบของ applet

1.3.2 ขั้นตอนการเขียนโปรแกรม
  1. ติดตั้งเครื่องมือที่ใช้ในการพัฒนาโปรแกรมแกรม (SDK) Download java compiler from web http://java.sun.com/javase/downloads/index.jsp

  2. เขียนโปรแกรมด้วย Text Editor เช่น Notepad, Edit Plus, Crimson Editor, JCreator

1.3.3 การคอมไพล์และรันของโปรแกรม
รูปแบบของโปรแกรม ทำได้ 2 ลักษณะ คือ
  1. Java Application เป็นโปรแกรมทั่วไปที่เขียนด้วยภาษาจาวา สามารถทำงานได้กับทุก platform โดยไม่ต้องใช้ Browser

  2. Java Applets เป็นโปรแกรมที่เขียนขึ้นมาเพื่อฝังตัว (embedded) ไว้ใน Web page เพื่อใช้สำหรับอินเตอร์เน็ต

1.3.4 ขั้นตอนการคอมไพล์และรันโปรแกรม
  1. สร้าง source code กำหนดนามสกุลเป็น .java

  2. นำไฟล์ที่ได้มาแปลงเป็น byte code ด้วยการ compile โดยใช้คำสั่ง javac ชื่อไฟล.java เมื่อผ่านการ compile จะได้ไฟล์ที่มีนามสกุล .class - กรณี Applications

  3. นำไฟล์ที่ได้มาเรียกใช้ ถ้าเป็น windows ใช้คำสั่ง .java - กรณี Applications

  4. สร้างเอกสาร Html ขึ้นมา

  5. นำไฟล์ในข้อ 2 ใส่ลงในเอกสาร Html

  6. เรียกดูผลลัพธ์ผ่านทาง Browser หรือ Applet Viewer

สิ่งที่ควรคำนึงในการ Compile
  • ต้องพิมพ์ชื่อเต็มพร้อมนามสกุลของ Source File เสมอ

  • การพิมพ์ชื่อของโปรแกรมต้องพิมพ์ตัวอักษรตัวใหญ่ ตัวเล็กให้ถูกต้องเสมอ


1.4 โครงสร้างโปรแกรมภาษาจาวา

       public class ชื่อคลาส
       {
              public static void main(String[] agrs)
              {
                     ประโยคคำสั่งต่างๆ ของโปรแกรม;
                     ..................................................;
              }
       }
ตัวอย่างโปรแกรมภาษาจาวา
ไฟล์ Example.java
class Example
{
       public static void main(String[] args)
       {
              String dataname = “Java Language“;
              System.out.println(“My name is OAK“);
              System.out.println(“OAK is a “ + dataname +“. “);
       }
}
หมายเหตุ
Compile : javac Example.java จะได้ไฟล์ Example.class
Run : java Example
Output : My name is OAK
OAK is a Java Language
คำอธิบาย
- method main( ) จะเป็น method หลักที่ใช้ในการ run program ดังนั้นการกระทำต่าง ๆ ที่ต้องการให้เกิดขึ้น ในการ run program จะต้องทำการเขียนคำสั่งไว้ใน method นี้
- การแสดงผลทางจอภาพ (Console Output) ใช้ method ชื่อ "println" ซึ่งอยู่ใน System.out คำสั่งนี้จะรับข้อมูลที่เป็น String เพื่อนำมาแสดงผลทางจอภาพ

ตัวแปรและชนิดของข้อมูล
(Variable and Data Types)

2.1 ตัวแปร (Variable)

- ตัวแปร หรือ Variable เป็นที่เก็บข้อมูลต่างๆ ที่เราต้องการใช้ในการประมวลผล
- ตัวแปรเป็นสัญลักษณ์ที่ใช้ในการแทนหน่วยความจำ (Memory) ที่อยู่ในเครื่อง และ Compiler จะเป็นผู้กำหนดว่าอยู่ที่ใด มีขนาดเท่าใด
2.1.1 กฏเกณฑ์ในการตั้งชื่อตัวแปร
  1. ประกอบด้วยตัวเลข ตัวอักษร(letter), เครื่องหมาย _ (Underscore) หรือ เครื่องหมาย $ (Dollar sign)
  2. ต้องขึ้นต้นด้วยตัวอักษรและห้ามเว้นวรรค
  3. ไม่สามารถใช้สัญลักษณ์พิเศษอื่น เช่น +, -, *, &, %, # ฯลฯ เป็นส่วนประกอบอยู่ภายในชื่อได้
  4. สามารถตั้งชื่อให้มีความยาวเท่าใดก็ได้
  5. ไม่สามารถใช้ คำสงวน(Reserved word)
  6. ตัวอักษรตัวใหญ่และตัวเล็ก ถือว่ามีความแตกต่างกัน
2.1.2 คำสงวน (Reserved Words)
abstract, assert, boolean, break, byte, case, catch, char, class, const, continue, default, do, double, else, enum, extends, final, finally, float, for, goto, if, implements, import, instanceof, int, interface, long, native, new, package, private, protected, public, return, short, static, strictfp, super, switch, synchronized, this, throw, throws, transient, try, void, volatile, while

2.2 ชนิดของข้อมูล (Data Type)

ชนิดข้อมูลในภาษาจาวาแบ่งเป็นสองประเภทใหญ่ๆ คือ
2.2.1 ชนิดข้อมูลแบบพื้นฐาน (primitive data type)
หมายถึงชนิดข้อมูลที่สามารถเก็บข้อมูลที่เป็นข้อมูลทั่วไปหรือข้อมูลพื้นฐาน มีทั้งหมด 8 ตัว ได้แก่ boolean, char, byte, short, int, long, float,double
2.2.2 ชนิดข้อมูลแบบอ้างอิง (reference data type)
มีความแตกต่างกับชนิดข้อมูลพื้นฐาน ที่ว่าชนิดข้อมูลชนิดนี้อยู่ในรูปแบบหนึ่ง ซึ่งการเข้าถึง(ใช้งาน)ข้อมูลเป็นการอ้างถึง มากกว่าการเข้าถึงข้อมูลโดยตรง เก็บข้อมูลไว้ 2 ส่วน คือ - Execution Stack เก็บค่าอ้างอิงที่ชี้ไปยัง Heap memory - Heap Memory เก็บข้อมูลที่เรียกว่าออปเจ็ค ที่สร้างขึ้นมาจากคลาส

ชนิดข้อมูล

ขนาด(bit)

ค่าที่เก็บได้

boolean JVM กำหนด true หรือ false
byte 8 -128 ถึง 127
short 16 -32768 ถึง 32767
int 32 -2147483648 ถึง 2147483648
long 64 -9223372036854775808 ถึง 9223372036854775808
float 32 -3.4E38 ถึง 3.4E38
double 64 -1.7E308 ถึง 1.7E308
char 16 ใช้เก็บอักขระที่มีรหัสตั้งแต่ 0 ถึง 65535

2.3 การประกาศค่าตัวแปร

2.3.1 รูปแบบการประกาศ
   datatype ชื่อตัวแปร;
       ตัวอย่าง
       int Num1, Num2;
       float value1, value2
2.3.2 การกำหนดค่าให้ตัวแปร(Assignment)
   ใช้เครื่องหมาย = เรียกว่า Assignment operator
   นำค่าทางขวามือของเครื่องหมาย = มาเก็บทางซ้ายมือของเครื่องหมาย =
       ตัวอย่าง
       number = 2;
       area = PI*r*r;
2.3.3 การใช้ final ในการกำหนดค่าให้กับตัวแปร
   เป็นการประกาศตัวแปร ที่ตัวแปรนั้นๆ จะไม่สามารถมีค่าอื่นๆได้อีก ไม่ว่าจะเป็นการเปลี่ยนค่าภายในโปรแกรม หรือการเปลี่ยนแปลงที่เกิดจากการใส่ข้อมูลใหม่ผ่านทาง keyboard
   การใช้ final จะทำให้โปรแกรมมีความแม่นยำและมั่นคงมากยิ่งขึ้น การทำจะเปลี่ยนค่าเหล่านี้ไม่สามารถทำได้ ทำให้การออกแบบและพัฒนาโปรแกรมมีประสิทธิภาพ ลดข้อผิดพลาดที่อาจจะเกิดจากโปรแกรมเมอร์เอง
2.3.4 อายุ และขอบเขตการใช้งาน (life-time- and scope)ของตัวแปร
   หลังจากที่มีการประกาศใช้ตัวแปรใดๆ ในโปรแกรม ตัวแปรเหล่านี้จะมีขอบเขต หรืออายุการใช้งานตามลักษณะ การประกาศตัวแปรของผู้เขียนโปรแกรมเอง โดย ตัวแปรจะมีอายุการใช้งานตามเนื้อที่ (block) ที่ตัวแปรเหล่านั้น ปรากฏอยู่ ซึ่งจะอยู่ใน เครื่องหมาย { }

2.4 การประมวลผล

  ในภาษาจาวา ประโยค (statement) จะจบด้วยเครื่องหมาย ; (semicolon) เสมอ ดังนั้นโปรแกรมสามารถเขียน statement ได้มากกว่าหนึ่งสเตจเม็นต์ในหนึ่งบรรทัดของ source code หรือสามารถเขียน statement โดยมีความยาวมากกว่าหนึ่งบรรทัดก็สามารถทำได้ Expression หมายถึง ประโยคในภาษา Java ที่ได้รับการยอมรับว่าอยู่ในรูปแบบที่ได้กำหนดไว้
  การเขียน code ให้มีรูปแบบที่เหมาะสม อ่านได้ง่าย จะทำให้การพัฒนาโปรแกรมเป็นไปได้ด้วยความรวดเร็วและ เป็นที่ยอมรับตามระบบสากล รูปแบบที่เหมาะสมนั่นคือ การย่อหน้า (indentation) เพื่อให้การอ่านทำได้ง่าย และมอง ดูสวยงาม
  เมื่อมีตัวแปรหลายตัวในการประมวลผลของประโยค ลำดับขั้นของการประมวลผลมีความสำคัญ เนื่องจากรูปแบบของ การประมวลผลตามขั้นของ operator ต่างๆ มีลำดับการประมวลผลที่ไม่เท่ากัน ซึ่งเป็นไปตามกฎของการประมวลผล ทางคณิตศาสตร์ ได้แก่
   1) การประมวลผลข้อมูลที่เป็นจำนวนเต็ม
   2) การประมวลผลด้วยตัวแปรที่มีจุดทศนิยม
   3) การประมวลผลข้อมูลต่างชนิดกัน
       - ถ้าตัวแปรใดเป็น double ตัวแปรที่นำมาประมวลผลด้วยจะถูกเปลี่ยนให้เป็น double ก่อนการประมวลผล
       - ถ้าตัวแปรใดเป็น float ตัวแปรที่นำมาประมวลผลด้วยจะถูกเปลี่ยนให้เป็น float ก่อนการประมวลผล
       - ถ้าตัวแปรใดเป็น long ตัวแปรที่นำมาประมวลผลด้วยจะถูกเปลี่ยนให้เป็น long ก่อนการประมวลผล
   4) การประมวลผลตัวเลขที่มีขนาดใหญ่

Java จะมี class BigInteger ที่สามารถเรียกใช้เพื่อประมวลผลตัวเลขที่มีค่ามากกว่า int ที่จะเก็บค่าได้

ลำดับขั้นการประมวลผลของเครื่องหมาย

ลำดับที่

เครื่องหมาย

ลำดับที่

เครื่องหมาย

1 วงเล็บ ( ) 6 = =, !=
2 ++,-- 7 &&
3 *, /, % 8 ||
4 +, - 9 =, +=, -=, *=, /=, %=
5 <, <=,>, >=

ไม่มีความคิดเห็น: