คลาสและออปเจค (class and object)

89
คคคคคคคคคคคคค(Class and Object) บบบบบ 3

Upload: jolie-davidson

Post on 01-Jan-2016

36 views

Category:

Documents


6 download

DESCRIPTION

บทที่ 3. คลาสและออปเจค (Class and Object). 5. 2. 3. 4. 1. 6. โอเวอร์โหลดเมธอด (Overload method). ออปเจค (Object). เมธอด (Method). คอนสตรักเตอร์เมธอด (Constructor method). คลาส (Class). แพ็คเกจ (Package). คลาสและออปเจค (Class and Object). คลาส (Class). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: คลาสและออปเจค (Class and Object)

คลาสและออปเจค(Class and Object)

บทท�� 3

Page 2: คลาสและออปเจค (Class and Object)

คลาสและออปเจค(Class and Object)

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล

โอเวอริ�โหลดเมธอด (Overload method)5

ออปเจค (Object)2

เมธอด (Method)3

คอนสตริ�กุเตอริ�เมธอด (Constructor method)

4

2

คลาส (Class)1

แพิ!คเกุจ (Package)6

Page 3: คลาสและออปเจค (Class and Object)

คลาส (Class)

ในการสร�างคลาสน��นมี�ส�วนท��ส�าค�ญ ดั�งน�� ฟิ�ลดั� (Field) ค อ ตั�วแปรท��ใช้�เก#บข้�อมี%ลข้องออปเจค

