What is -JAVA
วันจันทร์ที่ 10 ธันวาคม พ.ศ. 2555
Abstraction
"Abstraction" เป็นการมองวัตถุ (Object) เฉพาะภายนอกเท่านั้นโดยไม่สนใจว่าวัตถุนั้นเกิดขึ้นได้อย่างไร หรือมีการทำงานภายใน อย่างไร"คือมองแค่ว่า Class or Object ที่เราต้องการใช้นั้น ใช้งานมันได้อย่างไร ไม่ต้องรู้ว่ามันทำงานอย่างไร
Encapsulation
คือ การรวม data และ method ทั้งหลายที่เกี่ยวข้องกัน และทำงานร่วมกันเอาไว้ใน object หนึ่ง นอกจากนี้แล้วยังมีการซ่อนรายละเอียดของการทำงานของ method ต่างๆใน object เอาไว้ และไม่ให้ object อื่นๆสามารถที่จะเข้าไปแก้ไข data ได้โดยตรง
Object
การประกาศ Class
[modifier] class Classname {
[class member]
}
- Modifier คือคีย์เวิร์ด ของภาษาจาวาที่ใช้ในการอธิบายระดับการเข้าถึง (Access modifier)
- class คือคีย์เวิร์ด ของภาษาจาวา เพื่อระบุว่าเป็นการประกาศคลาส
- Classname คือชื่อคลาส
- Class member คือเมธอดหรือคุณลักษณะ
การประกาศ attributes
การประกาศ attributes
[modifier] dataType attributeName;
modifier คือ keyword ของภาษาจาวาที่ใช้เป็น access modifier เช่น public หรืออธิบายคุณสมบัติอื่นๆ ของคลาส เช่น abstract และ final
dataType คือ ชนิดข้อมูลซึ่งอาจเป็นชนิดข้อมูลแบบพื้นฐานหรือชนิดข้อมูลแบบอ้างอิง
attributeName คือ ชื่อของคุณลักษณะที่เป็นชื่อ identifier ใดๆซึ่งสอดคล้องกับกฏการตั้งชื่อ
ตัวอย่าง
public class Student{
public String id;
public String name;
public double gpa;
}
การประกาศ methods
การประกาศ Method และการส่ง Message
การติดต่อสื่อการในระหว่าง object นั้นเราจะเรียกว่าการส่ง message ความจริงมันก็เป็นเรื่องปกติของทุกอย่างบนโลกอยู่แล้วว่าถ้าวัตถุสองอย่างจะติดต่อสื่อสารกันได้ก็ด้วยการส่งข้อความไปมาระหว่างกัน ซึ่งการส่ง message ในการเขียนโปรแกรมแบบ OOP นั้นก็คือการสั่งให้ object ทำงานตาม method ที่ตัวเองสามารถตอบสนองและรู้ว่าจะต้องทำงานอะไรบ้าง โดย Method ในภาษา Objective-C นั้นมี 2 แบบ คือแบบที่มี เครื่องหมาย ” + ” (บวก) และเครื่องหมาย ” – ” (ลบ) นำหน้า สองอันนี้ต่างกันตรงที่
· method ที่มีเครื่องหมาย ” – ” นำหน้า : เป็น method ทั่วไปที่เอาไว้กำหนดการทำงานต่างๆ ของ classซึ่งจะเรียกใช้ method แบบนี้ได้ แน่นอนเราต้องมีการสร้าง object ของ class นั้นๆ ขึ้นมาซะก่อน
· method ที่มีเครื่องหมาย ” + ” นำหน้า : เป็น method ที่ไม่จำเป็นต้องมีการสร้าง object ขึ้นมาก่อนแต่จะสร้าง object ขึ้นมาหลังจากที่ method นี้ถูกเรียกใช้
สำหรับรูปแบบการประกาศ method ในภาษานี้นั้นอาจจะดูแปลกๆ หน่อย เพราะ parameter แต่ละตัวจะมี keywordกำกับเป็นของตัวเอง โดยคั่นด้วย ” : ” และการกำหนด type ของ parameter แต่ละตัวก็จะต้องวงเล็บไว้หน้าparameter นั้นๆ ซึ่งอาจจะดูยาวไปแต่ผมชอบเพราะมันอ่านเป็นภาษาคนมากกว่าภาษาอื่นๆ มันแทบจะทำให้เราเข้าใจเลยด้วยซ้ำว่า method นี้เอาไว้ทำอะไรแค่เพียงอ่านชื่อ method
การประกาศ object
[modifier] ClassName objectName;
modifier คือ keyword ของภาษาจาวาที่ใช้เป็น access modifier เช่น public หรืออธิบายคุณสมบัติอื่นๆ ของคลาส เช่น abstract และ final
ClassName คือชื่อของ class
objectName คือชื่อของ object ที่เป็นชื่อ identifier ใดๆ ที่สอดคล้องกับกฎการตั้งชื่อ
ตัวอย่าง
Student s1;
การเรียกใช้ methods
objectName .methodName[(arguments)];
objectName คือชื่อของ object
methodName คือชื่อ method ของ object นั้น
arguments คือค่าที่ต้องการส่งผ่านไปให้กับ method ของ object นั้น โดยที่จะต้องมีชนิดข้อมูลและจำนวน argument ให้สอดคล้องกับที่ประกาศใน method ของ object นั้น
ตัวอย่าง
s1.setName(“Thana”);
การเรียกใช้ attributes
objectName .attributeName;
objectName คือชื่อของ object
attributeName คือชื่อของคุณลักษณะที่เป็นชื่อ identifier ใดๆ ซึ่งสอดคล้องกับกฎการตั้งชื่อ
วันอาทิตย์ที่ 9 ธันวาคม พ.ศ. 2555
ตัวอย่างโปรแกรม จาวา
EX1.โปรแกรมรับค่าเลข2จำนวนมาหาค่ามากกว่า น้อยกว่า
******************************************
import java.io.*; //แบบตายตัวของโปรแกรมรับค่าและแสดงผล
public class Ja_janjira1 //ชื่อคลาสJa_janjira1
{
public static void main( String [] args)throws IOException //แบบตายตัวของโปรแกรมรับค่าและแสดงผล
{
BufferedReader stdin = new BufferedReader (new InputStreamReader(System.in)); //แบบตายตัวของโปรแกรมรับค่าและแสดงผล
String first; //กำหนดตัวแปร first ชนิดตัวอักษร
String second; //กำหนดตัวแปร second ชนิดตัวอักษร
String result; //กำหนดตัวแปร result ชนิดตัวอักษร
int num1; //กำหนดตัวแปร num1 ชนิดตัวเลข
int num2; //กำหนดตัวแปร num2 ชนิดตัวเลข
System.out.print ( "Input Number1= " ); //แสดงInput Number1=
first = stdin.readLine(); //กำหนดตัวแปรfirst มีค่าเท่ากับค่าที่รับมา
num1 = Integer.parseInt( first ); //ให้ค่าfirst ที่รับมาเป็นชนิดตัวอักษรเท่ากับค่าnum1ชนิดตัวเลข
System.out.print ( "Input Number2= " ); //แสดงInput Number2=
second = stdin.readLine(); //กำหนดตัวแปร second มีค่าเท่ากับค่าที่รับมา
num2 = Integer.parseInt( second ); //ให้ค่าsecond ที่รับมาเป็นชนิดตัวอักษรเท่ากับค่าnum2ชนิดตัวเลข
result = ""; //กำหนดให้ resultมีค่าเท่ากับ"ช่องว่าง"
if ( num1 < num2 ) //เงื่อนไขถ้า num1 น้อยกว่า num2
result = result + "\n" + num1 + " < " + num2; //กำหนดให้result = result + "\n" + num1 + " < " + num2
if ( num1 > num2 ) //เงื่อนไขถ้า num1 มากกว่า num2
result = result + "\n" + num1 + " > " + num2; //กำหนดให้result = result + "\n" + num1 + " > " + num2
System.out.println("Results ="+result ); //แสดงค่า"Results ="+result
}
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
EX2.โปรแกรม รับค่าตัวเลข แล้วนำมาหาผลรวม จำนวนตัวเลข และค่ากลาง
*******************************************************
import java.io.*; //แบบตายตัวของโปรแกรมรับค่าและแสดงผล
class Ja_janjira2 //ชื่อคลาสJa_janjira2
{
public static void main( String [] args)throws IOException //แบบตายตัวของโปรแกรมรับค่าและแสดงผล
{
BufferedReader stdin = new BufferedReader (new InputStreamReader(System.in)); //แบบตายตัวของโปรแกรมรับค่าและแสดงผล
int sum=0; //กำหนดตัวแปร sum ชนิดตัวเลข มีค่าเท่ากับ0
int total =0; //กำหนดตัวแปร total ชนิดตัวเลข มีค่าเท่ากับ0
int count =0; //กำหนดตัวแปร count ชนิดตัวเลข มีค่าเท่ากับ0
int average =0; //กำหนดตัวแปร average ชนิดตัวเลข มีค่าเท่ากับ0
int cir; //กำหนดตัวแปร cir ชนิดตัวเลข
String i; //กำหนดตัวแปร i ชนิดตัวอักษร
String a; //กำหนดตัวแปร a ชนิดตัวอักษร
System.out.println(" "); //แสดง " "
System.out.print ("Please Enter Number and Endter 0 to Quit : " ); //แสดง"Please Enter Number and Endter 0 to Quit : "
i=stdin.readLine(); //กำหนดตัวแปร i มีค่าเท่ากับค่าที่รับมา
cir = Integer.parseInt(i); //ให้ค่า i ที่รับมาเป็นชนิดตัวอักษรเท่ากับค่าcirชนิดตัวเลข
sum += cir; //กำหนดให้ sum เท่ากับ cir
while ( cir != 0 ) //คำสั่งวนรอบให้cir เท่ากับ0
{
System.out.println(" ");//แสดง " "
System.out.print ("Please Enter Number and Endter 0 to Quit : " ); //แสดง"Please Enter Number and Endter 0 to Quit : "
i=stdin.readLine();//กำหนดตัวแปร i มีค่าเท่ากับค่าที่รับมา
cir = Integer.parseInt(i);//ให้ค่า i ที่รับมาเป็นชนิดตัวอักษรเท่ากับค่าcirชนิดตัวเลข
sum += cir; //กำหนดให้ sum เท่ากับ cir
count++; //กำหนดให้ countบวกเพิ่มทีละ1
}
average = sum/count; //กำหนดให้ average เท่ากับ sumหารcount
System.out.print ("sum = " + sum+"\n count "+count+"\n average "+average ); //แสดงค่า "sum = " + sum+"\n count "+count+"\n average "+average
}
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
******************************************
import java.io.*; //แบบตายตัวของโปรแกรมรับค่าและแสดงผล
public class Ja_janjira1 //ชื่อคลาสJa_janjira1
{
public static void main( String [] args)throws IOException //แบบตายตัวของโปรแกรมรับค่าและแสดงผล
{
BufferedReader stdin = new BufferedReader (new InputStreamReader(System.in)); //แบบตายตัวของโปรแกรมรับค่าและแสดงผล
String first; //กำหนดตัวแปร first ชนิดตัวอักษร
String second; //กำหนดตัวแปร second ชนิดตัวอักษร
String result; //กำหนดตัวแปร result ชนิดตัวอักษร
int num1; //กำหนดตัวแปร num1 ชนิดตัวเลข
int num2; //กำหนดตัวแปร num2 ชนิดตัวเลข
System.out.print ( "Input Number1= " ); //แสดงInput Number1=
first = stdin.readLine(); //กำหนดตัวแปรfirst มีค่าเท่ากับค่าที่รับมา
num1 = Integer.parseInt( first ); //ให้ค่าfirst ที่รับมาเป็นชนิดตัวอักษรเท่ากับค่าnum1ชนิดตัวเลข
System.out.print ( "Input Number2= " ); //แสดงInput Number2=
second = stdin.readLine(); //กำหนดตัวแปร second มีค่าเท่ากับค่าที่รับมา
num2 = Integer.parseInt( second ); //ให้ค่าsecond ที่รับมาเป็นชนิดตัวอักษรเท่ากับค่าnum2ชนิดตัวเลข
result = ""; //กำหนดให้ resultมีค่าเท่ากับ"ช่องว่าง"
if ( num1 < num2 ) //เงื่อนไขถ้า num1 น้อยกว่า num2
result = result + "\n" + num1 + " < " + num2; //กำหนดให้result = result + "\n" + num1 + " < " + num2
if ( num1 > num2 ) //เงื่อนไขถ้า num1 มากกว่า num2
result = result + "\n" + num1 + " > " + num2; //กำหนดให้result = result + "\n" + num1 + " > " + num2
System.out.println("Results ="+result ); //แสดงค่า"Results ="+result
}
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
EX2.โปรแกรม รับค่าตัวเลข แล้วนำมาหาผลรวม จำนวนตัวเลข และค่ากลาง
*******************************************************
import java.io.*; //แบบตายตัวของโปรแกรมรับค่าและแสดงผล
class Ja_janjira2 //ชื่อคลาสJa_janjira2
{
public static void main( String [] args)throws IOException //แบบตายตัวของโปรแกรมรับค่าและแสดงผล
{
BufferedReader stdin = new BufferedReader (new InputStreamReader(System.in)); //แบบตายตัวของโปรแกรมรับค่าและแสดงผล
int sum=0; //กำหนดตัวแปร sum ชนิดตัวเลข มีค่าเท่ากับ0
int total =0; //กำหนดตัวแปร total ชนิดตัวเลข มีค่าเท่ากับ0
int count =0; //กำหนดตัวแปร count ชนิดตัวเลข มีค่าเท่ากับ0
int average =0; //กำหนดตัวแปร average ชนิดตัวเลข มีค่าเท่ากับ0
int cir; //กำหนดตัวแปร cir ชนิดตัวเลข
String i; //กำหนดตัวแปร i ชนิดตัวอักษร
String a; //กำหนดตัวแปร a ชนิดตัวอักษร
System.out.println(" "); //แสดง " "
System.out.print ("Please Enter Number and Endter 0 to Quit : " ); //แสดง"Please Enter Number and Endter 0 to Quit : "
i=stdin.readLine(); //กำหนดตัวแปร i มีค่าเท่ากับค่าที่รับมา
cir = Integer.parseInt(i); //ให้ค่า i ที่รับมาเป็นชนิดตัวอักษรเท่ากับค่าcirชนิดตัวเลข
sum += cir; //กำหนดให้ sum เท่ากับ cir
while ( cir != 0 ) //คำสั่งวนรอบให้cir เท่ากับ0
{
System.out.println(" ");//แสดง " "
System.out.print ("Please Enter Number and Endter 0 to Quit : " ); //แสดง"Please Enter Number and Endter 0 to Quit : "
i=stdin.readLine();//กำหนดตัวแปร i มีค่าเท่ากับค่าที่รับมา
cir = Integer.parseInt(i);//ให้ค่า i ที่รับมาเป็นชนิดตัวอักษรเท่ากับค่าcirชนิดตัวเลข
sum += cir; //กำหนดให้ sum เท่ากับ cir
count++; //กำหนดให้ countบวกเพิ่มทีละ1
}
average = sum/count; //กำหนดให้ average เท่ากับ sumหารcount
System.out.print ("sum = " + sum+"\n count "+count+"\n average "+average ); //แสดงค่า "sum = " + sum+"\n count "+count+"\n average "+average
}
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ไวยากรณ์ ของภาษา Java
การเขียนโปรแกรมด้วยภาษา Java ต้องประกอบด้วยคำสั่งต่างๆ ตัวอักขระ หรือข้อความ ที่อยู่ในรูปแบบที่ภาษา Java แปลความหมายได้และถูกต้องตามหลักไวยากรณ์ของภาษา Java ซึ่งประกอบด้วยรูปแบบประเภทต่างๆ ดังนี้
1. หมายเหตุ (Comment)
ตัวอย่างของตัวระบุ(Identifier) ที่ไม่ถูกต้อง ดังเช่น
ตัวอย่างชื่อ Class เช่น BufferedReader, MyClass
คำสงวนทุกตัวต้องเขียนด้วยตัวอักษรพิมพ์เล็กเท่านั้นและห้ามนำมาตั้งเป็นชื่อตัวแปร ส่วนคำว่า true และ false ไม่ใช่คำสงวนเพราะเป็นข้อมูลของค่าคงที่ตรรกะ และ null เป็นค่าคงที่ของตัวแปรสตริง (String)
ตัวอย่างของค่าคงที่ตัวเลขทศนิยมที่ไม่ถูกต้อง ได้แก่
1. หมายเหตุ (Comment)
หมายเหตุ คือข้อความที่แทรกอยู่ภายในซอร์สโค้ดของโปรแกรม เพื่อใช้อธิบายการทำงาน เตือนความจำ หรือเพื่อให้ผู้เขียนโปรแกรมและผู้พัฒนาโปรแกรมต่อเข้าใจได้ง่ายขึ้น ช่วยให้สามารถแก้ไขและปรับปรุงโปรแกรมได้ง่ายขึ้น ข้อความหมายเหตุนี้จะถูกมองข้ามเมื่อทำการคอมไพล์โปรแกรมและไม่มีผลกระทบต่อการรันโปรแกรม ในการเขียนโปรแกรมด้วยภาษา Java มีรูปแบบของหมายเหตุ 2 แบบ ดังนี้
1. หมายเหตุบรรทัดเดียว(Line Comment) จะใช้เครื่องหมาย // นำหน้าข้อความหมายเหตุ โดยข้อความหมายเหตุอยู่ภายใน 1 บรรทัดที่อยู่หลังเครื่องหมาย // จะไม่มีผลต่อโปรแกรม ตัวอย่างเช่น
int i; // just to define i
2. หมายเหตุหลายบรรทัด(Block Comment) จะใช้เครื่องหมาย /* นำหน้าข้อความหมายเหตุและใช้เครื่องหมาย */ ปิดท้ายข้อความหมายเหตุ ตัวอย่างเช่น
int i;
/* Just to define i
This is a block comment
*/
/* Just to define i
This is a block comment
*/
ตัวอย่างโปรแกรม แสดงการเขียนหมายเหตุ
|
2. ตัวระบุ (Identifier)
ตัวระบุ (Identifier) หรือโทเคน (Token) ของภาษา Java เป็นคำที่ใช้ตั้งชื่อในภาษา Java ซึ่งอาจเป็นชื่อฟังก์ชั่นหรือคำศัพท์ที่ภาษา Java เข้าใจ ใช้ในการกำหนดเป็นชื่อ คลาส (Class) เมธอด (Method) คำสงวน (Keyword) ตัวแปร (Variable) และ ค่าคงที่ (Constant) เป็นต้น ซึ่งจะต้องตั้งชื่อให้ถูกต้องตามหลักการตั้งชื่อตัวระบุโดยทั่วไป ดังนี้
1. ขึ้นต้นด้วยตัวอักษรภาษาอังกฤษ (a ถึง z หรือ A ถึง Z) หรือ เครื่องหมายขีดเส้นใต้ (underscore) ( _ ) หรือ dollar sign ($) เท่านั้น
2. ตัวถัดไปประกอบด้วยตัวอักษรภาษาอังกฤษ (a ถึง z หรือ A ถึง Z), ตัวเลขอารบิก (0 ถึง 9), เครื่องหมายขีดเส้นใต้ (underscore) ( _ ) หรือ dollar sign ($) เท่านั้น
3.การตั้งชื่อด้วยตัวอักษรเล็กหรือใหญ่จะเป็นชื่อที่แตกต่างกัน (Case Sensitive) ตัวอย่างเช่น Student กับ student จะเป็นชื่อที่ต่างกัน
4. ตัวระบุที่นิยามขึ้นมาเองห้ามตั้งชื่อซ้ำกับคำสงวน (Keyword)
ตัวอย่างของตัวตัวระบุ (Identifier) ที่ถูกต้อง ดังเช่น
MyClass | ตัวอักษรตัวแรกเป็นตัวอักษร และตามด้วยตัวอักษรถูกต้องตามกฎข้อ1 และข้อ2 |
student_Score | เป็นการตั้งชื่อที่ถูกต้องตามกฎข้อ1และ2 ให้เครื่องหมายขีดเส้นใต้แบ่งข้อความให้อ่านง่าย |
number2 | เป็นการตั้งชื่อที่ถูกต้องตามกฎข้อ1และ2 ใช้ตัวเลขตามหลังตัวอักษรได้ |
firstStudentRecord_Number | เป็นการตั้งชื่อที่ถูกต้องตามกฎข้อ1และ2 ใช้ตัวอักษรพิมพ์ใหญ่ของแต่ละคำเพื่อให้อ่านง่าย |
ตัวอย่างของตัวระบุ(Identifier) ที่ไม่ถูกต้อง ดังเช่น
My Class | เป็นการตั้งชื่อที่ไม่ถูกต้องเพราะมีช่องว่าง ซึ่งผิดกฎข้อ2 |
x+y | เป็นการตั้งชื่อที่ไม่ถูกต้องเพราะเครื่องหมาย + ซึ่งผิดกฎข้อ2 |
2x | เป็นการตั้งชื่อที่ไม่ถูกต้องเพราะขึ้นต้นด้วยตัวเลข ซึ่งผิดกฎข้อ1 |
return | เป็นการตั้งชื่อที่ไม่ถูกต้องเพราะเป็นชื่อซ้ำกับคำสงวน ซึ่งผิดกฎข้อ4 คำแนะนำในการตั้งชื่อ Class 1. ตัวอักษรตัวแรกของทุกคำขึ้นต้นด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์ใหญ่ (A ถึง Z) 2. ตัวถัดไปประกอบด้วย ตัวอักษรภาษาอังกฤษพิมพ์เล็ก (a ถึง z), ตัวเลขอารบิก (0 ถึง 9) 3. ใช้ตัวอักษรตัวแรกของทุกคำเป็นตัวพิมพ์ใหญ่ หรือ underscore เพื่อให้อ่านง่าย 4. ควรตั้งชื่อเป็นคำนามและสื่อความหมายของคลาสนั้นๆ |
คำแนะนำในการตั้งชื่อตัวแปร (Variable)
1. ขึ้นต้นชื่อด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็ก (a ถึง z)
2. ตัวถัดไปประกอบด้วย ตัวอักษรภาษาอังกฤษ, ตัวเลขอารบิก (0 ถึง 9)
3. ใช้ตัวอักษรตัวแรกของคำต่อไปเป็นตัวพิมพ์ใหญ่ หรือ underscore เพื่อให้อ่านง่าย
4. ควรตั้งชื่อเป็นคำนามและสื่อความหมาย หรือเป็นคำสั้นๆ จำได้ง่าย
1. ขึ้นต้นชื่อด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็ก (a ถึง z)
2. ตัวถัดไปประกอบด้วย ตัวอักษรภาษาอังกฤษ, ตัวเลขอารบิก (0 ถึง 9)
3. ใช้ตัวอักษรตัวแรกของคำต่อไปเป็นตัวพิมพ์ใหญ่ หรือ underscore เพื่อให้อ่านง่าย
4. ควรตั้งชื่อเป็นคำนามและสื่อความหมาย หรือเป็นคำสั้นๆ จำได้ง่าย
ตัวอย่างชื่อตัวแปร เช่น name, studentRecord
คำแนะนำในการตั้งชื่อ Method
1. ขึ้นต้นชื่อด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็ก (a ถึง z)
2. ตัวถัดไปประกอบด้วย ตัวอักษรภาษาอังกฤษ, ตัวเลขอารบิก (0 ถึง 9)
3. ใช้ตัวอักษรตัวแรกของคำต่อไปเป็นตัวพิมพ์ใหญ่ หรือ underscore เพื่อให้อ่านง่าย
4. ควรตั้งชื่อเป็นคำกริยาและสื่อความหมาย
1. ขึ้นต้นชื่อด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็ก (a ถึง z)
2. ตัวถัดไปประกอบด้วย ตัวอักษรภาษาอังกฤษ, ตัวเลขอารบิก (0 ถึง 9)
3. ใช้ตัวอักษรตัวแรกของคำต่อไปเป็นตัวพิมพ์ใหญ่ หรือ underscore เพื่อให้อ่านง่าย
4. ควรตั้งชื่อเป็นคำกริยาและสื่อความหมาย
ตัวอย่างชื่อ Method เช่น getName(), isLetter()
คำแนะนำในการตั้งชื่อ ค่าคงที่ (Constant)
1. ตั้งชื่อด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์ใหญ่ (A ถึง Z) ทั้งหมด
2. ใช้ underscore ใช้ในการแบ่งคำแต่ละคำ
1. ตั้งชื่อด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์ใหญ่ (A ถึง Z) ทั้งหมด
2. ใช้ underscore ใช้ในการแบ่งคำแต่ละคำ
ตัวอย่างชื่อค่าคงที่ เช่น MAX_VALUE, MIN_VALUE
3. คำสงวน (Keyword)
คำสงวนในภาษา Java คือคำศัพท์ที่คอมไพเลอร์ของภาษา Java เข้าใจได้ เป็นคำสั่งสำคัญที่ใช้แทนความหมายของการทำงานต่างๆและใช้ได้เฉพาะคำสั่งของ Java เท่านั้น ผู้เขียนโปรแกรมไม่สามารถนำมาตั้งชื่อเป็นตัวระบุต่างๆ เช่น ชื่อตัวแปร ชื่อคลาส ชื่อเมธอด ได้ คำสงวนในภาษา Java ประกอบด้วยคำศัพท์ ดังนี้
คำสงวนในภาษา Java
| ||||
abstract | default | if | package | throw |
boolean | do | implements | private | thows |
break | double | import | protected | transient |
byte | else | inner | public | try |
byvalue | extends | instanceof | rest | var |
case | final | int | return | void |
cast | finally | interface | short | volatile |
catch | float | long | static | while |
char | for | native | super | |
class | future | new | switch | |
const | generic | operator | synchronized | |
continue | goto | outer | this |
4. สัญลักษณ์แยกคำ(Separator)
ในการเขียนโปรแกรมด้วยภาษา Java มีสัญลักษณ์ที่ใช้ในการแยกคำ ดังนี้
สัญลักษณ์แยกคำ
|
หน้าที่
|
;
| เพื่อการสิ้นสุดประโยคคำสั่งของภาษา Java |
( )
| ใช้สำหรับต่อท้ายเมธอดหรือคำสั่ง ตัวอย่างเช่น if(), functionTest() เป็นต้น |
,
| สำหรับแยกตัวแปร หรือคำสั่ง ตัวอย่างเช่น int x,y,z; |
.
| ใช้ในการระบุคุณลักษณะ หรือเมธอดของคลาส ตัวอย่างเช่น System.out.println(); ใช้ในการระบุแพ็คเกจของภาษ Java เช่น java.io.*; |
{ }
| เพื่อระบุขอบเขตของคำสั่งของภาษา Java โดยคำสั่งต่างๆจะอยู่ภายในบล็อก เช่น คำสั่งที่อยู่ภายในคลาส เมธอด หรืออยู่ภายในคำสั่งควบคุมต่างๆ เช่น if, while, do..while หรือ for เป็นต้น |
ช่องว่าง
(Whitespace) | ใช้ช่องว่างเพื่อแยกคำสั่ง ข้อความต่างๆโดยคอมไพเลอร์ของภาษา Java จะไม่สนใจและไม่มีผลต่อโปรแกรม ช่องว่างทำให้อ่านซอร์สโค้ดได้ง่ายขึ้น รูปแบบของช่องว่าง ได้แก่ การกดคีย์แทบ (Tab), ช่องว่าง (Space bar) และขึ้นบรรทัดใหม่ (Enter) บนแป้นพิมพ์ |
5. ข้อมูลค่าคงที่
ข้อมูลค่าคงที่คือคำที่ใช้ในการแสดงข้อมูลที่เป็นตัวเลข ตัวอักขระ ข้อความ หรือค่าทางตรรกะ ซึ่งในภาษา Java ได้กำหนดข้อมูลค่าคงที่ไว้ 5 ประเภท ดังนี้
1. ตรรกะ (Boolean)
2. ตัวอักขระ (Character)
3. ตัวเลขจำนวนเต็ม (Integer)
2. ตัวอักขระ (Character)
3. ตัวเลขจำนวนเต็ม (Integer)
ค่าคงที่ตัวเลขจำนวนเต็ม ประกอบด้วยลำดับของตัวเลข ซึ่งสามารถเขียนได้โดยใช้
ระบบจำนวน(Number System) อาทิเช่น ระบบเลขฐานสิบ ฐานแปด และฐานสิบหกค่าคงที่ตัวเลขจำนวนเต็มฐานสิบแต่ละหลักต้องประกอบด้วยตัวเลข 0 ถึง 9 โดยตัวเลขหลักแรกต้องไม่เป็น 0 และไม่มีเครื่องหมายอื่นๆ เช่น จุลภาค(,) จุดทศนิยม(.) หรือ ช่องว่าง เป็นต้น
ระบบจำนวน(Number System) อาทิเช่น ระบบเลขฐานสิบ ฐานแปด และฐานสิบหกค่าคงที่ตัวเลขจำนวนเต็มฐานสิบแต่ละหลักต้องประกอบด้วยตัวเลข 0 ถึง 9 โดยตัวเลขหลักแรกต้องไม่เป็น 0 และไม่มีเครื่องหมายอื่นๆ เช่น จุลภาค(,) จุดทศนิยม(.) หรือ ช่องว่าง เป็นต้น
ตัวอย่างของค่าคงที่ตัวเลขจำนวนเต็มฐานสิบที่ถูกต้อง ได้แก่
0 1 123 5482 364820 9994750
ตัวอย่างของค่าคงที่ตัวเลขจำนวนเต็มฐานสิบที่ไม่ถูกต้อง ได้แก่
12,510 | เป็นค่าคงที่ตัวเลขจำนวนเต็มที่ผิดเพราะมีเครื่องหมายจุลภาค |
360.52 | เป็นค่าคงที่ตัวเลขจำนวนเต็มที่ผิดเพราะมีเครื่องหมายจุดทศนิยม |
15 822 | เป็นค่าคงที่ตัวเลขจำนวนเต็มที่ผิดเพราะมีช่องว่าง |
123-456-789 | เป็นค่าคงที่ตัวเลขจำนวนเต็มที่ผิดเพราะมีเครื่องหมายลบ |
09001 | เป็นค่าคงที่ตัวเลขจำนวนเต็มที่ผิดเพราะมีเลข 0 นำหน้า |
ค่าคงที่ตัวเลขจำนวนเต็มฐานแปดแต่ละหลักต้องประกอบด้วยตัวเลข 0 ถึง 7 โดย
ตัวเลขหลักแรกต้องเป็น 0 และไม่มีเครื่องหมายอื่นๆ เช่น จุลภาค(,) จุดทศนิยม(.) หรือ ช่องว่าง เป็นต้น
ตัวเลขหลักแรกต้องเป็น 0 และไม่มีเครื่องหมายอื่นๆ เช่น จุลภาค(,) จุดทศนิยม(.) หรือ ช่องว่าง เป็นต้น
ตัวอย่างของค่าคงที่ตัวเลขจำนวนเต็มฐานแปดที่ถูกต้อง ได้แก่
0 01 0123 05472
ตัวอย่างของค่าคงที่ตัวเลขจำนวนเต็มฐานแปดที่ไม่ถูกต้อง ได้แก่
752 | เป็นค่าคงที่ตัวเลขจำนวนเต็มที่ผิดเพราะไม่มี 0 นำหน้า |
05281 | เป็นค่าคงที่ตัวเลขจำนวนเต็มที่ผิดเพราะมีตัวเลข 8 |
0475.510 | เป็นค่าคงที่ตัวเลขจำนวนเต็มที่ผิดเพราะมีเครื่องหมายจุดทศนิยม (.) |
ค่าคงที่ตัวเลขจำนวนเต็มฐานสิบหกแต่ละหลักต้องประกอบด้วยตัวเลข 0 ถึง 9 และ
ตัวอักษร a ถึง f (ทั้งตัวเล็กตัวใหญ่) โดยต้องขึ้นต้นด้วย 0x หรือ 0X และไม่มีเครื่องหมายอื่นๆ เช่น จุลภาค(,) จุดทศนิยม(.) หรือ ช่องว่าง เป็นต้น
ตัวอักษร a ถึง f (ทั้งตัวเล็กตัวใหญ่) โดยต้องขึ้นต้นด้วย 0x หรือ 0X และไม่มีเครื่องหมายอื่นๆ เช่น จุลภาค(,) จุดทศนิยม(.) หรือ ช่องว่าง เป็นต้น
ตัวอย่างของค่าคงที่ตัวเลขจำนวนเต็มฐานสิบหกที่ถูกต้อง ได้แก่
0X 0X1 0x789FF 0xabcd
ตัวอย่างของค่าคงที่ตัวเลขจำนวนเต็มฐานสิบหกที่ไม่ถูกต้อง ได้แก่
0xDEFG | เป็นค่าคงที่ตัวเลขจำนวนเต็มที่ผิดเพราะมีตัวอักษร G |
05281 | เป็นค่าคงที่ตัวเลขจำนวนเต็มที่ผิดเพราะไม่ขึ้นต้นด้วย 0x หรือ 0X |
0X475.10 | เป็นค่าคงที่ตัวเลขจำนวนเต็มที่ผิดเพราะมีเครื่องหมายจุดทศนิยม (.) |
ค่าคงที่ตัวเลขทศนิยม คือตัวเลขทศนิยมฐานสิบ ซึ่งประกอบด้วยตัวเลข 0 ถึง 9 และจุดทศนิยม หรือเลขชี้กำลังที่เขียนอยู่ในรูปแบบของเลขยกกำลัง (Exponential)
ตัวอย่างของค่าคงที่ตัวเลขทศนิยมที่ถูกต้อง ได้แก่
0. 1. 0.2 700225.542
50000. 0.000458 12.578 30.E4
25E-8 0.006e-3 1.678E+8 .12345e12
50000. 0.000458 12.578 30.E4
25E-8 0.006e-3 1.678E+8 .12345e12
1 | เป็นค่าคงที่ตัวเลขทศนิยมที่ผิดเพราะไม่มีจุดทศนิยมหรือเลขชี้กำลัง |
2E+10.2 | เป็นค่าคงที่ตัวเลขทศนิยมที่ผิดเพราะเลขชี้กำลังต้องเป็นเลขจำนวนเต็มเท่านั้น |
12,000.158 | เป็นค่าคงที่ตัวเลขทศนิยมที่ผิดเพราะมีเครื่องหมายจุลภาค |
กลุ่มคำสั่งตัดสินใจเลือกทำ (Selection)
โครงสร้างการควบคุมโปรแกรมหรือ ประโยคคำสั่งในการควบคุมโปรแกรม(Control Structure) เป็นสิ่งที่จำเป็นเสมอสำหรับภาษาเขียนโปรแกรมทุก ๆ ภาษาเพียงแต่ในแต่ละภาษาจะมี Syntax การใช้งานที่แตกต่างกันบ้างเล็กน้อย ดังนั้นหากคุณมีความแม่นยำในรูปแบบหรือ Syntax การใช้งาน ก็จะทำให้การเขียนโปรแกรมนั้นดูง่ายขึ้นและลดข้อผิดพลาดของการเขียน Code ได้
กลุ่มคำสั่งตัดสินใจเลือกทำ(Selection)
กลุ่มคำสั่งในการเลือกทำ(Selection) หรือบางภาษาอาจใช้คำว่า กลุ่มคำสั่งในการตัดสินใจเลือก
ทำงาน (Decision) ซึ่งลักษณะการทำงานของกลุ่มคำสั่งเหล่านี้ ต้องอาศัยการเปรียบเทียบเงื่อนไขเพื่อ
ตัดสินใจ ผลลัพธ์ของการเปรียบเทียบจะได้ค่าจริงกับเท็จ (True / False) โดยใช้เครื่องหมายในการ
เปรียบเทียบค่า (Comparison Operator) เข้ามาใช้ร่วมด้วย (ดูบทที่ 2) ซึ่งกลุ่มคำสั่งในการตัดสินใจเลือกทำจะสามารถจำแนกคำสั่งออกเป็น 2 กลุ่ม ได้แก่ การใช้ IF และ Switch..Case
การใช้ If
If แปลว่า “ ถ้า” ดังนั้นฟังจากชื่อแล้วคำสั่งนี้จะทำงานได้ต้องอาศัยการเปรียบเทียบ
เงื่อนไขจริงและเท็จก่อนทุกครั้ง โดยเราสามารถจำแนกรูปแบบการใช้ if ออกเป็น 3 รูปแบบ ได้แก่ if,
if..else และ else..if
- การใช้ if โดยปราศจาก else
หมายถึงจะทำงานเมื่อเงื่อนไขเป็นจริงเท่านั้น
Syntax:
Note: เห็นได้ว่า Syntax การใช้ if ในภาษา Java นั้น หลัง if ไม่มีคำว่า Then และไม่ต้องจบ if ด้วยคำ ว่า“end if” ดังนั้นถ้าคุณมีความคุ้นเคยกับ Syntax ของภาษาอื่นก็ต้อง ก็ต้องปรับความคุ้นเคยกันสักนิด
ตัวอย่างโปรแกรม : ถ้าค่าของตัวแปรหารด้วย 2 แล้วได้เศษเท่ากับศูนย์ ให้ทา งานในส่วนของ if
Output :
The number is even
Source Code:
1 //Progif.java
2 public class Progif {
3 public static void main (String agrs[])
4 {
5 int i = 10;
6 if (i %2==0)
7 System.out.println ("The number is even");
8 } //end main()
9 } //end class
- การใช้ if..else
จะทำงานในส่วนของ if เมื่อเงื่อนไขเป็นจริง และทำงานในส่วนของ else เมื่อเงื่อนไขเป็นเท็จ
Syntax:
ตัวอย่างโปรแกรม : ถ้าค่าของตัวแปรหารด้วย 2 แล้วได้เศษเท่ากับศูนย์ ให้ทำงานในส่วนของ if แต่ถ้าไม่ใช่ให้ไปทำงานในส่วนของ else
Output:
The number is odd
Source Code:
1 //Progif1.java
2 public class Progif1{
3 public static void main (String agrs[])
4 {
5 int i = 13;
6 if (i %2==0)
7 System.out.println ("The number is even");
8 else
9 System.out.println ("The number is odd");
10 } //end main()
11 } //end class
ตัวอย่างโปรแกรม : การใช้ if และ else กับข้อมูลอักขระ
Output: The character is range A or B
Source Code:
1 //Programor.java
2 public class Programor {
3 public static void main (String agrs[])
4 {
5 char a = 'B';
6 if ((a == 'A') || (a == 'B')) เงื่อนไข OR
7 System.out.println ("The character is range A or B");
8 else
9 System.out.println ("Out of range");
10 }
11 }
- การใช้ else..if
เราจะใช้ else..if เมื่อต้องการตรวจสอบเงื่อนไข มากกว่า 1 เงื่อนไข
Syntax:
if (condition)
{statement;
statement;}
else if (condition)
{ statement;
ตัวอย่างโปรแกรม : การใช้ else..if กับเงื่อนไข AND
Output:
Value between 0-9
Source Code:
1 //Progif2.java
2 public class Progif2 {
3 public static void main (String agrs[])
4 {
5 int i = 8;
6 if ((i >= 0) && (i <= 9))
7 { System.out.println ("Value between 0-9");}
8 else if ((i >= 10) && (i <=19))
9 {System.out.println ("Value between 10-19");}
10 else if ((i >= 20) && (i <=29))
11 { System.out.println ("Value between 20-29");}
12 else
13 System.out.println ("Out of range");
14 }
15 }
ตัวอย่างโปรแกรม : การใช้ if ซ้อน if
Output:
mark 70-74 Grade = B
Source Code:
1 //Progif3.java
2 public class Progif3 {
3 public static void main (String agrs[])
4 {
5 int i = 72 ;
6 if ((i >= 80) && (i <=100))
7 { System.out.println ("mark 80-100 Grade = A ");}
8 else
9 if ((i >= 75) && (i <=79))
10 {System.out.println ("mark 75-79 Grade = B+");}
11 else
12 if ((i >= 70) && (i <=74))
13 { System.out.println ("mark 70-74 Grade = B");}
14 else
15 System.out.println ("please coding to continue..not complete");
16 }
17 }
สมัครสมาชิก:
บทความ (Atom)