SlideShare a Scribd company logo
1 of 8
Download to read offline
การออกแบบ Class แบบ Composition                                                                                                                                                                 ssc




การออกแบบ Class แบบ Composition คือ ...........................................................................................................................
............................................................................................................................................................................................
Constructor method)                       ออกแบบไวเพื่อ ........................................................................................................................
“get” method) )                           ออกแบบไวเพื่อ ........................................................................................................................
“set” method) )                           ออกแบบไวเพื่อ ........................................................................................................................
Facilities method))                       ออกแบบไวเพื่อ ........................................................................................................................
ตัวอยางการออกแบบ Class แบบ Composition เพื่อเก็บขอมูลการลงทะเบียน




จากรูป สามารถอธิบายไดวา ..................................................................................................................................................
.............................................................................................................................................................................................
Class Subject
.....................................................................
.....................................................................
.....................................................................
.....................................................................
.....................................................................
.....................................................................

Class Student
.....................................................................
.....................................................................
.....................................................................
.....................................................................
.....................................................................
.....................................................................

Class Register
.....................................................................
.....................................................................
.....................................................................
.....................................................................
.....................................................................
.....................................................................


                                                                                                                                                                            Page 1 of 8
ตัวอยางการสราง Class แบบ Composition เพื่อเก็บขอมูลการลงทะเบียน
Class Subject
ขั้นตอนที่ 1 สราง Class Subject ขึ้นมา
  public class Subject {
  }

ขั้นตอนที่ 2 สราง Attribute ตางๆ ตามที่ไดออกแบบไว
  !          private String SubjectCode;
  !          private String SubjectName;
  !          private int SubjectCredit;

ขั้นตอนที่ 3 สราง Constructor method ตางๆ ตามที่ไดออกแบบไว
  !          public Subject() {
  !          !        setSubjectCode("");
  !          !        setSubjectName("");
  !          !        setSubjectCredit(0);
  !          }
  !          public Subject(String Code, String Name, int Credit) {
  !          !        setSubjectCode(Code);
  !          !        setSubjectName(Name);
  !          !        setSubjectCredit(Credit);
  !          }


Constructor method 2 method นี้มีไวเพื่อ ............................................................................................................................
.............................................................................................................................................................................................
ขั้นตอนที่ 4 สราง “set” method ตางๆ ตามที่ไดออกแบบไว
  !          public void setSubjectCode(String Code) {
  !          !        SubjectCode = Code;
  !          }
  !          public void setSubjectName(String Name) {
  !          !        SubjectName = Name;
  !          }
  !          public void setSubjectCredit(int Credit) {
  !          !        SubjectCredit = Credit;
  !          }


“set” method 3 method นี้มีไวเพื่อ ........................................................................................................................................
.............................................................................................................................................................................................
ขั้นตอนที่ 5 สราง “get” method ตางๆ ตามที่ไดออกแบบไว
  !          public String getSubjectCode() {
  !          !        return(SubjectCode);
  !          }
  !          public String getSubjectName() {
  !          !        return(SubjectName);
  !          }
  !          public int getSubjectCredit() {
  !          !        return(SubjectCredit);
  !          }


“get” method 3 method นี้มีไวเพื่อ .......................................................................................................................................
.............................................................................................................................................................................................
ขั้นตอนที่ 6 สราง Facilities method ตางๆ ตามที่ไดออกแบบไว
  !          public String toString() {
  !          !        String str = "";
  !          !        str = getSubjectCode()+" "+getSubjectName()+" ";
  !          !        str += getSubjectCredit();
  !          !        return(str);
  !          }


Facilities method นี้ มีชื่อวา ........................................ มีไวเพื่อ ............................................................................................
.............................................................................................................................................................................................
ขั้นตอนที่ 7 ทำการ Compile
โดยใชคำสั่ง ..........................................................................................................................................................................
ผลลัพธที่ได ..........................................................................................................................................................................
                                                                                                                                                                            Page 2 of 8
Class Student
ขั้นตอนที่ 1 .................................................................................................................
  public class Student {
  }


ขั้นตอนที่ 2 .................................................................................................................
  !          String StudentCode;
  !          String StudentName;
  !          String StudentSurName;


ขั้นตอนที่ 3 .................................................................................................................
  !          public Student() {
  !          !        setStudentCode("");
  !          !        setStudentName("");
  !          !        setStudentSurName("");
  !          }
  !          public Student(String Code, String Name, String SurName) {
  !          !        setStudentCode(Code);
  !          !        setStudentName(Name);
  !          !        setStudentSurName(SurName);
  !          }


Constructor method 2 method นี้มีไวเพื่อ ............................................................................................................................
............................................................................................................................................................................................
ขั้นตอนที่ 4 .................................................................................................................
  !          public void setStudentCode(String Code) {
  !          !        StudentCode = Code;
  !          }
  !          public void setStudentName(String Name) {
  !          !        StudentName = Name;
  !          }
  !          public void setStudentSurName(String SurName) {
  !          !        StudentSurName = SurName;
  !          }


“set” method 3 method นี้มีไวเพื่อ ........................................................................................................................................
.............................................................................................................................................................................................
ขั้นตอนที่ 5 .................................................................................................................
  !          public String getStudentCode() {
  !          !        return(StudentCode);
  !          }
  !          public String getStudentName() {
  !          !        return(StudentName);
  !          }
  !          public String getStudentSurName() {
  !          !        return(StudentSurName);
  !          }


