Thursday, 26 May 2016

Notepad++ Editor for Coding


Notepad++ Editor for Coding

ในการเขียนโปรแกรม PHP , HTML , CSS และ JavaScript ซึ่งเป็น Syntax ที่เราจำเป็นในการเขียนเว็บ Tools ที่ดีจะต้องมีการจัดการในส่วนของ Syntax Highlighting และ Syntax Folding โดยความหมายของ Highlighting คือ การแสดงมุมมองของสี ในรูปแบบของ Function และ String ต่าง ๆ ส่วน Folding คือ การ Scope ในส่วนของต่าง ๆ ของ Coding เช่น บน php สามารถ scope เงื่อนไขของ function , if และ { ... } ส่วน html, css และ javascript ก็สามารถ html element เช่น <div> ซึ่งความสามารถเหล่านี้จะช่วยให้เราเขียนโปรแกรมนั้นง่ายและสะดวกมาก ๆ

Download Notepad++
https://notepad-plus-plus.org/download/
Feature พื้นฐาน

    ซอฟต์แวร์ Open Source สามารถดาวน์โหลดติดตั้งใช้งานได้ฟรี
    โปรแกรมมีขนาดเล็ก ติดตั้งง่าย ไม่มีของแถมมาแน่นอน
    มี Syntax Highlighting และ Syntax Folding รองรับหลายภาษามาก ๆ ติดสามารถติดตั้ง Plugin เพิ่มได้
    Auto-completion: Word completion, Function completion and Function parameters hint แสดงคำแนะนำ เช่น รายการ function
    รองรับการเข้ารหัสเช่น ASCI และ Unicode (UTF-8), With BOM และอื่น ๆ อีกมากมาย
    รองรับการใช้ Regular Expression ในการค้นหาและแทนที่
    สามารถแก้ไขเมนูทางลัด (Shortcut) ได้ด้วยตนเอง
    Macro recording and playback มี Macro เหมือน Web Browser ด้วย
    Multi-Language environment supported พวกเมนู มีหลายภาษา
    Zoom in and zoom out และ WYSIWYG (Printing)
ตัวอย่างของ Syntax Highlighting

ตัวอย่างของ Syntax Folding




                                                                   รองรับได้หลายภาษามาก

ที่ขนาดไม่ได้คือ PHP ซึ่งเป็นภาษาที่ได้รับความนิยมมากที่สุดในโลก

การ Highlighting และ Folding Scope บน HTML และ CSS, JavaScript

การ Highlighting และ Folding Scope บนภาษา PHP

การ Highlighting และ Folding Scope บน SQL

Auto-completion: Word completion, Function completion แสดง function ต่าง ๆ ในภาษาที่กำลังเขียนอยู่

Function parameters hint แสดงรายการคำแนะนำในการส่งค่า Parameters

แบ่ง Folding Scope ย่อขยาย เพื่อให้ดูได้ง่าย

กำหนดรูปแบบของ Encoding ได้ง่ายมาก ๆ



Wednesday, 25 May 2016

Java contentEquals() - String

Java contentEquals() - String

เป็นรูปแบบ property และ method เกี่ยวกับข้อความ (String) โดย contentEquals() จะเป็นการเปรียบเทียบ 2 ข้อความว่ามีเนื้อหาและข้อความเหมือนกันหรือไม่ โดยได้ค่ากลับมาเป็น true/false


Syntax

strObj.contentEquals(str2);

 

Example

MyClass.java


package com.java.myapp;
public class MyClass {

public static void main(String[] args) {

String a = new String("String 1");
String b = "String 2";

StringBuffer c = new StringBuffer("String 1");

System.out.println(a.contentEquals(b));

System.out.println(a.contentEquals(c));

System.out.println(b.contentEquals(c));

}

}

Output

false
true
false

by relative7prof 

Java isUpperCase() - Character


Java isUpperCase() - Character 

 เป็นรูปแบบ property และ method เกี่ยวกับ Character โดย isUpperCase() จะเป็นการหาว่า Character เป็นแบบตัวอักษรพิมพ์ใหญ่หรือไม่ โดยได้ค่าเป็นแบบ true / false
Java isUpperCase() - Character เป็นรูปแบบ property และ method เกี่ยวกับ Character โดย isUpperCase() จะเป็นการหาว่า Character เป็นแบบตัวอักษรพิมพ์ใหญ่หรือไม่ โดยได้ค่าเป็นแบบ true / false

Syntax

Character.isUpperCase(chObj);

Example

MyClass.java
package com.java.myapp;

 public class MyClass {

public static void main(String[] args) {

char a = 'a';

Character b = new Character('5');

Character c = '\n';

char d = 'A';

 System.out.println(Character.isUpperCase(a));

System.out.println(Character.isUpperCase(b));

System.out.println(Character.isUpperCase(c));

System.out.println(Character.isUpperCase(d));

}

 }



Output

false
false
false
true

by relative7prof
Tuesday, 24 May 2016

Arrays

 

Arrays ในc++

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

นั่นหมายความว่าตัวอย่างเช่นค่าห้าชนิด int สามารถประกาศเป็นอาร์เรย์ได้โดยไม่ต้องประกาศ 5 ตัวแปรที่แตกต่างกัน (แต่ละคนมีตัวบ่งชี้ของตัวเอง) แต่ใช้อาร์เรย์ค่า int ห้าจะถูกเก็บไว้ในสถานที่หน่วยความจำที่อยู่ติดกันและทั้งห้าสามารถเข้าถึงได้โดยระบุเดียวกันกับดัชนีที่เหมาะสม

ยกตัวอย่างเช่นอาร์เรย์ที่มีค่าจำนวนเต็ม 5 ชนิด int foo เรียกว่าอาจจะมีการแสดงเป็น:
ซึ่งแต่ละแผงว่างเปล่าหมายถึงองค์ประกอบของอาร์เรย์ ในกรณีนี้เหล่านี้เป็นค่าชนิด int องค์ประกอบเหล่านี้มีเลข 0-4 เป็น 0 ครั้งแรกและครั้งสุดท้าย 4; ใน C ++, องค์ประกอบแรกในอาร์เรย์จะมีหมายเลขเสมอกับศูนย์ (ไม่ได้เป็นอย่างใดอย่างหนึ่ง) ไม่ว่าความยาวของมัน

เช่นเดียวกับตัวแปรปกติอาร์เรย์จะต้องประกาศก่อนที่มันจะถูกนำมาใช้ ประกาศทั่วไปสำหรับอาร์เรย์ใน C ++ เป็น:
type name [elements];
ที่ประเภทคือประเภทที่ถูกต้อง (เช่น int ลอย ... ) ชื่อเป็นรหัสที่ถูกต้องและองค์ประกอบฟิลด์ (ซึ่งถูกปิดล้อมเสมอในวงเล็บ []) ระบุความยาวของอาร์เรย์ในแง่ของจำนวน องค์ประกอบ

ดังนั้นอาร์เรย์ฟูกับห้าองค์ประกอบของชนิด int สามารถประกาศเป็น:
    

int foo [5];

    ความแตกต่างที่สำคัญคือการประกาศจะนำหน้าโดยแบ่งตามชนิดขององค์ประกอบในขณะที่การเข้าถึงไม่ได้

ดำเนินการบางอย่างที่ถูกต้องอื่น ๆ ที่มีอาร์เรย์:

For example:
// arrays example
#include <iostream>
using namespace std;

int foo [] = {16, 2, 77, 40, 12071};
int n, result=0;

int main ()
{
  for ( n=0 ; n<5 ; ++n )
  {
    result += foo[n];
  }
  cout << result;
  return 0;
}

output
12206
by relative7prof

เขียนโปรแกรมภาษาซีด้วย Turbo C

 

เขียนโปรแกรมภาษาซีด้วย Turbo C

ขั้นที่ 1 ก่อนอื่นต้องดาวน์โหลดโปรแกรม TC เป็นลำดับแรก ผู้เขียนอนุมานว่าผู้อ่านไม่มีประสบการณ์ในการติดตั้ง TC ดังนั้นหากท่านสามารถติดตั้งได้เอง โปรดข้ามหัวข้อนี้ไป เพื่อเข้าสู่เนื้อหาที่ Advanced มากขึ้น เริ่มต้นโดยให้ผู้อ่านเปิดโปรแกรม Windows Explorer และคลิ๊กที่แถบ URL ด้านบน พิมพ์คำว่า https://turboc.codeplex.com/
 ขั้นที่ 2 เมื่อพิมพ์ URL ครบแล้วให้ท่านกด Enter หนึ่งครั้งเพื่อ Download File TC.zip ซึ่งจะปรากฎผลลัพธ์ดังนี้
- ถ้าท่านต้องการเปิดไฟล์ คลิ๊ก Open
- ถ้าต้องการบันทึกไฟล์ คลิ๊ก Save
- ถ้าต้องการยกเลิกการดาวน์โหลดคลิ๊ก Cancel
- ถ้าต้องการข้อมูลมากกว่านี้ คลิ๊ก More Info
 ขั้นที่ 3 เลือก Save และคลิ๊กลูกศรชี้ลง ตลอดจนเลือก ไดวร์ C: ดังภาพต่อไปนี้
