Enviar pesquisa
Carregar
Java-Chapter 12 Classes and Objects
•
6 gostaram
•
2,220 visualizações
Wongyos Keardsri
Seguir
Chapter 12 Classes and Objects
Leia menos
Leia mais
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 24
Baixar agora
Baixar para ler offline
Recomendados
Java-Chapter 07 One Dimensional Arrays
Java-Chapter 07 One Dimensional Arrays
Wongyos Keardsri
Java-Chapter 02 Data Operations and Processing
Java-Chapter 02 Data Operations and Processing
Wongyos Keardsri
Java-Chapter 01 Introduction to Java Programming
Java-Chapter 01 Introduction to Java Programming
Wongyos Keardsri
SAB
SAB
Hiroyuki Ote
How to avoid top 10 security risks in Java EE applications and how to avoid them
How to avoid top 10 security risks in Java EE applications and how to avoid them
Masoud Kalali
التعلم التعاوني عرض د.محسن
التعلم التعاوني عرض د.محسن
منى البرعمي
แบบฝึกทักษะเรื่อง จำนวนเชิงซ้อน
แบบฝึกทักษะเรื่อง จำนวนเชิงซ้อน
chatchai
اللوحة التفاعلية
اللوحة التفاعلية
re-sweet
Recomendados
Java-Chapter 07 One Dimensional Arrays
Java-Chapter 07 One Dimensional Arrays
Wongyos Keardsri
Java-Chapter 02 Data Operations and Processing
Java-Chapter 02 Data Operations and Processing
Wongyos Keardsri
Java-Chapter 01 Introduction to Java Programming
Java-Chapter 01 Introduction to Java Programming
Wongyos Keardsri
SAB
SAB
Hiroyuki Ote
How to avoid top 10 security risks in Java EE applications and how to avoid them
How to avoid top 10 security risks in Java EE applications and how to avoid them
Masoud Kalali
التعلم التعاوني عرض د.محسن
التعلم التعاوني عرض د.محسن
منى البرعمي
แบบฝึกทักษะเรื่อง จำนวนเชิงซ้อน
แบบฝึกทักษะเรื่อง จำนวนเชิงซ้อน
chatchai
اللوحة التفاعلية
اللوحة التفاعلية
re-sweet
ΠΛΗ30 ΜΑΘΗΜΑ 4.4
ΠΛΗ30 ΜΑΘΗΜΑ 4.4
Dimitris Psounis
ΠΛΗ20 ΜΑΘΗΜΑ 1.2
ΠΛΗ20 ΜΑΘΗΜΑ 1.2
Dimitris Psounis
ανάλυση προβλήματος
ανάλυση προβλήματος
sziovas
ΠΛΗ10 ΜΑΘΗΜΑ 1.3
ΠΛΗ10 ΜΑΘΗΜΑ 1.3
Dimitris Psounis
Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...
Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...
Jordi Cabot
التخطيط الديداكتيكي والبيداغوجي للعملية التعليمية التعلمية
التخطيط الديداكتيكي والبيداغوجي للعملية التعليمية التعلمية
khalid mechkouri
ΠΛΗ20 ΜΑΘΗΜΑ 3.1
ΠΛΗ20 ΜΑΘΗΜΑ 3.1
Dimitris Psounis
تشخيص وعلاج صعوبات الفهم القرائي
تشخيص وعلاج صعوبات الفهم القرائي
محمد الجمل
نظريه التعلم الشبكى
نظريه التعلم الشبكى
Doaa Abdo
ΠΛΗ10 ΜΑΘΗΜΑ 2.4
ΠΛΗ10 ΜΑΘΗΜΑ 2.4
Dimitris Psounis
ΠΛΗ20 ΜΑΘΗΜΑ 3.5
ΠΛΗ20 ΜΑΘΗΜΑ 3.5
Dimitris Psounis
استراتيجية القبعات الست
استراتيجية القبعات الست
Rehab Al-Sadany
ΑΕΠΠ ΚΕΦ 1
ΑΕΠΠ ΚΕΦ 1
educast
หลักการใช้ Tense ทั้ง 12
หลักการใช้ Tense ทั้ง 12
Arnupab Srisen
正規表現入門 星の高さを求めて
正規表現入門 星の高さを求めて
Ryoma Sin'ya
Java-Chapter 05 String Operations
Java-Chapter 05 String Operations
Wongyos Keardsri
Er:icuにおける薬剤師の目線
Er:icuにおける薬剤師の目線
Kuniaki Sano
التقويم المتمركز حول المتعلم
التقويم المتمركز حول المتعلم
رؤية للحقائب التدريبية
Unit2
Unit2
โรงเรียนบ้านสร้างมิ่ง สพปยโสธรเขตสอง
แบบทดสอบก่อนเรียนเลขยกกำลัง
แบบทดสอบก่อนเรียนเลขยกกำลัง
ทับทิม เจริญตา
Java-Answer Chapter 12-13 (For Print)
Java-Answer Chapter 12-13 (For Print)
Wongyos Keardsri
Java-Chapter 13 Advanced Classes and Objects
Java-Chapter 13 Advanced Classes and Objects
Wongyos Keardsri
Mais conteúdo relacionado
Mais procurados
ΠΛΗ30 ΜΑΘΗΜΑ 4.4
ΠΛΗ30 ΜΑΘΗΜΑ 4.4
Dimitris Psounis
ΠΛΗ20 ΜΑΘΗΜΑ 1.2
ΠΛΗ20 ΜΑΘΗΜΑ 1.2
Dimitris Psounis
ανάλυση προβλήματος
ανάλυση προβλήματος
sziovas
ΠΛΗ10 ΜΑΘΗΜΑ 1.3
ΠΛΗ10 ΜΑΘΗΜΑ 1.3
Dimitris Psounis
Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...
Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...
Jordi Cabot
التخطيط الديداكتيكي والبيداغوجي للعملية التعليمية التعلمية
التخطيط الديداكتيكي والبيداغوجي للعملية التعليمية التعلمية
khalid mechkouri
ΠΛΗ20 ΜΑΘΗΜΑ 3.1
ΠΛΗ20 ΜΑΘΗΜΑ 3.1
Dimitris Psounis
تشخيص وعلاج صعوبات الفهم القرائي
تشخيص وعلاج صعوبات الفهم القرائي
محمد الجمل
نظريه التعلم الشبكى
نظريه التعلم الشبكى
Doaa Abdo
ΠΛΗ10 ΜΑΘΗΜΑ 2.4
ΠΛΗ10 ΜΑΘΗΜΑ 2.4
Dimitris Psounis
ΠΛΗ20 ΜΑΘΗΜΑ 3.5
ΠΛΗ20 ΜΑΘΗΜΑ 3.5
Dimitris Psounis
استراتيجية القبعات الست
استراتيجية القبعات الست
Rehab Al-Sadany
ΑΕΠΠ ΚΕΦ 1
ΑΕΠΠ ΚΕΦ 1
educast
หลักการใช้ Tense ทั้ง 12
หลักการใช้ Tense ทั้ง 12
Arnupab Srisen
正規表現入門 星の高さを求めて
正規表現入門 星の高さを求めて
Ryoma Sin'ya
Java-Chapter 05 String Operations
Java-Chapter 05 String Operations
Wongyos Keardsri
Er:icuにおける薬剤師の目線
Er:icuにおける薬剤師の目線
Kuniaki Sano
التقويم المتمركز حول المتعلم
التقويم المتمركز حول المتعلم
رؤية للحقائب التدريبية
Unit2
Unit2
โรงเรียนบ้านสร้างมิ่ง สพปยโสธรเขตสอง
แบบทดสอบก่อนเรียนเลขยกกำลัง
แบบทดสอบก่อนเรียนเลขยกกำลัง
ทับทิม เจริญตา
Mais procurados
(20)
ΠΛΗ30 ΜΑΘΗΜΑ 4.4
ΠΛΗ30 ΜΑΘΗΜΑ 4.4
ΠΛΗ20 ΜΑΘΗΜΑ 1.2
ΠΛΗ20 ΜΑΘΗΜΑ 1.2
ανάλυση προβλήματος
ανάλυση προβλήματος
ΠΛΗ10 ΜΑΘΗΜΑ 1.3
ΠΛΗ10 ΜΑΘΗΜΑ 1.3
Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...
Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...
التخطيط الديداكتيكي والبيداغوجي للعملية التعليمية التعلمية
التخطيط الديداكتيكي والبيداغوجي للعملية التعليمية التعلمية
ΠΛΗ20 ΜΑΘΗΜΑ 3.1
ΠΛΗ20 ΜΑΘΗΜΑ 3.1
تشخيص وعلاج صعوبات الفهم القرائي
تشخيص وعلاج صعوبات الفهم القرائي
نظريه التعلم الشبكى
نظريه التعلم الشبكى
ΠΛΗ10 ΜΑΘΗΜΑ 2.4
ΠΛΗ10 ΜΑΘΗΜΑ 2.4
ΠΛΗ20 ΜΑΘΗΜΑ 3.5
ΠΛΗ20 ΜΑΘΗΜΑ 3.5
استراتيجية القبعات الست
استراتيجية القبعات الست
ΑΕΠΠ ΚΕΦ 1
ΑΕΠΠ ΚΕΦ 1
หลักการใช้ Tense ทั้ง 12
หลักการใช้ Tense ทั้ง 12
正規表現入門 星の高さを求めて
正規表現入門 星の高さを求めて
Java-Chapter 05 String Operations
Java-Chapter 05 String Operations
Er:icuにおける薬剤師の目線
Er:icuにおける薬剤師の目線
التقويم المتمركز حول المتعلم
التقويم المتمركز حول المتعلم
Unit2
Unit2
แบบทดสอบก่อนเรียนเลขยกกำลัง
แบบทดสอบก่อนเรียนเลขยกกำลัง
Destaque
Java-Answer Chapter 12-13 (For Print)
Java-Answer Chapter 12-13 (For Print)
Wongyos Keardsri
Java-Chapter 13 Advanced Classes and Objects
Java-Chapter 13 Advanced Classes and Objects
Wongyos Keardsri
IP address anonymization
IP address anonymization
Wongyos Keardsri
How to Study and Research in Computer-related Master Program
How to Study and Research in Computer-related Master Program
Wongyos Keardsri
Java-Chapter 10 Two Dimensional Arrays
Java-Chapter 10 Two Dimensional Arrays
Wongyos Keardsri
Java-Chapter 04 Iteration Statements
Java-Chapter 04 Iteration Statements
Wongyos Keardsri
Java-Chapter 09 Advanced Statements and Applications
Java-Chapter 09 Advanced Statements and Applications
Wongyos Keardsri
Java-Chapter 06 File Operations
Java-Chapter 06 File Operations
Wongyos Keardsri
Java-Chapter 08 Methods
Java-Chapter 08 Methods
Wongyos Keardsri
Java-Chapter 11 Recursions
Java-Chapter 11 Recursions
Wongyos Keardsri
Java-Answer Chapter 01-04
Java-Answer Chapter 01-04
Wongyos Keardsri
Java-Answer Chapter 07 (For Print)
Java-Answer Chapter 07 (For Print)
Wongyos Keardsri
Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)
Wongyos Keardsri
The next generation intelligent transport systems: standards and applications
The next generation intelligent transport systems: standards and applications
Wongyos Keardsri
การควบคุมทิศทางการทำงานของโปรแกรม
การควบคุมทิศทางการทำงานของโปรแกรม
korn27122540
SysProg-Tutor 03 Unix Shell Script Programming
SysProg-Tutor 03 Unix Shell Script Programming
Wongyos Keardsri
SysProg-Tutor 02 Introduction to Unix Operating System
SysProg-Tutor 02 Introduction to Unix Operating System
Wongyos Keardsri
SysProg-Tutor 01 Introduction to C Programming Language
SysProg-Tutor 01 Introduction to C Programming Language
Wongyos Keardsri
Destaque
(18)
Java-Answer Chapter 12-13 (For Print)
Java-Answer Chapter 12-13 (For Print)
Java-Chapter 13 Advanced Classes and Objects
Java-Chapter 13 Advanced Classes and Objects
IP address anonymization
IP address anonymization
How to Study and Research in Computer-related Master Program
How to Study and Research in Computer-related Master Program
Java-Chapter 10 Two Dimensional Arrays
Java-Chapter 10 Two Dimensional Arrays
Java-Chapter 04 Iteration Statements
Java-Chapter 04 Iteration Statements
Java-Chapter 09 Advanced Statements and Applications
Java-Chapter 09 Advanced Statements and Applications
Java-Chapter 06 File Operations
Java-Chapter 06 File Operations
Java-Chapter 08 Methods
Java-Chapter 08 Methods
Java-Chapter 11 Recursions
Java-Chapter 11 Recursions
Java-Answer Chapter 01-04
Java-Answer Chapter 01-04
Java-Answer Chapter 07 (For Print)
Java-Answer Chapter 07 (For Print)
Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)
The next generation intelligent transport systems: standards and applications
The next generation intelligent transport systems: standards and applications
การควบคุมทิศทางการทำงานของโปรแกรม
การควบคุมทิศทางการทำงานของโปรแกรม
SysProg-Tutor 03 Unix Shell Script Programming
SysProg-Tutor 03 Unix Shell Script Programming
SysProg-Tutor 02 Introduction to Unix Operating System
SysProg-Tutor 02 Introduction to Unix Operating System
SysProg-Tutor 01 Introduction to C Programming Language
SysProg-Tutor 01 Introduction to C Programming Language
Semelhante a Java-Chapter 12 Classes and Objects
8.Inheritance
8.Inheritance
UsableLabs
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
Finian Nian
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
Finian Nian
Know1 3
Know1 3
โรงเรียนอุตรดิตถ์ดรุณี
Java intro
Java intro
zanotsuke
Java Programming [4/12] : Object Oriented Concept
Java Programming [4/12] : Object Oriented Concept
IMC Institute
Chapter1 uml3
Chapter1 uml3
Mittapan Chantanyakan
Chapter1 uml3
Chapter1 uml3
Man YourJust'one
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
Pornsitaintharak
Know 1 1
Know 1 1
ชญานิษฐ์ ทบวัน
Java 7&12 6 2
Java 7&12 6 2
Mook Sasivimon
c# part1.pptx
c# part1.pptx
keeduelailai
5.Methods cs
5.Methods cs
UsableLabs
โปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐาน
Prapatsorn Keawnoun
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
T'tle Tanwarat
Java Programming [5/12] : Build Graphical User Interface
Java Programming [5/12] : Build Graphical User Interface
IMC Institute
Computer Programming 4
Computer Programming 4
Saranyu Srisrontong
เมธอด
เมธอด
กฤษดา จันทร์ชาวใต้
เมธอด
เมธอด
กฤษดา จันทร์ชาวใต้
เมธอด
เมธอด
Pannipa Saetan
Semelhante a Java-Chapter 12 Classes and Objects
(20)
8.Inheritance
8.Inheritance
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
Know1 3
Know1 3
Java intro
Java intro
Java Programming [4/12] : Object Oriented Concept
Java Programming [4/12] : Object Oriented Concept
Chapter1 uml3
Chapter1 uml3
Chapter1 uml3
Chapter1 uml3
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
Know 1 1
Know 1 1
Java 7&12 6 2
Java 7&12 6 2
c# part1.pptx
c# part1.pptx
5.Methods cs
5.Methods cs
โปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐาน
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
Java Programming [5/12] : Build Graphical User Interface
Java Programming [5/12] : Build Graphical User Interface
Computer Programming 4
Computer Programming 4
เมธอด
เมธอด
เมธอด
เมธอด
เมธอด
เมธอด
Mais de Wongyos Keardsri
Discrete-Chapter 11 Graphs Part III
Discrete-Chapter 11 Graphs Part III
Wongyos Keardsri
Discrete-Chapter 11 Graphs Part II
Discrete-Chapter 11 Graphs Part II
Wongyos Keardsri
Discrete-Chapter 11 Graphs Part I
Discrete-Chapter 11 Graphs Part I
Wongyos Keardsri
Discrete-Chapter 10 Trees
Discrete-Chapter 10 Trees
Wongyos Keardsri
Discrete-Chapter 09 Algorithms
Discrete-Chapter 09 Algorithms
Wongyos Keardsri
Discrete-Chapter 08 Relations
Discrete-Chapter 08 Relations
Wongyos Keardsri
Discrete-Chapter 07 Probability
Discrete-Chapter 07 Probability
Wongyos Keardsri
Discrete-Chapter 06 Counting
Discrete-Chapter 06 Counting
Wongyos Keardsri
Discrete-Chapter 05 Inference and Proofs
Discrete-Chapter 05 Inference and Proofs
Wongyos Keardsri
Discrete-Chapter 04 Logic Part II
Discrete-Chapter 04 Logic Part II
Wongyos Keardsri
Discrete-Chapter 04 Logic Part I
Discrete-Chapter 04 Logic Part I
Wongyos Keardsri
Discrete-Chapter 03 Matrices
Discrete-Chapter 03 Matrices
Wongyos Keardsri
Discrete-Chapter 02 Functions and Sequences
Discrete-Chapter 02 Functions and Sequences
Wongyos Keardsri
Discrete-Chapter 01 Sets
Discrete-Chapter 01 Sets
Wongyos Keardsri
Discrete-Chapter 12 Modeling Computation
Discrete-Chapter 12 Modeling Computation
Wongyos Keardsri
Java-Chapter 14 Creating Graphics with DWindow
Java-Chapter 14 Creating Graphics with DWindow
Wongyos Keardsri
Mais de Wongyos Keardsri
(16)
Discrete-Chapter 11 Graphs Part III
Discrete-Chapter 11 Graphs Part III
Discrete-Chapter 11 Graphs Part II
Discrete-Chapter 11 Graphs Part II
Discrete-Chapter 11 Graphs Part I
Discrete-Chapter 11 Graphs Part I
Discrete-Chapter 10 Trees
Discrete-Chapter 10 Trees
Discrete-Chapter 09 Algorithms
Discrete-Chapter 09 Algorithms
Discrete-Chapter 08 Relations
Discrete-Chapter 08 Relations
Discrete-Chapter 07 Probability
Discrete-Chapter 07 Probability
Discrete-Chapter 06 Counting
Discrete-Chapter 06 Counting
Discrete-Chapter 05 Inference and Proofs
Discrete-Chapter 05 Inference and Proofs
Discrete-Chapter 04 Logic Part II
Discrete-Chapter 04 Logic Part II
Discrete-Chapter 04 Logic Part I
Discrete-Chapter 04 Logic Part I
Discrete-Chapter 03 Matrices
Discrete-Chapter 03 Matrices
Discrete-Chapter 02 Functions and Sequences
Discrete-Chapter 02 Functions and Sequences
Discrete-Chapter 01 Sets
Discrete-Chapter 01 Sets
Discrete-Chapter 12 Modeling Computation
Discrete-Chapter 12 Modeling Computation
Java-Chapter 14 Creating Graphics with DWindow
Java-Chapter 14 Creating Graphics with DWindow
Java-Chapter 12 Classes and Objects
1.
Classes and Objects
- 12 Computer Programming using Java 157 CHAPTER คลาสและอ๊อบเจ็ค 12 (Classes and Objects) 1. ความร้ ูเบืองต้ นของคลาสและอ๊ อบเจ็ค (Introduction to Classes and Objects) ้ 1. องค์ ประกอบและลักษณะทั่วไปของคลาสและอ๊ อบเจ็ค ในแพ็คเก็จ (Package) มี Package คลาส (Classes) Class A Class B Class C Attributes Attributes Attributes ในคลาสมีแอตทริบิว (Attributes) ตัวสร้ าง Constructor Constructor Constructor (Constructors) และเมท็อด (Methods) Methods Methods Methods ในเมท็อดมีตวแปรและคําสัง ั ่ new new new คลาสแต่ละคลาสสามารถสร้ างตัวแทนของ คลาสนัน (Instance of Class) ขึ ้นได้ ซึง ้ ่ Object a Object b Object c เรี ยกว่าอ๊ อบเจ็ค (Objects) Attributes Attributes Attributes Method-1 Method-1 Method-1 อ๊ อบเจ็คเป็ นตัวสําเนาของคลาสต้ นแบบ ซึง ่ . . . . . . . . . จะมีทงแอตทริบิวและเมท็อดทุกๆ ตัวเหมือน ั้ Method-N Method-N Method-N กับที่คลาสต้ นแบบมี (แต่ไม่มีตวสร้ าง) ั 2. นิยามและคําศัพท์ ท่ เกี่ยวข้ องกับคลาสและอ๊ อบเจ็ค ี แพ็คเก็จ (Package) คือ สิงที่เก็บรวบรวมคลาสและห่อหุ้มคลาสเอาไว้ เป็ นกลุมๆ (จะยังไม่กล่าวถึงมากนัก) ่ ่ คลาส (Class) คือ ต้ นแบบของโปรแกรมหนึงๆ ซึงภายในประกอบไปด้ วย แอตทริบิว ตัวสร้ าง และเมท็อด ่ ่ แอตทริบว (Attribute) ิ คือ ตัวแปรของคลาส หรื อตัวแปรที่ประกาศอยูภายในคลาสแต่อยู่นอกเมท็อดใดๆ ่ ตัวสร้ าง (Constructor) คือ ส่วนที่กําหนดค่าเริ่มต้ นของคลาส ซึงจะกําหนดค่าเริ่มต้ นให้ กบแอตทริบิวทุกตัวในคลาส ่ ั เมท็อด (Method) คือ ส่วนการทํางานย่อยของคลาส หรื อโปรแกรมย่อยที่บงบอกการกระทําของคลาส ่ ตัวแปร (Variable) คือ ตัวแปรของเมท็อด หรื อตัวแปรใดๆ ที่ประกาศภายในเมท็อดใดเมท็อดหนึง ่ คําสั่ง (Statement) คือ คําสังภายในเมท็อด หรื อคําสังใดๆ (if, for, …) ที่ปรากฎภายในเมท็อดใดเมท็อดหนึง ่ ่ ่ อ๊ อบเจ็ค (Object) คือ ตัวแทนของคลาส ซึงจะมีทกอย่างเหมือนที่คลาสต้ นแบบมี (ยกเว้ นตัวสร้ างที่ไม่มี) ่ ุ นําเสนอมุมมองในการเขียนโปรแกรมแบบใหม่ที่เรี ยกว่า การเขียนโปรแกรมเชิงวัตถุ (Object-Oriented Programming) © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
2.
158
Computer Programming using Java 12 - Classes and Objects โจทย์ ข้อที่ 1 [ระดับง่ าย] จงระบุส่วนประกอบต่ างๆ ของคลาสจากโปรแกรมต่ อไปนี ้ (10 คะแนน) 1 public class Num { 2 private int x; 3 private double y; 4 public Num() { 5 x = 0; y = 0.0; 6 } 7 public Num(int m, double n) { 8 x = m; y = n; 9 } 10 public int addNX(int n) { 11 return n + x; 12 } 13 public double addNY(double n) { 14 return n + y; ผลลัพธ์ ท่ ีได้ 15 } 16 public void showXY() { 17 System.out.println(x); 18 System.out.println(y); 19 } 20 } 1 public class RunNum { 2 public static void main(String[] args){ 3 Num obj = new Num(5, 7.0); 4 obj.showXY(); 5 int a = obj.addNX(4); 6 double b = obj.addNY(13.0); 7 System.out.println(a); 8 System.out.println(b); 9 } 10 } จากโจทย์ ข้อที่ 1 สามารถวาดเป็ น Class Diagram เพื่อใช้ ประกอบความเข้ าใจได้ ดงนี ้ ั Num obj: Num RunNum int x double y x = 5 public static void main(…) { y = 7.0 Num obj = new Num(5, 7.0); Num() new Num(int m, double n) obj.showXY(); addNX(int n) int a = obj.addNX(4); addNY(double n) ... showXY() } int addNX(int n) double addNY(double n) void showXY() โจทย์ ข้อที่ 2 [ระดับง่ าย] จงพิจารณาข้ อความต่ อไปนีถก ( ) หรือผิด ( ) (15 คะแนน) ู้ 1) คลาสทุกคลาสต้ องมีเมท็อดอย่างน้ อย 1 เมท็อดเสมอ (ไม่มีเมท็อดไม่ได้ ) 2) คลาสทุกคลาสต้ องมีเมท็อด main(…) เสมอ เพื่อเป็ นตัวประสานเมท็อดอื่นๆ 3) แอตทริ บวของคลาสจะมีหรื อไม่มีก็ได้ ซึงขึ ้นอยูกบการออกแบบและการใช้ งานคลาสนัน ิ ่ ่ ั ้ 4) คลาสสามารถมีแอตทริบวเพียงส่วนเดียวได้ โดยไม่ต้องมีเมท็อด (ประกาศเพียงแอตทริบว) ิ ิ © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
3.
Classes and Objects
- 12 Computer Programming using Java 159 5) คลาสสามารถมีเมท็อดเพียงส่วนเดียวได้ โดยไม่ต้องมีแอตทริบว ิ 6) อ๊ อบเจ็คเป็ นตัวแทนของคลาส และมีแอตทริ บวและเมท็อดทุกตัวเหมือนที่คลาสนันมี ิ ้ 7) ตัวแปรที่ประกาศภายในเมท็อดใดๆ สามารถเรี ยกใช้ ได้ เฉพาะเมท็อดนัน ้ 8) ตัวแปรที่ประกาศภายนอกเมท็อดใดๆ สามารถเรี ยกใช้ ได้ จากทุกๆ เมท็อด 9) ตัวแปรที่ประกาศภายนอกเมท็อดใดๆ คือแอตทริบว หรื อตัวแปรของคลาส ิ 10) ตัวแปรที่ประกาศภายในเมท็อดใดๆ คือตัวแปรทัวไป หรือตัวแปรของเมท็อด ่ 11) แอตทริ บวสามารถประกาศชื่อซํ ้ากันได้ แต่จะต้ องกําหนดค่าเริ่มต้ นที่ตางกัน ิ ่ 12) เมท็อดสามารถประกาศชื่อซํ ้ากันได้ แต่จะต้ องมีรายการพารามิเตอร์ ท่ีตางกัน ่ 13) ตัวสร้ างจะปรากฎอยูในทุกอ๊ อบเจ็คที่สร้ างจากคลาสต้ นแบบ ่ 14) ตัวสร้ างทําหน้ าที่ในการกําหนดค่าเริ่ มต้ นให้ กบแอตทริบวทุกตัวเมื่อเริ่มสร้ างอ๊ อบเจ็คใหม่ ั ิ 15) แอตทริ บวในคลาสต้ นแบบจะต้ องกําหนดค่าเริ่มต้ นเสมอเมื่อเริ่มสร้ างคลาสต้ นแบบ ิ 2. คลาส (Classes) 1. การประกาศและสร้ างองค์ ประกอบของคลาส คลาสหนึงๆ มีองค์ประกอบ 3 ส่วนได้ แก่ แอตทริบว ตัวสร้ าง และเมท็อด ซึงมีวิธีการประกาศและสร้ างดังต่อไปนี ้ ่ ิ ่ 1) การประกาศและสร้ างคลาส หัวคลาส [ตัวบ่ งคุณลักษณะ] class <ชื่อคลาส> { [แอตทริบว (มีก่ ีตวก็ได้ )] ิ ั ชื่อคลาสควรขึ ้นต้ นด้ วยอักษรตัวพิมพ์ ใหญ่ [ตัวสร้ าง (มีก่ ีตวก็ได้ )] ั ตัวคลาส ถ้ าชื่อมีหลายคําสามารถเขียนแบบหลังอูฐได้ [เมท็อด (มีก่ ีตวก็ได้ )] ั ตัวบ่งคุณลักษณะ (Modifier) จะมีหรื อไม่มีก็ได้ }. ถ้ ามีจะมีได้ ดงนี ้คือ public และ final ั ตัวอย่าง 1 public class Num { 2 int x; ถ้ าสร้ างคลาสหลายคลาสอยูภายในแฟ้ ม *.java เดียว ่ 3 public double y; กัน จะต้ องมีเพียง 1 คลาสเท่านันที่เป็ นแบบ public แต่ ้ 4 Num() { 5 x = 0; y = 0.0; ถ้ าสร้ างคลาสแบบแยกแฟ้ มกัน (หนึงแฟมหนึงคลาส) จะ ่ ้ ่ 6 } สามารถใช้ public ได้ ในทุกคลาส (ในบทนี้กาหนดให้ ํ 7 ... 8 } แต่ ละคลาสสร้ างแบบแยกแฟมกัน) ้ 2) การประกาศและสร้ างแอตทริบว ซึงจะคล้ ายกับการประกาศและสร้ างตัวแปรในบทที่ 2 ิ ่ [ตัวบ่ งคุณลักษณะ] <ประเภทข้ อมล> <ชื่อแอตทริ บว>; ู ิ + public - private # protected ตัวบ่งคุณลักษณะ (Modifier) จะมีหรื อไม่มีก็ได้ ถ้ ามีจะมีได้ ดงนี ้คือ ั static final © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
4.
160
Computer Programming using Java 12 - Classes and Objects ตัวอย่าง โดยทัวไปแอตทริบิวที่มี static กํากับอยู่ จะกํา- ่ 1 public class Data { หนดค่าเริ่มต้ นให้ แอตทริบิวทันทีเมื่อเริ่มสร้ างคลาส 2 public static int n = 1; 3 private double data; ต้ นแบบ แต่แอตทริบิวอื่นๆ ที่ไม่มี static กํากับ 4 ... จะไม่มีการกําหนดค่าเริ่มต้ นใดๆ ทังสิ ้น ้ 5 } เมท็อดทุกเมท็อดภายในคลาสสามารถเรี ยกใช้ งานแอตทริบิวได้ 3) การประกาศและสร้ างตัวสร้ าง ตัวสร้ าง (Constructor) คือ เมท็อดที่มีชื่อเดียวกับชื่อคลาส (เมท็อดทีชือขึ้นต้นด้วยตัวอักษรพิมพ์ใหญ่) ่่ [ตัวบ่ งคุณลักษณะ] <ชื่อตัวสร้ าง> ([พารามิเตอร์ ]) { ตัวสร้ างไม่มี Return Type [กําหนดค่ าเริ่ มต้ นให้ กับแอตทริ บวทุกตัว] ิ ตัวบ่งคุณลักษณะจะมีหรื อไม่มีก็ได้ ถ้ า } . มีจะมีได้ แบบเดียวคือ public ตัวอย่าง วิธีการเขียนตัวสร้ าง คือ ให้ ดชื่อคลาสว่าชื่ออะไร ก็ ู 1 public class Number { 2 public long x; จะให้ ชื่อตัวสร้ างเป็ นชื่อเดียวกับชื่อคลาสนัน ้ 3 private int y; 4 public Number() { ตัวสร้ างมีได้ หลายแบบซึง Overload กัน ่ 5 x = 0L; 6 y = 0; ตัวสร้ างถูกเรี ยกใช้ ทกครังเมื่อมีการสร้ างอ๊ อบเจ็คใหม่ ุ ้ 7 } 8 public Number(long a, int b) { 9 x = a; 10 y = b; 11 } คลาสใดที่ไม่มีตวสร้ าง คอมไพเลอร์ จะใส่ตวสร้ างให้ ั ั 12 public Number(double k) { อัตโนมัติซงเป็ นตัวสร้ างเริ่ มต้ น (Default Constructor) ึ่ 13 x = y = (int) k; 14 } แต่ถ้ามีตวสร้ างอยูแล้ ว คอมไพเลอร์ จะใช้ ตวสร้ างนัน ั ่ ั ้ 15 ... ในการทํางาน โดยไม่มีการใส่ตวสร้ างเริ่ มต้ นให้ อีก ั 16 } 4) การประกาศและสร้ างเมท็อด จะเหมือนกับการประกาศและสร้ างเมท็อดในบทที่ 8 [ตัวบ่ งคุณลักษณะ] <ประเภทข้ อมลที่ส่งกลับ> <ชื่อเมท็อด> ([พารามิเตอร์ ]) { ู [ตัวแปรและคําสั่ง] ตัวเมท็อด หัวเมท็อด } . ตัวอย่าง 1 public class Operation { 2 ... ม็อดดิฟายเออร์ ของเมท็อดมีได้ ดงนี ้คือ ั 3 public int incrX(int x) { 4 x = x + 1; public, private, protected, 5 return x; static และ final 6 } 7 ... 8 } ดูรายละเอียดเพิ่มเติมในบทที่ 8 (ที เ่ รี ยนผ่านมา) © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
5.
Classes and Objects
- 12 Computer Programming using Java 161 โจทย์ ข้อที่ 3 [ระดับง่ าย] จงเขียนโปรแกรมภาษาจาวาให้ สมบรณ์ เพื่อสร้ างคลาสชื่อ Course ซึ่งเป็ น ู ต้ นแบบของวิชาใดๆ ในจุฬาฯ โดยประกอบไปด้ วยรายละเอียดดังต่ อไปนี ้ (30 คะแนน) public class Course { //แอตทริบว 3 ตัว (โดยไม่ ต้องกําหนดค่ าใดๆ ให้ กับแอตทริบว) มีดงต่ อไปนี ้ (3 คะแนน) ิ ิ ั //แอตทริบวชื่อ id แบบ private เพื่อเก็บรหัสวิชา (Course ID) ิ ให้ จนตนาการว่ าแอตทริ ิ //แอตทริบวชื่อ title แบบ public เพื่อเก็บชื่อวิชา (Course Title) ิ บิวเหล่ านีมีค่าพร้ อมแล้ ว ้ //แอตทริบวชื่อ credit แบบ protected เพื่อเก็บจํานวนหน่ วยกิต (Credit) สามารถเรียกใช้ ได้ เลย ิ //ตัวสร้ างแบบไม่ มีพารามิเตอร์ ใดๆ เพื่อกําหนดค่ าเริ่ มต้ นให้ กับแอตทริ บิวทัง 3 ตัวตามค่ าเริ่ มต้ น ้ ของประเภทแอตทริบวนันๆ (เช่ น int เป็ น 0, String เป็ น "" เป็ นต้ น) (3 คะแนน) ิ ้ //ตัวสร้ างแบบมีพารามิเตอร์ 3 ตัว เพื่อกําหนดค่ าเริ่มต้ นให้ กับแอตทริบวทัง 3 ตัวตามลําดับ (3 คะแนน) ิ ้ //เมท็อด setID(…)แบบ public ที่รับตัวเลขจํานวนเต็มผ่ านทางพารามิเตอร์ หนึ่งค่ า เพื่อใช้ สําหรั บ กําหนดค่ าให้ กับแอตทริบว id โดยไม่ ต้องคืนค่ ากลับ (3 คะแนน) ิ © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
6.
162
Computer Programming using Java 12 - Classes and Objects //เมท็อด setTitle(…)แบบ public ที่รับข้ อความผ่ านทางพารามิเตอร์ หนึ่งค่ า เพื่อใช้ สําหรั บกํา- หนดค่ าให้ กับแอตทริบว title โดยไม่ ต้องคืนค่ ากลับ (3 คะแนน) ิ //เมท็อด setCredit(…)แบบ public ที่รับตัวเลขจํานวนจริงผ่ านทางพารามิเตอร์ หนึ่งค่ า เพื่อใช้ สํา- หรับกําหนดค่ าให้ กับแอตทริบว credit โดยไม่ ต้องคืนค่ ากลับ (3 คะแนน) ิ //เมท็อด getLevel(…)แบบ public เพื่อคืนค่ าระดับการศึกษาที่ระบุในรหัสวิชา โดยให้ ตัวเลขหลัก ที่ 3 จากทางขวามือของรหัสวิชาแทนระดับการศึกษา เช่ น 2110191 ตัวเลข 1 แทนระดับการศึกษา เป็ นต้ น ซึ่งระดับการศึกษาประกอบไปด้ วย 2 ระดับได้ แก่ Undergraduate (ตัวเลข 1-4) และ Graduated (ตัวเลข 5 เป็ นต้ นไป) โดยกําหนดให้ คืนค่ าเป็ นชื่อของระดับการศึกษานันๆ (3 คะแนน) ้ //เมท็อด getFaculty(…)แบบ public เพื่อคืนค่ ารหัสคณะที่เปิ ดสอนวิชาดังกล่ าว โดยรหัสคณะคือ ตัวเลขสองหลักแรกของรหัสวิชาเริ่มจากทางซ้ ายมือ เช่ น 2110191 ตัวเลข 21 แทนรหัสคณะ เป็ นต้ น (3 คะแนน) © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
7.
Classes and Objects
- 12 Computer Programming using Java 163 //เมท็อด getDepartment(…)แบบ public เพื่อคืนค่ ารหัสภาควิชาที่เปิ ดสอนวิชาดังกล่ าว โดยรหัส ภาควิชาคือตัวเลขสองหลักที่ 3-4 ของรหัสวิชาเริ่มจากทางซ้ ายมือ เช่ น 2110191 ตัวเลข 10 แทนรหัส ของภาควิชา เป็ นต้ น (3 คะแนน) //เมท็อด toString(…)แบบ public เพื่อคืนค่ ารายละเอียดของวิชาที่เก็บอย่ ูในแอตทริบิวทุกตัวใน รปแบบของข้ อความดังตัวอย่ างเช่ น 2110191 Innovative Thinking (3) เป็ นต้ น (3 คะแนน) ู } //End of class 2. ขอบเขตของตัวแปร พารามิเตอร์ และแอตทริบว ิ 1) ตัวแปร คือ ตัวแปรที่ประกาศอยู่ภายในเมท็อด โดยจะปรากฏอยู่ที่ตวเมท็อด (Body) ซึงถ้ าตัวแปรใดประ ั ่ กาศในเมท็อดไหนแล้ วจะเรี ยกใช้ งานได้ แต่เพียงในเมท็อดนันเท่านัน (Local Variable) ้ ้ 2) พารามิเตอร์ คือ ตัวแปรที่ประกาศอยู่ภายในเมท็อด แต่จะปรากฏอยู่ที่หวเมท็อด (Head) จึงเรี ยกชื่อเสีย ั ใหม่วาพารามิเตอร์ ซึงพารามิเตอร์ ใดๆ นันจะมีคณสมบัตเิ ช่นเดียวกับตัวแปร ่ ่ ้ ุ 3) แอตทริ บิว คือ ตัวแปรที่ประกาศอยู่ภายในคลาสแต่อยู่นอกเมท็อดใดๆ ซึ่งถ้ าแอตทริ บิวประกาศขึ ้นแล้ ว จะสามารถเรี ยกใช้ งานได้ จากทุกเมท็อดภายในคลาสนัน (Global Variable) ้ ตัวอย่าง x และ y คือ แอตทริ บิว 1 public class Test { getX() คืนค่าแอตทริ วบิว x 2 private static int x = 10; getX(int x) คืนค่าพารามิเตอร์ 3 private static int y = 1; 4 public static int getX() { return x; } 5 public static int getX(int x) { return x; } 6 public static int incX(int y) { return x + y; } ค่า x มาจากแอตทริ บิว x 7 8 public static void main(String[] args) { int x = 5; ค่า y มาจากพารามิเตอร์ y 9 System.out.println(x); 5 10 System.out.println(y); 1 11 System.out.println(getX()); 10 แสดงค่า x จากตัวแปร x 12 13 System.out.println(getX(2)); System.out.println(incX(x)); 2 15 แสดงค่า y จากแอตทริบิว y 14 } 15 } ตัวแปร x ในเมท็อด main(…) เป็ นคนละตัวกับพารามิเตอร์ x ในเมท็อด getX(int x) © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
8.
164
Computer Programming using Java 12 - Classes and Objects 4) ภาพรวมของตัวแปร พารามิเตอร์ และแอตทริบว ิ public class TestClass { 1 Attribute ตัวแปรกับพารามิเตอร์ ประ กาศชื่อซํากันได้ หรื อไม่ ? ้ public int add( 2 Parameter ) { 3 Variable ตัวแปรกับแอตทริบวประ ิ return … ; } //End of method กาศชื่อซํากันได้ หรื อไม่ ? ้ } //End of class โจทย์ ข้อที่ 4 [ระดับง่ าย] จงแสดงผลลัพธ์ จากโปรแกรมและตอบคําถามต่ อไปนี ้ (10 คะแนน) 1 public class Test { 2 private static int x = 5; 3 private static int y = 2; 4 public static void main(String[] args) { 5 int x = 9; 6 System.out.println(x); 7 System.out.println(getX()); 8 System.out.println(showX()); 9 y = 1; 10 System.out.println(y); 11 System.out.println(getY()); 12 System.out.println(showY()); 13 int y = 11; 14 System.out.println(y); 15 System.out.println(getY()); 16 System.out.println(showY()); 17 } 18 public static int getX() { 19 20 } return x; 1) ค่ า y ในบรรทัดที่ 10 คือแอตทริบว ิ 21 public static int getY() { y หรื อตัวแปร y 22 return y; 23 } 24 public static int showX() { 25 int x = 7; 26 return x; 27 28 } public static int showY() { 2) ค่ า y ในบรรทัดที่ 14 คือแอตทริบว ิ 29 int y = 12; y หรื อตัวแปร y 30 return y; 31 } 32 } 3. อ๊ อบเจ็ค (Objects) 1. นิยามของอ๊ อบเจ็ค 1) อ๊ อบเจ็คเป็ นตัวแทนของคลาส ซึงใช้ สําหรับอ้ างอิงแอตทริบวและเมท็อดภายในคลาสนัน โดยทัวไปคลาสที่ ่ ิ ้ ่ สร้ างขึ ้นเป็ นเพียงคลาสต้ นแบบที่ไม่สามารถใช้ งานได้ จริ ง ดังนันการสร้ างอ๊ อบเจ็คก็เป็ นเสมือนการคัดลอก ้ คลาสต้ นแบบเพื่อนําไปใช้ งานนันเอง (การคัดลองทําให้ คลาสต้ นแบบไม่เสียหาย) ่ © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
9.
Classes and Objects
- 12 Computer Programming using Java 165 2) กระบวนการเรี ยกและการทํางานของอ๊ อบเจ็คมีดงนี ้ ั อ๊ อบเจ็คมีทกอย่างเหมือน ุ Class A Object a คลาสทุกประการ คลาสต้ นแบบ Attributes Attributes a.attr1 = 0 Constructor New Object Method-1 เรี ยกใช้ a.method1() a.method2() . . . Methods การคัดลอก Method-N เรี ยกใช้ แอตทริบิวและเมท็อด ผ่านทางอ๊ อบเจ็ค 2. การประกาศและสร้ างอ๊ อบเจ็ค 1) การประกาศตัวแปรอ๊ อบเจ็ค เหมือนการประกาศตัวแปรทัวไปเพียงแต่ ่ <ชื่อคลาส> <ชื่ออ๊ อบเจ็ค>; มีชนิดตัวแปรเป็ นชื่อคลาส เช่น Student std; / Car car; / Account obj; 2) การสร้ างอ๊ อบเจ็ค (ใช้ การ new) <ชื่ออ๊ อบเจ็ค> = new <ชื่อคลาส>(…); เช่น std = new Student(52300121); / car = new Car(); / obj = new Account(101); 3) รวมขันตอน 2 ขันตอนในข้ อ 1 และ 2 เข้ าด้ วยกัน (นิยมประกาศและสร้ างอ๊ อบเจ็คแบบวิธีนี ้) ้ ้ <ชื่อคลาส> <ชื่ออ๊ อบเจ็ค> = new <ชื่อคลาส>(…); ส่วนของ <ชื่อคลาส>(…) ก็คือตัว สร้ าง (Constructor) ของคลาสนันเอง ่ <ชื่อคลาส> <ชื่ออ๊ อบเจ็ค> = new <ตัวสร้ าง>; เช่น Student std = new Student(52300121); / Account obj = new Account(101); หมายเหตุ ค่าพารามิเตอร์ ที่จะใส่เข้ าไปภายในวงเล็บหลังชื่อคลาสหรื อหลังชื่อตัวสร้ างนัน ให้ พจารณาจาก ้ ิ คลาสต้ นแบบว่ามีตวสร้ างแบบใดบ้ างที่ประกาศขึ ้นใช้ งาน ั 4) ตัวอย่างการสร้ างและใช้ งานอ๊ อบเจ็ค คลาสประมวลผล 1 public class Digit { 1 public class TestDigit { 2 public int x; 2 public static void main(String[] args){ 3 Digit() { 3 Digit d = new Digit(); 4 x = 0; ตัวสร้ าง 4 Digit e = new Digit(1); แอตทริบิวทุกตัวของ 5 } 5 Digit f = new Digit(2); 6 Digit(int n) { 6 int digit1 = d.getX(); อ๊ อบเจ็คจะถูกกําหนด 7 x = n; 7 int digit2 = e.getX(); 8 } 8 int digit3 = f.getX(); ค่าเริ่มต้ นโดยตัวสร้ าง 9 public int getX(){ 9 } 10 return x; 10 } 11 } ภายในเมท็อด main มีการเรี ยกใช้ งานคลาสต้ นแบบผ่านทาง 12 } คลาสต้ นแบบ อ๊ อบเจ็ค โดยการเอา ชื่ออ๊ อบเจ็ค + จุด + สิ่งที่จะเรี ยก © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
10.
166
Computer Programming using Java 12 - Classes and Objects โจทย์ ข้อที่ 5 [ระดับง่ าย] จงหาผลลัพธ์ จากการทํางานของโปรแกรมต่ อไปนี ้ (8 คะแนน) 1 public class Student { คลาสต้ นแบบ 2 public int id; 3 public String name; 4 Student() { id = 0; name = ""; } 5 Student(int i, String n) { id = i; name = n; } 6 public String getName() { return name; } 7 public int getID() { return id; } 8 public char calGrad(int score) { 9 if(score > 60) { return 'S'; } 10 else { return 'U'; } 11 } 12 } 1 public class TestStudent { คลาสประมวลผล 2 public static void main(String args[]){ 3 Student y = new Student(101,"Taksin"); 4 Student z = new Student(102,"Apisit"); 5 Student x = new Student(); 6 System.out.println(x.getID() + "," + x.getName()); 7 System.out.println(y.getID() + "," + y.getName()); 8 System.out.println((z.getID() + 1) + "," + z.getName()); 9 System.out.println(y.getName()+ ":" + y.calGrad(49)); 10 System.out.println(z.getName()+ ":" + z.calGrad(79)); 11 } 12 } โจทย์ ข้อที่ 6 [ระดับง่ าย] จงเขียนคลาส TestNumber ให้ สมบรณ์ เพื่อเรี ยกใช้ งานคลาส Number โดยการ ู สร้ างอ๊ อบเจ็คที่มีชนิดเป็ น Number และเรี ยกใช้ งานเมท็อดตามเงื่อนไขต่ อไปนี ้ (10 คะแนน) 1 public class Number { คลาสต้ นแบบ 2 private double x; 3 private double y; 4 Number() { x = y = 0; } 5 Number(double a, double b) { x = a; y = b; } 6 public double add() { return x + y; } 7 public double sub() { return x - y; } 8 public double mul() { return x * y; } 9 public double div() { return x / y; } 10 public double mod() { return x % y; } 11 } //ประกาศหัวคลาส TestNumber import java.util.Scanner; public static void main(String[] args) { Scanner kb = new Scanner(System.in); //สร้ างอ๊ อบเจ็คชื่อ no1 ที่มีชนิดเป็ นคลาส Number (เป็ นตัวแทนของคลาส Number) © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
11.
Classes and Objects
- 12 Computer Programming using Java 167 //รั บค่ าจํานวนจริงจากแปนพิมพ์ 2 ค่ าเพื่อใช้ ในการสร้ างอ๊ อบเจ็คชื่อ no2 ที่มีชนิดเป็ นคลาส Number ้ //แสดงผลการบวก การลบ การคณ การหาร และการม็อด โดยเรี ยกเมท็อดผ่ านทางอ๊ อบเจ็ค no2 ู } //End of main } //End of class 4. การกําหนดคุณสมบัตและการใช้ งานคลาสและอ๊ อบเจ็ค ิ 1. การกําหนดตัวบ่ งคุณลักษณะให้ กับแอตทริบวและเมท็อด ิ 1) ตัวบ่งคุณลักษณะที่ใช้ กําหนดขอบเขตการเรี ยกใช้ แอตทริบวและเมท็อดได้ แก่ public, private และ ิ protected ซึงจะเป็ นตัวบอกว่าแอตทริ บวและเมท็อดจะถูกเรี ยกใช้ งานจากที่ ไหนได้ บ้าง (Where) ่ ิ Package java.test1 Package java.test2 1 Methods in A call modifier me(…) Class D 4 Methods in D call modifier me(…) Class A Class B modifier me(…) Methods in B call 2 modifier me(…) Class C Extends A 3 Methods in C call modifier me(…) 1 หมายถึง เรี ยกใช้ เมท็อด modifier me(…) จากภายในคลาสเดียวกัน (คลาส A) 2 หมายถึง เรี ยกใช้ เมท็อด modifier me(…) จากต่างคลาสกันแต่อยูภายในแพ็คเก็จเดียวกัน ่ 3 หมายถึง เรี ยกใช้ เมท็อด modifier me(…) จากต่างแพ็คเก็จกันแต่คลาสที่เรี ยกใช้ เป็ นสับคลาสกัน 4 หมายถึง เรี ยกใช้ เมท็อด modifier me(…) จากต่างแพ็คเก็จกันหรื อจากที่ใดๆ © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
12.
168
Computer Programming using Java 12 - Classes and Objects สรุ ปเป็ นตารางขอบเขตการเรียกใช้ งานได้ ดงนี ้ ั รายละเอียดของ คลาสเดียวกัน ต่ างคลาสกัน เป็ นสับคลาสกัน ต่ างคลาสกัน ตัวบ่ งคุณลักษณะ แพ็คเก็จเดียวกัน แพ็คเก็จเดียวกัน (คลาสแม่ ลูก) ต่ างแพ็คเก็จกัน public me(…) private me(…) protected me(…) me(…) หมายเหตุ โดยทัวไปแอตทริ บิวนิยมประกาศเป็ น private และเมท็อดนิยมประกาศเป็ น public แต่ถ้า ่ ไม่เช่นนันก็ให้ ประกาศไปตามความต้ องการหรื อตามที่โจทย์กําหนด ้ 2) ตัวบ่งคุณลักษณะที่ใช้ กําหนดค่าประจําคลาสหรื อประจําอ๊ อบเจ็คของแอตทริ บิวและเมท็อดได้ แก่ static ซึงจะเป็ นตัวบอกว่าแอตทริบวและเมท็อดจะถูกเรี ยกใช้ งานอย่ างไรได้ บ้าง (How) ่ ิ รายละเอียดของ เรี ยกใช้ ผ่านทางคลาส เรี ยกใช้ ผ่านทางอ๊ อบเจ็ค ตัวบ่ งคุณลักษณะ ค่าประจําคลาส (มี static) ค่าประอ๊ อบเจ็ค (ไม่มี static) โจทย์ ข้อที่ 7 [ระดับง่ าย] จงประกาศและสร้ างแอตทริบวหรือหัวเมท็อดตามข้ อกําหนดต่ อไปนี ้ (18 คะแนน) ิ 1) แอตทริบวประจําอ๊ อบเจ็คชื่อ data ชนิดจํานวนจริง โดยสามารถเรียกใช้ งานได้ จากคลาสใดๆ ิ 2) แอตทริบิวประจําคลาสชื่อ var ชนิดจํานวนเต็ม โดยมีค่าเริ่มต้ นเท่ ากับ 10 และสามารถเรี ยกใช้ งาน ได้ จากภายในคลาสเดียวกันเท่ านัน ้ 3) แอตทริบวประจําคลาสชื่อ check ชนิดค่ าความจริง โดยสามารถเรี ยกใช้ งานได้ จากสับคลาส ิ 4) แอตทริบิวประจําอ๊ อบเจ็คชื่อ stdName เก็บรายชื่อนิสิตจํานวน 351 คน โดยสามารถเรี ยกใช้ งานได้ จากภายในคลาสเดียวกันเท่ านัน ้ © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
13.
Classes and Objects
- 12 Computer Programming using Java 169 5) แอตทริบวประจําคลาสชื่อ m เก็บเมตริกซ์ ชนิดจํานวนเต็มขนาด 8 x 5 โดยสามารถเรี ยกใช้ จากที่ใดก็ได้ ิ 6) เมท็อดประจําอ๊ อบเจ็คชื่อ show เพื่อแสดงชื่อนิสิตและผลการเรี ยนเฉลี่ยที่รับจากพารามิเตอร์ ขึนบน ้ จอภาพ โดยสามารถเรียกใช้ งานได้ เฉพาะคลาสที่ประกาศเมท็อด show นีเ้ ท่ านัน ้ 7) เมท็อดประจําคลาสชื่อ search เพื่อใช้ ค้นหาตัวเลขจํานวนเต็ม x ที่รับเข้ ามาว่ ามีปรากฎอย่ ู ณ ตําแหน่ งใดในอาเรย์ num ที่รับเข้ ามาเช่ นกัน โดยสามารถเรียกใช้ งานได้ จากคลาสลกหลาน ู 8) เมท็อดประจําอ๊ อบเจ็คชื่อ mulMatrix เพื่อคํานวณค่ าหาผลคณของเมตริกซ์ สองมิตชนิดจํานวนจริง ู ิ 2 ตัวใดๆ โดยสามารถเรียกใช้ จากที่ใดก็ได้ 9) เมท็อดประจําคลาสชื่อ union เพื่อใช้ ยเนียนเซตของจํานวนเต็ม 2 เซ็ตใดๆ โดยเป็ นแบบสาธารณะ ู 2. วิธีการเรียกใช้ งานแอตทริบวและเมท็อด ิ 1) เรี ยกโดยตรง เป็ นการเรี ยกแอตทริ บิวหรื อเมท็อดที่อยู่ภายในคลาสเดียวกัน (ตามหลักการเรี ยกเมท็อดใน บทที่ 8-11 ที่ผานมา) โดยจะพิจารณาเมท็อดที่มี static และไม่มี static ดังเงื่อนไขต่อไปนี ้ ่ เมท็อดผ้ ูถกเรี ยก ู มี static เรี ยก มี static ได้ เมท็อดผ้ ูเรียก มี ไม่ มี มี static เรี ยก ไม่มี static ไม่ได้ มี ไม่มี static เรี ยก มี static ได้ ไม่มี static เรี ยก ไม่มี static ได้ ไม่ มี 2) เรียกผ่ านคลาส เป็ นการเรียกแอตทริ บวหรื อเมท็อดประจําคลาส (มี static) ที่อยูตางคลาสกัน ิ ่ ่ (1) เรี ยกแอตทริ บวผ่านคลาส ซึงเรี ยกแอตทริบวประเภทนี ้ว่า ตัวแปรประจําคลาส (Class Variable) ิ ่ ิ <ชื่อคลาส>.<ชื่อแอตทริ บว>; ิ ขึ ้นต้ นด้ วยตัวพิมพ์ใหญ่ ลงท้ ายไม่มีวงเล็บ เช่น Math.PI; Color.RED; © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
14.
170
Computer Programming using Java 12 - Classes and Objects (2) เรี ยกเมท็อดผ่านคลาส ซึงเรี ยกเมท็อดประเภทนี ้ว่า เมท็อดประจําคลาส (Class Method) ่ <ชื่อคลาส>.<ชื่อเมท็อด>(…); ขึ ้นต้ นด้ วยตัวพิมพ์ใหญ่ ลงท้ ายมีวงเล็บ เช่น Math.pow(2,3); Time.start(); 3) เรียกผ่ านอ๊ อบเจ็ค เป็ นการเรี ยกแอตทริ บวหรื อเมท็อดประจําอ๊ อบเจ็ค (ไม่มี static) ที่อยูตางคลาสกัน ิ ่ ่ (1) เรี ยกแอตทริ บวผ่านอ๊ อบเจ็ค ซึงเรี ยกแอตทริบวประเภทนี ้ว่า ตัวแปรประจําอ๊ อบเจ็ค (Object Variable) ิ ่ ิ หรื อ ตัวแปรตัวแทน (Instance Variable) <ชื่ออ๊ อบเจ็ค>.<ชื่อแอตทริ บว>; ิ ขึ ้นต้ นด้ วยตัวพิมพ์เล็ก ลงท้ ายไม่มีวงเล็บ เช่น objStd.id; no.x; g.y; (2) เรี ยกเมท็อดผ่านอ๊ อบเจ็ค ซึงเรี ยกเมท็อดประเภทนี ้ว่า เมท็อดประจําอ๊ อบเจ็ค (Object Method) หรื อ ่ เมท็อดตัวแทน (Instance Method) <ชื่ออ๊ อบเจ็ค>.<ชื่อเมท็อด>(…); ขึ ้นต้ นด้ วยตัวพิมพ์เล็ก ลงท้ ายมีวงเล็บ เช่น std.get(5230121); c.stop(); จงตอบคําถาม แอตทริบวหรือเมท็อดที่เป็ นแบบ static จะสามารถเรียกใช้ งานผ่ านทางอ๊ อบเจ็คได้ หรือไม่ ิ ได้ เราสามารถเรี ยกใช้ ทกอย่างผ่านทางอ๊ อบเจ็คได้ ไม่วาจะเป็ น static หรื อไม่ก็ตาม ุ ……………………………………………………………………………………………………………….. ่ โจทย์ ข้อที่ 8 [ระดับง่ าย] จงใช้ ตวเลือกต่ อไปนีเ้ พื่อระบุประเภทของแอตทริบวหรือเมท็อด (20 คะแนน) ั ิ (A) Class Variable (B) Class Method (C) Object Variable (D) Object Method ข้ อ แอตทริบวหรือเมท็อด ิ คําตอบ ข้ อ แอตทริบวหรื อเมท็อด ิ คําตอบ 1. Math.sqrt(x) 11. std.grad 2. p.colorCode(s) 12. Sqt.borders(a,b) 3. Array.equals(a, b) 13. in.readLine() 4. v.x 14. System.in 5. System.getProperties() 15. Math.random() 6. Integer.MAX_VALUE 16. in.hasNext() 7. kb.nextInt() 17. i.id_code 8. rectangle.setSize(w, h) 18. out.close() 9. Math.PI 19. String.format("%4d", x) 10. a.appendArrays(x,y) 20. o.name © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
15.
Classes and Objects
- 12 Computer Programming using Java 171 โจทย์ ข้อที่ 9 [ระดับปานกลาง] จงหาผลลัพธ์ จากการทํางานของโปรแกรมต่ อไปนี ้ (15 คะแนน) 1 public class Val { 2 public static int x; 3 public static int y; 4 public static String s; 5 public Val() { x = 0; y = 0; s = ""; } 6 public Val(int x, int y) { this.x = x; this.y = y; } 7 public static int getX() { return x; } 8 public static int getY() { return y; } 9 public static int getY(int y) { return y; } 10 public static String getS() { return s; } 11 public static String getS(String s) { return s; } 12 } 1 public class Test { 2 public static void main(String[] args) { 3 System.out.println(Val.x + "," + Val.y); 4 Val.x = 6; Val.y = 10; 5 System.out.println(Val.getX()+ "," + Val.getY()); 6 Val.s = "Good By A"; 7 System.out.println(Val.getS()); 8 System.out.println(Val.getS("See You F")); 9 Val v = new Val(); 10 System.out.println(v.x + "," + v.y); 11 v.x = 5; v.y = 7; 12 13 System.out.println(v.getX() + "," + v.getY()); System.out.println(Val.getX() + "," + Val.getY()); ข้ อนี ้แสดงให้ เห็นถึงผลกระ 14 Val w = new Val(9, 7); ทบในการประ กาศแอตทริ - 15 System.out.println(w.getX() + "," + w.getY()); 16 System.out.println(v.getX() + "," + v.getY()); บิวให้ เป็ นแบบ static ซึง ่ 17 v.s = "I love Java"; 18 System.out.println(w.getS()); จะทําให้ คาของแอตทริบิวนัน ่ ้ 19 } } เปลี่ยนแปลงแบบ Global 20 โจทย์ ข้อที่ 10 [ระดับปานกลาง] จงเขียนคลาส Dice ซึ่งเป็ นตัวแทนของลกเต๋ า n หน้ าใดๆ เช่ น ลกเต๋ า 6 ู ู หน้ า ลกเต๋ า 12 หน้ าเป็ นต้ น และเขียนคลาส TestDice เพื่อเรี ยกใช้ เมท็อดจากคลาส Dice (20 คะแนน) ู public class Dice { //แอตทริบวประจําอ๊ อบเจ็คแบบ public ชื่อ face เพื่อเก็บจํานวนหน้ าของลกเต๋ า ิ ู //แอตทริบวประจําอ๊ อบเจ็คแบบ public ชื่อ value เพื่อเก็บหมายเลขหน้ าหงายของลกเต๋ า ิ ู //ตัวสร้ างแบบไม่ มีพารามิเตอร์ เพื่อกําหนดจํานวนหน้ าของลกเต๋ าเป็ น 2 และกําหนดหน้ าหงายของ ู ลกเต๋ าโดยการสุ่มค่ า ู © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
16.
172
Computer Programming using Java 12 - Classes and Objects //ตัวสร้ างแบบมีพารามิเตอร์ หนึ่งตัว เพื่อกําหนดจํานวนหน้ าของลกเต๋ าตามตัวเลขที่ระบุทางพารามิเตอร์ ู และกําหนดหน้ าหงายของลกเต๋ าโดยการสุ่มค่ า ู //ตัวสร้ างแบบมีพารามิเตอร์ สองตัว เพื่อกําหนดจํานวนหน้ าของลกเต๋ าและกําหนดหน้ าหงายของลกเต๋ า ู ู ตามตัวเลขที่ระบุทางพารามิเตอร์ ตามลําดับ //เมท็อดประจําอ๊ อบเจ็คชื่อ roll เพื่อใช้ โยนลกเต๋ า ซึ่งจะสุ่มหมายเลขหน้ าหงายของลกเต๋ าที่มีค่าตังแต่ ู ู ้ 1 จนถึงจํานวนหน้ าที่เป็ นไปได้ ของลกเต๋ านัน และเมื่อสุ่มหน้ าหงายได้ แล้ ว ก็จะนําไปกําหนดค่ าให้ กับ ู ้ แอตทริบว value ที่เก็บหมายเลขหน้ าหงายของลกเต๋ า โดยที่เมท็อดนีไม่ ต้องมีการคืนค่ ากลับ ิ ู ้ //เมท็อดประจําอ๊ อบเจ็คชื่อ setValue เพื่อใช้ ในการพลิกหน้ าหงายของลกเต๋ าตามที่ต้องการ ซึ่งจะรับ ู ค่ าหมายเลขหน้ าหงายของลกเต๋ าผ่ านทางพารามิเตอร์ และจะนําไปกําหนดค่ าให้ กับแอตทริบว value ู ิ ที่เก็บหมายเลขหน้ าหงายของลกเต๋ า โดยที่เมท็อดนีไม่ ต้องมีการคืนค่ ากลับ ู ้ //เมท็อดประจําอ๊ อบเจ็คชื่อ getFace เพื่อคืนค่ าจํานวนหน้ าของลกเต๋ า ู © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
17.
Classes and Objects
- 12 Computer Programming using Java 173 //เมท็อดประจําอ๊ อบเจ็คชื่อ getValue เพื่อคืนค่ าหมายเลขหน้ าหงายของลกเต๋ า ู //เมท็อดประจําอ๊ อบเจ็คชื่อ show เพื่อแสดงจํานวนหน้ าและหมายเลขหน้ าหงายของลกเต๋ าทีละบรรทัด ู } //End of class public class TestDice { /* สร้ างลกเต๋ าขึนมา 3 ลก ในรปของอ๊ อบเจ็คที่มีช่ ือเป็ น d1, d2 และ d3 ตามลําดับมีรายละเอียดดังนี ้ ู ้ ู ู อ๊ อบเจ็ค d1 เป็ นลกเต๋ าที่ไม่ ได้ ระบุจานวนหน้ าและหมายเลขหน้ าหงาย ู ํ อ๊ อบเจ็ค d2 เป็ นลกเต๋ า 13 หน้ า ที่ไม่ ได้ ระบุหมายเลขหน้ าหงาย ู อ๊ อบเจ็ค d3 เป็ นลกเต๋ า 30 หน้ า ที่มีหมายเลขหน้ าหงายเป็ น 9 ู พร้ อมทังแสดงข้ อมลของลกเต๋ าทัง 3 ลกขึนบนจอภาพ แล้ วทําการโยนลกเต๋ าทัง 3 ลกพร้ อมๆ กัน 20 ้ ู ู ้ ู ้ ู ้ ู ครัง โดยในแต่ ละครั งให้ แสดงหมายเลขหน้ าหงายของลกเต๋ าทัง 3 ลกขึนบนจอภาพ */ ้ ้ ู ้ ู ้ } //End of class © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
18.
174
Computer Programming using Java 12 - Classes and Objects โจทย์ ข้อที่ 11 [ระดับปานกลาง] จงเขียนคลาส RealNumber ซึ่งเป็ นตัวแทนของจํานวนจริงใดๆ หนึ่งจํา- นวน และเขียนคลาส TestRealNumber เพื่อเรียกใช้ เมท็อดจากคลาส RealNumber (15 คะแนน) public class RealNumber { //แอตทริบวประจําอ๊ อบเจ็คแบบ public ชื่อ num เพื่อเก็บค่ าจํานวนจริง ิ //ตัวสร้ างแบบไม่ มีพารามิเตอร์ เพื่อกําหนดค่ าให้ กับแอตทริบว num ตามค่ า Default ิ //ตัวสร้ างแบบมีพารามิเตอร์ เพื่อกําหนดค่ าให้ กับแอตทริบว num ตามค่ าที่ระบุ ิ //เมท็อดประจําอ๊ อบเจ็คชื่อ plus เพื่อรั บค่ าจํานวนจริงหนึ่งจํานวนเข้ ามาทางพารามิเตอร์ แล้ วนํามาหา ผลบวกระหว่ างแอตทริบว num กับค่ าตัวเลขนันพร้ อมทังคืนค่ ากลับ ิ ้ ้ //เมท็อดประจําอ๊ อบเจ็คชื่อ diff เพื่อรั บค่ าจํานวนจริงหนึ่งจํานวนเข้ ามาทางพารามิเตอร์ แล้ วนํามาหา ผลต่ างระหว่ างแอตทริบว num กับค่ าตัวเลขนันพร้ อมทังคืนค่ ากลับ ิ ้ ้ } //End of class © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
19.
Classes and Objects
- 12 Computer Programming using Java 175 public class TestRealNumber { /* สร้ างจํานวนจริง 1 จํานวนในรปของอ๊ อบเจ็ค r ที่มีค่าเป็ น 70 ประเภท RealNumber พร้ อม ู คํานวณหาค่ าผลบวกของตัวเลขนันกับ 15 และผลต่ างของตัวเลขนันกับ 50 พร้ อมทังแสดงผลลัพธ์ ้ ้ ้ ขึนบนจอภาพ*/ ้ } //End of class โจทย์ ข้อที่ 12 [ระดับปานกลาง] จงสร้ างคลาส Account ให้ สมบรณ์ ซึ่งเป็ นคลาสที่ใช้ ในการดําเนินการ ู เกี่ยวกับระบบบัญชีธนาคาร โดยมีรายละเอียดดังต่ อไปนี ้ (10 คะแนน) 1) แอตทริบวชื่อ balance ซึ่งเป็ น Object Variable เพื่อเก็บยอดเงินในบัญชี ิ 2) คอนสตรักเตอร์ 2 แบบเพื่อใช้ ในการกําหนดค่ าเริ่มต้ นให้ กับยอดเงินเมื่อเริ่มเปิ ดบัญชี ถ้ าไม่ ได้ ระบุจานวนเงินเมื่อเริ่มต้ นเปิ ดบัญชีให้ ยอดเงินเป็ น 0 บาท ํ ถ้ ามีการระบุจานวนเงินเมื่อเริ่มต้ นเปิ ดบัญชีให้ ยอดเงินเป็ นไปตามค่ าที่ระบุ ํ 3) เมท็อด deposit(…) ซึ่งเป็ น Object Method เพื่อใช้ ในการฝากเงินตามจํานวนเงินที่ระบุโดยไม่ มีการ คืนค่ ากลับ 4) เมท็อด withdraw(…) ซึ่งเป็ น Object Method เพื่อใช้ ในการถอนเงินตามจํานวนเงินที่ระบุและต้ อง ตรวจสอบยอดเงินก่ อนเสมอว่ ามีเพียงพอในการถอนเงินหรือไม่ พร้ อมทังคืนเงินที่ถอนด้ วย ้ 5) เมท็อด getbalance(…) ซึ่งเป็ น Object Method เพื่อคืนค่ ายอดเงินคงเหลือในบัญชี © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
20.
176
Computer Programming using Java 12 - Classes and Objects ให้ สร้ างคลาส TestAccount เพื่อเรี ยกใช้ งานคลาส Account โดยให้ เปิ ดบัญชีขึนมา 1 บัญชีพร้ อมฝาก ้ เงินเริ่ มต้ นเปิ ดบัญชีจานวน 2000 บาท หลังจากนันจึงทําการถอนเงิน 1500 บาท และฝากเพิ่มอีก 800 ํ ้ บาท ตามลําดับ (ในแต่ ละกระบวนการให้ แสดงยอดเงินในบัญชีหลังทํารายการทุกครัง) (10 คะแนน) ้ © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
21.
Classes and Objects
- 12 Computer Programming using Java 177 โจทย์ ข้อที่ 13 [ระดับปานกลาง] จงสร้ างคลาส PiggyBank ให้ สมบรณ์ เพื่อสร้ างกระปุกออมสินลกหมซึ่ง ู ู ู เก็บเฉพาะเหรียญ 1 บาท 2 บาท 5 บาท และ 10 บาท โดยมีรายละเอียดดังต่ อไปนี ้ (20 คะแนน) public class PiggyBank { (1) แอตทริบวประจําอ๊ อบเจ็คแบบ public ชื่อ one, two, five และ ten ตามลําดับ เพื่อเก็บจํานวน ิ ของเหรียญแต่ ละเหรี ยญ (2) แอตทริ บิวประจําอ๊ อบเจ็คแบบ public ชื่อ size เพื่อเก็บความจุของค่ าเงินรวมสงสุดที่สามารถ ู เก็บได้ ในกระปุก (3) ตัวสร้ าง 2 แบบเพื่อกําหนดค่ าเริ่มต้ นของกระปุก 1) ถ้ าไม่ มีการกําหนดค่ าใดๆ ให้ แอตทริบว size เป็ น 100 แอตทริบวอื่นเป็ น 0 ิ ิ 2) ถ้ ามีการกําหนดค่ าให้ กับแอตทริบว size ก็ให้ size เท่ ากับค่ าที่กาหนดมาส่ วนแอตทริบวอื่น ิ ํ ิ เป็ น 0 (4) เมท็อดประจําอ๊ อบเจ็คชื่อ clear(…) เพื่อทําการนําเหรี ยญออกจากกระปุกโดยไม่ มีการคืนค่ า กลับ (การนําเหรี ยญออกจากกระปุกคือให้ จานวนเหรี ยญทุกเหรียญเท่ ากับ 0) ํ © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
22.
178
Computer Programming using Java 12 - Classes and Objects (5) เมท็อดประจําอ๊ อบเจ็คชื่อ getTotal(…) เพื่อคืนค่ าเงินรวมทังหมดที่เก็บสะสมในกระปุก ้ (6) เมท็อดประจําอ๊ อบเจ็คชื่อ full(…) เพื่อตรวจสอบว่ ากระปุกเต็มหรื อไม่ ถ้ าเต็มจะคืนค่ า true ถ้ าไม่ เต็มจะคืนค่ า false (7) เมท็อดประจําอ๊ อบเจ็คชื่อ addOne(…) เพื่อใช้ หยอดเหรี ยญ 1 บาท ตามจํานวนเหรี ยญที่ระบุลง ในกระปุก โดยก่ อนหยอดเหรียญจะต้ องตรวจสอบก่ อนว่ ากระปุกออมสินเต็มหรือไม่ (8) เมท็อดประจําอ๊ อบเจ็คชื่อ addTwo(…) เพื่อใช้ หยอดเหรี ยญ 2 บาท ตามจํานวนเหรี ยญที่ระบุลง ในกระปุก โดยก่ อนหยอดเหรียญจะต้ องตรวจสอบก่ อนว่ ากระปุกออมสินเต็มหรือไม่ © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
23.
Classes and Objects
- 12 Computer Programming using Java 179 (9) เมท็อดประจําอ๊ อบเจ็คชื่อ addFive(…) เพื่อใช้ หยอดเหรียญ 5 บาท ตามจํานวนเหรี ยญที่ระบุลง ในกระปุก โดยก่ อนหยอดเหรียญจะต้ องตรวจสอบก่ อนว่ ากระปุกออมสินเต็มหรือไม่ (10) เมท็อดประจําอ๊ อบเจ็คชื่อ addTen(…) เพื่อใช้ หยอดเหรี ยญ 10 บาท ตามจํานวนเหรี ยญที่ระบุ ลงในกระปุก โดยก่ อนหยอดเหรียญจะต้ องตรวจสอบก่ อนว่ ากระปุกออมสินเต็มหรือไม่ }//End of class © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
24.
180
Computer Programming using Java 12 - Classes and Objects จงสร้ างคลาส TestPiggyBank เพื่อเรี ยกใช้ งานคลาส PiggyBank โดยสร้ างกระปุกออมสินขนาดความจุ 500 บาท พร้ อมทังมีการเก็บเหรี ยญสองบาท 34 เหรี ยญ และเหรี ยญสิบบาท 13 เหรี ยญ โดยในการเพิ่ม ้ เหรี ยญแต่ ละครั งให้ แสดงค่ าเงินรวมทังหมดในกระปุกให้ เห็นทุกครัง ้ ้ ้ public class TestPiggyBank { public static void main(String[] args) { }//End of main }//End of class © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
Baixar agora