“get” method 3 method นี้มีไวเพื่อ .......................................................................................................................................
.............................................................................................................................................................................................
ขั้นตอนที่ 6 .................................................................................................................
  !          public String toString() {
  !          !        String str = "";
  !          !        str = getStudentCode()+" "+getStudentName()+" ";
  !          !        str += getStudentSurName();
  !          !        return(str);
  !          }


Facilities method นี้ มีชื่อวา ........................................ มีไวเพื่อ ............................................................................................
.............................................................................................................................................................................................
ขั้นตอนที่ 7 ทำการ Compile
โดยใชคำสั่ง ..........................................................................................................................................................................
ผลลัพธที่ได ..........................................................................................................................................................................
                                                                                                                                                                            Page 3 of 8
Class Register
ขั้นตอนที่ 1 .................................................................................................................
  public class Register {
  }


ขั้นตอนที่ 2 .................................................................................................................
  !          private Student std;
  !          private Subject sub[];
  !          private int max, count = -1;


ขั้นตอนที่ 3 .................................................................................................................
  !          public Register() {
  !          !        std = new Student();
  !          !        max = 0;
  !          }
  !          public Register(Student std, int n) {
  !          !        this.std = std;
  !          !        max = n;
  !          !        createSubject(max);
  !          }


Constructor method 2 method นี้มีไวเพื่อ ............................................................................................................................
............................................................................................................................................................................................
ขั้นตอนที่ 4 .................................................................................................................
  !          public void setStudent(Student std) {
  !          !        this.std = std;
  !          }
  !          public void setSubject(Subject sub) {
  !          !        this.sub[++count] = sub;
  !          }
  !          public void setSubject(Subject sub, int n) {
  !          !        this.sub[n] = sub;
  !          }


“set” method 3 method นี้มีไวเพื่อ ........................................................................................................................................
.............................................................................................................................................................................................
ขั้นตอนที่ 5 .................................................................................................................
  !          public String getStudent() {
  !          !        return(std.toString());
  !          }
  !          public String getSubject(int n) {
  !          !        return(sub[n].toString());
  !          }


“get” method 3 method นี้มีไวเพื่อ .......................................................................................................................................
.............................................................................................................................................................................................
ขั้นตอนที่ 6 .................................................................................................................
  !          private void createSubject(int n) {
  !          !        sub = new Subject[n];
  !          }


Facilities method นี้ มีชื่อวา ........................................ มีไวเพื่อ ............................................................................................
.............................................................................................................................................................................................
ขั้นตอนที่ 7 ทำการ Compile
โดยใชคำสั่ง ..........................................................................................................................................................................
ผลลัพธที่ได ..........................................................................................................................................................................




                                                                                                                                                                            Page 4 of 8
การทดสอบการทำงานของ Class แบบ Composition
1) สราง testComposition.html เอาไวสำหรับ Run
2) สราง testComposition.java เอาไวทดสอบ
ตัวอยางหนาจอการทำงาน




testComposition.html
  <html>
  !     <body>
          <h1>Test Composition: Registration Program</h1>
          <h3>Create by: 5366261111 Supaporn Simcharoen IT1-RC</h3>
  !     !     <applet code="testComposition.class" height="250" width="750">
  !     !     </applet>
  !     </body>
  </html>



testComposition.java
ขั้นตอนที่ 1 สราง Class พรอมกับ import package ที่ตองใช และสราง Method ที่นาจะมี
  import java.awt.*;
  import javax.swing.*;
  import java.awt.event.*;

  public class testComposition extends JApplet implements ActionListener{
  !     public void init(){
  !     }
  !     public void actionPerformed(ActionEvent event){
  !     }
  }


ทำไมตอง extends JApplet ..................................................................................................................................................
ทำไมตอง implements ActionListener ..................................................................................................................................
method init มีไวเพื่อ .............................................................................................................................................................
method actionPerformed มีไวเพื่อ .......................................................................................................................................
ขั้นตอนที่ 2 สรางหนาจอการทำงาน
  !         Container c;
  !
  !         JLabel stdCodeLabel, stdNameLabel, stdSurnameLabel;
  !         JTextField stdCodeText, stdNameText, stdSurnameText, stdText;
  !         JButton addStdBtn;

  !         JLabel subCodeLabel, subNameLabel, subCreditLabel;
  !         JTextField subCodeText, subNameText, subCreditText;
  !         JButton addSubBtn;
  !         JTextArea subTextArea;
  !         JScrollPane subScroll;
  !
  !         JButton saveBtn, cancleBtn;


  !         public void init(){
  !         !        initGui();
  !         }



                                                                                                                                                                   Page 5 of 8