ผู้เขียนต้องการให้ท่านเลือกไดเร็คทอรี่เพื่อเก็บไฟล์เอาไว้ที่ C:\ เพราะว่าภายในโปรแกรมดังกล่าวนี้ ได้ทำการตั้งค่าพารามิเตอร์ต่าง ๆ เกี่ยวกับการคอมไพล์ไว้ในไดเร็คทอรี่ C:\TC ดังนั้น หากท่านขยายไฟล์ผิดตำแหน่ง จะทำให้ไม่สามารถคอมไพล์ได้ วิธีแก้ทำได้โดยการปรับเปลี่ยนที่เมนู Directory ให้ตรงกับไดเร็คทอรี่ที่ท่านได้เก็บไฟล์ไว้ยังตำแหน่งที่ท่านต้องการ แต่ถ้าท่าน ทำตามวิธีที่ผู้เขียนแนะนำ ท่านไม่ต้องทำการปรับแก้ค่าตัวเลือกใด ๆ ผู้เขียนจะกล่าวถึงรายละเอียดส่วนนี้ในบทต่อ ๆ ไป ตอนนี้ต้องการให้ผู้อ่านสามารถคอมไพล์โค๊ดภาษาซีได้เท่านั้น ดังนั้นท่านควรปฏิบัติตามแนวทาง ที่ได้แสดงเอาไว้ในบทความชุดนี้อย่างเคร่งครัด เว้นเสียแต่ท่านเข้าใจสิ่งที่ผู้เขียนกำลังอธิบายนี้แล้ว จึงสามารถดูผ่าน ๆ ได้อย่างรวดเร็ว
 ขั้นที่ 4 เริ่มต้นการดาวน์โหลด ภาพด้านล่างนี้ แสดงการดาวน์โหลดไฟล์ ขณะนี้ เครื่องที่ผู้เขียนใช้งานอยู่บนระบบ LAN จึงสามารถโหลดไฟล์ดังกล่าวด้วยความเร็วสูงกว่าการโหลดด้วย Modem ธรรมดา สังเกตที่อัตราการ Transfer rate ที่ 31.0KB/Sec หากเป็นโมเดมธรรมดาจะอยู่ที่ประมาณ 5 KB/Sec
 ขั้นที่ 5 เมื่อดาวน์โหลดเสร็จแล้วคลาย Zip ไฟล์ TC.zip ที่โหลดมาแล้วด้วยการคลิ๊กขวา ดังภาพต่อไปนี้
สังเกตว่าไฟล์ที่เราโหลดมานั้นมีชื่อว่า TC.zip ผู้เขียนต้องการให้ท่าน Save เอาไว้ที่ไดรว์ C:\ และคลาย Zip ออกไปไว้ที่โฟล์เดอร์ C:\TC


 ขั้นที่ 6 ดับเบิ้ลคลิ๊กโฟลเดอร์ C:\TC ไฟล์ที่คลาย Zip เรียบร้อยแล้วจะเก็บไว้ที่โฟล์เดอร์ C:\TC และภายในไดเร็คทอรี่ดังกล่าวจะประกอบด้วยโฟล์เดอร์ C:\TC\INCLUDE และ C:\TC\LIB รายละเอียดส่วนนี้จะกล่าวถึงอีกครั้งในบทหลัง ๆ แต่ตอนนี้ให้ท่านเข้าใจเพียงว่า ภายในโฟล์เดอร์ ทั้งสองจะเก็บไฟล์ ที่มีนามสกุล .H และ .LIB เอาไว้ในโฟล์เดอร์ทั้งสองตามลำดับ


 ขั้นที่ 7 เรียกให้ Turbo C ทำงานโดยคลิ๊กที่ไฟล์ TC ดังภาพต่อไปนี้ ความจริงในขั้นตอนนี้ผู้อ่านสามารถคลิ๊ก Start > Run และพิมพ์คำว่า C:\TC\TC.EXE จากนั้นกดแป้น Enter ซึ่งจะให้ผลเช่นเดียวกับขั้นตอนนี้ กล่าวคือเรียกให้ Turbo C ทำงานและพร้อมจะเขียนโปรแกรมและคอมไพล์ต่อไป



 ขั้นที่ 8 เมื่อไฟล์ TC.EXE ถูกเรียกให้ทำงานจะปรากฎผลลัพธ์ดังนี้ ภาพด้านล่างนี้เป็นหน้าจอของโปรแกรม TC ถ้าผู้อ่านต้องการให้โปรแกรมแสดงผลเต็มจอ สามารถกดแป้น Alt + Enter (กด Alt ค้างไว้ แล้วตามด้วย Enter หนึ่งครั้ง) จะเป็นการสลับไปมาระหว่างโหมด Full Screen กับโหมด Windows และในทำนองเดียวกัน ถ้าต้องการสลับกลับมายังโหมดวินโดวส์ธรรมดา ให้กด Alt + Enter ได้เช่นเดียวกัน



 ขั้นที่ 9 พิมพ์โค๊ดภาษาซี ในขั้นตอนนี้ผู้อ่านจะต้องกด Esc ซ้ำ ๆ สักสองสามครั้งเพราะว่า กำลังอยู่ในสถานะการเลือกเมนู การกด Esc จะทำให้กลับมายังจอภาพที่ใช้ในการแก้ไขโค๊ด จากนั้นผู้อ่านจึงเริ่มต้นพิมพ์โค๊ด ตามตัวอย่างด้านล่างนี้






 ขั้นที่ 10 ทำการคอมไพล์ด้วยการกด Alt + R แล้วกด Enter หนึ่งครั้ง ขั้นตอนนี้อาจจะกด Ctrl + F9 จะปรากฎผลเช่นเดียวกัน ในขั้นตอนนี้เรายังไม่ได้บันทึกไฟล์เป็น Helloworld.c ดังนั้นผลลัพธ์ที่ได้จะสร้างไฟล์ชื่อว่า noname.exe ซึ่งก็จะให้ผลลัพธ์อันเดียวกัน ขั้นตอนต่อไปจะแสดงการบันทึกแฟ้มข้อมูล



ขั้นที่ 11 ออกจากโปรแกรม TC โดยการกด Alt + Q หรือกด Alt + F และเลื่อนลูกศรมาที่ Quit ให้ผลเช่นเดียวกัน เนื่องจากเรายังไม่ได้บันทึกแฟ้มข้อมูล เมื่อทำการออกจากโปรแกรม คอมไพล์เลอร์จะถามว่าต้องการบันทึกซอร์สโค๊ดหรือไม่ ให้ตอบตามความต้องการของท่าน ในกรณีตัวอย่างนี้เราจะบันทึกไฟล์เก็บไว้ในชื่อ helloworld.c



ขั้นที่ 12 ก่อนที่จะจบการทำงานโปรแกรมภาษาจะถามเราเกี่ยวกับการบันทึกไฟล์ ถ้าปรารถนาจะบันทึกให้กด Yes อย่างที่ได้กล่าวไปแล้วในขั้นตอนนี้ ผู้อ่านจะบันทึกหรือไม่บันทึกขึ้นอยู่กับตัวท่านเอง แต่บทความนี้สำหรับผู้เริ่มต้น เราจะบันทึกไฟล์ชื่อ helloworld.c ดังนั้นกด Y เพื่อบอกคอมไพล์เลอร์ว่า เราต้องการบันทึกซอรส์โค๊ด




by relative7prof

ฟังก์ชัน printf()และ scanf()

 

ฟังก์ชัน printf()และ scanf()  ใน c++

ในบทความนี้ผมจะมากล่าวถึงเรื่องคำสั่งในการรับและแสดงผลข้อมูล (I/O Function) คือ printf() และ scanf() ที่ใช้ในภาษา C กันนะครับ ซึ่งเวลาที่เราต้องการให้โปรแกรมของเรารับข้อมูลเข้าไปหรือแสดงผลการคำนวณออกมาทางหน้าจอ เราจำเป็นต้องใช้ฟังก์ชันทั้ง 2 มาใช้งานให้ถูกต้อง ลองมาดูกันเลยครับ

ฟังก์ชัน printf()

เป็นฟังก์ชันที่ใช้ในการแสดงผลข้อมูลออกทางจอภาพ มีรูปแบบดังนี้
printf(control, argument)



เช่น printf(“i = %d \n”,i); จะสังเกตว่า ภายใน “ “ จะมีเครื่องหมาย % อยู่ซึ่งเราจะเรียกว่า Format Code ซึ่งจะเป็นตัวกำหนดให้ข้อมูลที่อยู่ในตำแหน่งหลังเครื่องหมาย , แสดงออกมา โดยจะมีความหมายดังตาราง


ลองมาดูตัวอย่างจากโปรแกรมต่อไปนี้ครับ

อธิบายโปรแกรม
จากโปรแกรมนี้เราจะกำหนดตัวแปรออกเป็นชนิดต่างๆ 4 ชนิด แล้วกำหนดค่าเริ่มต้นให้กับตัวแปรเหล่านั้นแล้วให้แสดงผลลัพธ์ที่ตัวแปรเหล่านั้นเก็บไว้ออกมาทางจอภาพโดยใช้ฟังก์ชัน printf() และจะต้องคำนึงถึง Format Code ด้วย

printf("a = %c\n",a); --------------> ใช้ %c เพราะ a เป็น char
printf("x = %d\n",x); --------------> ใช้ %d เพราะ x เป็น int
printf("y = %f\n",y); --------------> ใช้ %f เพราะ y เป็น float (ทศนิยม)
printf("z = %f\n",z); --------------> ใช้ %f เพราะ z เป็น double (ทศนิยม)

นอกจากนั้นการแสดงผลลัพธ์ที่เป็นจุดทศนิยมเราสามารถกำหนดได้ว่าจะให้มีทศนิยมกี่ตำแหน่งโดยการกำหนดที่ Format Code ดังตัวอย่างต่อไปนี้

printf("y = %.2f\n",y); --------------> ใส่ค่า .2 หมายถึง แสดงทศนิยม 2 ตำแหน่ง
printf("z = %.3f\n",z); --------------> ใส่ค่า .3 หมายถึง แสดงทศนิยม 3 ตำแหน่ง