บางคร��งเร�ยกฟิ�ลดั�ว�า ดัาตั�าเมีมีเบอร� (Data member) หร อ วาร(เอเบอร� (Variable)

เมีธอดั (Method) ค อ การกระท�า (Operation) ท��เราตั�องการให�ออปเจคสามีารถท�าไดั�

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล3

Page 4: คลาสและออปเจค (Class and Object)

คลาส (Class)

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล4

class Student {String stuId;String name;String surName;char grade;static int count = 0;

Data member

class name

ConstructorMethod

Instance variable

Class variable

Parameter list

Student(String id, String Name, …

…}public int

getCount() {return

count;}//method ต�วอ"#น ๆ ที่&#

เหล"ออยู่()……

}

Page 5: คลาสและออปเจค (Class and Object)

ออปเจค (Object)

ออปเจคท��เก(ดัมีาจากคลาสเร�ยกว�า อ(นสแตันดั�(Instance) โดัยมี�ส�วนประกอบท��ส บทอดัมีาจากคลาส

ค อ ตั�วแปรตั�าง ๆ ในคลาส ซึ่/�งตั�วแปรย�งแบ�งไดั�เป0น คลาส วาร(เอเบอร� (Class variable) ก�บ อ(นสแตันดั�วาร(เอ

เบอร� (Instance variable) เมี �อเราสร�างออปเจคข้/�นมีาจากคลาส ออปเจคจะมี�การค�ดั

ลอกตั�วแปรไว�ในพื้ �นท��หน�วยความีจ�าข้องมี�นเอง อย�างน�� เร�ยกว�า อ(นสแตันดั�วาร(เอเบอร� ส�วนตั�วแปรท��ออปเจคท2ก

ตั�วตั�องใช้�พื้ �นท��ในหน�วยความีจ�าร�วมีก�นไมี�มี�การค�ดัลอกมีา เก#บไว�ในพื้ �นท��ข้องตั�วเองเร�ยกว�า คลาสวาร(เอเบอร�

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล5

Page 6: คลาสและออปเจค (Class and Object)

ออปเจค (Object)

ในส�วนข้องการเร�ยกใช้�งานตั�วแปรแบบคลาสวาร(เอเบอร� ย�งไมี�จ�าเป0นตั�องสร�างออปเจคใดั ๆ ข้/�นมีาก�อนเร�ยกใช้�งาน

เราสามีารถเร�ยกใช้�งานคลาสวาร(เอเบอร�ผ่�านคลาสไดั�เลย การประกาศตั�วแปรใดั ๆ ให�เป0นคลาสวาร(เอเบอร�ตั�องใช้�ค�า

ส��ง static น�าหน�าตั�วแปรน��น ๆ เสมีอ แตั�การใช้�งานตั�วแปรช้น(ดัอ(นสแตันดั�วาร(เอเบอร�น��นตั�องสร�างออปเจค

ข้/�นมีาก�อนแล�วเร�ยกใช้�ตั�วแปรอ(นสแตันดั�วาร(เอเบอร�ผ่�านอ อปเจค

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล6

Page 7: คลาสและออปเจค (Class and Object)

ออปเจค (Object)

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล7

class Student {

static int count = 0;

String stuId;

String name;

String surName;

char grade;

ที่�*งสมชายู่และสมปองม&กุาริค�ดลอกุต�วแปริเหล)าน&*ไปไว,ในพิ"*นที่&#หน)วยู่ความจ.าของต�ว

เอง

ออปเจคที่�กุต�วใช, ต�วแปริ count ริ)วม

กุ�น0Somchai

stuIdname

surNamegrade

SompongstuIdname

surNamegrade

Page 8: คลาสและออปเจค (Class and Object)

ความแตกุต)างริะหว)างคลาสกุ�บออปเจค

คลาส ออปเจคเป1นต,นแบบที่&#ม&ที่�*งต�วแปริ

และเมธอดต,องส"บที่อดมาจากุคลาส

ไม)ม&ต�วตนขณะที่&#โปริแกุริมกุ.าล�งปริะมวลผล

ม&ต�วตนขณะโปริแกุริมกุ.าล�งปริะมวลผล

ไม)ม&กุาริเปล&#ยู่นแปลงขณะโปริแกุริมกุ.าล�งปริะมวลผล

สามาริถเปล&#ยู่นแปลงค)าของต�วแปริขณะโปริแกุริม

กุ.าล�งปริะมวลผล

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล8

Page 9: คลาสและออปเจค (Class and Object)

เมธอด (Method)

เมีธอดัก#ถ%กแบ�งออกเป0นสองช้น(ดัเช้�นเดั�ยวก�บคลาส ค อ คลาสเมีธอดั (Class method) และ อ(นสแตันดั�เมีธอดั

(Instance method) คลาสเมีธอดั ค อ เมีธอดัท��สามีารถประมีวลผ่ลไดั�เอง โดัย

ไมี�จ�าเป0นตั�องสร�างออปเจคใดั ๆ ข้/�นมีาเร�ยกใช้�งานเลย( เหมี อนเมีธอดั main() ไมี�ตั�องสร�างออปเจคใดั ๆ มีา

เร�ยกใช้�เลย ) การประกาศคลาสเมีธอดัก#ท�าไดั�เช้�นเดั�ยวก�บ คลาสวาร(เอเบอร� ค อตั�องใช้�ค�าส��ง static น�าหน�าเสมีอ

อ(นสแตันดั�เมีธอดั ค อ เมีธอดัท��ตั�องสร�างออปเจคข้/�นมีา ก�อนถ/งจะเร�ยกใช้�เมีธอดัน��ไดั� การประกาศเมีธอดัก#ท�าไดั�

ปกตั(ท��วไปไมี�ตั�องใส�ค�าว�า static น�าหน�าผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล9

Page 10: คลาสและออปเจค (Class and Object)

กุาริใช,งานต�วแปริและเมธอด

class Student { String stuId; String name; String surName; char grade; static int count=0;

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล10

Page 11: คลาสและออปเจค (Class and Object)

กุาริใช,งานต�วแปริและเมธอด

Student(String id, String n, String sName, char g) {

stuId = id; name = n; surName = sName; grade = g; count++; }

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล11

Page 12: คลาสและออปเจค (Class and Object)

กุาริใช,งานต�วแปริและเมธอด

public int getCount() { return count; } public String getStuId() { return stuId; } public String getName() { return name; } public String getSurName() { return surName; }

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล12

Page 13: คลาสและออปเจค (Class and Object)

กุาริใช,งานต�วแปริและเมธอด

public char getGrade() { return grade; }public void display() { System.out.printf("%s %s %s",

getStuId(), getName(), getSurName()); System.out.printf(" [Grade: %s]

%n", getGrade()); }}

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล13

Page 14: คลาสและออปเจค (Class and Object)

กุาริใช,งานต�วแปริและเมธอด

จากตั�วอย�างไดั�มี�การสร�างคลาส Student มี�ตั�วแปร 5 ตั�ว ค อ stuId, name, surname, grade เป0นตั�วแปร

ช้น(ดัอ(นสแตันดั�วาร(เอเบอร� และ count เป0นตั�วแปรช้น(ดั คลาสวาร(เอเบอร� ตั�อมีาไดั�มี�การสร�างเมีธอดัอ�ก 7 เมีธอดั ซึ่/�งมี�หน�าท��ตั�างก�น แตั�มี�เมีธอดัท��มี�ช้ �อเดั�ยวก�นก�บคลาสค อ

เมีธอดั Student()

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล14

Page 15: คลาสและออปเจค (Class and Object)

กุาริใช,งานต�วแปริและเมธอด

Student(String id, String n, String sName, char g) {

stuId = id; name = n; surName = sName; grade = g; count++; }

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล15

Page 16: คลาสและออปเจค (Class and Object)

กุาริใช,งานต�วแปริและเมธอด

เมีธอดัน��เป0นเมีธอดัพื้(เศษท��เร�ยกไดั�ว�าเป0นคอนสตัร�กเตัอร� เมีธอดั (Constructor method) ซึ่/�งมี�หน�าท��ก�าหนดัค�า

เร(�มีตั�นให�ก�บตั�วแปรข้องออปเจคท��ส บทอดัค2ณสมีบ�ตั(มีา จากคลาส

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล16

Page 17: คลาสและออปเจค (Class and Object)

ว�ธ&กุาริสริ,างเมธอดและกุาริเริ&ยู่กุใช,งานเมธอด

เมีธอดัสามีารถแบ�งไดั� 2 แบบ ค อ เมีธอดัท��มี�การค นค�า กล�บ และเมีธอดัท��ไมี�มี�การค นค�ากล�บ โครงสร�างข้อง

เมีธอดัมี�ดั�งน��

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล17

Page 18: คลาสและออปเจค (Class and Object)

ว�ธ&กุาริสริ,างเมธอดและกุาริเริ&ยู่กุใช,งานเมธอด

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล18

ชน�ดของค)าที่&#ค"นกุล�บ

ช"#อของเมธอด

พิาริาม�เตอริ� (ถ,าม&)

ค.าส�#งต)าง ๆ ที่&#อยู่()ในเมธอดน&*

returnType methodName( par1, par2, …, pars ) {

// body of method……

}

ใช,ค.าส�#ง void ถ,าไม)ม&กุาริค"นค)า

Page 19: คลาสและออปเจค (Class and Object)

ว�ธ&กุาริสริ,างเมธอดและกุาริเริ&ยู่กุใช,งานเมธอด

ลองดั%ตั�วอย�างเมีธอดั getStuId() จากคลาส Student มี�ดั�งน��public String getStuId() {return stuId; } จะเห#นไดั�ว�า ช้น(ดัข้องค�าท��ค นกล�บ ค อ String ช้ �อข้องเมีธอดั ค อ getStuId พื้ารามี(เตัอร� ค อ ไมี�มี� ค�าส��งท��อย%�ในเมีธอดั ค อ return stuId;

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล19

Page 20: คลาสและออปเจค (Class and Object)

ว�ธ&กุาริสริ,างเมธอดและกุาริเริ&ยู่กุใช,งานเมธอด

เมีธอดัอ�กช้น(ดัท��ไมี�มี�การค นค�ากล�บค อเมีธอดั display() ดั�งน��

public void display() { System.out.printf("%s %s %s",

getStuId(), getName(), getSurName()); System.out.printf(" [Grade: %s]

%n", getGrade()); }

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล20

Page 21: คลาสและออปเจค (Class and Object)

ว�ธ&กุาริสริ,างเมธอดและกุาริเริ&ยู่กุใช,งานเมธอด

จะเห#นไดั�ว�า ช้น(ดัข้องค�าท��ค นกล�บ ค อ ไมี�มี� ( ใช้�ค�าส��งvoid)

ช้ �อข้องเมีธอดั ค อ display พื้ารามี(เตัอร� ค อ ไมี�มี� ค�าส��งท��อย%�ในเมีธอดั ค อ

System.out.printf("%s %s %s", getStuId(), getName(), getSurName());

System.out.printf(" [Grade: %s]%n", getGrade());

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล21

Page 22: คลาสและออปเจค (Class and Object)

ความแตกุต)างริะหว)างเมธอดที่&#ค"นค)ากุล�บและเมธอดที่&#ไม)ค"นค)ากุล�บ

เมธอดที่&#ค"นค)ากุล�บ เมธอดที่&#ไม)ค"นค)ากุล�บต,องใช,ค.าส�#ง return ตามด,วยู่ค)าที่&#ต,องค"นกุล�บ

ไม)จ.าเป1นต,องใช,ค.าส�#ง return แต)ถ,าใช,ต,องตามด,วยู่ ; ด,วยู่เสมอ

ต,องข4*นต,นเมธอดด,วยู่ชน�ดของข,อม(ลที่&#ต,องค"นค)ากุล�บ

ต,องข4*นต,นเมธอดด,วยู่ค.าส�#ง void เสมอ

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล22

Page 23: คลาสและออปเจค (Class and Object)

กุาริปริะมวลผลของเมธอดที่&#ม&กุาริใช,พิาริาม�เตอริ�

class Class1 { public static void main(String[] args) { double a = 3.2; double b = findDouble(a); System.out.printf("Double of %.1f is

%.1f%n ",a,b); } public static double findDouble(double a) { return 2*a; } }

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล23

Page 24: คลาสและออปเจค (Class and Object)

กุาริปริะมวลผลของเมธอดที่&#ม&กุาริใช,พิาริาม�เตอริ�

ผ่ลล�พื้ธ�ท��ไดั�ค อDouble of 3.2 is 6.4

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล24

Page 25: คลาสและออปเจค (Class and Object)

กุาริปริะมวลผลของเมธอดที่&#ม&กุาริใช,พิาริาม�เตอริ�

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล25

Page 26: คลาสและออปเจค (Class and Object)

กุาริค"นค)าผ)านต�วแปริในพิาริาม�เตอริ�

การค นค�าผ่�านตั�วแปรในพื้ารามี(เตัอร�สามีารถท�าไดั� 2 แบบ ค อ

ส�งผ่�านเฉพื้าะค�า (Pass by value) ส�งผ่�านโดัยการอ�างอ(ง (Pass by reference)

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล26

Page 27: คลาสและออปเจค (Class and Object)

กุาริค"นค)าผ)านต�วแปริในพิาริาม�เตอริ�

class Class2 { public static void main(String[] args) { int num = 60; int add = addValue(num); System.out.printf("Before: number is %d%n",num); System.out.printf("Now: number from addValue() is

%d%n",add); System.out.printf("After: number is %d%n",num); } public static int addValue(int number) { number *=2; return number; } }

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล27

Page 28: คลาสและออปเจค (Class and Object)

กุาริค"นค)าผ)านต�วแปริในพิาริาม�เตอริ�

ผ่ลล�พื้ธ�ท��ไดั�ค อBefore: number is 60Now: number from addValue() is 120After: number is 60

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล28

Page 29: คลาสและออปเจค (Class and Object)

กุาริค"นค)าผ)านต�วแปริในพิาริาม�เตอริ�

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล29

Page 30: คลาสและออปเจค (Class and Object)

กุาริส)งผ)านโดยู่กุาริอ,างอ�ง (Pass by reference)

class Num { int a=1; public static void addValue(Num num) { num.a++; } }   class Class3 { public static void main (String[] args) { Num obj = new Num(); System.out.printf("Before: obj.a is %d%n",obj.a); obj.addValue(obj); System.out.printf("Now : obj.a from addValue() is %d%n",obj.a); System.out.printf("After : obj.a is %d%n",obj.a); } }

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล30

Page 31: คลาสและออปเจค (Class and Object)

กุาริส)งผ)านโดยู่กุาริอ,างอ�ง (Pass by reference)

ผ่ลล�พื้ธ�ท��ไดั�ค อBefore: obj.a is 1Now : obj.a from addValue() is 2After : obj.a is 2

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล31

Page 32: คลาสและออปเจค (Class and Object)

กุาริส)งผ)านโดยู่กุาริอ,างอ�ง (Pass by reference)

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล32

Page 33: คลาสและออปเจค (Class and Object)

กุาริค"นค)าผ)านต�วแปริในพิาริาม�เตอริ�

ห�วข้�อตั�อไปเราจะมีาสร�างโปรแกรมีท��ท�าการเร�ยกใช้�เมีธอดั ตั�าง ๆ ข้องคลาส Student ก�น

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล33

Page 34: คลาสและออปเจค (Class and Object)

กุาริค"นค)าผ)านต�วแปริในพิาริาม�เตอริ�

class Student { String stuId; String name; String surName; char grade; static int count=0; Student(String id, String n, String sName, char g) { stuId = id; name = n; surName = sName; grade = g; count++; }

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล34

Page 35: คลาสและออปเจค (Class and Object)

กุาริค"นค)าผ)านต�วแปริในพิาริาม�เตอริ�

public int getCount() { return count; }   public String getStuId() { return stuId; } public String getName() { return name; } public String getSurName() { return surName; }

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล35

Page 36: คลาสและออปเจค (Class and Object)

กุาริค"นค)าผ)านต�วแปริในพิาริาม�เตอริ�

public char getGrade() { return grade; } public void display() { System.out.printf("%s %s %s",

getStuId(), getName(), getSurName()); System.out.printf(" [Grade: %s]%n",

getGrade()); } }

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล36

Page 37: คลาสและออปเจค (Class and Object)

กุาริค"นค)าผ)านต�วแปริในพิาริาม�เตอริ�

class mainStudent { public static void main(String[] args) { Student somchai = new

Student("5201023001", "Somchai", "Jaa", 'A'); Student sompong = new

Student("5201023002", "Sompong", "Kab", 'B'); somchai.display(); sompong.display(); System.out.printf("Amount of objects created:

%d%n",somchai.getCount()); } }

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล37

Page 38: คลาสและออปเจค (Class and Object)

กุาริค"นค)าผ)านต�วแปริในพิาริาม�เตอริ�

ผ่ลล�พื้ธ�ท��ไดั�ค อ5201023001 Somchai Jaa

[Grade: A]5201023002 Sompong Kab

[Grade: B]Amount of objects created: 2

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล38

Page 39: คลาสและออปเจค (Class and Object)

กุาริกุ.าหนดค�ณสมบ�ต�กุาริใช,งานต�วแปริและเมธอด(Accessibility)

ไม)ใส)ค.าใด ๆ เลยู่ หมีายถ/ง ถ�าอย%�ในแพื้#คเกจ (package) เดั�ยวก�น จะเป0นคลาสตั�วเอง คลาสล%ก หร อคลาสอ �น ๆ ก#สามีารถใช้�ตั�วแปร

หร อเมีธอดัน��ไดั� ( คล�ายก�บ public) แตั�ถ�าอย%�คนละแพื้#กเกจ ไมี�ให�ใช้� public หมีายถ/ง อน2ญาตัให�ใช้�ตั�วแปรหร อเมีธอดัน��จากท��งคลาส

ตั�วเอง คลาสล%ก (Subclass) หร อแมี�กระท��งคลาสอ �น ๆ ก#สามีารถ ใช้�งานตั�วแปรหร อเมีธอดัน��ไดั� ถ/งแมี�จะอย%�คนละแพื้#คเกจ

protected หมีายถ/ง อน2ญาตัให�ใช้�ตั�วแปรหร อเมีธอดัน��เฉพื้าะ คลาสตั�วเอง และคลาสล%กและ คลาสอ �น ๆ ท��อย%�ในแพื้#คเกจเดั�ยวก�น

ไมี�อน2ญาตัให�ใช้�ส�าหร�บแพื้#คเกจตั�างก�น private หมีายถ/ง อน2ญาตัให�ใช้�ตั�วแปรหร อเมีธอดัน��เฉพื้าะคลาส

ตั�วเองเท�าน��น คลาสอ �น ๆ ไมี�ว�าจะเป0นคลาสล%ก หร อคลาสอ �น ๆ ก#ไมี�ให�ใช้�

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล39

Page 40: คลาสและออปเจค (Class and Object)

กุริณ&อยู่()ในแพิ!คเกุจเด&ยู่วกุ�น

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล40

Page 41: คลาสและออปเจค (Class and Object)

กุริณ&อยู่()ต)างแพิ!คเกุจกุ�น

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล41

Page 42: คลาสและออปเจค (Class and Object)

ต�วอยู่)างปริะกุอบกุาริใช,งานเริ�#มจากุ ไม)ใส)ค.าใด ๆ เลยู่

class ClassA { int one=1; public int two=2; protected int three=3; private int four=4;}

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล42

Page 43: คลาสและออปเจค (Class and Object)

ต�วอยู่)างปริะกุอบกุาริใช,งานเริ�#มจากุ ไม)ใส)ค.าใด ๆ เลยู่

class SubClassA extends ClassA { ClassA a = new ClassA(); public void display() { System.out.printf("%d%n",a.one); }}

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล43

Page 44: คลาสและออปเจค (Class and Object)

ต�วอยู่)างปริะกุอบกุาริใช,งานเริ�#มจากุ ไม)ใส)ค.าใด ๆ เลยู่

class mainClassA { public static void main (String[] args)

{ ClassA obj = new ClassA(); System.out.printf("%d%n",obj.one); SubClassA obj2 = new SubClassA(); obj2.display(); }}

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล44

Page 45: คลาสและออปเจค (Class and Object)

ต�วอยู่)างปริะกุอบกุาริใช,งานเริ�#มจากุ ไม)ใส)ค.าใด ๆ เลยู่

ผ่ลล�พื้ธ�ค อ11

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล45

Page 46: คลาสและออปเจค (Class and Object)

ต�วอยู่)างต)อไปใส)ค.าว)า public ด�งน&*

class ClassB { int one=1; public int two=2; protected int three=3; private int four=4;}

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล46

Page 47: คลาสและออปเจค (Class and Object)

ต�วอยู่)างต)อไปใส)ค.าว)า public ด�งน&*

class SubClassB extends ClassB { ClassB b = new ClassB(); public void display() { System.out.printf("%d%n",b.two); }}

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล47

Page 48: คลาสและออปเจค (Class and Object)

ต�วอยู่)างต)อไปใส)ค.าว)า public ด�งน&*

class mainClassB { public static void main (String[] args)

{ ClassB obj = new ClassB(); System.out.printf("%d%n",obj.two); SubClassB obj2 = new SubClassB(); obj2.display(); }}

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล48

Page 49: คลาสและออปเจค (Class and Object)

ต�วอยู่)างต)อไปใส)ค.าว)า public ด�งน&*

ผ่ลล�พื้ธ�ค อ22

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล49

Page 50: คลาสและออปเจค (Class and Object)

ต�วอยู่)างต)อไปใส)ค.าว)า protected ด�งน&*

class ClassC { int one=1; public int two=2; protected int three=3; private int four=4;}

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล50

Page 51: คลาสและออปเจค (Class and Object)

ต�วอยู่)างต)อไปใส)ค.าว)า protected ด�งน&*