!         public void initGui(){
  !         !        c = getContentPane();
  !         !        c.setLayout( new FlowLayout());
  !         !
  !         !        stdCodeLabel = new JLabel("Enter Student Code:");
  !         !        c.add(stdCodeLabel);
  !         !        stdCodeText = new JTextField(6);
  !         !        c.add(stdCodeText);

  !         !                stdNameLabel = new JLabel("Name:");
  !         !                c.add(stdNameLabel);
  !         !                stdNameText = new JTextField(10);
  !         !                c.add(stdNameText);! !

  !         !                stdSurnameLabel = new JLabel("Surname:");
  !         !                c.add(stdSurnameLabel);
  !         !                stdSurnameText = new JTextField(10);
  !         !                c.add(stdSurnameText);!

  !         !                addStdBtn = new JButton("Add Student");
  !         !                addStdBtn.addActionListener(this);
  !         !                c.add(addStdBtn);
  !         !
  !
  !
            !
            !
                             stdText = new JTextField(60);
                             stdText.setEditable(false);
                                                                                              Note :: .....................................................................
  !         !                c.add(stdText);!
  !         !
  !         !                subCodeLabel = new JLabel("Enter Subject Code:");
  !         !                c.add(subCodeLabel);
  !         !                subCodeText = new JTextField(6);
  !         !                c.add(subCodeText);! !
  !         !
  !         !                subNameLabel = new JLabel("Name:");
  !         !                c.add(subNameLabel);
  !         !                subNameText = new JTextField(17);
  !         !                c.add(subNameText);! !
  !         !
  !         !                subCreditLabel = new JLabel("Credit:");
  !         !                c.add(subCreditLabel);
  !         !                subCreditText = new JTextField(5);
  !         !                c.add(subCreditText);! !      !

  !         !                addSubBtn = new JButton("Add Subject");
  !         !                addSubBtn.setEnabled(false);
  !         !                addSubBtn.addActionListener(this);
  !         !                c.add(addSubBtn);
  !         !
  !         !                subTextArea = new JTextArea(5,60);
  !         !                subTextArea.setEditable(false);
  !         !                subScroll = new JScrollPane(subTextArea);
  !         !                c.add(subScroll);!    !
  !         !
  !         !                saveBtn = new JButton(" Save ");
  !         !                saveBtn.setEnabled(false);
  !         !                saveBtn.addActionListener(this);
  !         !                c.add(saveBtn);
  !         !
  !         !                cancleBtn = new JButton(" Cancle ");
  !         !                cancleBtn.setEnabled(false);
  !         !                cancleBtn.addActionListener(this);
  !         !                c.add(cancleBtn);!    !
  !         }


ขั้นตอนที่ 3 ทดลอง Compile และ Run
วิธีในการ Run คือ .................................................................................................................................................................
ขั้นตอนที่ 4 สราง Object Register เพื่อทดสอบการทำงาน
   !     Register reg;                                                                                 Note :: ................................................................
   !     int count = 0;
                                                                                                     ...............................................................................
   !
   !
         public void init(){
         !           initGui();
                                                                                                     ...............................................................................
   !
   !
         !
         }
                     reg = new Register(new Student(), 5);
                                                                                                     ...............................................................................
                                                                                                     ...............................................................................
ขั้นตอนที่ 5 ทดลอง Compile และ Run อีกครั้ง
                                                                                                      ...............................................................................


                                                                                                                                                                   Page 6 of 8
ขั้นตอนที่ 6 ใสการรองรับการกระทำกับ ปุมตางๆ ทั้งหมด
ที่ปุม Add Student
  !     !        if (event.getSource() == addStdBtn) {
  !     !        !      Student std = new Student(stdCodeText.getText(), stdNameText.getText(),
  stdSurnameText.getText());
  !     !        !      stdText.setText(std.toString());
  !     !        !      reg.setStudent(std);
  !     !        !      addStdBtn.setEnabled(false);
  !     !        !      addSubBtn.setEnabled(true);
  !     !        !      saveBtn.setEnabled(true);
  !     !        !      cancleBtn.setEnabled(true);
  !     !        !      stdCodeText.setText("");
  !     !        !      stdNameText.setText("");
  !     !        !      stdSurnameText.setText("");! !       !       !
  !     !        }

Note ::
.............................................................................................................................................................................................
.............................................................................................................................................................................................
.............................................................................................................................................................................................
ที่ปุม Add Subject
  !     !        else if (event.getSource() == addSubBtn) {
  !     !        !      Subject sub = new Subject(subCodeText.getText(), subNameText.getText(),
  Integer.parseInt(subCreditText.getText()));
  !     !        !      subTextArea.append(sub.toString()+"n");
  !     !        !      reg.setSubject(sub, count);
  !     !        !      count++;
  !     !        !      if (count == 5 ){
  !     !        !      !       addSubBtn.setEnabled(false);
  !     !        !      }
  !     !        !      subCodeText.setText("");
  !     !        !      subNameText.setText("");
  !     !        !      subCreditText.setText("");
  !     !        }