ฟังก์ชัน scanf()

เป็นฟังก์ชันที่ใช้ในการแสดงผลข้อมูลออกทางจอภาพ มีรูปแบบดังนี้
scanf(control, argument)

ฟังก์ชัน scanf จะมีลักษณะคล้ายกับ printf โดยเราจะต้องใส่ Format Code ไว้ในเครื่องหมาย " " และระบุตัวแปรที่จะมารับข้อมูลจากผู้ใช้ที่ป้อนเข้ามา โดยจะต้องมี & นำหน้าตัวแปรที่เราต้องการใส่ค่าเสมอ ยกเว้นตัวแปรที่เป็นอะเรย์ ลองมาดูตัวอย่างจากโปรแกรมต่อไปนี้ครับ


อธิบายโปรแกรม
จากตัวอย่างมีการประกาศตัวแปร คือ a เป็นตัวแปรชนิด int ถัดมาเป็นการแสดงคำพูด Enter number : ที่หน้าจอ จากนั้นฟังก์ชัน scanf() จะทำงานโดยการรอรับข้อมูลจากผู้ใช้ให้เราพิมพ์ตัวเลขจำนวนเต็มใส่ลงไป ตัวเลขที่เราพิมพ์ลงไปนั้นจะถูกเก็บไว้ที่ตัวแปร a แล้วจึงแสดงผลลัพธ์ของตัวเลขนั้นอีกครั้งที่จอภาพ

scanf("%d" ,&a); --------------> %d เป็นการระบุรูปแบบของตัวแปรที่จะมารองรับค่า, &a คือ ตัวแปรที่จะมารับค่า

สำหรับฟังก์ชัน printf() และ scanf() นั้นจะเป็นฟังก์ชันพื้นฐานที่จะใช้กันบ่อยๆ ในภาษา C เราควรฝึกใช้งานให้คล่องนะครับ ส่วนใน C++ ฟังก์ชันทั้ง 2 นี้จะถูกเปลี่ยนแปลงไปและการใช้งานก็ต่างกันนิดหน่อยซึ่งผมจะยังไม่กล่าวถึงในตอนนี้นะครับ

by relative7prof
Saturday, 21 May 2016

RNAi Technology and Its application คืออะไร

RNAi Technology and Its application คืออะไร

 

ความสำคัญของ RNAi Technology and Its application

RNAi เป็นกระบวนการที่เกิดขึ้นโดยปกติตามธรรมชาติของ eukaryotic cell ทั่วไป ซึ่งกระบวนการเหล่านี้มีความสำคัญมากต่อการดำรงอยู่ของสิ่งมีชีวิต โดยเฉพาะสิ่งมีชีวิตชั้นต่ำ หน้าที่สำคัญของกระบวนการนี้อาจกล่าวโดยสรุปได้เป็น 3 ด้าน คือ การป้องกันและต่อต้านการติดเชื้อไวรัส การป้องกันจีโนม (genome) จาก jumping genes และ การควบคุมการแสดงออกของยีน
 RNAi มีความสำคัญในกระบวนการป้องกันและต่อต้านการติดเชื้อไวรัส โดยเฉพาะอย่างยิ่งในสิ่งมีชีวิตชั้นต่ำ ไวรัสหลายชนิดมีสารพันธุกรรมเป็นแบบ dsRNA ซึ่งเมื่อไวรัสเหล่านี้ปลดปล่อยสารพันธุกรรมเข้าสู่เซลล์ dsRNA จะถูกตัดเป็น short interference RNA (siRNA)โดย Dicer ซึ่งเป็นเอ็นไซม์ที่มีอยู่แล้วในสิ่งมีชีวิตบางชนิด จากนั้น Dicer จะกระตุ้นให้ RISC complex เข้ามาจับ และตัดสาย RNA เกิดการยับยั้งการสร้างโปรตีน ทำให้ไวรัสไม่สามารถก่อโรคได้
RNAi ยังมีความสำคัญในการป้องกันจีโนม (genome) จาก Jumping genes (transposons) ซึ่งเป็นลำดับของดีเอ็นเอ ที่สามารถเคลื่อนที่ไปได้ทั่วจีโนมของสิ่งมีชีวิต และพบ Jumping genes ได้ในสิ่งมีชีวิตทุกชนิด ซึ่งในกรณีที่ Jumping genes เคลื่อนไปอยู่ในตำแหน่งที่ไม่ถูกต้องและมีความสำคัญจะทำให้เกิดความเสียหาย แก่เซลล์ของสิ่งมีชีวิตได้ Jumping genes หลายๆชนิดทำงานโดยการถอดรหัส ดีเอ็นเอ ให้เป็น RNA ก่อน และจากนั้นจะถอดรหัสกลับเป็นดีเอ็นเอแล้วไปแทรกอยู่ในตำแหน่งอื่นๆของจีโน มต่อไป บ่อยครั้งที่ RNA ที่เกิดขึ้นจะเป็น dsRNA และเป็นตัวเริ่มต้นกระบวนการ RNAi
ดังนั้น RNAi จึงมีบทบาทช่วยป้องกันจีโนมจาก Jumping genes โดยการทำลาย dsRNA
นอกจากนั้น RNAi ยังเป็นกลไกสำคัญที่มีบทบาทในการควบคุมการแสดงออกของยีน ที่พบในสัตว์หลายชนิด ตั้งแต่ระดับกลุ่มหนอนพยาธิจนถึงระดับสัตว์เลี้ยงลูกด้วยน้ำนม พบว่ายีนหลายร้อยตำแหน่งในจีโนมของมนุษย์จะได้รับการถอดรหัสออกมาเป็น RNA ขนาดเล็กที่เรียกว่า microRNA (miRNA) ซึ่ง miRNA จะบรรจุชิ้นส่วนของลำดับของยีนต่างๆ
ดังนั้น miRNA เหล่านี้จึงอาจเกิดเป็นโครงสร้างสายคู่ได้ เช่น เกิดเป็น hairpin RNA (hpRNA) เมื่อเกิดเป็น hpRNA ที่เป็น dsRNA ขึ้นจะเป็นการกระตุ้นให้เริ่มกระบวนการ RNAi ทำให้เกิดการยับยั้งการแสดงออกของยีน

ประวัติ RNAi

พัฒนาการ ของความรู้ความเข้าใจเกี่ยวกับ RNAi คาดว่าเริ่มขึ้นเมื่อ ในปี 1990 Jorgensen และคณะ รายงานปรากฏการณ์ที่เขาทำการทดลองในการพยายามทำให้สีของดอกพิทูเนีย (petunia) มีสีเข้มขึ้น โดยการใส่ยีนที่จะกระตุ้นการสร้างรงควัตถุสีแดงจากภายนอกเข้าไป แต่ผลที่พบ คือ ยีนสารสีของดอกพิทูเนีย หยุดการทำงานลง

ซึ่งในขณะนั้นยังไม่สามารถอธิบายได้ว่าอะไรเป็นสาเหตุของปรากฏการณ์ดังกล่าว แต่เมื่อมองย้อนกลับไป อาจถือได้ว่า Richard Jorgensen และคณะเป็นกลุ่มบุคคลแรกที่รายงานถึงลักษณะที่คล้ายกับผลจากการเกิดกระบวน การ RNAi ในปีเดียวกันนี้ยังมีการค้นพบปรากฏการณ์ที่คล้ายกันอีกโดย van der Krol และคณะเมื่อทำการใส่ dihydroflavonol-4-reductase (DFR) or chalcone synthase (CHS) genes เข้าไปในดอกพิทูเนียและ Smith และคณะเมื่อทำการใส่ chimaeric polygalacturonase (PG) gene ในมะเขือเทศ ซึ่งในปี1990 นี้ได้มีการกำหนดชื่อเรียกปรากฏการณ์ดังกล่าวว่า post transcriptional gene silencing (PTGS) ต่อมาในปี 1992 Macino และRomanoได้มีการค้นพบปรากฏการณ์ที่ใกล้เคียงกันใน Neurospora crassa เมื่อใส่ยีนที่ทำให้มีการแสดงลักษณะเผือกโดยพบว่า Neurospora crassa บางส่วนไม่มีการแสดงลักษณะเผือก ซึ่งMacino และRomano เรียกปรากฏการณ์ดังกล่าวว่า quelling อย่างไรก็ตามยังไม่มีผู้ที่สามารถอธิบายได้ว่าอะไรคือกลไกที่ทำให้เกิด ลักษณะดังกล่าว จนกระทั่งในปี 1998 มีนักวิทยาศาสตร์ชาวอเมริกัน 2 คน คือ Andrew Z. Fire และ Craig C. Mello ได้รายงานการศึกษา RNAi และกลไกที่เกี่ยวข้องจากการศึกษาแสดงออกของยีนในหนอนตัวกลม Caenorhabditis elegans (C. elegans) โดยพบว่าเมื่อฉีด mRNA (sense) ที่ควบคุมการสร้างโปรตีนกล้ามเนื้อ ร่วมกับ antisense RNA ของ mRNA ดังกล่าว ให้แก่ C. elegan พบว่าหนอนมีการเคลื่อนที่แบบกระตุก (twitching movements) คล้ายลักษณะการเคลื่อนที่ของหนอนกลุ่มที่ขาดยีนที่ทำหน้าที่สร้างโปรตีน กล้ามเนื้ออย่างสมบูรณ์ ในขณะที่ การฉีดเฉพาะ sense หรือ antisense RNAเพียงอย่างเดียวไม่พบการเปลี่ยนแปลงดังกล่าว จากผลการทดลอง Fire และคณะตั้งสมมุติฐานว่า sense และ antisense RNA ที่ถูกฉีดเข้าไปอาจจับเข้าคู่กันเกิดเป็น dsRNA และ dsRNA ที่เกิดขึ้นมีผลไปยับยั้งการแสดงออกของยีนกล้ามเนื้อที่มีรหัสเดียวกันนั้น ต่อมาเมื่อได้ทดลองฉีด dsRNA ที่มีรหัสพันธุกรรมของโปรตีนหลายๆชนิดของหนอนตัวกลม พบว่า การฉีดอาร์เอ็นเอสายคู่ที่มีรหัสพันธุกรรมหนึ่งๆเข้าไป มีผลในการยับยั้งการแสดงออกของยีนที่มีรหัสจำเพาะนั้นๆ