class SubClassC extends ClassC { ClassC c = new ClassC(); public void display() { System.out.printf("%d%n",c.three); }}

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล51

Page 52: คลาสและออปเจค (Class and Object)

ต�วอยู่)างต)อไปใส)ค.าว)า protected ด�งน&*

class mainClassC { public static void main (String[] args)

{ ClassC obj = new ClassC(); System.out.printf("%d%n",obj.three); SubClassC obj2 = new SubClassC(); obj2.display(); }}

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล52

Page 53: คลาสและออปเจค (Class and Object)

ต�วอยู่)างต)อไปใส)ค.าว)า protected ด�งน&*

ผ่ลล�พื้ธ�ค อ33

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล53

Page 54: คลาสและออปเจค (Class and Object)

ต�วอยู่)างต)อไปใช,ค.าว)า private ด�งน&*

class ClassD { int one=1; public int two=2; protected int three=3; private int four=4;}

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล54

Page 55: คลาสและออปเจค (Class and Object)

ต�วอยู่)างต)อไปใช,ค.าว)า private ด�งน&*

class SubClassD extends ClassD { ClassD d = new ClassD(); public void display() { System.out.printf("%d%n",d.four); }}

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล55

Page 56: คลาสและออปเจค (Class and Object)

ต�วอยู่)างต)อไปใช,ค.าว)า private ด�งน&*