Note ::
.............................................................................................................................................................................................
.............................................................................................................................................................................................
.............................................................................................................................................................................................
ที่ปุม Save
  !     !        else if (event.getSource() == saveBtn) {
  !     !        !      String output="";
  !     !        !      output = "Student :" + reg.getStudent();
  !     !        !      output += "nSubject:n";
  !     !        !      for(int n = 0 ; n < count; n++)
  !     !        !      !       output += reg.getSubject(n) + "n";
  !     !        !      JOptionPane.showMessageDialog(null, output,"Registration
  Data",JOptionPane.INFORMATION_MESSAGE);
  !     !        !      resetAll();
  !     !        }

Note ::
.............................................................................................................................................................................................
.............................................................................................................................................................................................
.............................................................................................................................................................................................
ที่ปุม Cancle
  !          !                else if (event.getSource() == cancleBtn) {
  !          !                !      resetAll();
  !          !                }

Note ::
.............................................................................................................................................................................................

                                                                                                                                                                            Page 7 of 8
Method resetAll
  !          public void resetAll() {
  !          !        stdCodeText.setText("");
  !          !        stdNameText.setText("");
  !          !        stdSurnameText.setText("");
  !          !        stdText.setText("");
  !          !        addStdBtn.setEnabled(true);
  !          !
  !          !        subCodeText.setText("");
  !          !        subNameText.setText("");
  !          !        subCreditText.setText("");
  !          !        addSubBtn.setEnabled(false);
  !          !        subTextArea.setText("");
  !          !
  !          !        saveBtn.setEnabled(false);
  !          !        cancleBtn.setEnabled(false);
  !          !
  !          !        count = 0;
  !          }

Note ::
.............................................................................................................................................................................................
.............................................................................................................................................................................................


การบาน
1) ตัวแปร count ที่อยูใน Class testComposition มีไวเพื่ออะไร
2) ใหยกเลิกการใชงานตัวแปร count ที่ Class testComposition และใหไปใชตัวแปร count ใน Class Register แทน
3) ใหเพิ่มการทำงานของโปรแกรมโดยใหสามารถคนหา(Search) แกไข(Edit) และลบ(Delete) Subject ได
   ตัวอยางหนาจอการทำงาน




 ตัวอยางการสราง Confirm Dialog
  int ans = JOptionPane.showConfirmDialog(null, "Delete?","Confirm",JOptionPane.YES_NO_OPTION);
  if (ans == 0) {
              //ในกรณีที่ผูใชกดปุม Yes แลว ans จะมีคาเทากับ 0
  }




                                                                                                                                                                            Page 8 of 8

More Related Content

What's hot

دفتر إعداد الدروس للقسم التحضيري
دفتر إعداد الدروس للقسم التحضيريدفتر إعداد الدروس للقسم التحضيري
دفتر إعداد الدروس للقسم التحضيريImed Ilahi
 
3. เทคโนโลยีการรับส่งข้อมูลแบบใช้สาย
3. เทคโนโลยีการรับส่งข้อมูลแบบใช้สาย3. เทคโนโลยีการรับส่งข้อมูลแบบใช้สาย
3. เทคโนโลยีการรับส่งข้อมูลแบบใช้สายฉลาม แดนนาวิน
 
勉強会カンファレンス2009 IT勉強会カレンダーと募集ツール(画面キャプチャ)
勉強会カンファレンス2009 IT勉強会カレンダーと募集ツール(画面キャプチャ)勉強会カンファレンス2009 IT勉強会カレンダーと募集ツール(画面キャプチャ)
勉強会カンファレンス2009 IT勉強会カレンダーと募集ツール(画面キャプチャ)はなずきん Hana
 
Índice Libro "macOS Hacking" de 0xWord
Índice Libro "macOS Hacking" de 0xWordÍndice Libro "macOS Hacking" de 0xWord
Índice Libro "macOS Hacking" de 0xWordTelefónica
 
фізика 8 клас бойко м.п., венгер є.ф., мельничук о.в.
фізика 8 клас бойко м.п., венгер є.ф., мельничук о.в.фізика 8 клас бойко м.п., венгер є.ф., мельничук о.в.
фізика 8 клас бойко м.п., венгер є.ф., мельничук о.в.Ngb Djd
 
36 Ke Nhan Hoa 2
36 Ke Nhan Hoa 236 Ke Nhan Hoa 2
36 Ke Nhan Hoa 2dungpv299
 
เอกสารคัดเลือกชำนาญการ.
เอกสารคัดเลือกชำนาญการ.เอกสารคัดเลือกชำนาญการ.
เอกสารคัดเลือกชำนาญการ.Wimol Get
 
La boca hebrew menu
La boca hebrew menuLa boca hebrew menu
La boca hebrew menuweiss2001
 
36 Ke Nhan Hoa 3
36 Ke Nhan Hoa 336 Ke Nhan Hoa 3
36 Ke Nhan Hoa 3dungpv299
 
საქართველოს განვითარების კვლევითი ინსტიტუტი
საქართველოს განვითარების კვლევითი ინსტიტუტისაქართველოს განვითარების კვლევითი ინსტიტუტი
საქართველოს განვითარების კვლევითი ინსტიტუტიGeorgian National Communications Commission, GNCC
 
Portfolio Berenice K DA Web
Portfolio Berenice K DA WebPortfolio Berenice K DA Web
Portfolio Berenice K DA Webberenicek
 

What's hot (20)

4481
44814481
4481
 
دفتر إعداد الدروس للقسم التحضيري
دفتر إعداد الدروس للقسم التحضيريدفتر إعداد الدروس للقسم التحضيري
دفتر إعداد الدروس للقسم التحضيري
 
3. เทคโนโลยีการรับส่งข้อมูลแบบใช้สาย
3. เทคโนโลยีการรับส่งข้อมูลแบบใช้สาย3. เทคโนโลยีการรับส่งข้อมูลแบบใช้สาย
3. เทคโนโลยีการรับส่งข้อมูลแบบใช้สาย
 