กลไกการเกิดกระบวนการ RNAi

RNA interference (RNAi) ถือเป็นกระบวนการในการควบคุมการแสดงออกของลักษณะทางพันธุกรรมอย่างหนึ่ง ดังนั้นเพื่อความเข้าใจในกระบวนการ RNAi จึงขอกล่าวถึง การแสดงออกของยีนและการควบคุมการแสดงออกของยีนก่อนจะกล่าวถึงการทำงาน ของกระบวนการ RNAi




การแสดงออกของยีน(Nelson and Cox, 2000) การแสดงออกของยีน หมายถึง การถอดรหัสพันธุกรรมของยีนจากดีเอ็นเอเป็น mRNA แล้วเกิดการแปลรหัสเป็นโปรตีน รหัสพันธุกรรมของยีนในดีเอ็นเอ เป็นตัวกำหนดชนิดของโปรตีนที่เซลล์สร้าง โดยเริ่มจากการถอดรหัสพันธุกรรมที่อยู่ในดีเอ็นเอเป็น mRNA ในนิวเคลียส และแปลรหัสเป็นโปรตีนในไซโตพลาสซึม ซึ่งโปรตีนนี้มีความเกี่ยวข้องในทุกกระบวนการของสิ่งมีชีวิต เช่น เป็นเอ็นไซม์ที่ใช้ในการย่อยอาหาร เป็นส่วนประกอบของตัวรับสัญญาณ (receptor) และ แอนติบอดี้ (antibody) ที่ปกป้องร่างกายจากสิ่งแปลกปลอมต่างๆ จีโนมของคนประกอบด้วยยีนประมาณ 30,000 ชนิดแต่จะมีเพียงบางยีนเท่านั้นที่สามารถใช้งานได้ในแต่ละเซลล์ เพราะมีการควบคุมการแสดงออกของยีนให้เกิดขึ้นเฉพาะส่วนที่ต้องการเท่านั้น เรียกกระบวนการในการควบคุมให้มีการแสดงออกเฉพาะยีนที่ต้องการว่า การควบคุมการแสดงออกของยีน (regulation of gene expression) การควบคุมการแสดงออกของยีน (Regulation of gene expression) (Nelson and Cox, 2000) การแสดงออกของยีนเป็นการถ่ายทอดข้อความทางชีวภาพหรือข้อความทางพันธุกรรมที่ บรรจุอยู่ใน ดีเอ็นเอไปยัง mRNA แล้วจึงแปลรหัสไปเป็นโปรตีน ในเซลล์ร่างกายของสิ่งมีชีวิตทุกเซลล์มีข้อมูลทางพันธุกรรมหรือยีนเหมือนกัน แต่ในระหว่างการเจริญเติบโตและการเปลี่ยนสภาพ (differentiation) แต่ละเซลล์มีกลไกการควบคุมการแสดงออกของยีนเหล่านี้ต่างเวลาหรือต่างวาระกัน การควบคุมการแสดงออกของยีนอาจแบ่งเป็น 2 ช่วงคือ ­ ช่วงระหว่างกระบวนการถอดรหัสพันธุกรรม (transcription) โดยเป็นการควบคุมการสังเคราะห์ mRNA ซึ่งลำดับเบสที่อยู่บนสาย mRNA ถูกกำหนดโดยลำดับของเบสในสายแม่พิมพ์ดีเอ็นเอ ­ ช่วงระหว่างกระบวนการแปลรหัสพันธุกรรมมาเป็นโพลีเปปไทด์ (polypeptide) หรือโปรตีนโดยเป็นการสังเคราะห์ โพลีเปปไทด์ หรือการสร้างโปรตีน

การควบคุมการแสดงออกของยีนโดย RNAi และ องค์ประกอบที่เกี่ยวข้องในกระบวนการ RNAi

กระบวน การ RNAi เป็นการควบคุมการแสดงออกของยีนในขั้นตอนposttranscriptional processing ของ mRNA ซึ่งจากการศึกษาการควบคุมการแสดงออกของยีนโดยกระบวนการ RNAi ที่เกิดภายในเซลล์ของคนและสัตว์หลายชนิดพบว่ามีกลไกคล้ายกันโดยจีโนมมีการ กำหนดการสร้างโมเลกุล RNA ขนาดเล็กที่เรียกว่า micro RNA (miRNA) ซึ่งเป็น double-stranded RNA (dsRNA) และเป็นจุดเริ่มต้นในการกระตุ้นกลไกการทำงานของ RNAi ในการขัดขวางการสร้างโปรตีน RNAi จึงมีบทบาทในการควบคุมการแสดงออกของยีน และมีบทบาทสำคัญต่อการควบคุมลักษณะทางพันธุกรรม ควบคุมการทำงานของเซลล์ และรวมถึงการพัฒนาของสิ่งมีชีวิต





Dicer Dicer คือ RNAse III nuclease ทำหน้าที่ตัด double-stranded RNA และ pre-microRNA ออกเป็น double-stranded RNA สายสั้นๆ ซึ่งยาว 20-25 นิวคลีโอไทด์ เรียกว่า small interfering RNA (siRNA) โครงสร้างของ Dicer ประกอบไปด้วย RNase 2 โดเมน (domain) และ PAZ 1 โดเมน (รูปที่ 4) Dicer เป็นตัวกระตุ้นปฏิกิริยา (catalyze) ในขั้นตอนแรกของ RNA interference pathway และเป็นจุดเริ่มต้นในการสร้าง RNA-induced silencing complex (RISC) (Provost et al, 2002; Macrae et al, 2006; Jaronczyk et al, 2005; Bernstein et al, 2001)



Small Interfering RNA(Elbashir et al. 2001) Small Interfering RNA (siRNA) บางครั้งรู้จักกันในชื่อ short interfering RNA หรือ silencing RNA โครงสร้างโมเลกุลของ siRNA เป็น dsRNA สายสั้นๆ (ประมาณ 21 นิวคลีโอไทด์)โดยมีนิวคลีโอไทด์ 2 ตัวยื่นออกมา (overhange) จากปลาย 3' ของแต่ละสาย ผลจากการตัดของ Dicer ทำให้ได้สาย siRNA ที่มีปลาย 5' เป็นหมู่ฟอสเฟต และปลาย 3' เป็นหมู่ไฮดรอกซิล (รูปที่ 5) ปัจจุบันทราบว่า siRNA มีบทบาทในวิถี RNAi และเกี่ยวข้องกับกระบวนการทางชีวภาพที่หลากหลาย เช่น กระบวนการต่อต้านไวรัส หรือการเปลี่ยนแปลงโครงสร้างโครมาตินในจีโนม

อื่นๆ

Argonaute RNA-induced silencing complex (RISC) กระบวนการทำงานของ RNAi การประยุกต์ใช้เทคโนโลยี RNAi เทคโนโลยี RNAi ในปัจจุบันและอนาคต การนำเทคโนโลยี RNAi ไปใช้ในพืช ตัวอย่างการนำเทคโนโลยี RNAi ไปใช้ในพืช | | | v รายละเอียดทั้งหมด 
 



อ้างอิง http://www.vcharkarn.com

Cyber attack สงครามในรูปแบบใหม่จริงหรือ

 

Cyber attack สงครามในรูปแบบใหม่ คืออะไร

 

 ทุกวันนี้ สงครามได้ถูกเปลี่ยนรูปแบบไปเสียใหม่ อยู่ในโลกไซเบอร์ที่คอมพิวเตอร์ทั้งหลายเชื่อมโยงเข้าหากัน ประเทศมหาอำนาจหลายประเทศเริ่มหันมาต่อสู้กันผ่านระบบเครือข่ายคอมพิวเตอร์ เหตุผลที่สำคัญอย่างหนึ่งก็คือ โลกทุกวันนี้ถูกขับเคลื่อนด้วยระบบคอมพิวเตอร์และเครือข่ายแทบทั้งหมด ข้อมูลเกือบทุกอย่างถูกบันทึกไว้แบบดิจิตอลบนระบบคอมพิวเตอร์ การเชื่อมต่อเข้าสู่ระบบเครือข่ายเป็นเรื่องสำคัญที่ทุกหน่วยงานจะต้องมี แม้แต่หน่วยงานทางด้านทหารและความมั่นคงก็ตาม และที่สำคัญสงครามไซเบอร์นี้มีความร้ายแรงไม่แพ้สงครามในรูปแบบเก่าเสียด้วย

ถ้าพูดถึงคำว่า “สงคราม” ผมเชื่อว่าเพื่อนๆ ทุกคนต่างหวาดกลัวและไม่มีใครคิดอยากจะให้เกิดขึ้นใช่ไหมครับ แต่ดูเหมือนว่าสงครามในแบบที่เรารู้จักที่ต้องใช้อาวุธยุทโธปกรณ์ ทหาร ยานยนต์ทางภาคพื้นดิน น้ำ และอากาศ เพื่อห้ำหั่นกันนั้นจะกลายเป็นสิ่งที่ล้าหลังไปเสียแล้ว 

