Tutorial for Application Development



Thursday 20 August 2009

Java การสร้าง Class และ Member Class

1. การสร้าง Class และ Member Class

การสร้าง member class มีกฎดังนี้คือ ตัวแปรระดับ Class จะต้องประกาศ ไว้ข้างต้นหลังจาก

ประกาศ ชื่อ Class หลังจากนั้นจะเป็น กลุ่ม ของ method

class Test{

Data member1;

Data member2;

Data member3;

Data member4;

Method member1(){

}

Method member2(){

}

Method member3(){

}

}


1.1 การสร้าง data member (ตัวแปรระดับ Class)

การสร้างตัวแปรระดับ Class ไม่ต่างจากการสร้าง ตัวแปร แบบปรกติที่เคยผ่าน มา ต่างตรงที่ว่าเราสามารถใส่ modifier ให้กับตัวแปรนั้นได้ เช่น Class ของ บัตรรายการหนังสือตามที่กล่าวข้างต้น

Example




ตัวแปรที่สร้างไว้สามารถนำไปใช้ได้ทุกที่ภายใน Class ส่วนนอกเหนือจากนั้น ขึ้นอยู่กับ modifier ที่เรากำหนดให้กับแต่ละ ตัวแปร

1.1 การสร้าง Method member

การสร้าง method member จะสร้างหลังจาก ส่วนของ data member โดยรูปแบบของ method ประกอบด้วยส่วนต่าง ๆ ดังนี้


Modifier Return Type MethodName(Parameter list){

// ถ้ามีการ return ค่า

Return xx;

}


- Modifier คือขอบเขตการใช้งานของ method

- Return Type คือ การ Return ค่าของ method มีได้สองแบบคือ

o Void คือไม่มีการ return ค่า

o แบบที่มีการ Return ค่า ให้ใส่ ประเภทข้อมูลที่ต้องการ Return ค่าออกไป

โดยถ้ามีการ Return ค่า method นั้นจะต้องมีการ Return ค่าออกไปด้วยโดยใช้คำสั่ง return ตามด้วยข้อมูลที่จะ return ออกไป ซึ่งต้องเป็นข้อมูลประเภทเดียวกันกับที่ประกาศ ไว้ในส่วนของ Return type

- Method Name คือ ชื่อ Method หลักการตั้ง เหมือนกันกับการตั้งชื่อตัวแประ คือ ขึ้นต้นด้วยตัวเล็ก

- Parameter list ถ้า method นั้นต้องการรับ parameter เข้ามาประมวลผลให้ประกาศตัวแปรไว้เพื่อรับค่าเข้ามาดังนี้

(Data type name1,Data type name2)

Example



๋Java การเขียน Program เชิงวัตถุ (OOP)

การเขียน Program เชิงวัตถุ (OOP)

ความคิดหลักที่สำคัญของการเขียนโปรแกรมเชิงวัตถุคือ คลาส (Class) และ ออบเจ็กต์ (Object)

Class คือตัวที่กำหนดโครงสร้างและพฤติกรรมของวัตถุ เมื่อต้องการนำไปใช้จริง เราต้องสร้าง instance ของ Class นั้นขึ้นมา instance ที่สร้างขึ้นมานั้นก็คือ Object นั่นเอง

ถ้าเปรียบ Class คือ โครงสร้างและ พฤติกรรมของวัตถุประเภทหนึ่ง instance หรือ Object ในภาษาเชิงวัตถุก็เปรียบเสมือนตัวแปร ในภาษาทั่วๆ ไป และ Class ก็คือชนิดข้อมูลนั่นเอง

Class เปรียบเสมือน พิมพ์เขียว ที่ กำหนดโครงสร้าง และแบบแปลน ต่าง ๆ ว่า Object ที่สร้างจาก Class ควรจะมีอะไรบ้าง

Object คือ instance ที่สร้างขึ้นมาจาก Class ใด Class หนึ่ง