勉強会カンファレンス2009 IT勉強会カレンダーと募集ツール(画面キャプチャ)
勉強会カンファレンス2009 IT勉強会カレンダーと募集ツール(画面キャプチャ)勉強会カンファレンス2009 IT勉強会カレンダーと募集ツール(画面キャプチャ)
勉強会カンファレンス2009 IT勉強会カレンダーと募集ツール(画面キャプチャ)
 
Índice Libro "macOS Hacking" de 0xWord
Índice Libro "macOS Hacking" de 0xWordÍndice Libro "macOS Hacking" de 0xWord
Índice Libro "macOS Hacking" de 0xWord
 
фізика 8 клас бойко м.п., венгер є.ф., мельничук о.в.
фізика 8 клас бойко м.п., венгер є.ф., мельничук о.в.фізика 8 клас бойко м.п., венгер є.ф., мельничук о.в.
фізика 8 клас бойко м.п., венгер є.ф., мельничук о.в.
 
K19 065
K19 065K19 065
K19 065
 
Slide toantc sv
Slide toantc svSlide toantc sv
Slide toantc sv
 
36 Ke Nhan Hoa 2
36 Ke Nhan Hoa 236 Ke Nhan Hoa 2
36 Ke Nhan Hoa 2
 
5288
52885288
5288
 
Refor07
Refor07Refor07
Refor07
 
เอกสารคัดเลือกชำนาญการ.
เอกสารคัดเลือกชำนาญการ.เอกสารคัดเลือกชำนาญการ.
เอกสารคัดเลือกชำนาญการ.
 
คำตอบพหุนาม
คำตอบพหุนามคำตอบพหุนาม
คำตอบพหุนาม
 
La boca hebrew menu
La boca hebrew menuLa boca hebrew menu
La boca hebrew menu
 
4474
44744474
4474
 
7
77
7
 
36 Ke Nhan Hoa 3
36 Ke Nhan Hoa 336 Ke Nhan Hoa 3
36 Ke Nhan Hoa 3
 
საქართველოს განვითარების კვლევითი ინსტიტუტი
საქართველოს განვითარების კვლევითი ინსტიტუტისაქართველოს განვითარების კვლევითი ინსტიტუტი
საქართველოს განვითარების კვლევითი ინსტიტუტი
 
Portfolio Berenice K DA Web
Portfolio Berenice K DA WebPortfolio Berenice K DA Web
Portfolio Berenice K DA Web
 
4475
44754475
4475
 

Viewers also liked (19)

Array2D
Array2DArray2D
Array2D
 
Applet 5 class_inheritance
Applet 5 class_inheritanceApplet 5 class_inheritance
Applet 5 class_inheritance
 
662305 LAB13
662305 LAB13662305 LAB13
662305 LAB13
 
662305 08
662305 08662305 08
662305 08
 
Applet 2 container and action_listener
Applet 2 container and action_listenerApplet 2 container and action_listener
Applet 2 container and action_listener
 
Method JAVA
Method JAVAMethod JAVA
Method JAVA
 
Array
ArrayArray
Array
 
New Assingment3 array2D
New Assingment3 array2DNew Assingment3 array2D
New Assingment3 array2D
 
Applet 7 image_j_panel
Applet 7 image_j_panelApplet 7 image_j_panel
Applet 7 image_j_panel
 
Applet 6 mouse_keyboard
Applet 6 mouse_keyboardApplet 6 mouse_keyboard
Applet 6 mouse_keyboard
 
Lab 6 new
Lab 6 newLab 6 new
Lab 6 new
 
Applet 5 class_inheritance
Applet 5 class_inheritanceApplet 5 class_inheritance
Applet 5 class_inheritance
 
Applet 7 image_j_panel
Applet 7 image_j_panelApplet 7 image_j_panel
Applet 7 image_j_panel
 
662305 Lab7new
662305 Lab7new662305 Lab7new
662305 Lab7new
 
Assingment3 array2 d
Assingment3 array2 dAssingment3 array2 d
Assingment3 array2 d
 
Method part2
Method part2Method part2
Method part2
 
Putty basic setting
Putty basic settingPutty basic setting
Putty basic setting
 
Agile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development Management
 
Applet 3 design_class_composition
Applet 3 design_class_compositionApplet 3 design_class_composition
Applet 3 design_class_composition
 

More from Nitigan Nakjuatong

More from Nitigan Nakjuatong (7)

วิธีการกำหนดสิทธิให้กับ Directory
วิธีการกำหนดสิทธิให้กับ Directoryวิธีการกำหนดสิทธิให้กับ Directory
วิธีการกำหนดสิทธิให้กับ Directory
 
662305 LAB12
662305 LAB12662305 LAB12
662305 LAB12
 
662305 11
662305 11662305 11
662305 11
 
662305 10
662305 10662305 10
662305 10
 
662305 09
662305 09662305 09
662305 09
 
Control structure
Control structureControl structure
Control structure
 
Set putty to use numeric keyboard in pico
Set putty to use numeric keyboard in picoSet putty to use numeric keyboard in pico
Set putty to use numeric keyboard in pico
 