อีกประเทศหนึ่งที่น่าจะมีการพัฒนาฝีมือด้าน Cyber attack ไว้เป็นอย่างดี คือ ประเทศเกาหลีเหนือ โดยมีเป้าหมายหลักอยู่ที่คู่ปรับซึ่งก็คือประเทศเกาหลีใต้ที่มีปัญหากันมา เป็นเวลาเนิ่นนานนั่นเอง โดยในปี 2556 ที่ผ่านมา ระบบกระจายสัญญาณโทรทัศน์และระบบคอมพิวเตอร์ในธนาคารของประเทศเกาหลีใต้หยุด การทำงานกะทันหัน ทำให้เกิดความโกลาหลขึ้นอย่างมาก ต่อมาในเดือนมีนาคม ปี 2558 นี้ รัฐบาลเกาหลีใต้ก็ได้ประกาศประนามประเทศเกาหลีเหนือที่ได้ทำการเจาะระบบของ โรงงานไฟฟ้าพลังงานนิวเคลียร์ Korea Hydro and Nuclear Power (KHNP) โดยได้ขโมยข้อมูลบางส่วนไป ซึ่งแฮกเกอร์ได้เรียกร้องเงินเพื่อเป็นค่าตอบแทนให้หยุดการโจมตี ซึ่งทางรัฐบาลประเทศเกาหลีใต้ได้ตรวจสอบร่องรอยของการโจมตีและพบว่าแฮกเกอร์ มีฐานที่มั่นอยู่ที่บริเวณชายแดนระหว่างประเทศจีนกับเกาหลีเหนือนอกจากนี้การโจมตีฐานข้อมูลของบริษัท Sony Pictures ในปีที่ผ่านมาก็มีความเชื่อว่าเป็นฝีมือของประเทศเกาหลีเหนือเช่นกัน

 

ตัวอย่างการโจมตีด้วยระบบคอมพิวเตอร์ที่ โด่งดังในปี 2553 เกิดจากหนอนคอมพิวเตอร์ (computer worm) ชื่อว่า “Stuxnet” โดยที่เจ้าหนอนคอมพิวเตอร์ Stuxnet นี้ ได้ถูกปล่อยเข้าไปทำลายระบบเครื่องหมุนเหวี่ยงนิวเคลียร์ในโรงงาน นิวเคลียร์ประเทศอิหร่านจนเสียหายไปเป็นจำนวนเกือบร้อยละยี่สิบของทั้งหมด การทำงานของ Stuxnet เริ่มจากการแฝงตัวอยู่ใน USB drive ที่เมื่อนำไปเสียบเข้ากับเครื่องคอมพิวเตอร์ที่เป็น Microsoft Windows และมีโปรแกรม Siemens Step 7 ที่ใช้ในระบบเครื่องหมุนเหวี่ยงนิวเคลียร์ จากนั้นเจ้า Stuxnet ก็จะควบคุมเครื่องคอมพิวเตอร์และปรับค่าให้เครื่องหมุนเหวี่ยงฯ ทำงานเร็วเกินค่าปกติและเสื่อมสภาพไปในที่สุด ส่งผลให้เกิดความเสียหายมูลค่ามหาศาล ซึ่งมีการคาดการณ์กันว่าอาจจะเกิดจากการกระทำของฝ่ายตรงกันข้ามเพื่อยับยั้ง การพัฒนาอาวุธนิวเคลียร์ของอิหร่าน  

และที่เป็นข่าวฮือฮาขึ้นมาอีกครั้งเมื่อไม่ กี่วันที่ผ่านมานี้ เกิดขึ้นจากการที่ศาสตราจารย์คิม (Kim Heung-Kwang) ผู้เคยเป็นอาจารย์สอนวิชาด้านวิทยาการคอมพิวเตอร์ ณ Hamheung Computer Technology University ในประเทศเกาหลีเหนือเป็นเวลากว่ายี่สิบปี ได้เปิดเผยกับสำนักข่าวบีบีซีว่า ศักยภาพของทีมแฮกเกอร์ที่เกาหลีเหนือมี ภายใต้ชื่อว่า Bureau 121 นั้นสูงมาก สามารถที่จะทำลายสถานที่สำคัญรวมถึงคร่าชีวิตผู้คนได้ไม่ต่างจากอาวุธสงคราม เลยทีเดียว

ศาสตราจารย์คิมได้เล่าว่าเขาเป็นผู้สอนหลักการพื้นฐานทางด้านคอมพิวเตอร์ให้ กับนักศึกษาเท่านั้น ไม่ได้สอนพวกเขาให้แฮกระบบคอมพิวเตอร์แต่อย่างใด ซึ่งบางส่วนขอนักศึกษาที่เขาได้สอนได้ผันตัวไปเป็นแฮกเกอร์ในหน่วย Bureau 121 ที่พวกเขาเหล่านี้เชื่อว่าตนเองเป็น “นักรบไซเบอร์” ที่พร้อมจะทำสงครามตามคำสั่งของผู้นำเกาหลีเหนือ
ศ.คิม ยังเปิดเผยอีกว่าหน่วย Bureau 121 นั้นอาจจะมีขนาดใหญ่ถึง 6,000 คน อีกทั้งยังเป็นหน่วยงานที่ได้รับงบประมาณถึง 10-20% ของงบประมาณทางการทหารเลยทีเดียว อย่างไรก็ดีเป็นที่เชื่อกันว่าหน่วยงานที่กล่าวมานี้เกิดขึ้นมาหลายสิบปีที่ แล้วและดำเนินการอยู่นอกประเทศเกาหลีเหนือ ซึ่งยังไม่สามารถระบุตำแหน่งได้อย่างแน่ชัด ศ.คิม ได้เรียกร้องให้ทุกประเทศร่วมมือกันเพื่อหยุดยั้งแผนการนี้เสียก่อนที่จะ เกิดเหตุการณ์ร้ายแรงขึ้น
จากเหตุการณ์ที่ผมได้เล่าให้เพื่อนๆ ฟังมาทั้งหมดนี้ เราก็คงพอจะเห็นภาพได้ว่าการต่อสู้ไม่ได้จำกัดอยู่เพียงด้านกายภาพด้วยอาวุธ และคนอีกต่อไป แต่เริ่มที่จะเปลี่ยนไปเป็นการรบบนโลกไซเบอร์ที่นอกจากจะยากต่อการป้องกัน แล้ว ยังส่งผลร้ายแรงได้ไม่ยิ่งหย่อนไปกว่าสงครามในรูปแบบเดิมเลยทีเดียว

  


อ้างอิง:
http://www.bbc.co.uk/news/technology-32925495
http://arstechnica.com/security/2015/03/south-korea-claims-north-hacked-nuclear-data/
http://english.yonhapnews.co.kr/national/2015/03/12/40/0302000000AEN20150312008051320F.html
http://www.bbc.co.uk/news/technology-32925503
http://en.wikipedia.org/wiki/Stuxnet#History
https://www.blognone.com/node/68932

สัตว์ทะเลหน้าดินขนาดเล็ก (Meiofauna)

สัตว์ทะเลหน้าดินขนาดเล็ก (Meiofauna)

 

ปลาใหญ่กินปลาเล็ก “แล้วปลาเล็ก...กินอะไร?” ตอบแบบเอาฮาก็ต้องบอกว่า “กินอะไรที่เล็กกว่านั้นก็คือ ‘สัตว์ทะเลหน้าดินขนาดเล็ก (Meiofauna)’ กลุ่ม สัตว์ที่มีบทบาทสำคัญอย่างยิ่งอย่างห่วงโซ่ระบบนิเวศ ทั้งเป็นอาหารสำหรับปลาและสัตว์น้ำหลายชนิด และเป็นสิ่งบ่งชี้ถึงความอุดมสมบูรณ์ของระบบนิเวศป่าชายเลนได้อย่างดี
  ผลจากการศึกษาวิจัยทรัพยากรความหลากหลายทางชีวภาพในผืนป่าชายเลนปราณ โดย ศ.ดร.สนิท อักษรแก้ว ประธาน สมาคมป่าชายเลนนานาชาติ (INTERNATIONAL SOCIETY FOR MANGROVE ECOSYSTEM ISME) ซึ่งขณะนั้นดำรงตำแหน่งอาจารย์ประจำภาควิชาวิทยาศาสตร์ทางทะเล คณะวิชาวิทยาศาสตร์ จุฬาลงกรณ์มหาวิทยาลัย ร่วมกับทีมงาน ได้สำรวจพบกลุ่มสัตว์ทะเลหน้าดินในพื้นที่ป่าชายเลน บริเวณศูนย์ฯสิรินาถราชินี จำนวนมากถึง 52 ชนิด นอกจากชนิดพันธุ์ที่หลากหลายทำให้สามารถบ่งชี้ถึงความสมบูรณ์ของระบบนิเวศ แล้ว ยังพบว่าเจ้าสัตว์ทะเลตัวจิ๋วเหล่านี้ไม่ธรรมดาจริงๆ
               ที่ ว่าไม่ธรรมดานั้น เพราะความ ‘จิ๋ว’ ของกลุ่มสัตว์ทะเลหน้าดินที่มีขนาดเล็กระดับไมโครเมตร ซึ่งไม่สามารถมองเห็นด้วยตาเปล่า ต้องมีตัวช่วยคือ ‘กล้องจุลทรรศน์’ โดยสัตว์ทะเลหน้าดินขนาดเล็กนี้ ยังแบ่งออกได้เป็นประเภท ‘เล็กถาวร’ หรือเรียกง่ายว่า ตัวเล็กตั้งแต่เกิดจนโต ทั้งตัวอ่อนและตัวเต็มวัยจะไม่โตไปกว่านี้อีกแล้ว เช่น ไส้เดือนตัวกลม หรือหนอนตัวกลม (Nermatode) โคพีพอด (Copepod) และฟอแรมมินิเฟอรา (Forraminifera)
