วิธีเรียกใช้เมธอดเบื้องต้น (Method Calling)

วิธีเรียกใช้เมธอดเบื้องต้น (Method Calling)

class TAirPlane {

int color;                 // สี เป็น คุณสมบัติอีกแบบ

static void Fly() { };     // บิน เป็น พฤติกรรม หรือ กริยา ที่ object ทำได้

static void Land() { };    // ลงจอด เป็น อีกพฤติกรรมหนึ่ง

TAirPlane() {

System.out.println(“result of constructor”);

}

}

TAirPlane AirPlane1;

TAirPlane AirPlane2;

AirPlane1 = new AirPlane1(); // จองพื้นที่ในหน่วยความจำ จึงจะเริ่มเรียกใช้ได้

AirPlane1.Fly();       // สั่งให้ object AirPlane1 ทำกริยา บิน

AirPlane1.color = RED; // เปลี่ยน สี (คุณสมบัติ) ของเครื่องบิน ให้เป็นสีแดง

ตัวอย่าง 4.4 การจองพื้นที่ให้กับวัตถุและเรียกใช้ Constructor

class hello1 {

public static void main(String args[]) {

TAirPlane abc = new TAirPlane();

}

}

ตัวอย่าง 4.5 การประกาศตัวแปร และเข้าใช้ Heap กับ Stack Memeory แยกกัน

class hello2 {

public static void main(String args[]) {

    TAirPlane  abc;

    abc = new TAirPlane();

}

}

ตัวอย่าง 4.6 เรียกใช้ Constructor แบบชั่วคราว ที่อ้างอิงมาใช้อีกไม่ได้

– คลาส TAirPlane ต้องอยู่ใน Directory เดียวกับ hello3 หรือ Package เดียวกัน

class hello3 {

public static void main(String args[]) {

new TAirPlane();

    new TAirPlane();

}

}

ตัวอย่าง 4.7 เรียกใช้ Method แบบชั่วคราว ที่อ้างอิงมาใช้อีกไม่ได้

class hello4 {

  public static void main(String args[]) {

    new TAirPlane().Fly();

    new TAirPlane().Land();

  }

}

ตัวอย่าง 4.8 เรียกใช้ Method จากพื้นที่เดิมใน Heap Memory

– แบบนี้เรียกใช้ Constructor เพียงครั้งเดียว

class hello5 {

public static void main(String args[]) {

    TAirPlane abc = new TAirPlane();

    abc.Fly();

    abc.Land();

}

}

ตัวอย่าง 4.9 การเรียกใช้ main ที่รับค่าผ่านอาร์เรย์เสมอ

class hello6 {

public static void main(String args[]) {

    TAirPlane  abc = new TAirPlane();

    String a[] = {};   // new String[0];

    abc.main(a);

}

}

ตัวอย่าง 4.10 การเรียกใช้ Method ในคลาสเดียวกัน แบบ static

– เพราะ main เป็น static ดังนั้น minihello ต้องเป็น static ด้วย

class hello7 {

public static void main(String args[]) {

minihello();

}

static void minihello()   {

System.out.println(“result of mini hello”);

}

}

ตัวอย่าง 4.11 การเรียกใช้ Method ในคลาสเดียวกัน แบบไม่เป็น static

class hello8 {

public static void main(String args[]) {

hello8 x = new hello8();

x.minihello();

}

void minihello() {

System.out.println(“result of mini hello”);

}

}

ตัวอย่าง 4.12 การเรียกใช้ Method แบบรับ และคืนค่า แบบไม่เป็น static

class hello9 {

public static void main(String args[]) {

hello9 xx = new hello9();

System.out.println(xx.oho(4)); // 8

}

int oho(int x) { return (x * 2); }

}

ตัวอย่าง 4.13 การเรียกใช้ 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;

}

}

ตัวอย่าง 4.14 การสืบทอดจากคลาสแม่

– จะไม่เรียก Constructor เพราะเป็นการสืบทอดโดยตรง

class Mother {

Mother() { System.out.println(5); }

static void m1() { System.out.println(6); }

 

}

class hello11 extends Mother {

public static void main(String args[]) {

m1();  // 6

}

}

ตัวอย่าง 4.15 การเรียกใช้ Constructor ภายในคลาส

– เรียกใช้ Constructor ก็จะเรียกใช้ Constructor ของคลาสแม่มาอัตโนมัติ

– โปรแกรมนี้จะเรียกใช้ Constructor ของ TAirPlane ผ่าน  Constructor ของ hello12

class hello12 extends TAirPlane {

hello12() {

Fly();

Land();

}

public static void main(String args[]) {

new hello12();

}

}