Applet 4 class_composition

  • 1. การออกแบบ Class แบบ Composition ssc การออกแบบ Class แบบ Composition คือ ........................................................................................................................... ............................................................................................................................................................................................ Constructor method) ออกแบบไวเพื่อ ........................................................................................................................ “get” method) ) ออกแบบไวเพื่อ ........................................................................................................................ “set” method) ) ออกแบบไวเพื่อ ........................................................................................................................ Facilities method)) ออกแบบไวเพื่อ ........................................................................................................................ ตัวอยางการออกแบบ Class แบบ Composition เพื่อเก็บขอมูลการลงทะเบียน จากรูป สามารถอธิบายไดวา .................................................................................................................................................. ............................................................................................................................................................................................. Class Subject ..................................................................... ..................................................................... ..................................................................... ..................................................................... ..................................................................... ..................................................................... Class Student ..................................................................... ..................................................................... ..................................................................... ..................................................................... ..................................................................... ..................................................................... Class Register ..................................................................... ..................................................................... ..................................................................... ..................................................................... ..................................................................... ..................................................................... Page 1 of 8
  • 2. ตัวอยางการสราง Class แบบ Composition เพื่อเก็บขอมูลการลงทะเบียน Class Subject ขั้นตอนที่ 1 สราง Class Subject ขึ้นมา public class Subject { } ขั้นตอนที่ 2 สราง Attribute ตางๆ ตามที่ไดออกแบบไว ! private String SubjectCode; ! private String SubjectName; ! private int SubjectCredit; ขั้นตอนที่ 3 สราง Constructor method ตางๆ ตามที่ไดออกแบบไว ! public Subject() { ! ! setSubjectCode(""); ! ! setSubjectName(""); ! ! setSubjectCredit(0); ! } ! public Subject(String Code, String Name, int Credit) { ! ! setSubjectCode(Code); ! ! setSubjectName(Name); ! ! setSubjectCredit(Credit); ! } Constructor method 2 method นี้มีไวเพื่อ ............................................................................................................................ ............................................................................................................................................................................................. ขั้นตอนที่ 4 สราง “set” method ตางๆ ตามที่ไดออกแบบไว ! public void setSubjectCode(String Code) { ! ! SubjectCode = Code; ! } ! public void setSubjectName(String Name) { ! ! SubjectName = Name; ! } ! public void setSubjectCredit(int Credit) { ! ! SubjectCredit = Credit; ! } “set” method 3 method นี้มีไวเพื่อ ........................................................................................................................................ ............................................................................................................................................................................................. ขั้นตอนที่ 5 สราง “get” method ตางๆ ตามที่ไดออกแบบไว ! public String getSubjectCode() { ! ! return(SubjectCode); ! } ! public String getSubjectName() { ! ! return(SubjectName); ! } ! public int getSubjectCredit() { ! ! return(SubjectCredit); ! } “get” method 3 method นี้มีไวเพื่อ ....................................................................................................................................... ............................................................................................................................................................................................. ขั้นตอนที่ 6 สราง Facilities method ตางๆ ตามที่ไดออกแบบไว ! public String toString() { ! ! String str = ""; ! ! str = getSubjectCode()+" "+getSubjectName()+" "; ! ! str += getSubjectCredit(); ! ! return(str); ! } Facilities method นี้ มีชื่อวา ........................................ มีไวเพื่อ ............................................................................................ ............................................................................................................................................................................................. ขั้นตอนที่ 7 ทำการ Compile โดยใชคำสั่ง .......................................................................................................................................................................... ผลลัพธที่ได .......................................................................................................................................................................... Page 2 of 8
  • 3. Class Student ขั้นตอนที่ 1 ................................................................................................................. public class Student { } ขั้นตอนที่ 2 ................................................................................................................. ! String StudentCode; ! String StudentName; ! String StudentSurName; ขั้นตอนที่ 3 ................................................................................................................. ! public Student() { ! ! setStudentCode(""); ! ! setStudentName(""); ! ! setStudentSurName(""); ! } ! public Student(String Code, String Name, String SurName) { ! ! setStudentCode(Code); ! ! setStudentName(Name); ! ! setStudentSurName(SurName); ! } Constructor method 2 method นี้มีไวเพื่อ ............................................................................................................................ ............................................................................................................................................................................................ ขั้นตอนที่ 4 ................................................................................................................. ! public void setStudentCode(String Code) { ! ! StudentCode = Code; ! } ! public void setStudentName(String Name) { ! ! StudentName = Name; ! } ! public void setStudentSurName(String SurName) { ! ! StudentSurName = SurName; ! } “set” method 3 method นี้มีไวเพื่อ ........................................................................................................................................ ............................................................................................................................................................................................. ขั้นตอนที่ 5 ................................................................................................................. ! public String getStudentCode() { ! ! return(StudentCode); ! } ! public String getStudentName() { ! ! return(StudentName); ! } ! public String getStudentSurName() { ! ! return(StudentSurName); ! } “get” method 3 method นี้มีไวเพื่อ ....................................................................................................................................... ............................................................................................................................................................................................. ขั้นตอนที่ 6 ................................................................................................................. ! public String toString() { ! ! String str = ""; ! ! str = getStudentCode()+" "+getStudentName()+" "; ! ! str += getStudentSurName(); ! ! return(str); ! } Facilities method นี้ มีชื่อวา ........................................ มีไวเพื่อ ............................................................................................ ............................................................................................................................................................................................. ขั้นตอนที่ 7 ทำการ Compile โดยใชคำสั่ง .......................................................................................................................................................................... ผลลัพธที่ได .......................................................................................................................................................................... Page 3 of 8
  • 4. Class Register ขั้นตอนที่ 1 ................................................................................................................. public class Register { } ขั้นตอนที่ 2 ................................................................................................................. ! private Student std; ! private Subject sub[]; ! private int max, count = -1; ขั้นตอนที่ 3 ................................................................................................................. ! public Register() { ! ! std = new Student(); ! ! max = 0; ! } ! public Register(Student std, int n) { ! ! this.std = std; ! ! max = n; ! ! createSubject(max); ! } Constructor method 2 method นี้มีไวเพื่อ ............................................................................................................................ ............................................................................................................................................................................................ ขั้นตอนที่ 4 ................................................................................................................. ! public void setStudent(Student std) { ! ! this.std = std; ! } ! public void setSubject(Subject sub) { ! ! this.sub[++count] = sub; ! } ! public void setSubject(Subject sub, int n) { ! ! this.sub[n] = sub; ! } “set” method 3 method นี้มีไวเพื่อ ........................................................................................................................................ ............................................................................................................................................................................................. ขั้นตอนที่ 5 ................................................................................................................. ! public String getStudent() { ! ! return(std.toString()); ! } ! public String getSubject(int n) { ! ! return(sub[n].toString()); ! } “get” method 3 method นี้มีไวเพื่อ ....................................................................................................................................... ............................................................................................................................................................................................. ขั้นตอนที่ 6 ................................................................................................................. ! private void createSubject(int n) { ! ! sub = new Subject[n]; ! } Facilities method นี้ มีชื่อวา ........................................ มีไวเพื่อ ............................................................................................ ............................................................................................................................................................................................. ขั้นตอนที่ 7 ทำการ Compile โดยใชคำสั่ง .......................................................................................................................................................................... ผลลัพธที่ได .......................................................................................................................................................................... Page 4 of 8
  • 5. การทดสอบการทำงานของ Class แบบ Composition 1) สราง testComposition.html เอาไวสำหรับ Run 2) สราง testComposition.java เอาไวทดสอบ ตัวอยางหนาจอการทำงาน testComposition.html <html> ! <body> <h1>Test Composition: Registration Program</h1> <h3>Create by: 5366261111 Supaporn Simcharoen IT1-RC</h3> ! ! <applet code="testComposition.class" height="250" width="750"> ! ! </applet> ! </body> </html> testComposition.java ขั้นตอนที่ 1 สราง Class พรอมกับ import package ที่ตองใช และสราง Method ที่นาจะมี import java.awt.*; import javax.swing.*; import java.awt.event.*; public class testComposition extends JApplet implements ActionListener{ ! public void init(){ ! } ! public void actionPerformed(ActionEvent event){ ! } } ทำไมตอง extends JApplet .................................................................................................................................................. ทำไมตอง implements ActionListener .................................................................................................................................. method init มีไวเพื่อ ............................................................................................................................................................. method actionPerformed มีไวเพื่อ ....................................................................................................................................... ขั้นตอนที่ 2 สรางหนาจอการทำงาน ! Container c; ! ! JLabel stdCodeLabel, stdNameLabel, stdSurnameLabel; ! JTextField stdCodeText, stdNameText, stdSurnameText, stdText; ! JButton addStdBtn; ! JLabel subCodeLabel, subNameLabel, subCreditLabel; ! JTextField subCodeText, subNameText, subCreditText; ! JButton addSubBtn; ! JTextArea subTextArea; ! JScrollPane subScroll; ! ! JButton saveBtn, cancleBtn; ! public void init(){ ! ! initGui(); ! } Page 5 of 8
  • 6. ! public void initGui(){ ! ! c = getContentPane(); ! ! c.setLayout( new FlowLayout()); ! ! ! ! stdCodeLabel = new JLabel("Enter Student Code:"); ! ! c.add(stdCodeLabel); ! ! stdCodeText = new JTextField(6); ! ! c.add(stdCodeText); ! ! stdNameLabel = new JLabel("Name:"); ! ! c.add(stdNameLabel); ! ! stdNameText = new JTextField(10); ! ! c.add(stdNameText);! ! ! ! stdSurnameLabel = new JLabel("Surname:"); ! ! c.add(stdSurnameLabel); ! ! stdSurnameText = new JTextField(10); ! ! c.add(stdSurnameText);! ! ! addStdBtn = new JButton("Add Student"); ! ! addStdBtn.addActionListener(this); ! ! c.add(addStdBtn); ! ! ! ! ! ! stdText = new JTextField(60); stdText.setEditable(false); Note :: ..................................................................... ! ! c.add(stdText);! ! ! ! ! subCodeLabel = new JLabel("Enter Subject Code:"); ! ! c.add(subCodeLabel); ! ! subCodeText = new JTextField(6); ! ! c.add(subCodeText);! ! ! ! ! ! subNameLabel = new JLabel("Name:"); ! ! c.add(subNameLabel); ! ! subNameText = new JTextField(17); ! ! c.add(subNameText);! ! ! ! ! ! subCreditLabel = new JLabel("Credit:"); ! ! c.add(subCreditLabel); ! ! subCreditText = new JTextField(5); ! ! c.add(subCreditText);! ! ! ! ! addSubBtn = new JButton("Add Subject"); ! ! addSubBtn.setEnabled(false); ! ! addSubBtn.addActionListener(this); ! ! c.add(addSubBtn); ! ! ! ! subTextArea = new JTextArea(5,60); ! ! subTextArea.setEditable(false); ! ! subScroll = new JScrollPane(subTextArea); ! ! c.add(subScroll);! ! ! ! ! ! saveBtn = new JButton(" Save "); ! ! saveBtn.setEnabled(false); ! ! saveBtn.addActionListener(this); ! ! c.add(saveBtn); ! ! ! ! cancleBtn = new JButton(" Cancle "); ! ! cancleBtn.setEnabled(false); ! ! cancleBtn.addActionListener(this); ! ! c.add(cancleBtn);! ! ! } ขั้นตอนที่ 3 ทดลอง Compile และ Run วิธีในการ Run คือ ................................................................................................................................................................. ขั้นตอนที่ 4 สราง Object Register เพื่อทดสอบการทำงาน ! Register reg; Note :: ................................................................ ! int count = 0; ............................................................................... ! ! public void init(){ ! initGui(); ............................................................................... ! ! ! } reg = new Register(new Student(), 5); ............................................................................... ............................................................................... ขั้นตอนที่ 5 ทดลอง Compile และ Run อีกครั้ง ............................................................................... Page 6 of 8
  • 7. ขั้นตอนที่ 6 ใสการรองรับการกระทำกับ ปุมตางๆ ทั้งหมด ที่ปุม Add Student ! ! if (event.getSource() == addStdBtn) { ! ! ! Student std = new Student(stdCodeText.getText(), stdNameText.getText(), stdSurnameText.getText()); ! ! ! stdText.setText(std.toString()); ! ! ! reg.setStudent(std); ! ! ! addStdBtn.setEnabled(false); ! ! ! addSubBtn.setEnabled(true); ! ! ! saveBtn.setEnabled(true); ! ! ! cancleBtn.setEnabled(true); ! ! ! stdCodeText.setText(""); ! ! ! stdNameText.setText(""); ! ! ! stdSurnameText.setText("");! ! ! ! ! ! } Note :: ............................................................................................................................................................................................. ............................................................................................................................................................................................. ............................................................................................................................................................................................. ที่ปุม Add Subject ! ! else if (event.getSource() == addSubBtn) { ! ! ! Subject sub = new Subject(subCodeText.getText(), subNameText.getText(), Integer.parseInt(subCreditText.getText())); ! ! ! subTextArea.append(sub.toString()+"n"); ! ! ! reg.setSubject(sub, count); ! ! ! count++; ! ! ! if (count == 5 ){ ! ! ! ! addSubBtn.setEnabled(false); ! ! ! } ! ! ! subCodeText.setText(""); ! ! ! subNameText.setText(""); ! ! ! subCreditText.setText(""); ! ! } Note :: ............................................................................................................................................................................................. ............................................................................................................................................................................................. ............................................................................................................................................................................................. ที่ปุม Save ! ! else if (event.getSource() == saveBtn) { ! ! ! String output=""; ! ! ! output = "Student :" + reg.getStudent(); ! ! ! output += "nSubject:n"; ! ! ! for(int n = 0 ; n < count; n++) ! ! ! ! output += reg.getSubject(n) + "n"; ! ! ! JOptionPane.showMessageDialog(null, output,"Registration Data",JOptionPane.INFORMATION_MESSAGE); ! ! ! resetAll(); ! ! } Note :: ............................................................................................................................................................................................. ............................................................................................................................................................................................. ............................................................................................................................................................................................. ที่ปุม Cancle ! ! else if (event.getSource() == cancleBtn) { ! ! ! resetAll(); ! ! } Note :: ............................................................................................................................................................................................. Page 7 of 8
  • 8. Method resetAll ! public void resetAll() { ! ! stdCodeText.setText(""); ! ! stdNameText.setText(""); ! ! stdSurnameText.setText(""); ! ! stdText.setText(""); ! ! addStdBtn.setEnabled(true); ! ! ! ! subCodeText.setText(""); ! ! subNameText.setText(""); ! ! subCreditText.setText(""); ! ! addSubBtn.setEnabled(false); ! ! subTextArea.setText(""); ! ! ! ! saveBtn.setEnabled(false); ! ! cancleBtn.setEnabled(false); ! ! ! ! count = 0; ! } Note :: ............................................................................................................................................................................................. ............................................................................................................................................................................................. การบาน 1) ตัวแปร count ที่อยูใน Class testComposition มีไวเพื่ออะไร 2) ใหยกเลิกการใชงานตัวแปร count ที่ Class testComposition และใหไปใชตัวแปร count ใน Class Register แทน 3) ใหเพิ่มการทำงานของโปรแกรมโดยใหสามารถคนหา(Search) แกไข(Edit) และลบ(Delete) Subject ได ตัวอยางหนาจอการทำงาน ตัวอยางการสราง Confirm Dialog int ans = JOptionPane.showConfirmDialog(null, "Delete?","Confirm",JOptionPane.YES_NO_OPTION); if (ans == 0) { //ในกรณีที่ผูใชกดปุม Yes แลว ans จะมีคาเทากับ 0 } Page 8 of 8