** Class ไม่สามารถนำไปใช้ต่อได้ จะใช้ได้ก็ต่อเมื่อถูกสร้างเป็น Object แล้วเท่านั้น


1. สมาชิกของ Class (Class Member)

สมาชิกของ Class มีสอง ประเภทคือ

- สมาชิกที่เป็นข้อมูล (data members) อาจเป็น ค่าคงที่ ตัวแปรของข้อมูลชนิดพื้นฐาน , array , หรือ แม้แต่ instances ของ Class

- สมาชิกที่เป็น Function (Method member) หรือเรียกสั้น ๆว่า method สมาชิกที่เป็น Function เรียกอีกอย่าง ว่า เป็น ส่วนของ พฤติกรรม ของ Class นั่น เอง

Example Class ของบัตรรายการบัญชีรายชื่อหนังสือ

Data member

- ชื่อหนังสือ (Title)

- ประเภท(type)

- วันที่พิมพ์ (printed date)

- ชื่อผู้แต่ง (author name)

- สถานะ การยืม(status)

Method member หรือ พฤติกรรม

- getName();

- getStatus();

- getAuthorName();

- setStatus();


2. ขอบเขตการเข้าถึง (Access Modifier )

คือ กฎในการกำหนดว่า Class member ต่าง ๆ ไม่ว่าจะเป็น ตัวแปร หรือ method สามารถเรียกใช้งานได้แบบใดบ้าง

ตัวแปร Modifier ของ class ,ตัวแปร ,และ method

Modifier

Class

Method

Variable

abstract

/

/

static

/

/

public

/

/

/

protected

/

/

/

private

/

/

final

/

/

/

synchronizable

/

Modifier ต่าง ๆ เมื่อนำมาใช้ กับ Class ,Method หรือ ตัวแปร จะมีผลต่างกัน ดังต่อไปนี้


Modifier ของ class


Modifier

การใช้งาน

public

สามารถเรียกใช้งานได้จากทุกที่

private

สามารถเรียกใช้งานได้เฉพาะภายใน class ตัวเองเท่านั้น

default

สามารถเรียกใช้งานได้ภายใน package เดียวกันเท่านั้น

final

Class นี้ไม่สามารถ เปลี่ยนแปลงได้

Synchronizable

Class ที่ต้องประมวลผลแบบเข้าคิวคือต้องรอให้งานเสร็จทีละงาน


Modifier ของ Method


Modifier

การใช้งาน

static

สามารถเรียกใช้งานโดยที่ไม่จำเป็นต้องสร้าง instance ขึ้นมา และ การเรียกใช้งานทุกครั้งจะใช้ memory ที่เดียวกันตลอด

public

สามารถเรียกใช้งานได้จากทุกที่

private

สามารถเรียกใช้งานได้เฉพาะภายใน class ตัวเองเท่านั้น

default

สามารถเรียกใช้งานได้ภายใน package เดียวกันเท่านั้น

abstract

Method ที่ยังไม่เขียนการทำงานมีเพียงชื่อ method เท่านั้น

final

Class นี้ไม่สามารถ เปลี่ยนแปลงได้

Synchronizable

Class ที่ต้องประมวลผลแบบเข้าคิวคือต้องรอให้งานเสร็จทีละงาน

protected

เรียกประมวลผลได้ ใน Class ตัวเอง และ Class ลูกเท่านั้น


Modifier ของ ตัวแปร(Variable)


Modifier

การใช้งาน

static

สามารถเรียกใช้งานโดยที่ไม่จำเป็นต้องสร้าง instance ขึ้นมา และ การเรียกใช้งานทุกครั้งจะใช้ memory ที่เดียวกันตลอด

public

สามารถเรียกใช้งานได้จากทุกที่

private

สามารถเรียกใช้งานได้เฉพาะภายใน class ตัวเองเท่านั้น

default