class mainClassD { public static void main (String[] args)

{ ClassD obj = new ClassD(); System.out.printf("%d%n",obj.four); SubClassD obj2 = new SubClassD(); obj2.display(); }}

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล56

Page 57: คลาสและออปเจค (Class and Object)

ต�วอยู่)างต)อไปใช,ค.าว)า private ด�งน&*

เมี �อท�าการคอมีไพื้ล� (Compile) ผ่ลท��ไดั�ค อmainClassD.java: 11 four has private

access in ClassD System.out.printf("%d%n",d.four); ^mainClassD.java: 18: four has private

access in ClassD System.out.printf("%d%n",obj.four); ^2 errors

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล57

Page 58: คลาสและออปเจค (Class and Object)

ต�วอยู่)างต)อไปใช,ค.าว)า private ด�งน&*

การใช้�งาน private มี�ข้�อดั�ในแง�ข้องการร�กษาความี ปลอดัภั�ยข้องตั�วแปรหร อเมีธอดัภัายในคลาส เน �องจาก

คลาสอ �น ๆ ไมี�ว�าจะเป0นคลาสล%กหร อไมี�ก#ตัามีไมี�มี�ส(ทธ(ท��จะใช้�งานตั�วแปรหร อเมีธอดัท��ตั�องการสงวนไว�ใช้�เฉพื้าะคลาส

