สอนครั้งที่ 4 cpe4235...
TRANSCRIPT
![Page 1: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/1.jpg)
CPE4235 การวเคราะหและโปรแกรมเชงวตถ
จตกร พทกษเมธากลJava Web Developer @Geniustree Co.,Ltd“i am programmer.”
![Page 2: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/2.jpg)
ถาคดแลวไมไดท า เทากบไมไดคดเสนบางๆ ระหวางความจรงกบความฝน
คอ “การลงมอท า”
CPE4235
![Page 3: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/3.jpg)
ทบทวน
CPE4235
![Page 4: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/4.jpg)
• class, abstract class, interface• object• attribute• method
• this, static• package , import• OOP
• Encapsulation• Inheritance• Polymorphism
CPE4235
![Page 5: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/5.jpg)
Annotation, Wrapper Class, Enum Type and Unit Test
CPE4235
4
![Page 6: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/6.jpg)
เนอหา
• Annotation• Java Reflection• Enum Type• Wrapper Class• Unit Test
CPE4235
enum
@
test
![Page 7: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/7.jpg)
CPE4235
Annotation
![Page 8: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/8.jpg)
CPE4235
เราอาจจะเคยเหน
@Override@Entity@Table@Column@Autowired@....
อนนแหละทเขาเรยกวา Annotation
![Page 9: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/9.jpg)
CPE4235
Annotation คอ Configuration บน Java Source Codeมไวส าหรบเกบ Meta Data ของสงทถกประกาศไว
![Page 10: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/10.jpg)
CPE4235
เชน
@Entity@Table(name=“os_user”)public class User implements UserDetails {
@Id@Column(length = 50)private String username;@Overridepublic String getUsername( ){ return username; }
}
![Page 11: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/11.jpg)
CPE4235
จากตวอยาง
เราใช Annotation ในการอธบาย / เกบ configuration ของ class field และ method
วา class นน field นน หรอ method นนเปนอะไร ม meta data อะไรถกนยามไวบาง
![Page 12: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/12.jpg)
CPE4235
Annotation เรมมการใชครงแรกใน Java 5
ปญหาทท าใหตองม Annotation คอปกต เวลาทเราจะเกบ configuration อะไรสกอยาง เรามกจะเกบลงใน xml file
ทวา เมอระบบ หรอ code มขนาดใหญขน กท าใหการอาน config จาก xml มความล าบาก และวนวายยงขน
![Page 13: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/13.jpg)
CPE4235
เขาจงไดคดคน Annotation ขนมา เพอเอา configuration มาเกบลงใน Java Source Code เลย
เพอลดความยงยาก และความซบซอนในการอาน xml
![Page 14: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/14.jpg)
CPE4235
Annotation จะม @ น าหนา เชน @Override
สามารถใชไดกบทง • class, interface• field (attribute) • method• package• parameter• constructor• …
![Page 15: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/15.jpg)
CPE4235
เราสามารถสราง Annotation ขนมาใชงานเองไดโดยการประกาศ interface ทม @ น าหนา ดงน
เชน เราจะสราง @Column (name = “”, pattern = “”)
public @interface Column {
}
![Page 16: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/16.jpg)
CPE4235
จากนน ก าหนดวาจะใหใช @Column บนอะไรไดบางเอาไปใชทจดไหนของ Java source code(class, field, method, …) ดวย @Taget
@Taget(ElementType.FIELD)public @interface Column {
}
![Page 17: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/17.jpg)
CPE4235
ถาหลายอนเราจะใช @Target(value = { … }) เชน
@Target(value = {ElementType.FIELD, ElementType.METHOD
}) public @interface Column {
}
![Page 18: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/18.jpg)
CPE4235
@Taget ElementType สามารถเปนไปได 8 คา ดงน
• TYPE – Class, interface (annotation ), or enum declaration • FIELD - Field declaration (includes enum constants) • METHOD - Method declaration• PARAMETER - Parameter declaration• CONSTRUCTOR - Constructor declaration• LOCAL_VARIABLE - Local variable declaration• ANNOTATION_TYPE - Annotation type declaration• PACKAGE - Package declaration
![Page 19: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/19.jpg)
CPE4235
จากนน ก าหนดวา Annotation นจะถกใชงานหรอมองเหนในระดบใด ดวย @Retention
@Retention(RetentionPolicy.RUNTIME)@Taget(ElementType.FIELD)public @interface Column {
}
![Page 20: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/20.jpg)
CPE4235
ถกใชงานหรอมองเหนในระดบใด หมายถงAnnotation นนเอาไวใชท าอะไร เมอไร (ณ ชวงเวลาใด)
เชน
เปน Annotation ส าหรบตรวจสอบขอมลตอน Compile timeหรอเปน Annotation เอาไวประมวลผลขอมลตอน Run timeหรอเปน Annotation ทเอาไวใชเฉพาะใน Source code เทานนเปนตน
![Page 21: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/21.jpg)
CPE4235
@Retention RetentionPolicy สามารถเปนไปได 3 คา ดงน
• SOURCE – ใชไดในระดบ Source code เทานน ไมสามารถท างานทเวลา Compile time และ Run time ได
• CLASS – ใชไดในระดบ Source code และ Compile time แตไมเหนตอน Run time
• RUNTIME – ใชไดทง Source Code, Compile time และ Run time
![Page 22: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/22.jpg)
CPE4235
จากนน ก าหนด method ของ @Column (name = “”, pattern = “”)
@Retention(RetentionPolicy.RUNTIME)@Taget(ElementType.FIELD)public @interface Column {
String name( );String pattern ( );
}
![Page 23: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/23.jpg)
CPE4235
เราสามารถก าหนดคา default ได ดวย “default” keyword
@Retention(RetentionPolicy.RUNTIME)@Taget(ElementType.FIELD)public @interface Column {
String name( ) default “”;String pattern ( ) default “dd/MM/yyyy”;
}
![Page 24: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/24.jpg)
CPE4235
Java Reflection
![Page 25: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/25.jpg)
CPE4235
Reflection = เงาสะทอน
เวลาทเราสองกระจกใส เรากจะเหนเงาสะทอนของตวเองเราจะรวาหนาตาตวเองเปนยงไง ปาก คว จมก ตา หของเราเปนยงไง
![Page 26: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/26.jpg)
CPE4235
Java Reflection กเหมอนกนเปนสงทสะทอนถง Class นนๆ วามหนาตาเปนยงไง
![Page 27: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/27.jpg)
CPE4235
Java Reflection
เปนวธการเขยนโปรแกรมเพอดหนาตาของ class (****)วา class นนๆ หนาตาเปนยงไง
เปนการดหนาตาแบบ dynamic คอใชการเขยนโปรแกรมเพอตรวจเชคหนาตาใหเอง
*** รวมทง interface, annotatoin, enum ….
![Page 28: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/28.jpg)
CPE4235
เชน
• เราอยากรวา class นน มชอวาอะไร• อยากรวา class นนมชอเตมวาอะไร (ชอ + package) • อยากรวา class นนม Annotation อะไรบาง• อยากรวา class นน extends มาจาก class อะไร• อยากรวา class นน implements interface อะไรบาง• อยากรวา class นนม method อะไรบาง• อยากร...
![Page 29: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/29.jpg)
CPE4235
เชน
• อยากเรยก method ของ class นนแบบ dynamic• อยาก set คาลง method แบบ dynamic• อยากดง (get) คาจาก method แบบ dynamic• …
![Page 30: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/30.jpg)
CPE4235
เราอยากรวา class นน มชอวาอะไร
package com.pamarin.chapter4;import java.io.Serializable;public class Staff implements Serializable {
public static void main(String[] args) {//StaffSystem.out.println(Staff.class.getSimpleName());
}}
![Page 31: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/31.jpg)
CPE4235
อยากรวา class นนมชอเตมวาอะไร (ชอ + package)
package com.pamarin.chapter4;import java.io.Serializable;public class Staff implements Serializable {
public static void main(String[] args) {// com.pamarin.chapter4 .StaffSystem.out.println(Staff.class.getName());
}}
![Page 32: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/32.jpg)
CPE4235
อยากรวา class นน extends มาจาก class อะไร
package com.pamarin.chapter4;import java.io.Serializable;public class Staff implements Serializable {
public static void main(String[] args) {// java.lang.ObjectSystem.out.println(Staff.class.getSuperclass().getName());
}}
![Page 33: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/33.jpg)
CPE4235
อยากรวา class นน implements interface อะไรบาง
package com.pamarin.chapter4;import java.io.Serializable;public class Staff implements Serializable {
public static void main(String[] args) {// java.io.Serializablefor(Class clazz : Staff.class.getInterfaces()){
System.out.println(clazz.getName());}
}
![Page 34: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/34.jpg)
CPE4235
อยากรวา class นนม method อะไรบาง
package com.pamarin.chapter4;import java.io.Serializable;import java.lang.reflect.Method;public class Staff implements Serializable {
public static void main(String[] args) {// mainfor(Method method : Staff.class.getDeclaredMethods()){
System.out.println(method.getName());}
![Page 35: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/35.jpg)
CPE4235
Get คาจาก method
public class Reflect {public static void main(String[] args) throws Exception {
Reflect reflect = new Reflect();Method method = reflect.getClass().getMethod("getName");System.out.println("name --> " + method.invoke(reflect));
}
public String getName(){ return "reflection"; }}
![Page 36: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/36.jpg)
CPE4235
Set คาลง method
public class Reflect {public static void main(String[] args) throws Exception {
Reflect reflect = new Reflect();Method method = reflect.getClass()
.getMethod("setName", String.class);method.invoke(reflect, "reflect");
}public void setName(String name){
System.out.println("set --> " + name); //set --> reflect}
![Page 37: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/37.jpg)
CPE4235
เมอเรารหนาตาของมนแลวเราเอามาใชท าอะไร?
![Page 38: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/38.jpg)
CPE4235
การเขยนโปรแกรมบางอยาง เราอาจจะไมทราบลวงหนา วาเราตองเขยน code ใหท างานกบ class field หรอ method อะไรบาง
![Page 39: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/39.jpg)
CPE4235
เราตองการเขยนโปรแกรมเผออนาคตอยากใหโปรแกรมมนตรวจสอบใหเองโดยอตโนมต
ไมวาเราจะสงขอมลอะไรเขาไปกตาม
![Page 40: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/40.jpg)
CPE4235
เชน การเขยนโปรแกรม เพอแปลงขอมลจาก java class ไปเปน database table ทเราไมรวา โปรแกรมเมอรจะก าหนด field database เปนอะไรบาง เรากใช java reflection ชวยตรวจสอบให
![Page 41: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/41.jpg)
CPE4235
หรอเราตองการเขยนโปรแกรมเพอแปลงขอมลจาก excel ไปเปน java object
เราไมรวาผใชจะก าหนดหว excel มาเปนอะไรบางและเราจะตองสราง class อะไรเพอรองรบ excel นน
เรากใช java reflection เพอชวยในการตรวจสอบ และแปลงใหเปนตน
![Page 42: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/42.jpg)
CPE4235
มาดตวอยางจรงๆ กนดกวาจากโปรเจคน
https://github.com/jittagornp/excel-object-mapping
![Page 43: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/43.jpg)
CPE4235
Enum Type (Enumeration)
![Page 44: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/44.jpg)
CPE4235
เวลาทเราเขยนโปรแกรมการก าหนดคาตวแปร จะตองเปนไปตาม Type หรอชนดขอมล นนๆ เชน
int – จะมคาเปน 0, 1, 2, 3boolean – จะมคาเปน true, falsechar – จะมคาเปน ‘A’, ‘B’, ‘C’, ‘D’
เปนตน
![Page 45: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/45.jpg)
CPE4235
ตอนเขยนโปรแกรม กเลยมกจะเจอ เงอนไขลกษณะน
int condition = …if(condition == 1){
…} else if (condition == 2){
…} else if (condition == 3){
…} else if …
![Page 46: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/46.jpg)
CPE4235
หรอแบบน
char condition = …if(condition == ‘S’){
…} else if (condition == ‘M’){
…} else if (condition == ‘T’){
…} else if …
![Page 47: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/47.jpg)
CPE4235
Code มนไมคอยจะสอความหมายเทาไหรนะ
1 คออะไร ? ‘S’ คออะไร ?2 คออะไร ? ‘M’ คออะไร ?3 คออะไร ? ‘T’ คออะไร ?
เสยเวลาอาน + ไลด code
![Page 48: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/48.jpg)
CPE4235
บางครง เรากตองการคาตวแปรทมนสอความหมายมากกวาท primitive data type จะใหได
![Page 49: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/49.jpg)
CPE4235
เขากเลยแกปญหา โดยการใช String เพอใหมนมความหมายของ code มากกวาเดม
ดงน
![Page 50: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/50.jpg)
CPE4235
แก code ใหม
String condition = …if(“SUNDAY”.equals(condition)){
…} else if (“MONDAY”. equals(condition)){
…} else if (“TUESDAY”. equals(condition)){
…} else if …
![Page 51: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/51.jpg)
CPE4235
ดแลวงายขน รทนทวา code ตองการสอความหมายวาอยางไร
![Page 52: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/52.jpg)
CPE4235
แต!
![Page 53: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/53.jpg)
CPE4235
มนกยงเปนปญหาอย ด
ปญหาอะไรหรอ?
แลวถาสมมตวาเราพมพ ค าวา TUESDAY ผดละจะเกดอะไรขน
แนนอน มนไมมทางเขาเงอนไข นนแนๆเพราะเราสะเพรา พมพผดเอง (Bug Programmer)
![Page 54: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/54.jpg)
CPE4235
เขากเลยแกปญหาใหมอกท ดวยการก าหนดเปน static final
public class Days {public static final String SUNDAY = “SUNDAY”;…
}
if(Days.SUNDAY.equals(condition)){
}
![Page 55: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/55.jpg)
CPE4235
มนก OK ขนนะ work เลยแหละแตมนตดอยอยางนง
ตวแปร Days.SUNDAY มนไมม พฤตกรรม (method) ทเราตองการ เพราะวามนเปน String เราใชไดแค method ทเปนของ String เทานน
เอาไงดละ? มนไมครบตามทเราตองการอะ
![Page 56: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/56.jpg)
CPE4235
ทางออก คอ Enum Type
เราจะเปนคนก าหนดชนดขอมลขนมาใชงานเองขอมลทมคาเปน• SUNDAY • MONDAY• TUESDAY• …
เปนตวขอมลจรงๆ เลย ไมใช String นะ
![Page 57: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/57.jpg)
CPE4235
การประกาศ enum
public eum Days { //ม 7 คาทเปนไปไดSUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY
}
![Page 58: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/58.jpg)
CPE4235
ตอนนเราม enum Days มาใชงานเองละ ลองแก code เดมใหม
Days condition = …if(condition == Days.SUNDAY){
…} else if (condition == Days.MONDAY){
…} else if (condition == Days.TUESDAY){
…} else if …
![Page 59: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/59.jpg)
CPE4235
สอความหมาย เหมอนทใช String
และทส าคญ คอไมมทางพมพผดดวยเพราะถาพมพผด Code จะ Compile ไมผานบวกกบมพฤตกรรม (method) ในตว
Work โคตร!!!
![Page 60: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/60.jpg)
CPE4235
เราสามารถก าหนด Attribute และ Method ให enum ได ดงน
public eum YesNo{YES(“ใช”),NO(“ไมใช”);private final String description;private YesNo(String desc){
description = desc;}public String getDescription(){ return description; }
}
![Page 61: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/61.jpg)
CPE4235
วธใช
YesNo answer = …if(answer == YesNo.YES){
…}
System.out.println(YesNo.YES.getDescription()); //ใชSystem.out.println(YesNo.NO.getDescription()); //ไมใช
![Page 62: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/62.jpg)
CPE4235
เราจะใช enum กตอเมอ
เราตองการก าหนด Type เฉพาะขนมาเองเราตองการคาทมนสอความหมาย มากกวา 0, 1, A, B, C
และเรากตองการความมนใจ วาเราจะไมพมพผด(มคาถกตอง) + มพฤตกรรม (method) ในตว
![Page 63: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/63.jpg)
CPE4235
Wrapper Class
![Page 64: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/64.jpg)
CPE4235
OOP = การเขยนโปรแกรมเชงวตถ
แตขอมลบางอยางทมอย กลบไมเปนวตถ
หมายถงอะไร ?
![Page 65: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/65.jpg)
CPE4235
Primitive Data type ยงไงละ ทไมเปนวตถ
int, float, double, char, boolean, byte, short, long
![Page 66: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/66.jpg)
CPE4235
บางครงการเขยนโปรแกรม เราจ าเปนตองมการจดเกบขอมล หรอประมวลผลขอมลดวยวตถเทานน
เราไมสามารถใช Primitive Data Type มาด าเนนการได
![Page 67: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/67.jpg)
CPE4235
เชน
การจดเกบขอมลลงใน Listท Java อนญาตเฉพาะขอมลทเปนวตถเทานน
แลวเราจะท ายงไงละ ถาเราอยากเกบขอมลตวเลขแตตวเลขไมใชวตถ
![Page 68: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/68.jpg)
CPE4235
ดวยปญหาดงกลาว เขาจงคดหาทางแก ท าไมเราไมท าให Primitive มนเปนวตถซะละ
![Page 69: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/69.jpg)
CPE4235
ม int กใหม Integer ทเปน class (วตถ) ของ int อกท หรอ ม float กม Float เปน class (วตถ) ของ float เชนกน
Integer กบ Float เราเรยกมนวา Wrapper Class
![Page 70: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/70.jpg)
CPE4235
Wrapper Class ในทนหมายถง
class ทท าหนาทเปนตวหอหม Primitive Data Type
![Page 71: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/71.jpg)
CPE4235
int Integerbyte Byteshort Shortlong Longfloat Floatdouble Doublechar Characterboolean Boolean
ฝงซายคอ primitive ฝงขวาคอ Wrapper class ของ primitive นนๆ
![Page 72: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/72.jpg)
CPE4235
int number = 5; float number = 2.0F; boolean success = true;
กลายเปน
Integer number = new Interger(5);Float number = new Float(2.0F); Boolean success = new Boolean(true); หรอBoolean success = Boolean.TRUE;
![Page 73: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/73.jpg)
CPE4235
Autoboxing vs Autounboxing
![Page 74: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/74.jpg)
CPE4235
Autoboxing
เราสามารถแปลงคาจาก Primitive data type ไปเปน Wrapper class ของ ค Primitive นนไดโดยอตโนมต เชน
int number = 5; //ซงปกตจะเปน Integer numb = new Integer(number); //เราเรยกวา Boxing
เราสามารถเขยนแบบนไดInteger numb = number; //Autoboxing
![Page 75: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/75.jpg)
CPE4235
Autounboxing
เราสามารถแปลงคาจาก Wrapper class ไปเปน Primitive data type ของ ค Wrapper class นนไดโดยอตโนมตเชนกน เชน
Integer numb = new Integer(5); //ซงปกตจะเปน int number = numb.intValue(); //เราเรยกวา Unboxing
เราสามารถเขยนแบบนไดint number = numb; //Autounboxing
![Page 76: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/76.jpg)
CPE4235
แลวแบบนละไดมย ?
Integer numberObject = null;int nuber = numberObejct;
![Page 77: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/77.jpg)
CPE4235
แลวแบบนละไดมย ?
Integer numberObject = null;int nuber = numberObejct;
ค าตอบคอไมได เพราะ int เปน null ไมได (int ไมใช Reference data type)
![Page 78: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/78.jpg)
CPE4235
การทดสอบทางซอฟตแวร(Software Testing)
![Page 79: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/79.jpg)
CPE4235
Software Testing เปนกระบวนการเพอชวยใหซอฟตแวรทพฒนา ม
• ความถกตอง• ความสมบรณ• ความปลอดภย และ• มคณภาพทด
![Page 80: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/80.jpg)
CPE4235
Software Testing
เปนกระบวนการทดลองใช Software อยางมแนวทางโดยใชความรทางดานเทคนค (Technical)
![Page 81: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/81.jpg)
CPE4235
เพอใหสามารถระบหรอคนหาความผดพลาด(Error) ของ Software ทอาจจะซอนอยใหปรากฏออกมา
และ สามารถระบถงแนวทางการเกดปญหา พรอมสมมตฐานของความผดพลาดทเกดขนได
![Page 82: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/82.jpg)
CPE4235
แนวทางการทดสอบ
คอ การตงค าถามตอ Software เพอด าเนนการทดสอบและประเมนตว Software วาสามารถตอบค าถามทตงไวไดอยางถกตองหรอไม
![Page 83: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/83.jpg)
CPE4235
แนวทางการทดสอบ
“ค าถาม” หมายถง เหตการณ (Event) หรอวธการทจะกระท ากบตว Software
เชน ถารบ input แบบนเขาไปแลว จะไดผลลพธเปนแบบนหรอไม
![Page 84: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/84.jpg)
CPE4235
แนวทางการทดสอบ
“ค าตอบ” หมายถง ผลลพธของ Software ตอค าถามทเกดขน (ตรงตามทคาดหวงไวหรอไม)
![Page 85: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/85.jpg)
CPE4235
คณภาพของซอฟตแวรทสามารถทดสอบได ไดแก
• reliability - ความนาเชอถอ• efficiency - ประสทธภาพ• portability - ความสามารถในการเคลอนยาย• maintainability - ความสามารถในการดแลรกษา• compatibility - ความสามารถเขากนได• usability - สามารถใชไดงายเขาใจไดงาย
![Page 86: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/86.jpg)
CPE4235
รปแบบการทดสอบ
• Unit Test • Integration Test • System Test• Acceptant Test • Usability test
![Page 87: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/87.jpg)
CPE4235
Unit Test
เปนการทดสอบหนวยทเลกทสด (unit) เปนการทดสอบฟงกชนการท างาน เพอยนยนวาฟงกชนนนท างานไดถกตอง ตามทเราคาดหวงไวหรอไม
เปนการทดสอบโดย Programmer ทเขยน Code นนๆ
![Page 88: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/88.jpg)
CPE4235
Integration Test
เปนการทดสอบการเชอมตอสวนยอยๆ (Unit, Component หรอ Module) ทน ามาประกอบกน ใหได Software ทสมบรณ
เชน ModuleA เรยกใชงาน ModuleBหรอ Service หนงเรยกใชงานอก Service หนง ในระบบเดยวกน
ตย. การทดสอบการเชอมตอฐานขอมล หรอ Email
![Page 89: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/89.jpg)
CPE4235
System Test
เปนการทดสอบการเชอมตอหรอตดตอสอสารกนระหวาง Software หรอระบบ (System) อนๆ
เชน เรามระบบ 2 ระบบทตองการใหท างานรวมกน หรอคยกน
![Page 90: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/90.jpg)
CPE4235
Acceptant Test
เปนการทดสอบโดยผใช (End user) หรอโดยลกคา เพอดวาSoftware ท างานถกตองตามความตองการ (Requirement) หรอไม
![Page 91: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/91.jpg)
CPE4235
Usability Test (User Experience Test)
เปนการทดสอบการใชงาน Software โดยผเชยวชาญสวนตอประสานกบผใช (UI/UX) วาใชงานไดงาย เขาใจไดงาย หรอไม
หรอเรยกอกอยางวาเปนการทดสอบประสบการณการใชงาน
![Page 92: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/92.jpg)
CPE4235
Unit Test
![Page 93: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/93.jpg)
CPE4235
Unit Test
• เปนการทดสอบหนวยทเลกทสด (unit) • เปนการทดสอบฟงกชนการท างาน เพอยนยนวาฟงกชนนน
ท างานไดถกตอง ตามทเราคาดหวงไวหรอไม
เปนการทดสอบโดย Programmer ทเขยน Code นนๆ
![Page 94: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/94.jpg)
CPE4235
ในภาษา Java ม Framework ทชวยใหเราท าการทดสอบระดบUnit Test ทดงๆ และใชงานกนมากทสดคอJUnit และ TestNG
วนนเราจะใช JUnit กน
![Page 95: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/95.jpg)
CPE4235
JUnit
คอ เครองมอทใชในการท า Unit Test ส าหรบภาษา Javaพฒนาโดย Kent Beck และ Erich Gamma
ตอนนกลายเปนมาตรฐานการท า Unit Test ของ Java ไปแลวIDE ดงๆ หลายตวไดผนวก JUnit เขามาตงแตตอนทท าการตดตง เชน Netbeans
![Page 96: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/96.jpg)
CPE4235
หนาตาของ JUnit (เปน Java class ธรรมดาๆ ทม @Test)
import org.junit.Test;public class MyTest {
@Testpublic void test() {
//เขยน test code ตรงน (วาอยาก test อะไร)}
}
![Page 97: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/97.jpg)
CPE4235
Method ทม @Test อยขางบน คอ method ทตองการทดสอบจากนไปขอเรยกวา Test Method หรอ Test Case
ซง Test Method (@Test) สามารถมกตวกได โดยปกตทกตวจะอสระจากกน คอ test ใคร test มน(Test ไมเปนล าดบ)
![Page 98: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/98.jpg)
CPE4235
ตองการ Test วา 2 + 3 เทากบ 5 จรงหรอไม ?
import org.junit.Test;import static org.junit.Assert.*;public class MyTest {
@Testpublic void test() {
assertEquals(2 + 3, 5);}
}
![Page 99: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/99.jpg)
CPE4235
Netbeans กด Ctrl + F6 หรอ คลกขวาแลวเลอก Test Fileเพอ run test
ถาไมม Exceptionแสดงวา Test ส าเรจ
แตถามแสดงวาTest ลมเหลว
![Page 100: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/100.jpg)
CPE4235
ตองการ Test วา String ทรบเขามาเปนค าวา “Hello” จรงหรอไม
import org.junit.Test;import static org.junit.Assert.*;public class MyTest {
private boolean isHello(String str){ return “Hello”.equals(str); } @Testpublic void test() {
assertTrue(isHello(“Hello”));}
}
![Page 101: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/101.jpg)
CPE4235
Assert method (เมธอทยนยน)
แนวทางการทดสอบ คอทดสอบใหตรงตามเปาหมายทเราคาดหวงไว
![Page 102: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/102.jpg)
CPE4235
Assert method (เมธอทยนยน)
จากตวอยางเมอก เราคาดหวงไววา 2 + 3 มนจะเทากบ 5เรากเขยน 2 + 3 และ 5 ลงไปใน test method (@Test)
จากนนเรากใช method ตวนงในการยนยนวา input และสงทเราคดไวมนจะตรงกน method นนเราเรยกวา assert methodซงเราใช assertEquals ยนยนการเทากน
![Page 103: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/103.jpg)
CPE4235
Assert method (เมธอทยนยน)
มหลายตว ขนอย กบวาเราคาดหวงอะไรไว จาก input ทเราปอนเขาไป
เราอยากรอะไรเกยวกบ input นน กใช assert method นน
![Page 104: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/104.jpg)
CPE4235
Assert method (เมธอทยนยน)
Assert method ค าอธบาย
assertTrue(boolean c) ยนยนวา boolean ทสงเขาไป มคาเปนจรง
assertFalse(boolean c) ยนยนวา boolean ทสงเขาไป มคาเปนเทจ
assertEquals(Object o1, Object o2) ยนยนวา input 2 ตวมคาเทากน
assertNull(Object o) ยนยนวา input ทรบเขาไปตองเปน null
assertNotNull(Object o) ยนยนวา input ทรบเขาไปตองไมเปน null
assertSame(Object o1, Object o2) ยนยนวา input 2 ตวเปนตวเดยวกน
assertNotSame(Object o1, Object o2) ยนยนวา input 2 ตวไมเปนตวเดยวกน
… อนๆ อกมากมาย ตอนนยงไมจ าเปน (แตสามารถไปศกษาเพมเตมเองได)
![Page 105: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/105.jpg)
CPE4235
JUnit Life Cycle
ในการ run Test 1 ครง JUnit จะม Life Cycle เปนของตวเองซงเอาไว setup คา clear คา ตางๆของการ Test
แตเอาไวกอน เดยวสอนทหลงตอนนเอาใหคลองเรอง assert method กอน
ถาใครอยากรกอนกสามารถไปเรยนรดวยตนเองกอนไดครบเรอง JUnit Life Cycle (คาบนยงไมเนน)
![Page 106: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/106.jpg)
CPE4235
TDD Test Driven Development
ขบเคลอนการพฒนาดวยการเขยน Test
![Page 107: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/107.jpg)
CPE4235
Test Driven Development (TDD)
เปนรปแบบการพฒนา Software ทเราจะตองสราง Test ขนมากอน แลวจงคอยเรมเขยน Code ในภายหลง
เปนการตกรอบ Logic Code ดวย Testกอนทจะเรมเขยน Code จรงๆ
![Page 108: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/108.jpg)
CPE4235
หลกการเขยน TDD
1. เขยน code ให fail2. แกใหผาน3. Refactor หรอท า
code ใหสวยงาม4. กลบไปขอ 1 ใหม
จนกวา code จะ สมบรณแบบ
![Page 109: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/109.jpg)
CPE4235
เราไมรวาจะเขยน code ยงไง ?แตเรารวา สง input เขาไปแลวได Output อะไรกลบมา
Codeinput output
![Page 110: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/110.jpg)
CPE4235
@Testpublic void test1(){
int result = add(10, 20);assertEquals(30, result);
}
เรายงไมรวา ขางใน add เขยนยงไง แตเรารวา ถาสง 10 และ 20 เขาไป มนจะตองไดผลลพธเปน 30
![Page 111: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/111.jpg)
CPE4235
run test ดวาผานมย
![Page 112: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/112.jpg)
CPE4235
run test ดวาผานมย
แนนอนมนไมผานอยแลว เพราะยงไมม method add
งนกเขยน method add ขนมาซะ
![Page 113: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/113.jpg)
CPE4235
@Testpublic void test1(){
int result = add(10, 20);assertEquals(30, result);
}
private int add(int number1, int number2){return 30;
}
![Page 114: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/114.jpg)
CPE4235
run test ดวาผานมย
![Page 115: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/115.jpg)
CPE4235
run test ดวาผานมย
ผาน เพราะมน return 30 ตามทเราคาดหวงไว
ลองเพม test อกสกกรณ ให number1 = 100และ number2 = 200
และคาดหวงวามนจะ return 300
![Page 116: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/116.jpg)
CPE4235
@Testpublic void test2(){
int result = add(100, 200);assertEquals(300, result);
}
private int add(int number1, int number2){return 30;
}
![Page 117: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/117.jpg)
CPE4235
run test ดวาผานมย
![Page 118: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/118.jpg)
CPE4235
run test ดวาผานมย
ไมผาน
เพราะมน return 30
![Page 119: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/119.jpg)
CPE4235
แลวถาเรา return เปน 300 ละ
Test นผาน (300)แต Test กอนหนานนจะพง (เพราะมนตองการ 30)
แสดงวา function การท างานของ add ทเราเขยนไวไมถกละ
นจงเปนวธการตกรอบการเขยน code อยางนงงนแก add ใหม
![Page 120: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/120.jpg)
CPE4235
@Testpublic void test2(){
int result = add(100, 200);assertEquals(300, result);
}
private int add(int number1, int number2){return number1 + number2; //*********
}
![Page 121: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/121.jpg)
CPE4235
run test ดวาผานมย
![Page 122: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/122.jpg)
CPE4235
run test ดวาผานมย
ผานและผานทง 2 กรณคอ
@Testpublic void test(){
assertEquals(30, add(10, 20));assertEquals(300, add(100, 200));
}
![Page 123: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/123.jpg)
CPE4235
Work!
![Page 124: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/124.jpg)
CPE4235
โจทยประยกตใชความรตงแตเรมตน
จนถงวนน
![Page 125: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/125.jpg)
CPE4235
สมมตบรษทไปรบงานเกยวกบการประเมนคณภาพมาเปนการประเมนคณภาพการรกษาของโรงพยาบาลทวประเทศ วาแตละโรงพยาบาล มการรกษาทไดมาตรฐานหรอไม
![Page 126: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/126.jpg)
CPE4235
แตละโรงพยาบาล จะท าการสงขอมลผปวยเขามาทระบบสวนกลาง ประกอบไปดวยขอมล 2 ชด ทตองการให ประมวลผลคอ
• ขอมลผปวยใน (IP : Inner Patient) และ• ขอมลผปวยนอก (OP : Outer Patient)
***** ผปวยในคอคนทนอน รพ.ผปวยนอก คอคนทมาหาหมอในแตละวน
![Page 127: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/127.jpg)
CPE4235
ขอมลทสงเขามาจะเปนขอมลการใชยาในแตละครง ของผปวยคนหนง - รายคน หรอ ราย PID (รหสประจ าตวประชาชน)
![Page 128: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/128.jpg)
CPE4235
โปรแกรมเมอรทม A ไดเอาขอมลทโรงพยาบาลสงใหมาท าการประมวลผล ตามขอก าหนดการประเมนทสวนกลางก าหนดให จนไดขอมลสดทายทถกประมวลผลแลว
เหลอ field ขอมล ดงน
![Page 129: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/129.jpg)
CPE4235
ขอมลผปวยใน (IP)
• hcode – รหสโรงพยาบาล• pid – รหสประจ าตวประชาชนของผปวย• drugName – ชอยาทผปวยไดรบ• visitDate – วนทเขารบการรกษา เปน Date• qty – จ านวนยาทไดรบ (เปนตวเลข เชน 100 qty)• unit - หนวยยา เชน vials, gram, tab เปนตน
![Page 130: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/130.jpg)
CPE4235
• role1 – คะแนน ของเกณฑ ประเมนท 1• role2 – คะแนน ของเกณฑ ประเมนท 2• role3 – คะแนน ของเกณฑ ประเมนท 3• role4 – คะแนน ของเกณฑ ประเมนท 4• role5 – คะแนน ของเกณฑ ประเมนท 5
![Page 131: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/131.jpg)
CPE4235
ขอมลผปวยนอก (OP)
• hcode – รหสโรงพยาบาล• pid – รหสประจ าตวประชาชนของผปวย• drugName – ชอยาทผปวยไดรบ• visitDate – วนทเขารบการรกษา เปน Date• qty – จ านวนยาทไดรบ (เปนตวเลข เชน 100 qty)• unit - หนวยยา เชน vials, gram, tab เปนตน
![Page 132: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/132.jpg)
CPE4235
• role1 – คะแนน ของเกณฑ ประเมนท 1• role2 – คะแนน ของเกณฑ ประเมนท 2• role3 – คะแนน ของเกณฑ ประเมนท 3• role4 – คะแนน ของเกณฑ ประเมนท 4• role5 – คะแนน ของเกณฑ ประเมนท 5• role6 – คะแนน ของเกณฑ ประเมนท 6• role7 – คะแนน ของเกณฑ ประเมนท 7
![Page 133: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/133.jpg)
CPE4235
ขอมลทง 2 ประเภทมความเหมอนกนยกเวนจ านวนของเกณฑการประเมนทตางกน
IP ม 5 ขอOP ม 7 ขอ
![Page 134: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/134.jpg)
CPE4235
สมมตวา ท าการประมวลผลขอมลของโรงพยาบาลแหงหนงแลวไดผลการประเมนดงน
ผปวยใน (IP)
hcode Pid drugName visitDate qty unit role1 role2 role3 role4 role5
1234 00001 peginterferon 01/10/2555 100 gram Y Y N N Y
1234 00002 peginterferon 09/10/2555 50 gram Y Y Y Y Y
1234 00003 peginterferon 13/02/2555 150 gram Y Y N Y N
1234 00004 peginterferon 06/07/2556 25 gram Y N Y Y N
1234 00005 peginterferon 01/02/2555 100 gram N Y N N Y
![Page 135: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/135.jpg)
CPE4235
และ
ผปวยนอก (OP)
hcode Pid drugName visitDate qty unit role1 role2 role3 role4 role5 role6 role7
1234 00011 peginterferon 01/10/2555 100 gram Y Y Y Y Y Y Y
1234 00012 peginterferon 09/10/2555 50 gram Y N N N Y Y Y
1234 00013 peginterferon 13/02/2555 150 gram Y Y Y Y Y Y Y
1234 00014 peginterferon 06/07/2556 25 gram Y Y N Y Y Y Y
1234 00015 peginterferon 01/02/2555 100 gram N N Y Y Y Y Y
![Page 136: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/136.jpg)
CPE4235
ขอไหนตอบ Y (YES) ใหคดเปน 1 คะแนนขอไหนตอบ N (NO) ใหคดเปน 0 คะแนน
![Page 137: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/137.jpg)
CPE4235
ขอมลน เปนเพยงขอมลสมมตซงจรงๆ แลวอาจมเกณฑการเมนมากกวาน (20 - 30 ขอ)และเกณฑการประเมนอาจจะไมใชตวเลข
![Page 138: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/138.jpg)
CPE4235
จากนนโปรแกรมเมอรทม A โยนงานตอไปใหโปรแกรมเมอรทม B ท าการเขยนโปรแกรม หาคาผลรวม (Sum) และคาเฉลย (Average)เพอแสดงผลขอมลใหผใชเหน ดงน
![Page 139: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/139.jpg)
CPE4235
ใหเขยนโปรแกรม เพอท าการหาผลรวมของขอมลแตละเกณฑ(ทก pid ใน hcode นนรวมกน)
role 1 มผลรวม (Sum) เทาไหรrole 2 มผลรวม (Sum) เทาไหร…และrole 1 มคาเฉลย (Average) เทาไหรrole 2 มคาเฉลย (Average) เทาไหร…
![Page 140: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/140.jpg)
CPE4235
และหาวา ทกเกณของคนๆ นนรวมกน (ราย pid)มผลรวม (Sum) เปนเทาไหร และคาเฉลย (Average) เปนเทาไหร
Sum = role1 + role2 + role3 + … + role6 + role7Average = Sum / 7 (7 หมายถง ม 7 เกณฑ)
![Page 141: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/141.jpg)
CPE4235
ตวอยาง
hcode Pid drugName visitDate qty unit role1 role2 role3 role4 role5 sum avg
1234 00001 peginterferon 01/10/2555 100 gram 1 1 0 0 1 3 0.6
1234 00002 peginterferon 09/10/2555 50 gram 1 1 1 1 1 5 1
1234 00003 peginterferon 13/02/2555 150 gram 1 1 0 1 0 3 0.6
1234 00004 peginterferon 06/07/2556 25 gram 1 0 1 1 0 3 0.6
1234 00005 peginterferon 01/02/2555 100 gram 0 1 0 0 1 2 0.4
4 4 2 3 3 16 3.2
0.8 0.8 0.4 0.6 0.6 3.2 0.64
![Page 142: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/142.jpg)
CPE4235
ขอก าหนดของการเขยนโปรแกรม
ใชความรทงหมดทเรยนมา เพอแกปญหานขอมลชดหลายตว เกบขอมลลงใน Array กอนเรายงไมไดเรยน Collection Framework ยงไมตองใชแตถาใครรแลว จะใชกได ไมหาม
![Page 143: สอนครั้งที่ 4 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557](https://reader034.vdocuments.pub/reader034/viewer/2022052602/55ad6d561a28abca4b8b46da/html5/thumbnails/143.jpg)
CPE4235
ขอบคณ
Software Testing จาก www.wikiwand.com/th/การทดสอบซอฟตแวร