ส่วน อีกประเภทหนึ่งคือ ‘เล็กชั่วคราว’ ได้แก่ ระยะตัวอ่อนของสัตว์หน้าดินขนาดใหญ่และสัตว์น้ำต่างๆ หรือชนิดที่เรียกได้ว่า ‘เล็กวันนี้ ใหญ่วันหน้า’ ได้นั่นเอง อย่างเช่น ไส้เดือนทะเล (Polychaetes) หอยฝาเดียว หอยสองฝา ซึ่งพบได้ทั้งในผิวดินที่ชื้นแฉะของป่าชายเลน ทั้งในบริเวณชายหาด ป่าชายเลน หญ้าทะเล และแนวปะการัง ในดินเลนระดับลึกไม่เกิน 5 เซนติเมตรจากผิวดิน
นี่แหละที่เขาว่า ‘จิ๋วแต่แจ๋ว’ ...ไม่มีแก๊งนี้ขยะคงเต็มป่าชายเลน
               จาก สัตว์ขนาดจิ๋ว ก็ขยับขึ้นมาอีกนิด เป็นกลุ่มที่เรียกว่า ‘สัตว์ทะเลหน้าดินขนาดใหญ่ (Macrofaunal)’ มีขนาดตั้งแต่ 0.5 มิลลิเมตรขึ้นไปบางชนิดเป็นตัวโตเต็มวัยของประเภทเล็กชั่วคราวมีทั้งที่ อาศัยอยู่บนพื้นดิน และพวกที่ฝังตัวอยู่ในดิน บทบาทสำคัญคือ ช่วยย่อยสลายเศษซากใบไม้เช่นกัน และหมุนเวียนธาตุอาหารในป่าชายเลนยกขบวนกันมาทั้งปลาตีน ปูก้ามดาบ ปูแสม หอยสีแดง หอยขี้กา ไส้เดือนทะเล หอยสองฝาบางชนิด เช่น หอยเจาะ หรือเพรียงเจาะ...เห็นชื่อแล้วรู้สึกคุ้นกันบ้างไหม
Untitled-1
               ที่ เอ่ยถึงมาแต่ละชนิด เป็นเพียงส่วนหนึ่งของผลการวิจัยเท่านั้น ซึ่งกว่าเราจะได้รู้ว่า มีเจ้าตัวเล็กแบบนี้มากมายขนาดไหน ต้องผ่านวิธีการสืบค้นอย่างละเอียด ลองมาสวมวิญญาณนักวิจัยกันดีกว่า
 เริ่มต้นจากการสุ่มพื้นที่เก็บ ตัวอย่าง ทำโดยใช้ท่อเก็บตัวอย่าง (corer) เครื่องมือสำคัญที่ดัดแปลงจากกระบอกฉีดยาพลาสติกขนาดใหญ่ เส้นผ่านศูนย์กลาง 2.5 เซนติเมตร ตัดส่วนปลายออกแล้วกดกระบอกฉีดยาลงไปในดินให้ลึกมากกว่า 5 เซนติเมตร ที่ทำเครื่องหมายไว้ ตัดดินส่วนที่โผล่พ้นกระบอกฉีดยาทิ้งไป ดันดินยาว 5 เซนติเมตรที่เหลืออยู่ในท่อเก็บเป็นตัวอย่างไว้ในถุงซิปล็อค
               จาก นั้นจึงเข้าสู่ขั้นตอนการ ‘ดองดิน’ ที่เต็มไปด้วยเจ้าสัตว์ทะเลตัวจิ๋วที่เก็บตัวอย่างมา โดยเติมน้ำยาฟอร์มาลีน ความเข้มข้น 10 เปอร์เซ็นต์ ที่ทำให้เป็นกลาง และผสมสี Bengal Rose ให้ท่วมตัวอย่างดินที่รวมกันเป็นก้อนเบาๆ ให้น้ำยาฟอร์มาลีนได้ผสมกับดินจนทั่ว เพื่อให้สัตว์ทะเลหน้าดินขนาดเล็กถูกดองไปพร้อมกัน เก็บถุงตัวอย่างใส่กล่องให้มิดชิดแล้วนำไปวิเคราะห์ในห้องปฏิบัติการต่อไป
               เพียง ขั้นตอนการเก็บตัวอย่าง ก็ละเอียดซับซ้อนจนหลายคนอยากจะถอดวิญญาณนักวิจัยออกจากร่าง แต่ก็เป็นขั้นตอนสำคัญที่ทำให้ได้รู้ปริมาณของเจ้าตัวเล็ก ยิ่งมีมากก็หมายถึงอาหารที่อุดมสมบูรณ์ แต่หากมากเกินไปก็ต้องหาสาเหตุว่าทำไมจึงเป็นเช่นนั้น งานวิจัยจึงมีความสำคัญต่อการอนุรักษ์ความหลากหลายทางชีวภาพ เพราะนอกจากจะเพิ่มพูนความรู้ใหม่ๆ แล้ว ยังทำให้เห็นถึงความเชื่อมโยงของสรรพชีวิต และการเปลี่ยนแปลงของป่าชายเลน

1-1
               เล่า มาเสียยืดยาว แต่ทั้งหมดนี้ก็เป็นแค่บางส่วนของผลงานวิจัยพืชและสัตว์ของป่าชายเลนปราณ ที่มีขึ้นในปี พ.ศ. 2547 และปี พ.ศ. 2548 เท่านั้น
               10 ปีผ่านไป ปตท. ได้สนับสนุนให้มีการวิจัยสำรวจทรัพยากรความหลากหลายทางชีวภาพในผืนป่าชายเลน ปราณอีกครั้ง เพื่อศึกษาและสำรวจความเปลี่ยนแปลงความสมบูรณ์ของป่าชายเลนในพื้นที่ศูนย์ฯ สิรินาถราชินี และพื้นที่ใกล้เคียง ในระยะเวลาที่ผ่านมา ขณะนี้อยู่ในช่วงการเก็บข้อมูลและประมวลผล คาดว่าจะแล้วเสร็จในต้นปี พ.ศ. 2558
               ถึงตอนนั้นคงได้หยิบยกเรื่องราวของเจ้าตัวเล็กมาเล่าสู่กันฟังอีก
credit http://www.pttplc.com/TH/Default.aspx
 

F-22 RAPTOR เครื่องบินรบนินจา

F-22 RAPTOR เครื่องรบบินนินจา





US $350,000,000 F-22 RAPTOR / from: http://web.tiscali.it/unitedstates/f22raptor.htm
         ก่อนอื่นเลยผมขออนุญาตแนะนำท่านผู้อ่านที่ยังไม่รู้จักเครื่องบินตัวนี้เลย ก่อนนะครับ เครื่องบินรบ F-22 RAPTOR ที่ท่านเห็นอยู่ในรูปข้างบนสุดนี้คือเครื่องบินที่มีราคาแพงที่สุดอันดับที่ สองของโลก (US $350,000,000 ต่อลำ) แต่ถ้าเราพูดถึง เรื่องการปฏิบัติงานโดยรวมแล้ว F-22 RAPTOR นั้นถือได้ว่าเป็นอันดับ หนึ่งในบรรดาเครื่องบินรบทั้งหมดที่มีอยู่ในปัจจุบัน F-22 RAPTOR  ถูกสร้างขึ้นมาทั้งหมดเพียง 145 ลำและมีใช้ภายในกองทัพอากาศของประเทศสหรัฐอเมริกาเพียงหน่วยงานเดียว

F-22 executes transonic / from: www.webaviation.blogspot.com
         ข้างล่างนี้คือข้อมูลทั่วไป และข้อมูลทางเทคนิคของเครื่องบิน F-22 RAPTOR ครับ
         จุด เด่นของเครื่องบินรบ F-22 RAPTOR คือเป็นเครื่องบินที่มีความสามารถสูงในการหลบหลีกการตรวจจับ ของสัญญานเรดาร์อีกทั้งขีดความสามารถในการรบก็สูงไม่แพ้เครื่องบินรบรุ่น อื่นๆเลย ซึ่งในปี ค.ศ. 2007 ทางกองทัพอากาศสหรัฐอเมริกาได้ทำการทดสอบบินเครื่อง F-22 RAPTOR เพื่อทดสอบความสามารถในการ รบ และในครั้งนั้นทางกองทัพได้ให้คะแนนไว้ถึง 97% (ผ่าน 102  ใน 105 การทดสอบ)

F-22 RAPTOR / from: http://www.popsci.com