สามารถเรียกใช้งานได้ภายใน package เดียวกันเท่านั้น

final

Class นี้ไม่สามารถ เปลี่ยนแปลงได้

protected

เรียกประมวลผลได้ ใน Class ตัวเอง และ Class ลูกเท่านั้น

Java Package และ String แนะนำให้รู้จัก

6.3 package
คือการแบ่งแยก Class ตามประเภทการใช้งาน ในบางครั้ง เมื่อเราทำงาน ที่มีความซับซ้อนมี Class ที่ต้องใช้งานจำนวนมากเพื่อให้ง่ายต่อการ จัดการเราควรแบ่ง แยก Classต่าง ๆ ไว้ให้เป็น package การประกาศ package จะประกาศไว้บนสุดของ Class ชื่อ package เป็นตัวเล็กทั้งหมด
หากมีการเก็บไว้ หลาย sub directory ให้ใช้คั่น ด้วย เครื่อง หมาย .
pacalge dir1.dir2.dir3
Example

จากตัวอย่าง แสดง ว่า Class Test ถูกจัดเก็บไว้ในห้อง com/demo/Test.java


6.4 String
String จัดเป็นประเภทข้อมูลชนิดหนึ่ง เอาไว้เก็บข้อมูลประเภทตัวอักษร String เป็น Class ที่มีอยู่ใน library ของ Java ใน package java.lang ซึ่ง เป็น default package เนื่องจาก String เป็น Class จึงมีความพิเศษกว่าตัวแปร พื้นฐานแบอื่นๆ แต่จะมีอะไรนั้น เดี๋ยวอธิบายอีกทีหลังจาก จบเรื่องของ OOP แต่ตอนนี้จำเป็นต้องใช้ ในส่วนของการเก็บข้อมูล ตัวอักษรในลักษณะข้อความก็พอ
การประกาศตัวแปรแบบ String ไม่ต่างจากตัวแปรอื่นๆ แต่การกำหนดค่าให้กับ String จะต้องอยู่ภายใต้เครื่องหมาย " " เท่านั้น

Java คำสั่งทำงานเป็นวงจร (loop) For While Do Do While

6.2 คำสั่งทำงานเป็นวงจร (loop)
คือคำสั่งที่ควบคุมการทำงานของ statement ใดๆ ซ้ำ ๆจนกว่าจะไม่ตรงเงื่อนไข หรือ เงื่อนไขเป็นเท็จ
- คำสั่ง while loop
รูปแบบ

While(เงือนไข){ Statement; }
คำสั่ง while loops จะทำการทดสอบเงื่อนไขก่อน ที่จะทำงาน ถ้าเงื่อนไขเป็นจริงจึงจะทำงานภายใน loop ถ้าเงือนไขไม่เป็นจริงจะไม่เข้าทำงาน
ตัวอย่าง เช่น















- คำสั่ง do while loop
รูปแบบ

do{ statement; }while(เงื่อนไขจบการทำงาน);

คำสั่ง do while จะมีความแตกต่างจาก while loop ตรงที่คำสั่ง do while จะทำงานใน loop หนึ่งครั้งก่อนเสมอ ก่อนที่จะทำการทดสอบ
ตัวอย่าง

















- คำสั่ง for loop
รูปแบบ

for(index=part1;part2;part3){ statement; }

Part1 คือ กำหนดค่าเริ่มต้น
Part2 คือ เงื่อนไขการทำงาน
Part3 คือคำสั่งที่ใช้ในการเปลี่ยนค่าตัวแปร

คำสั่ง for จะเป็นการกำหนดจำนวนครั้งในการทำงานโดยจำนวนครั้งจะขึ้นอยู่กับตัวแปร index คือค่าของ index จะต้องตรงตามเงื่อนไขการทำงน
ตัวอย่าง


Controls Statements การ เช็ค IF เช็คเงื่อนไขใน Java

Controls Statements
6.1 คำสั่งในการตัดสินใจ

