วันอังคารที่ 25 ธันวาคม พ.ศ. 2555

ไวยากรณ์ภาษาจาวา


               ไวยากรณ์ภาษาจาวา 




                         1.การประกาศ class
                         2.การประกาศ attributes
                         3.การประกาศ methods
                         4.การประกาศ object
                         5.การเรียกใช้ methods
                         6.การเรียกใช้ attributes


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


class ชื่อคลาส
{
// คำสั่ง
// คำสั่ง
}


ตัวอย่าง
public class person
{
.
.
}



2.การประกาศ attributes (คุณลักษณะ)
       คุณลักษณะของออปเจ็ค คือตัวแปรหรือค่าคงที่ซึ่งประกาศภายในออปเจ็ค โดยมีตัวอย่างการประกาศคือ

รูปแบบ
[modifier] dataType attributeName;

- Modifier คือ คีย์เวิร์ดของภาษาจาวาที่อธิบายคุณสมบัติต่างๆ ของตัวแปรหรือค่าคงที่
- dataType คือ ชนิดข้อมูลซึ่งอาจเป็นชนิดข้อมูลพื้นฐานหรือชนิดคลาส
- attributeName คือ ชื่อของคุณลักษณะ

ตัวอย่าง
public class person
{
private String id;
private String name;
public int number ;
}


3.การประกาศ methods
ภาษาจาวากำหนดรูปแบบของการประกาศเมธอดที่อยู่ในคลาสไว้ดังนี้

รูปแบบ

[modifier] return_type methodName ([argument]) {
[method body]
}

- Modifier คือ คีย์เวิร์ด ของภาษาจาวาที่ใช้ในการอธิบายระดับการเข้าถึง (Access modifier)
- Return_type คือ ชนิดข้อมูลของค่าที่จะมีการส่งกลับ
- methodName คือ ชื่อของเมธอด
- Arguments คือ ตัวแปรที่ใช้ในการรับข้อมูลที่ออปเจ็คส่งมาให้
- Method body คือ คำสั่งต่างๆ ของภาษาจาวาที่อยู่ในเมธอด

ตัวอย่าง
public class person
{
private String id;
private String name;
public int number ;
public void setData(String aId,String aName)
{
id = aId;
name = aName;
}
}


4.การประกาศ Object
       คำสั่งที่ใช้ในการสร้างออปเจ็คจะมีรูปแบบ ดังนี้

รูปแบบ
objectName = new ClassName ([arguments]);

- objectName  คือชื่อของออปเจ็ค
- new             คือคีย์เวิร์ดของภาษาจาวาเพื่อใช้ในการสร้างออปเจ็ค
- ClassName   คือชื่อของคลาส
- Arguments   คือค่าที่ต้องการส่งผ่านในการเรียก Contructor

ตัวอย่าง
s1 = new Student();


5.การเรียกใช้ methods
       แบบที่ 1 : เรียกใช้ Constructor และใช้พื้นที่ในหน่วยความจำ
class hello1 {
  public static void main(String args[]) {
    TAirPlane  abc = new TAirPlane();
  }
}

       แบบที่ 2 : แยกประกาศใช้คลาสและใช้พื้นที่ในหน่วยความจำ
class hello2 {
  public static void main(String args[]) {
    TAirPlane  abc;
    abc = new TAirPlane();
  }
}

       แบบที่ 3 : ใช้พื้นที่ในหน่วยความจำ และเป็นการเรียกใช้ constructor ซึ่ง class นี้ ต้องอยู่ใน Directory เดียวกัน
class hello3 {
  public static void main(String args[]) {
    new TAirPlane();
  }
}

       แบบที่ 4 : เรียกใช้ method Fly() แต่จะเรียก constructor มาก่อน ถ้า class นั้นมี constructor
class hello4 {
  public static void main(String args[]) {
    new TAirPlane().Fly();
  }
}

       แบบที่ 5 : เมื่อสร้างวัตถุขึ้นมา สามารถเรียกใช้ method อื่น โดย constructor ทำงานเฉพาะครั้งแรก
class hello5 {
  public static void main(String args[]) {
    TAirPlane  abc = new TAirPlane();
    abc.Fly();
    abc.Land();
  }
}

       แบบที่ 6 : แสดงตัวอย่างการเรียก main และต้องส่ง Array of String เข้าไป
class hello6 {
  public static void main(String args[]) {
    TAirPlane  abc = new TAirPlane();
    String a[] = {};   // new String[0];
    abc.main(a);
  }
}

       แบบที่ 7 : เรียกใช้ method ภายในคลาสเดียวกัน
class hello7 {
  public static void main(String args[]) {
    minihello();
  }
  static void minihello()   {
    System.out.println("result of mini hello");
  }
}

       แบบที่ 8 : เรียกใช้ method แบบอ้างชื่อคลาส ในคลาสเดียวกัน
class hello8 {
  public static void main(String args[]) {
    hello8 x = new hello8();
    x.minihello();
  }
  static void minihello()   {
    System.out.println("result of mini hello");
  }
}

       แบบที่ 9 : เรียกใช้ method แบบไม่กำหนด method เป็น Static พร้อมรับ และคืนค่า
:: ผลลัพธ์คือ 8
class hello9 {
  public static void main(String args[]) {
    hello9 xx = new hello9();
    System.out.println(xx.oho(4));
  }
  int oho(int x) { return (x * 2); }
}

       แบบที่ 10 : เรียกใช้ method ภายในคลาสเดียวกัน โดย method สามารถรับ และส่งค่าได้
:: เรียก method ใน static ตัว method ที่ถูกเรียกต้องเป็น static ด้วย
class hello10 {
  public static void main(String args[]) {
    System.out.println(oho(5));
  }
  static int oho(int x)   {
    x = x * 2;
    return x;
  }
}

       แบบที่ 11 : ใช้ extends เพื่อการสืบทอด (Inheritance)
:: Constructor ของ TAirPlane จะไม่ถูกเรียกมาทำงาน
class hello11 extends TAirPlane {
  public static void main(String args[]) {
    Fly();
    Land();
  }
}

       แบบที่ 12 : ใช้ extends เพื่อการสืบทอด (Inheritance) แบบผ่าน constructor
:: Constructor ของ TAirPlane จะถูกเรียกมาทำงาน
class hello12 extends TAirPlane {
  hello12() {
    Fly();
    Land();
  }
  public static void main(String args[]) {
    new hello12();
  }
}





6.การเรียกใช้ attributes
      

      การเรียกใช้แบบที่ 1
syntax:ClassName object = new ClassName().attributeName;
example:Person bamboo = new Person().name; 

       การเรียกใช้แบบที่ 2
syntax:ClassName object = new ClassName();
object.attributeName;
example:Person bamboo = new Person();
bamboo.name = "bamboolabcode";




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

แสดงความคิดเห็น