chp07 - UTCC e

Download Report

Transcript chp07 - UTCC e

บทที่ 7
การสร้างและการเรียกใช้คลาส
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
1
7.1
คลาส
การนิยามคลาส คือการกาหนดโครงสร้างของอ็อบเจกต์
และวิธกี ารจัดการกับอ็อบเจกต์
ทุกๆ อ็อบเจกต์จะต้องมีคลาส
การสร้างคลาสใหม่ทเ่ี ร็วและง่าย โดยกาหนดให้คลาส
ใหม่เป็ นคลาสลูกหรือคลาสย่อย (subclass) ของ
คลาสทีม่ อี ยูแ่ ล้ว
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
2
7.2
การสร้างคลาส
class SimpleApp {
public static void main (String[] args)
{
System.out.println(“Hello World”);
}
}
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
3
7.2.1 การนิยามคลาส
รู ปแบบ
class <
ชื่อคลาส
>
{
[ กำหนดตัวแปร ]
[ กำหนดเมท็อด ]
}
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
option
4
7.2.1 การนิยามคลาส
class Nothing {
คลำสว่ำง
}
หรือ
class Nothing
{
คลำสว่ำง
}
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
5
7.2.1 การนิยามคลาส
class Lamp {
boolean power_on;
void SetState (boolean on_state) {
power_on = on_state;
}
void PrintState ( ) {
String state=“”;
if(power_on) {
state = “Lamp is on”; }
else {
state = “Lamp is off”; }
JOptionPane.showMessageDialog(null, state);
}
}
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
6
7.2.2 สมาชิกของคลาส
คลาสสามารถมีสมาชิกได้ 3 ชนิด ดังนี้
ฟิลด์ (fields) หรือ ตัวแปร (variable)
เมท็อด (methods)
คลาสซ้อน (nested classes) และ nested interface
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
7
7.2.3 คาขยายคลาส
public
abstract
final
ใน 1 ไฟล์ มีกค่ี ลาสก็ได้ แต่จะมีคลาส public เพียง 1 คลาสเท่านัน้
และคลาส public นัน้ ต้องตัง้ ชื่อเหมือนกับชื่อไฟล์ดว้ ย
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
8
ตัวอย่ำงกำรนิยำมคลำสและกำรตั้งชื่อไฟล์
class Sample {
Sample.java
….
}
--------------------------------------------class Exam {
SuperExam.java
…
}
public class SuperExam {
…
}
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
9
public class Aclass {
…
Aclass.java
}
class Bclass {
…
}
class Cclass {
…
}
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
10
7.2.4 ฟิลด์
ตัวแปรของคลำสจะถูกเรี ยกว่ำฟิ ลด์
กำรประกำศฟิ ลด์ ประกอบด้วย ชนิดข้อมูลและตำมด้วยชื่อฟิ ลด์
อำจมีกำรกำหนดค่ำเริ่ มต้นให้ตวั แปรด้วย
กำรเปลี่ยนค่ำฟิ ลด์ของอ็อบเจกต์ใดจะไม่มีผลต่อฟิ ลด์ของอ็อบเจกต์อื่นๆ
ในคลำสนั้น
กำรนิยำมฟิ ลด์อำจนำหน้ำด้วยตัวขยำย
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
11
Account
Class
Data
value
minimum
balance
100
John’s Acct
Jill’s Acct
Jack’s Acct
current
balance
current
balance
current
balance
908.55
1304.98
354.00
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
12
7.2.5 การกาหนดค่าเริ่มต้นให้ฟิลด์
double zero = 0.0 ;
// constant
double sum = 4.5 + 3.7 ;
// constant expression
double zeroCopy = zero ;
// field
double rootTwo = Math.sqrt(2) ;
// method invocation
double someVal = sum + 2 * Math.sqrt(rootTwo);
// mixed
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
13
Body
Class Data
Value
nextID
0
obj1Body
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
obj2Body
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
Obj3Body
14
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
15
7.2.6 ฟิลด์ static
class Body {
public long idNum ;
public String name ;
public Body orbits ;
public static long nextID = 0 ;
}
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
16
7.2.7 ฟิลด์ final
เป็ นตัวแปรที่ไม่สำมำรถเปลี่ยนแปลงค่ำหลังจำกกำหนดค่ำเริ่ มต้น
จะใช้ final field กับตัวแปรที่เก็บค่ำคงที่
ใช้กำหนดคุณสมบัติที่ไม่ตอ้ งกำรเปลี่ยนแปลงของคลำสหรื อของอ็อบ
เจกต์
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
17
7.2.8 ควบคุมการเข้าถึงฟิลด์
public
private
protected
package
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
18
7.3
อ็อบเจกต์ (objects)
เมท็อดหรือพฤติกรรม ของอ็อบเจกต์
เป็ นการบอกว่าสามารถทาอะไรกับอ็อบเจกต์น้ีได้บา้ ง
หรือสามารถใช้เมท็อดอะไรบ้างกับอ็อบเจกต์น้ี
สถานะของอ็อบเจกต์ เป็ นการบอกว่าอ็อบเจกต์จะมีปฏิกริ ยิ า
ตอบสนองอย่างไรเมือ่ ใช้เมท็อดกับอ็อบเจกต์นนั ้
เอกลักษณ์เฉพาะของอ็อบเจกต์ เป็ นการบอกว่าอ็อบเจกต์นนั ้
แตกต่างจากอ็อบเจกต์อ่นื อย่างไร แม้วา่ จะมีพฤติกรรมและสถานะ
เหมือนกัน
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
19
7.4
การสร้างอ็อบเจกต์
อ็อบเจกต์จะถูกสร้างโดยใช้ตวั ดาเนินการ new หรือคาสัง่ new()
ตัวดาเนินการ new จะสร้างอ็อบเจกต์ทม่ี ชี นิดตามระบุและ
เรียก คอนสตรัคเตอร์ (constructor) ทีเ่ หมาะสมกับพารามิเตอร์ท่ี
ถูกส่งไปพร้อมคาสัง่ new()
ระบบจะส่งตัวอ้างอิง (reference) อ็อบเจกต์ทส่ี ร้างใหม่นนั ้ กลับมา
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
20
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
21
7.4.1
ตัวดาเนินการ new
จะสร้ำงอ็อบเจกต์ใหม่ของคลำสนั้นขึ้นมำ
มีกำรจัดสรรเนื้อที่หน่วยควำมจำสำหรับอ็อบเจกต์ที่ถกู สร้ำง
จะเรี ยก คอนสตรั คเตอร์ ซึ่งเป็ นเมท็อดเฉพำะให้ทำงำน
ในคลำสใดๆ อำจมีจำนวนคอนสตรัคเตอร์ได้ตำมต้องกำร
ซึ่งจะมีจำนวนและชนิดอำร์กิวเมนต์แตกต่ำงกันไป
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
22
ตัวอย่ำงกำรจองเนื้อที่สำหรับอ็อบเจกต์จำกคลำส DateObject
class DateObject {
int Day = 1 ;
int Month = 1 ;
int Year = 2000 ;
DateObject
DateObject( ) {
Year = 2007 ;
}
Day
1
Month
1
Year
2000
DateObject (int new_day, int new_month, int new_year ) {
Day = new_day ;
Month = new_month ;
Year = new_year ;
}
}
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
23
เขียนคำสัง่ ประกำศและจองเนื้อที่สำหรับอ็อบเจกต์
ชื่อ
theDate
DateObject theDate ;
theDate = new DateObject() ;
theDate
Day
1
Month
1
Year
2007
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
Default constructor
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
24
เขียนคำสัง่ ประกำศและจองเนื้อที่สำหรับอ็อบเจกต์ theDate
DateObject theDate ;
theDate = new DateObject(14, 9, 2005) ;
theDate
Day
Month
Year
overloaded Method
14
9
2005
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
25
7.5
การอ้างถึงอ็อบเจกต์
DateObject theDate ;
theDate = new DateObject (14, 9, 2005) ;
theDate.Year = 2006 ;
Lamp theLamp ;
theLamp = new Lamp() ;
theLamp.SetState(true) ;
theLamp.PrintSate() ;
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
26
7.5.1 การใช้ null
if (theDate != null)
{
System.out.println(“DateObject exists”) ;
}
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
27
7.5.2 ตัวดาเนินการและตัวอ้างอิง
ตัวดาเนินการ
==
!=
instanceof
ความหมาย
เท่ากับ
ไม่เท่ากับ
เป็ นสมาชิกของคลาส
if (someObject instanceof Lamp) {
((Lamp)someObject).SetState(true) ;
}
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
28
7.6 การห่อหุ้ม (Encapsulation)
กล่าวถึงตอนท้ายบท
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
29
7.7
แพคเกจ (Packages)
แพคเกจคือ กลุ่มของคลาสทีม่ หี น้าทีส่ มั พันธ์กนั
ทาให้สามารถนาแพคเกจนัน้ ไปใช้ในโปรแกรมอื่นๆ ได้
แพคเกจใดๆ สามารถมีแพคเกจย่อยภายในได้อกี
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
30
7.7.1 การใช้แพคเกจ
ถ้าคลาสทีเ่ ราต้องการใช้อยูใ่ นแพคเกจมาตรฐาน java.lang เช่น
System หรือ Date เราสามารถใช้ช่อื คลาสได้เลย
ถ้าเราต้องการใช้คลาสในแพคเกจอื่น เราต้องอ้างถึงคลาสนัน้ โดย
ใช้ช่อื เต็มรวมทัง้ ชื่อแพคเกจด้วย เช่น java.awt.Font
ถ้าเป็ นคลาสทีเ่ ราใช้บ่อยๆ จากแพคเกจอื่น เราสามารถ import
แต่ละคลาสหรือ import แพคเกจทีม่ คี ลาสนี้เข้ามาในโปรแกรม
แล้วอ้างถึงคลาสโดยใช้ช่อื คลาสนัน้
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
31
7.7.2 การใช้ชื่อแพคเกจและชื่อคลาสเต็มรูปแบบ
การใช้คลาสนัน้ เพียงครัง้ เดียวหรือสองครัง้ ในโปรแกรม
ไม่ตอ้ งใช้คาสัง่ import
เช่น ต้องการใช้คลาส Date ในแพคเกจ java.util
เพือ่ สร้างอ็อบเจกต์ theDate เขียนดังนี้
Java.util.Date theDate = new java.util.Date() ;
System.out.println(theDate) ;
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
32
7.7.3
คาสัง่ import
Java.util.Date theDate = new java.util.Date() ;
System.out.println(theDate) ;
เขียนใหม่โดยใช้คาสัง่ import ได้ดงั นี้
import java.util.Date ;
Date theDate = new Date() ;
System.out.println(theDate) ;
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
33
7.7.4 คลาสชื่อเหมือนกัน
ในแพคเกจ java.util และ java.sql ต่างก็มคี ลาส Date
import java.util.* ;
import java.sql.* ;
ถ้าใช้คลาส Date กาหนดตัวแปร today จะเห็นข้อผิดพลาดในช่วงคอมไพล์
โปรแกรม ดังนี้
Date today ; // ERROR - - java.util.Date or java.sql.Date ?
แก้ปัญหา โดยเพิม่ คาสัง่ import ทีร่ ะบุเฉพาะ Date เข้าไปด้วยดังนี้
import java.util.* ;
import java.sql.* ;
import java.util.Date ;
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
34
7.7.5 สร้างแพคเกจใช้เอง
โดยมีหลักการพืน้ ฐาน 3 ขัน้ ตอน คือ
1. กาหนดชือ่ แพคเกจ
2. สร้างโฟล์เดอร์ ให้มชี อ่ื เดียวกับแพคเกจ
3. เพิม่ คลาสเข้าไปในแพคเกจ
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
35
ตัวอย่าง การสร้างแพคเกจชือ่ MyPackage เขียน
คาสังจาวาได้
่
ดงั นี้
// MyClass.java
package MyPackage ;
public class MyClass {
public void test( ) {
JOptionPane.showMessageDialog(null, “test”) ;
}
}
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
36
ไฟล์ .java และ
.class
โฟล์เดอร์ที่สร้างเตรียมไว้ก่อนชื่อ
เดียวกับแพคเกจ
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
37
โปรแกรมที่ import คลาส MyClass จากแพคเกจ MyPackage
เขียนดังนี้
// PackageTestApp.java
import MyPackage.MyClass;
class PackageTestApp {
public static void main( String args[] ) {
MyClass theClass = new MyClass() ;
theClass.test();
}
}
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
38
โปรแกรมที่เรี ยกใช้คลำส
ต้องอยูใ่ นโฟล์เดอร์ เดียวกับ
แพคเกจ
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
39
โปรแกรมที่ import คลาส MyClass จากแพคเกจ MyPackage เขียนดังนี้
// PackageTestApp.java
import MyPackage.MyClass;
class PackageTestApp {
public static void main( String args[] ) {
MyClass theClass = new MyClass() ;
theClass.test();
}
}
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
40
// ClassA.java
ไฟล ์ ClassA.java
package MyPackage ; // แพคเกจเก็บคลาส ClassA
public class ClassA {
public void printA( ) {
}
}
System.out.println("test print method ClassA ");
// ClassB.java
ไฟล ์ ClassB.java
package MyPackage ; // แพคเกจเก็บคลาส ClassB
public class ClassB {
public void printB( ) {
}
}
System.out.println("test print method ClassB");
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
41
จำนวนคลำสทั้งหมดในแพคเกจ
MyPackage
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
42
// PackageTestApp.java
import MyPackage.* ;
class PackageTestApp {
public static void main( String args [ ] ) {
MyClass theClass = new MyClass( );
theClass.test( );
ClassA theA = new ClassA( );
theA.printA( );
}
}
ClassB theB = new ClassB( );
theB.printB( );
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
43
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
44
// PackageTestApp.java
import MyPackage.* ;
class PackageTestApp {
public static void main( String args [ ] ) {
MyClass theClass = new MyClass( );
theClass.test( );
ClassA theA = new ClassA( );
theA.printA( );
}
}
ClassB theB = new ClassB( );
theB.printB( );
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
45
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
46
ข้ อผิดพลาดที่คอมไพล์เลอร์ แจ้ งให้ ทราบ
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
47
7.8
แพคเกจจาวา
คลำสส่ วนมำกที่ใช้กนั ทัว่ ไป เช่น String class และ
Math class
จะอยูใ่ นแพคเกจชื่อ java.lang
จำวำจะจัดเตรี ยมให้ใช้ได้อตั โนมัติ ไม่ตอ้ งใช้คำสัง่ import
ถ้ำต้องกำรใช้คลำสที่ไม่อยูใ่ น java.lang.package
ต้องใช้คำสัง่ import ตอนต้นโปรแกรม
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
48
7.9 String Class
String( String str )
String( )
length( )
toUpperCase( )
toLowerCase( )
charAt( int index )
indexOf( String searchString )
indexOf( char searchChar )
Substring( int startIndex, int endIndex )
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
49
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
50
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
51
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
52
7.10 Math Class
Math.E
Math.PI
abs( arg )
log( double a )
min( argA, argB )
max( argA, argB )
pow( double base, double exp )
random( )
round( double a )
sqrt( double a )
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
53
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
54
7.11
การใช้ System.out
void print( argument )
void println( argument )
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
55
7.12
การนาอ็อบเจกต์มาใช้ใหม่
นาคลาสกลับมาใช้ใหม่ หมายถึงนาคลาสไปใช้ในโปรแกรมอืน่ ๆ
นาโปรแกรมทีเ่ ขียนไว้มาใช้
เขียนใหม่จากข้อมูลทีม่ อี ยู่
นาคลาสมาใช้ในลักษณะการสืบทอดคลาส
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
56
7.13
การเข้าถึงคลาส
การเข้าถึงคลาส เพือ่ จะใช้ออ็ บเจกต์ในคลาสใดๆ
อาจเป็ นการใช้ตวั แปรหรือการใช้เมท็อดของอ็อบเจกต์นนั ้
ต้องมีวธิ ปี ้ องกันไม่ให้ผทู้ ไ่ี ม่ได้รบั อนุญาตมาใช้
ในขณะเดียวกันก็อนุญาตให้ผทู้ ส่ี มควร เรียกใช้ได้ตามต้องการ เช่น
– การเก็บในลักษณะของแพคเกจ
– การกาหนดกลไกการเข้าถึงคลาสและเมท็อดโดยการใช้คาขยาย
หน้าคลาสและเมท็อด เช่น public , private หรือ
protected
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
57
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
58
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
59
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
60
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
61
แนะนำเว็บไซต์
http://java.sun.com/j2se/1.4.2/docs/api/jav
a/lang/String.html
http://www.thaiarticle.com/article/content/view/1771/198/
http://www.beginner-java-tutorial.com/javastring-class.html
SC131 ความรู้เบื ้องต้ นเกี่ยวกับการโปรแกรมเชิงวัตุ
SC134 การโปรแกรมเชิงอ็อบเจ็กต์เบื ้องต้ น
62