ฝูงบิน F-22 RAPTOR / from: http://hashmonean.com
F-22 RAPTOR หลบหนีการตรวจจับจากสัญญานเรดาร์ได้อย่างไร?
         นวัต กรรมที่เครื่องบินรบ F-22 RAPTOR ใช้ในการหลบหลีกการตรวจจับความเคลื่อนไหวเรียกว่า Stealth technology หรือ LO technology (low observable technology) เป็นการผสมผสานหลายเทคโนโลยีเข้า ด้วยกันเช่น การออกแบบลำเครื่อง การใช้วัสดุที่ดูดซึมเรดาร์ได้ (radar absorbent material หรือ RAM) รวม ไปถึงการเอาใจใส่องค์ประกอบเล็กๆน้อยๆอย่างเช่นการออกแบบหมวกนิรภัยของนัก บินขึ้นมาใหม่เพราะโดยปกติแล้วหมวกนิรภัยของนักบินแบบธรรมดาจะสามารถสะท้อน สัญญานเรดาร์ได้
         อย่าง ไรก็ตามนอกจากเทคโนโลยีเรดาร์แล้วก็ยังมีอีกหลายวิธีที่สามารถใช้ในการตรวจ จับการเคลื่อนไหว ของอากาศยาน และการหลบหลีกสัญญานเรดาร์ก็เป็นแค่เพียงหนึ่งในหลายๆขององค์ประกอบของ Stealth technology ดังนั้นเครื่องบินรบ F-22 RAPTOR จึงถูกออกแบบมาให้ลดการปล่อยรังสีอินฟราเรดด้วยเพื่อทำ ให้ยากต่อการตรวจพบของอุปกรณ์ตรวจจับความร้อน (infrared homing) ที่มีอยู่ในจรวดนำวิถี (missile) อีก ทั้งการออกแบบก็ต้องทำให้เครื่องบินนั้นบินด้วยเสียงที่เบาและมองเห็นได้ยาก ด้วยตาเปล่าด้วย         ปัจจุบัน นี้นอกจาก F-22 RAPTOR แล้วก็ยังมีเครื่องบินรบอีกหลายรุ่นมากที่ถูกสร้างมาเพื่อให้ตรวจจับการ เคลื่อนไหวได้ยาก ซึ่งก็จะมีประสิทธิภาพแตกต่างกันไปตามราคาและความสามารถของผู้ผลิต แต่ก็ยังไม่มีลำ ไดที่มีประสิทธิภาพเต็ม 100% รวมทั้ง F-22 RAPTOR เอง

ห้องนักบินของ F-22 RAPTOR / from: http://3.bp.blogspot.com
ห้องนักบิน
          ห้อง นักบินของเครื่องบินรบ F-22 RAPTOR นั้นเป็นชนิดนักบินเดี่ยว (จุนักบินได้เพียงท่านเดียว) ฝาครอบ ห้องนักบินเป็นกระจกกันน้ำฝนได้ ส่วนอุปกรณ์ภายในห้องนั้นถูกออกแบบขึ้นมาใหม่โดยไม่ยึดติดกับรูปแบบ ของห้องบินแบบดั้งเดิม และมีจุดเด่นที่สำคัญๆเช่น ระบบติดเครื่องที่ง่ายและรวดเร็ว เครื่องเตือนภัยอัตโนมัติ และระบบช่วยเหลือนักบินชั้นสูง         อุปกรณ์ ทุกชิ้นภายในห้องเครื่องถูกออกแบบมาเป็นพิเศษสำหรับการมองผ่านแว่นที่ใช้มอง ในที่มืด (night vision goggles) เพราะบางครั้งเพื่อการพรางตัวของเครื่องบินจึงทำให้นักบินไม่สามารถใช้แสง สว่างภายใน ห้องเครื่องได้มากนัก

ห้องเก็บอาวุธของ F-22 RAPTOR / from: http://i.pbase.com
อาวุธประจำเครื่อง
         F-22 RAPTOR มีห้องเก็บอาวุธอยู่สามห้องภายในตัวเครื่องซึ่งสามารถบันจุอาวุธต่างๆได้หก ชิ้นดังนี้ จรวดนำ วิถีระยะไกลสี่ลูกในห้องกลาง และจรวดนำวิถีระยะสั้นในห้องเก็บด้านซ้ายและขวาข้างนะลูก ห้องเก็บกลางที่ บันจุจรวดนำวิถีระยะไกลสี่ลูกสามารถเปลี่ยนไปเก็บลูกระเบิดขนาดกลางได้สอง ลูก หรือลูกระเบิดขนาดเล็ก แปดลูก การเก็บอาวุธจำเป็นต้องเก็บใว้ภายในตัวเครื่องบินและมีฝาปิดที่มิดชิดเพื่อ รักษาสภาพล่องหลไม่ให้ ถูกตรวดพบจากอุปกรณ์ตรวจจับต่างๆ และยังช่วยลดแรงเสียดทานกับอากาศขณะบินได้ ทำให้เครื่องบินแล่น ได้ด้วยความเร็วสูง และประหยัดเชื้อเพลิงซึ่งจะช่วยให้เครื่องบินบินได้นานขึ้น
          การ เปิดฝาห้องเก็บอาวุธขณะบินมีผลทำให้เครื่องบินถูกตรวจจับได้ด้วยสัญญา นเรดาร์ ดังนั้นการทิ้งระเบิด หรือปล่อยจรวดนำวิธีจึงจำเป็นต้องทำด้วยความเร็ว เครื่องบินรบ F-22 RAPTOR สามารถเปิดและปิดฝาครอบ ได้ภายในระยะเวลาไม่ถึงหนึ่งวินาทีเพื่อทำการยิงจรวดนำวิถี หรือทิ้งระเบิด

ตรวจสอบความพร้อมของ F-22 RAPTOR / from: http://taylor.typepad.com
การดูแลรักษา
         มี รายงานจากกองทัพอากาศสหรัฐอเมริกาออกมาว่าทุกๆครั้งหลังจากที่นำเครื่อง F-22 RAPTOR ออกทำ การบินหนึ่งชั่วโมง ทางกองทัพต้องใช้เวลามากกว่า 30 ชั่วโมงในการซ่อมบำรุง และต้องเสียค่าใช้จ่ายมากถึง 44,000 ดอลลาร์ สาเหตุหลักที่ทำให้ต้องเสียเวลาและค่าใช้จ่ายจำนวนมากก็คือ ผิวเคลือบลำเครื่องที่สามารถ ดูดซึมเรดาร์ได้ ซึ่งการซ่อมแซมในส่วนผิวเคลือบเพียงอย่างเดียวนี้เองต้องใช้เวลามากกว่า ครึ่งของการซ่อมแซม ส่วนอื่นทั้งหมด
         และ ในวันที่ 22 กรกฎาคม ค.ศ. 2009 เหล่าบรรดาสมาชิกวุฒิสภาของสหรัฐอเมริกาก็ได้ลงมติให้หยุดทำ การผลิตเครื่องบินรบ F-22 RAPTOR ใว้ที่ 187 ลำด้วยเหตุผลทางการเงินส่วนหนึ่ง บวกกับ F-22 RAPTOR ก็ไม่ได้ถูกใช้งานในภารกิจสงครามกับประเทศ อิรัก และ อัฟกานิสถาน แล้วดังนั้นจึงยังไม่มีความจำเป็นที่ จะต้องพัฒนาหรือเพิ่มการผลิตเครื่องบินรบ F-22 RAPTOR อีกต่อไป ซึ่งนักวิชาการก็คาดกันว่ากระทรวง กลาโหมของสหรัฐอเมริกาน่าจะหันไปลงทุนเพื่อพัฒนาบุคลากร และหน่วยงานราชการของทหารแทน

Flys aways F-22 RAPTOR / from: http://www.aviationexplorer.com
         สุด ท้ายแล้วสำหรับกองทัพไทย เทคโนโลยีอย่าง F-22 RAPTOR คงเป็นได้แค่เพียงความฝันที่จะได้มันมา ประจำการ เพราะหากคนไทยเรายังไม่เริ่มทีจะทำหรือสร้างสิ่งที่มันยากๆด้วยตัวเราเอง คอยแต่จะลอกตาม คอยแต่จะซื้อมา คอยแต่จะพึ่งพา และยังไม่กล้าที่ทำหากต้องเริ่มจากศูนย์ ประเทศไทยของเราก็คงต้องก้าว ไปข้างหน้าแบบตามหลังเขาไม่ทัน

Declaring Member Variablesและ Defining Methodsของclass java(programming)

 

Declaring Member Variablesและ Defining Methodsของclass java(programming)

Declaring Member Variables

 Example
The Bicycle class uses the following lines of code to define its fields:
public int cadence;
public int gear;
public int speed;
 

Access Modifiers

 public class Bicycle {
       
    private int cadence;
    private int gear;
    private int speed;
       
    public Bicycle(int startCadence, int startSpeed, int startGear) {
        gear = startGear;
        cadence = startCadence;
        speed = startSpeed;
    }
       
    public int getCadence() {
        return cadence;
    }
       
    public void setCadence(int newValue) {
        cadence = newValue;
    }
       
    public int getGear() {
        return gear;
    }
       
    public void setGear(int newValue) {
        gear = newValue;
    }
       
    public int getSpeed() {
        return speed;
    }
       
    public void applyBrake(int decrement) {
        speed -= decrement;
    }
       
    public void speedUp(int increment) {
        speed += increment;
    }
}
ตัวแปรที่ทุกตัวต้องมีประเภท คุณสามารถใช้รูปแบบดั้งเดิมเช่นint, float, boolean,  ฯลฯ หรือคุณสามารถใช้ประเภทของการอ้างอิงเช่นสตริงอาร์เรย์หรือวัตถุ

Defining Methods

นี่คือตัวอย่างของการประกาศวิธีการทั่วไปที่ใช้งาน:
public double calculateAnswer(double wingSpan, int numberOfEngines,
                              double length, double grossTons) {
    //do the calculation here
}
องค์ประกอบที่จำเป็นเท่านั้นของประกาศวิธีเป็นประเภทของวิธีการที่ผลตอบแทนจากชื่อคู่ของวงเล็บ () และร่างกายระหว่างปีกกา {}