ตั�วเอง แตั�ถ�าตั�องการอ�างถ/งตั�วแปรดั�งกล�าวตั�องท�าการ สร�างเมีธอดัท��ค นค�าตั�วแปรน��นแทน ดั�งน��

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล58

Page 59: คลาสและออปเจค (Class and Object)

ต�วอยู่)างต)อไปใช,ค.าว)า private ด�งน&*

class ClassE { private int five=5; public int getFive() { return five; } }   class mainClassE { public static void main (String[] args) { ClassE obj = new ClassE(); System.out.printf("%d%n",obj.getFive()); } }

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล59

Page 60: คลาสและออปเจค (Class and Object)

ต�วอยู่)างต)อไปใช,ค.าว)า private ด�งน&*

ผ่ลล�พื้ธ�ท��ไดั�ค อ5

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล60

Page 61: คลาสและออปเจค (Class and Object)

คอนสตริ�กุเตอริ�เมธอด(Constructor method)

คอนสตัร�กเตัอร�เมีธอดั เป0นเมีธอดัท��มี�ช้ �อเดั�ยวก�นก�บคลาสใช้�ก�าหนดัค�าเร(�มีตั�นให�ก�บตั�วแปร

คอนสตัร�กเตัอร�เมีธอดัไมี�จ�าเป0นตั�องสร�างไดั�เพื้�ยงคร��ง เดั�ยว จะสร�างหลาย ๆ คร��งก#สามีารถท�าไดั�แตั�ตั�องมี�เง �อนไข้

ว�าพื้ารามี(เตัอร�ท��ส�งไปย�งคอนสตัร�กเตัอร�เมีธอดัตั�องมี� จ�านวนไมี�เท�าก�น หร อ ถ�าจ�านวนเท�าก�น ช้น(ดัข้อง

พื้ารามี(เตัอร�ตั�องไมี�เหมี อนก�น

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล61

Page 62: คลาสและออปเจค (Class and Object)

คอนสตริ�กุเตอริ�เมธอด(Constructor method)

class Sum { private int a, b, c; Sum(int x) { a = x; b = 0; c = 0; }   Sum(int x, int y) { a = x; b = y; c = 0; }

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล62

Page 63: คลาสและออปเจค (Class and Object)

คอนสตริ�กุเตอริ�เมธอด(Constructor method)

Sum(int x, int y,int z) { a = x; b = y; c = z; } public int findSum() { return (a + b + c); } }

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล63

Page 64: คลาสและออปเจค (Class and Object)

คอนสตริ�กุเตอริ�เมธอด(Constructor method)

class mainSum { public static void main(String[] args) { Sum i = new Sum(10); Sum j = new Sum(9,8); Sum k = new Sum(7,6,5); System.out.printf("Sum of i is %d%n", i.findSum()); System.out.printf("Sum of j is %d%n", j.findSum()); System.out.printf("Sum of k is %d%n", k.findSum()); } }

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล64

Page 65: คลาสและออปเจค (Class and Object)

คอนสตริ�กุเตอริ�เมธอด(Constructor method)

ผ่ลล�พื้ธ�ท��ไดั�ค อSum of i is 10Sum of j is 17Sum of k is 18

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล65

Page 66: คลาสและออปเจค (Class and Object)

คอนสตริ�กุเตอริ�แอนด�โอเวอริ�โหลดเมธอด

จะเห#นไดั�ว�าโปรแกรมีจาวาเร�ยกใช้�คอนสตัร�กเตัอร�เมีธอดั ไดั�ถ%กตั�องตัามีท��ออกแบบไว� เราเร�ยกการสร�างคอนสตัร�ก

เตัอร�เมีธอดัมีากกว�าหน/�งคร��งว�า คอนสตัร�กเตัอร�แอนดั� โอเวอร�โหลดัเมีธอดั (Constructor and overload

method) ตั�วอย�างตั�อไปก#แสดังถ/งการใช้�งานคอนสตัร�ก เตัอร�แอนดั�โอเวอร�โหลดัเมีธอดั แตั�เป0นกรณ�ท��พื้ารามี(เตัอร�

มี�จ�านวนเท�าก�น แตั�แตักตั�างก�นท��ช้น(ดัข้องพื้ารามี(เตัอร�

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล66

Page 67: คลาสและออปเจค (Class and Object)

คอนสตริ�กุเตอริ�แอนด�โอเวอริ�โหลดเมธอด

class Total { private double a, b, c; Total(double x, double y, double z) { a = x; b = y; c = z; }

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล67

Page 68: คลาสและออปเจค (Class and Object)

คอนสตริ�กุเตอริ�แอนด�โอเวอริ�โหลดเมธอด

Total(int x, double y, float z) { a = x; b = y; c = z; } public double findTotal() { return (a + b + c); } }

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล68

Page 69: คลาสและออปเจค (Class and Object)

คอนสตริ�กุเตอริ�แอนด�โอเวอริ�โหลดเมธอด

class mainTotal { public static void main(String[] args) { Total i = new Total(8.0,6.0,3.0); Total j = new Total(3,7.0,9.0); System.out.printf("Total of i is

%.2f%n", i.findTotal()); System.out.printf("Total of j is

%.2f%n", j.findTotal()); }}

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล69

Page 70: คลาสและออปเจค (Class and Object)

คอนสตริ�กุเตอริ�แอนด�โอเวอริ�โหลดเมธอด

ผ่ลล�พื้ธ�ท��ไดั�ค อTotal of i is 1700Total of j is 1900.

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล70

Page 71: คลาสและออปเจค (Class and Object)

โอเวอริ�โหลดเมธอด (Overload method)

เมีธอดัท��มี�ช้ �อซึ่��าก�นเองไมี�ซึ่��าก�นก�บคลาสเราเร�ยกว�าโอเวอร�โหลดัเมีธอดั

class Overload { private double a, b, c;  Overload() { a = b = c = 0.0; }

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล71

Page 72: คลาสและออปเจค (Class and Object)

โอเวอริ�โหลดเมธอด (Overload method)

public double findSum(double x) { a=x; return (a+b+c); } public double findSum(double x, int y) { a=x; b=y; return (a+b+c); } public double findSum(double x, int y, double z) { a=x; b=y; c=z; return (a+b+c); } }

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล72

Page 73: คลาสและออปเจค (Class and Object)

โอเวอริ�โหลดเมธอด (Overload method)

class mainOverload { public static void main(String[] args) { Overload obj = new Overload(); double x = obj.findSum(5.0); double y = obj.findSum(7.0,9); double z = obj.findSum(2.0,4,6.0); System.out.printf("Sum of x is %.1f%n",x); System.out.printf("Sum of y is %.1f%n",y);

System.out.printf("Sum of z is %.1f%n",z); } }

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล73

Page 74: คลาสและออปเจค (Class and Object)

โอเวอริ�โหลดเมธอด (Overload method)

ผ่ลล�พื้ธ�ท��ไดั�ค อSum of x is 50.Sum of y is 160.Sum of z is 120.

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล74

Page 75: คลาสและออปเจค (Class and Object)

แพิ!คเกุจ (Package)

แพื้#คเกจเป0นท��รวมีข้องคลาสตั�าง ๆ ท��โปรแกรมีอาจเร�ยก ใช้�เมี �อตั�องการ และย�งเป0นท��รวมีข้องเมี ธอดัตั�าง ๆ ท��อย%� ในคลาสน��น ๆ ตัามีท��ผ่%�เข้�ยนแพื้#คเกจไดั�ออกแบบไว�

เช้�น java.util ท��เราเคยใช้�งานในการเข้�ยนโปรแกรมีร�บข้�อมี%ลเข้�าทางค�ย�บอร�ดั

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล75

Page 76: คลาสและออปเจค (Class and Object)

กุาริสริ,างแพิ!คเกุจ

ว(ธ�การก#ค อก�อนจะตั��งช้ �อข้องคลาส ให�ตั��งช้ �อข้องแพื้#คเกจ ก�อนโดัยใส�ค�าว�า package น�าหน�าช้ �อข้องแพื้#คเกจ

เหมี อนการตั��งช้ �อข้องคลาสหล�งค�าว�าคลาสน��นเอง เช้�นpackage MyPack;

public class MyClass { … …

}

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล76

Page 77: คลาสและออปเจค (Class and Object)

กุาริสริ,างแพิ!คเกุจ

อาจสงส�ยว�าท�าไมีตั�องใส�ค�าว�า public หน�าคลาสMyClass ดั�วยในเมี �อท2กคร��งก#ไมี�เห#นจ�าเป0นตั�องใส�

เหตั2ผ่ลท��ตั�องใส�ค�าว�า public หน�าคลาส เพื้ราะถ�าไมี�ใส� โปรแกรมีหร อคลาสอ �น ๆ ท��อย%�นอกแพื้#คเกจ MyPack จะ

ไมี�สามีารถเร�ยกใช้�งานคลาสน��ไดั�เพื้ราะอย%�คนละแพื้#คเกจ ก�น

ตั�วอย�างตั�อไปจะเป0นการสร�างแพื้#คเกจช้ �อ MyPack โดัย ในแพื้#คเกจน��ประกอบไปดั�วยคลาส A และ คลาส B จากน��น

สร�างแพื้#คเกจย�อยในแพื้#คเกจ MyPack อ�กตั��งช้ �อว�าsubPack ในแพื้#คเกจน��จะมี�คลาส C อ�กคลาสหน/�ง

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล77

Page 78: คลาสและออปเจค (Class and Object)

กุาริสริ,างแพิ!คเกุจ

package MyPack; public class A { public A() { System.out.printf("This is

class A.%n"); } } ท�าการบ�นท/กไว�ในไฟิล�ช้ �อว�า A.java

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล78

Page 79: คลาสและออปเจค (Class and Object)

กุาริสริ,างแพิ!คเกุจ

package MyPack; public class B { public B() { System.out.printf("This is class B.

%n"); } } ท�าการบ�นท/กไว�ในไฟิล�ช้ �อว�า B.java

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล79

Page 80: คลาสและออปเจค (Class and Object)

กุาริสริ,างแพิ!คเกุจ

package MyPack.subPack; public class C { public C() { System.out.printf("This is class C.

%n"); } } ท�าการบ�นท/กไว�ในไฟิล�ช้ �อว�า C.java

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล80

Page 81: คลาสและออปเจค (Class and Object)

กุาริสริ,างแพิ!คเกุจ

ในการคอมีไพื้ล� (Compile) ไฟิล�ท��งหมีดัท��สร�างข้/�นตั�องใช้� ค�าส��ง javac –d ดั�งน��

javac –d [ช้ �อไดัเรคทอร��ท��ตั�องการเก#บแพื้#คเกจ] [ช้ �อไฟิล�.java] เช้�น

javac –d E:\Principle A.javajavac –d E:\Principle B.javajavac –d E:\Principle C.java

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล81

Page 82: คลาสและออปเจค (Class and Object)

กุาริสริ,างแพิ!คเกุจ

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล82

Page 83: คลาสและออปเจค (Class and Object)

ตั�อมีาเราก#สร�างโปรแกรมีท��มี�การเร�ยกใช้�แพื้#คเกจตั�าง ๆ ท�� ไดั�สร�างข้/�นโดัยก�าหนดัให�มี�การเร�ยกใช้�คลาสตั�าง ๆ ท��สร�าง

ข้/�น การเร�ยกใช้�แพื้#คเกจตั�าง ๆ ท�าไดั�ดั�วยการใช้�ค�าส��งimport ดั�งตั�วอย�างตั�อไปน��

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล83

Page 84: คลาสและออปเจค (Class and Object)

กุาริสริ,างแพิ!คเกุจ

import MyPack.A; import MyPack.B; import MyPack.subPack.C; class mainPackage { public static void main(String[] args) { A obj1 = new A(); B obj2 = new B(); C obj3 = new C(); } }

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล84

Page 85: คลาสและออปเจค (Class and Object)

กุาริสริ,างแพิ!คเกุจ

ผ่ลล�พื้ธ�ท��ไดั�ค อThis is class A.This is class B.This is class C.

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล85

Page 86: คลาสและออปเจค (Class and Object)

แบบฝึ6กุห�ด

จงสร�างคลาส Student ท��มี�ตั�วแปร รห�ส ช้ �อ นามีสก2ล คะแนนเก#บ เกรดั แล�วสร�างเมีธอดัเพื้ �อร�บข้�อมี%ลรห�ส ช้ �อ

นามีสก2ล คะแนนเก#บ เข้�าทางค�ย�บอร�ดั พื้ร�อมีท��งสร�างเมีธอดัท��ท�าหน�าท��ค�านวณเกรดัโดัยร�บคะแนนเก#บมีาแล�วค นค�ากล�บ

เป0นเกรดัท��ไดั�ร�บ โดัยมี�เง �อนไข้ค อ ถ�าคะแนนอย%�ระหว�าง 80-100 ไดั�เกรดั A 70-79 ไดั�เกรดั B 60-69 ไดั�เกรดั C 50-59 ไดั�เกรดั D ตั��ากว�า 50 ไดั�เกรดั F จากน��นสร�างเมีธอดัท��ท�า

หน�าท��แสดังผ่ลล�พื้ธ� รห�ส ช้ �อ นามีสก2ล คะแนนเก#บ และเกรดัท�� ไดั�ออกทางจอภัาพื้ ตั�อมีาให�สร�างคลาส mainStudent เพื้ �อ

สร�างออปเจคท��ส บทอดัค2ณสมีบ�ตั(มีาจากคลาส Student แล�วเร�ยกใช้� เมีธอดัตั�าง ๆ ท��มี�อย%�ในคลาส Student

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล86

Page 87: คลาสและออปเจค (Class and Object)

แบบฝึ6กุห�ด

จงเข้�ยนคลาสท��มี�เมีธอดัท��ใช้�ร�บค�าตั�วเลข้ 3 ตั�วเข้�าทาง ค�ย�บอร�ดั โดัยพื้ารามี(เตัอร�ในเมีธอดัท��เป0นเลข้ 3 ตั�วตั�อง

ครอบคล2มีท��งเลข้จ�านวนเตั#มีท��งหมีดั เลข้ทศน(ยมีท��งหมีดั หร อเลข้จ�านวนเตั#มีผ่สมีก�บเลข้ทศน(ยมี จากน��นให�สร�าง

เมีธอดัท��ท�าหน�าท��หาค�าเฉล��ยข้องเลข้ท��งสามี จากน��นให�สร�างคลาสท��ท�าการสร�างออปเจคเพื้ �อส บทอดัค2ณสมีบ�ตั(ข้องคลาสแรกแล�วเร�ยกใช้�เมีธอดัร�บค�าตั�วเลข้ท��งสามีและ

เมีธอดัหาค�าเฉล��ยข้องเลข้ท��งสามี เมี �อประมีวลผ่ลเสร#จให�แสดังผ่ลล�พื้ธ�ค�าเฉล��ยท��ไดั�ออกทางจอภัาพื้

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล87

Page 88: คลาสและออปเจค (Class and Object)

แบบฝึ6กุห�ด

จงสร�างคลาสท��มี�เมีธอดัท��ท�าหน�าท��ร �บเลข้จ�านวนเตั#มีเข้�า ทางค�ย�บอร�ดั 2 ตั�ว เมีธอดับวก ลบ ค%ณ หารเอาแตั� เลข้จ�านวนเตั#มี และหารเอาแตั�เศษข้องเลข้จ�านวนเตั#มี 2 ตั�วแล�วส�งค�ากล�บ จากน��นให�สร�างคลาสท��สร�างออปเจคเพื้ �อ

ส บทอดัค2ณสมีบ�ตั(มีากจากคลาสแรกแล�วท�าการเร�ยกใช้� เมีธอดัเหล�าน��น โดัยให�แสดังผ่ลล�พื้ธ�จากการค�านวณออก

ทางจอภัาพื้ดั�วย

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล88

Page 89: คลาสและออปเจค (Class and Object)

ผศ . พิ�เชษฐ์� ศ�ริ�ริ�ตนไพิศาลกุ�ล