- คำสั่ง if
คือคำสั่งที่ใช้ในการประเมินผลซึ่งผลที่ได้จะต้องได้ค่าเป็น boolean เท่านั้นซึ่งถ้า ผลออกมาเป็นจริง จะทำตามเงื่อนไข แต่ถ้า เป็น เท็จ จะทำในส่วนของคำสั่ง else ซึ่งในส่วนของ else สามารถตรวจสอบเงื่อนไขด้วย if ได้อีกต่อไปเรื่อย ๆ ตัวอย่างเช่น

if(เงื่อนไข){
statement 1;
}
if(เงื่อนไข){
statement1;
}else{
statement2;
} if(เงื่อนไข){
statement1;
}else if(เงื่อนไข){
statement2;
} if(เงื่อนไข){
if(เงื่อนไข){
statement1;
}
Statement2;
}else if(เงื่อนไข){
Statement3;
}


if(i= =10){
System.out.println("Hello");
}else{
System.out.println("Hi");
}

- คำสั่ง Switch

คำสั่ง Switch คือคำสั่งที่ใช้ในการตรวจสอบเงื่อนไข โดยจะต่างจาก If ตรงที่ค่าใช้นำมาตรวจสอบจะต้องเป็นค่าจำนวนเต็มเท่านั้น นั่นก็คือ int,short,long,char,byte
คำสั่ง Switch มีรูปแบบดังนี้

switch(เงื่อนไข){
case 1:
statement;
break;
case 2:
statement;
break;
default:
statement
}


การทำงานของ switch จะเริ่มทำงานเมื่อพบค่าความจริงและจะทำงานทุก case หลังจากนั้นนอกจากจะเจอคำสั่ง break ซึ่งมีไว้เพื่อเพื่อควบคุมการทำงานของโปรแกรมว่าเมื่อพบค่าความจริงแล้วให้หยุดการทำงานหรือไม่
ตัวอย่าง

Java Operator เครื่องหมาย การ คำณวน ต่างๆ ใน JAVA

1. Operator

คือเครื่องหมายที่กำหนดขึ้นเพื่อให้ Computer ประมวลผลตามที่กำหนด

Operator ทางคณิตศาสตร์

Operator

การทำงาน

ลำดับการทำงาน

* (คูณ)

1*1

1

/ (หาร)

4/2

2

% (mod)

5%3 หาเศษที่เหลือจากการหาร

3

+ (บวก)

2+2

4

- (ลบ)

2+1

5

Operator ที่ใช้ในการเปรียบเทียบค่า

Operator

การทำงาน

<

Xเป็นจริงเมื่อ X น้อยกว่า Y

<=

Xเป็นจริงเมื่อ X น้อยกว่า หรือเท่ากับY

>

X>Y เป็นจริงเมื่อ X มากกว่า หรือเท่ากับY

>=

X>=Y เป็นจริงเมื่อ X มากกว่า หรือเท่ากับY

= =

X= =Y เป็นจริงเมื่อ X เท่ากับY

!=

X!=Y เป็นจริงเมื่อ X ไม่เท่ากับ Y

Boolean Operator ใช้เปรียบเทียบค่าเชิง Logic

Operator

การทำงาน

!(Not)

เปลี่ยนค่าความจริง ให้เป็นตรงกันข้าม คือ

ถ้าเท็จ จะเป็น จริง ถ้า จริง จะเป็น เท็จ

&&(AND)

เปรียบเทียบ ตรรกะ แบบ AND

||(OR)

เปรียบเทียบ ตรรกะ แบบ OR

ตารางการประมวลผล ตรรกะ

ค่าที่ 1

ค่าที่ 2

AND

OR

จริง

จริง

จริง

จริง

จริง

เท็จ

เท็จ

จริง

เท็จ

จริง

เท็จ

จริง

เท็จ

เท็จ

เท็จ

เท็จ