โดยทั่วไปmethod declarations วิธีการประกาศมีส่วนประกอบในการสั่ง:

    การปรับเปลี่ยน Modifiersเช่น public, privateและอื่น ๆ ที่คุณจะได้เรียนรู้เกี่ยวกับภายหลัง
    การกลับมาชนิดข้อมูลของค่าส่งกลับโดยวิธีการreturn typeหรือเvoid ifถ้าวิธีการไม่คืนค่า
    วิธีการชื่อกฎสำหรับชื่อฟิลด์นำไปใช้กับชื่อวิธีเช่นกัน method name แต่ conventionที่แตกต่างกันเล็ก ๆ น้อย ๆ
    รายการพารามิเตอร์ในวงเล็บ-รายการคั่นด้วยเครื่องหมายจุลภาคป้อนพารามิเตอร์นำโดยชนิดข้อมูลของพวกเขาล้อมรอบด้วยวงเล็บ () หากมีไม่มีพารามิเตอร์คุณต้องใช้วงเล็บที่ว่างเปล่า
    รายการการยกเว้นได้รับการกล่าวถึงในภายหลัง
 method bodyธีการปิดล้อมระหว่างรหัสของการจัดฟัน-วิธีการรวมทั้งการประกาศตัวแปรท้องถิ่นที่นี่

 Modifiers, return types,และ parametersการปรับเปลี่ยนกลับประเภทและพารามิเตอร์
จะได้รับการกล่าวถึงในบทนี้ ข้อยกเว้นที่จะกล่าวถึงในบทเรียนต่อมา
The signature of the method declared above is:
calculateAnswer(double, int, double, double)

Naming a Method

แม้ว่าชื่อวิธีการที่สามารถเป็นตัวบ่งชี้ทาง legal identifier  ชื่อวิธี โดยการconventionsชื่อวิธีที่ควรจะเป็นคำ
กริยาในตัวพิมพ์เล็กหรือชื่อหลายคำที่ขึ้นต้น
ด้วยคำกริยาในตัวพิมพ์เล็กตามด้วยคำคุณศัพท์คำนาม ฯลฯ ในชื่อหลายคำที่ตัวอักษรตัวแรกของแต่ละคำที่สองและต่อไปนี้
 ควรเป็นตัวพิมพ์ใหญ่ นี่คือตัวอย่างบางส่วน:
run
runFast
getBackground
getFinalData
compareTo
setX
isEmpty
โดยปกติแล้ววิธีการที่มีชื่อซ้ำกันภายในชั้น แต่วิธีการอาจจะมีชื่อเดียวกับวิธีการอื่น ๆ อันเนื่องมาจาก
method overloading.


Overloading Methods

การเขียนโปรแกรมภาษา Java สนับสนุนวิธีการบรรทุกเกินพิกัดและ Java สามารถแยกแยะความแตกต่างระหว่าง
วิธีการที่มีลายเซ็นวิธีการที่แตกต่างกัน ซึ่งหมายความว่าวิธีการที่อยู่ในชั้นเรียนสามารถมีชื่อเดียวกันว่าพวกเขามีรายชื่อพารามิเตอร์
ที่แตกต่างกัน (มีคุณสมบัติบางอย่างมีในบทเรียนเรื่อง "การเชื่อมต่อและการถ่ายทอด")
public class DataArtist {
    ...
    public void draw(String s) {
        ...
    }
    public void draw(int i) {
        ...
    }
    public void draw(double f) {
        ...
    }
    public void draw(int i, double f) {
        ...
    }
}

สมมติว่าคุณมีระดับที่สามารถใช้การประดิษฐ์ตัวอักษรที่จะดึงข้อมูลชนิดต่างๆ (สตริงจำนวนเต็มและอื่น ๆ ) และที่มีวิธีการสำหรับ calligraphy
 to draw various types ของข้อมูล(strings, integers, and so on)
มันเป็นความยุ่งยากในการใช้ชื่อใหม่สำหรับแต่ละตัวอย่างวิธีการสำหรับ, เชือก, drawInteger, drawFloat และอื่น ๆ
ในการเขียนโปรแกรมภาษา Java คุณสามารถใช้ชื่อเดียวกันสำหรับทุกวิธีการวาดภาพ แต่ผ่านรายการอาร์กิวเมนต์ที่แตกต่างกันไปแต่ละวิธี
 ดังนั้นระดับการวาดภาพข้อมูลอาจจะประกาศชื่อสี่วิธีการวาดแต่ละที่มีรายการพารามิเตอร์ที่แตกต่างกัน
by relative7prof

Classes ใน java(programming)

 

Classes ใน java(programming)

แนะนำobject-oriented conceptsในบทเรียนObject-oriented
Programming Concepts โดยมีbicycle class
ใช้จักรยานเป็นตัวอย่างกับจักรยานแข่งจักรยานเสือ racing bikes, mountain bikes, and tandem bikes เป็น subclasses
ตัวอย่างรหัสสำหรับการดำเนินงานเป็นไปได้ของbicycle classเพื่อให้ภาพรวมของการประกาศคลาส
 ส่วนที่ตามมาของบทเรียนนี้จะสำรองข้อมูลและอธิบายการประกาศระดับทีละขั้นตอน สำหรับช่วงเวลาที่
ไม่ได้กังวลกับตัวเองโดยมีรายละเอียด
public class Bicycle {
       
    // the Bicycle class has
    // three fields
    public int cadence;
    public int gear;
    public int speed;
       
    // the Bicycle class has
    // one constructor
    public Bicycle(int startCadence, int startSpeed, int startGear) {
        gear = startGear;
        cadence = startCadence;
        speed = startSpeed;
    }
       
    // the Bicycle class has
    // four methods
    public void setCadence(int newValue) {
        cadence = newValue;
    }
       
    public void setGear(int newValue) {
        gear = newValue;
    }
       
    public void applyBrake(int decrement) {
        speed -= decrement;
    }
       
    public void speedUp(int increment) {
        speed += increment;
    }
       
}
declarationในชั้นสำหรับ MountainBike classที่เป็น subclass ของBicycleอาจมีลักษณะเช่นนี้
public class MountainBike extends Bicycle {
       
    // the MountainBike subclass has
    // one field
    public int seatHeight;

    // the MountainBike subclass has
    // one constructor
    public MountainBike(int startHeight, int startCadence,
                        int startSpeed, int startGear) {
        super(startCadence, startSpeed, startGear);
        seatHeight = startHeight;
    }  
       
    // the MountainBike subclass has
    // one method
    public void setHeight(int newValue) {
        seatHeight = newValue;
    }  

}

MountainBikeสืบทอดเขตข้อมูลทั้งหมด(fields) และmethods ของ Bicycleและเพิ่ม seatHeight
และวิธีการในการตั้งค่า (MountainBikeมีที่นั่งที่สามารถเคลื่อนย้ายขึ้นและลงเป็นความต้องการของterrain)

Declaring Classes

กำหนดไว้ในวิธีต่อไปนี้:
class MyClass {
    // field, constructor, and
    // method declarations
}

นี่คือการประกาศคลาส  class body (พื้นที่ระหว่างวงเล็บ) ที่ประกอบด้วยรหัสที่ให้สำหรับวงจรชีวิตของวัตถุที่สร้างขึ้น
จากชั้นเรียน:
 การสร้างสำหรับการเริ่มต้นวัตถุใหม่ประกาศสำหรับเขตข้อมูลที่ให้behaviorและobjectsและ
 วิธีการที่จะใช้ลักษณะการทำงานbehaviorและobjects
คลาสที่ประกาศก่อนหน้านี้เป็นหนึ่งในน้อยที่สุด มันมีเฉพาะส่วนดังกล่าวของการประกาศคลาสที่จำเป็นต้องใช้
คุณสามารถให้ข้อมูลเพิ่มเติมเกี่ยวกับชั้นเรียนเช่นชื่อของ superclass ของตนไม่ว่าจะดำเนินการเชื่อมต่อใด ๆ
และอื่น ๆ ในช่วงเริ่มต้นของการประกาศคลาส ตัวอย่างเช่น,
class MyClass extends MySuperClass implements YourInterface {
    // field, constructor, and
    // method declarations
}

means that MyClass is a subclass of MySuperClass and that
it implements the YourInterface interface.

นอกจากนี้คุณยังสามารถเพิ่มการปรับเปลี่ยนเช่นpublic or privateที่จุดเริ่มต้นมากดังนั้นคุณจะเห็นว่าสายการเปิดตัว
ของการประกาศคลาสจะกลายเป็นความซับซ้อนมาก ปรับเปลี่ยนpublic or privateซึ่งตรวจสอบสิ่งที่ชั้นเรียนอื่น ๆ
สามารถเข้าถึง MyClass จะกล่าวถึงต่อไปในบทเรียนนี้ บทเรียนเกี่ยวกับการเชื่อมต่อและการรับinheritanceจะอธิบาย
วิธีการและเหตุผลที่คุณจะใช้ขยายคำหลักและดำเนินการในการประกาศคลาส สำหรับช่วงเวลาที่คุณไม่จำเป็นต้องกังวลเกี่ยว
กับภาวะแทรกซ้อนที่พิเศษเหล่านี้

โดยทั่วไปแล้วการประกาศชั้นสามารถรวมองค์ประกอบเหล่านี้ในการin order :

    การปรับเปลี่ยนเช่นpublic or privateและa number of othersอื่น ๆ ที่คุณจะพบในภายหลัง
    ชื่อคลาสด้วยอักษรตัวแรกพิมพ์ใหญ่
    ชื่อของ class's parent (superclass) ในกรณีใด ๆ นำหน้าด้วยคำหลักขยาย ชั้นเท่านั้นที่สามารถขยาย
 (subclass) ผู้ปกครองคนหนึ่ง
    รายการที่คั่นด้วยเครื่องหมายจุลภาคของอินเตอร์เฟซที่ดำเนินการโดยการเรียนถ้ามีนำโดยการดำเนินการคำหลัก
ชั้นสามารถใช้อินเตอร์เฟซมากกว่าหนึ่ง
    class body,ชั้นล้อมรอบด้วยวงเล็บ {}
by relative7prof