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

1.การประกาศ Class

modifier คือ keyword ของภาษาจาวาที่ใช้เป็น access modifie เช่น private, package, protected, public (ลำดับความเข้มงวดที่สุดไล่ลำดับถึงอิสระที่สุด)  หรืออธิบายคุณสมบัติอื่นๆ ของคลาส เช่น abstract และ final
class คือ keyword ของภาษาจาวาเพื่อระบุว่าเป็นการประกาศคลาส
ClassName คือชื่อของ class ที่เป็นชื่อ identifier ใดๆ ที่สอดคล้องกับกฎการตั้งชื่อ
class member คือ method หรือ attribute ของ class
ตัวอย่างการประกาศคลาส student สามารถทำได้ดังนี้
  public class Student{
  }
2.การประกาศ Attribute
modifier คือ keyword ของภาษาจาวาที่ใช้เป็น access modifier เช่น public หรืออธิบายคุณสมบัติอื่นๆ ของคลาส เช่น abstract และ final
dataType คือชนิดข้อมูลซึ่งอาจเป็นชนิดข้อมูลแบบพื้นฐานหรือชนิดข้อมูลแบบอ้างอิง
attributeName คือชื่อของคุณลักษณะที่เป็นชื่อ identifier ใดๆ ซึ่งสอดคล้องกับกฎการตั้งชื่อ
ตัวอย่าง
    public class Student{
  public String id;
  public String name;
  public double gpa;
  }
3.การประกาศ method
modifier คือ keyword ของภาษาจาวาที่ใช้เป็น access modifier เช่น public หรืออธิบายคุณสมบัติอื่นๆ ของคลาส เช่น abstract และ final
return_type คือชนิดข้อมูลของค่าที่ส่งกลับหลังจากเสร็จสิ้นการทำงานของคำสั่งใน method นี้  โดยชนิดข้อมูลของค่าที่ส่งกลับอาจเป็นชนิดข้อมูลแบบพื้นฐาน หรือชนิดข้อมูลแบบอ้างอิง  ในกรณีที่ไม่มีการส่งค่าใดๆ กลับจะต้องระบุชนิดข้อมูลเป็น void
methodName คือชื่อของ method ที่เป็นชื่อ identifier ใดๆ ที่สอดคล้องกับกฎการตั้งชื่อ
arguments คือตัวแปรที่ใช้ในการรับข้อมูลที่ object ส่งมาให้ โดยอาจมีมากกว่าหนึ่งตัวแปร หรือไม่มีเลยก็ได้ขึ้นอยู่กับการกำหนด method
method_body คือคำสั่งต่างๆ ของภาษาจาวาที่อยู่ใน method
ตัวอย่าง
4.การประกาศ object
modifier คือ keyword ของภาษาจาวาที่ใช้เป็น access
modifier เช่น public หรืออธิบายคุณสมบัติอื่นๆ ของคลาส เช่น abstract และ final
ClassName คือชื่อของ class
objectName คือชื่อของ object ที่เป็นชื่อ identifier ใดๆ ที่สอดคล้องกับกฎการตั้งชื่อ
lตัวอย่าง
  Student  s1;
5.การเรียกใช้ Method
 แบบที่ 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;
การเรียกใช้ attribute แบบที่ 2
syntax:ClassName object = new ClassName();
object.attributeName;
example:Person bamboo = new Person();
bamboo.name = “bamboolabcode”;