SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
ANSWER 12-13                                                       Computer Programming using Java              1
   CHAPTER                                         คลาสและอ๊อบเจ็ค
 ANS-12                                           (Classes and Objects)
โจทย์ ข้อที่ 1 [ระดับง่ าย]
 1     public class Num {
 2       private int x;
 3       private double y;
                                                        Attribute
 4       public Num() {
 5         x = 0; y = 0.0;
 6       }                                              Constructor
 7       public Num(int m, double n) {
 8         x = m; y = n;
 9       }
 10      public int addNX(int n) {
 11        return n + x;                                                              Class (ต้ นแบบ)
 12      }
 13      public double addNY(double n) {
 14        return n + y;                                Method                              ผลลัพธ์ ท่ ีได้
 15      }
 16      public void showXY() {                                                        5
 17        System.out.println(x);                                                      7.0
 18        System.out.println(y);                                                      9
 19      }
 20    }                                                                               20.0


 1     public class RunNum {
 2       public static void main(String[] args){
 3         Num obj = new Num(5, 7.0);            Object
 4         obj.showXY();
 5         int a = obj.addNX(4);
 6         double b = obj.addNY(13.0);
                                                                                      Class (ประมวลผล)
 7         System.out.println(a);          Main Method
 8         System.out.println(b);
 9       }
 10    }




โจทย์ ข้อที่ 2 [ระดับง่ าย]
1)                                    6)                                     11)
2)                                    7)                                     12)
3)                                    8)                                     13)
4)                                    9)                                     14)
5)                                    10)                                    15)




© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
2     Computer Programming using Java                                                            ANSWER 12-13


    โจทย์ ข้อที่ 3 [ระดับง่ าย]
    public class Course {
        //แอตทริบว 3 ตัว
                 ิ
          private int id;
          public String title;
          protected double credit;


        //ตัวสร้ างแบบไม่ มีพารามิเตอร์ ใดๆ
          public Course() {
            id = 0;
            title = "";
            credit = 0.0;
          }


        //ตัวสร้ างแบบมีพารามิเตอร์ 3 ตัว
          public Course(int i, String t, double c) {
            id = i;
            title = t;
            credit = c;
          }


        //เมท็อด setID(…)
          public void setID(int i) {
            id = i;
          }


        //เมท็อด setTitle(…)
          public void setTitle(String t) {
            title = t;
          }


        //เมท็อด setCredit(…)
          public void setCredit(double c) {
            credit = c;
          }


        //เมท็อด getLevel(…)
          public String getLevel() {
            if (id % 1000 / 100 <= 4) {
              return "Undergraduate";
            } else {
              return "Graduate";
            }
          }




    © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                ้
ANSWER 12-13                                                       Computer Programming using Java              3
    //เมท็อด getFaculty(…)
      public int getFaculty() {
        return id / 100000;
      }


    //เมท็อด getDepartment(…)
      public int getDepartment() {
        return id / 1000 % 100;
      }


    //เมท็อด toString(…)
      public String toString() {
        return id + " " + title + " (" + credit + ")";
      }

} //End of class


โจทย์ ข้อที่ 4 [ระดับง่ าย]
 9                               1) แอตทริบว y หรือตัวแปร y
                                            ิ
 5
 7                               2) ตัวแปร y (ในบรรทัดที่ 13)
 1
 1
 12
 11
 1
 12



โจทย์ ข้อที่ 5 [ระดับง่ าย]
 0,
 101,Taksin
 103,Apisit
 Taksin:U
 Apisit:S




© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
4        Computer Programming using Java                                                         ANSWER 12-13


    โจทย์ ข้อที่ 6 [ระดับง่ าย]
    //ประกาศหัวคลาส TestNumber
    import java.util.Scanner;
     public class TestNumber {

         public static void main(String[] args) {
           Scanner kb = new Scanner(System.in);
            //อ๊ อบเจ็คชื่อ no1
             Number no1 = new Number();


            //อ๊ อบเจ็คชื่อ no2
             System.out.print("Enter x : ");
             double x = kb.nextDouble();
             System.out.print("Enter y : ");
             double y = kb.nextDouble();
             Number no2 = new Number(x, y);


            //แสดงผลการบวก การลบ การคณ การหาร และการม็อด
                                     ู
             System.out.println("Add:           "   +   no2.add());
             System.out.println("Sub:           "   +   no2.sub());
             System.out.println("Mul:           "   +   no2.mul());
             System.out.println("Div:           "   +   no2.div());
             System.out.println("Mod:           "   +   no2.mod());

      } //End of main
    } //End of class


    โจทย์ ข้อที่ 7 [ระดับง่ าย]
    1) public double              data;

    2)     private static int var = 10;

    3)     protected static boolean check;

    4)     private String stdName[] = new String[351];

    5)     public static int m[][] = new int[8][5];

    6)     private void show(String stdName, double grade)

    7)     protected static int search(int num[], int x)

    8)     public double[][] mulMatrix(double a[][], double b[][])


    © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                ้
ANSWER 12-13                                                       Computer Programming using Java              5
9)     public static int[] union(int x[], int y[])



โจทย์ ข้อที่ 8 [ระดับง่ าย]
 ข้ อ คําตอบ                   ข้ อ คําตอบ                 ข้ อ คําตอบ                  ข้ อ คําตอบ
  1.         B                 6.      A                   11.     C                    16.     D
  2.         D                 7.      D                   12.     B                    17.     C
  3.         B                 8.      D                   13.     D                    18.     D
  4.         C                 9.      A                   14.     A                    19.     B
  5.         B                 10.     D                   15.     B                    20.     C


โจทย์ ข้อที่ 9 [ระดับปานกลาง]
 0,0
 6,10
 Good By A
 See You F
 0,0
 5,7
 5,7
 9,7
 9,7
 I Love Java



โจทย์ ข้อที่ 10 [ระดับปานกลาง]
public class Dice {
     //แอตทริบวประจําอ๊ อบเจ็คชื่อ face และ value
              ิ
      public int face;
      public int value;

     //ตัวสร้ างแบบไม่ มีพารามิเตอร์
      public Dice() {
        face = 2;
        roll();
      }


     //ตัวสร้ างแบบมีพารามิเตอร์ หนึ่งตัว
      public Dice(int f) {
        face = f;
        roll();
      }



© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
6     Computer Programming using Java                                                            ANSWER 12-13


       //ตัวสร้ างแบบมีพารามิเตอร์ สองตัว
        public Dice(int f, int v) {
          face = f;
          value = v;
        }


       //เมท็อดประจําอ๊ อบเจ็คชื่อ roll
        public void roll() {
          value = (int)(Math.random() * face) + 1;
        }


       //เมท็อดประจําอ๊ อบเจ็คชื่อ setValue
        public void setValue(int v) {
          value = v;
        }


       //เมท็อดประจําอ๊ อบเจ็คชื่อ getFace
        public int getFace() {
          return face;
        }


       //เมท็อดประจําอ๊ อบเจ็คชื่อ getValue
        public int getValue() {
          return value;
        }


       //เมท็อดประจําอ๊ อบเจ็คชื่อ show
        public void show() {
          System.out.println("Face: " + face);
          System.out.println("Value: " + value);
        }

    } //End of class




    © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                ้
ANSWER 12-13                                                       Computer Programming using Java              7
public class TestDice {
   /* สร้ างลกเต๋ า 3 ลก ในรปของอ๊ อบเจ็คที่ช่ ือ d1, d2 และ d3 */
             ู         ู    ู
     public static void main(String[] args) {
       Dice d1 = new Dice();
       Dice d2 = new Dice(13);
       Dice d3 = new Dice(30, 9);
       d1.show();
       d2.show();
       d3.show();
       for (int i = 1; i <= 20; i++) {
         d1.roll();
         System.out.println(d1.getValue());
         d2.roll();
         System.out.println(d2.getValue());
         d3.roll();
         System.out.println(d3.getValue());
         System.out.println("-------");
       }
     }

} //End of class


โจทย์ ข้อที่ 11 [ระดับปานกลาง]
public class RealNumber {
   //แอตทริบวประจําอ๊ อบเจ็คแบบ public ชื่อ num
            ิ
    public double num;

   //ตัวสร้ างแบบไม่ มีพารามิเตอร์
    public RealNumber() {
      num = 0.0;
    }

   //ตัวสร้ างแบบมีพารามิเตอร์
    public RealNumber(double n) {
      num = n;
    }

   //เมท็อดประจําอ๊ อบเจ็คชื่อ plus
    public double plus(double n) {
      return num + n;
    }

   //เมท็อดประจําอ๊ อบเจ็คชื่อ diff
    public double diff(double n) {
      double x = num – n;
      if (x >= 0) return x;
      else return –x;
    }

} //End of class
© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
8     Computer Programming using Java                                                            ANSWER 12-13


    public class TestRealNumber {
       /* สร้ างจํานวนจริง 1 จํานวนในรปของอ๊ อบเจ็ค r */
                                      ู
         public static void main(String[] args) {
           RealNumber r = new RealNumber();
           System.out.println(r.plus(15));
           System.out.println(r.diff(50));
         }

    } //End of class


    โจทย์ ข้อที่ 12 [ระดับปานกลาง]
     public class Account {
       private double balance;
       public Account() {
         balance = 0.0;
       }
       public Account(double money) {
         balance = money;
       }
       public void deposit(double money) {
         balance += money;
       }
       public double withdraw(double money) {
         if (balance >= money) {
           balance -= money;
           return money;
         } else {
           return 0.0;
         }
       }
       public double getbalance() {
         return balance;
       }
     } //End of Class




    สร้ างคลาส TestAccount
     public class TestAccount {
       public static void main(String[] args) {
         Account acc = new Account(2000);
         System.out.println("New Account");
         System.out.println("Balance : " + acc.getbalance());
         double money = acc.withdraw(1500);
         System.out.println("Withdraw : " + money);
         System.out.println("Balance : " + acc.getbalance());
         acc.deposit(800);
         System.out.println("Deposit : " + 800);
         System.out.println("Balance : " + acc.getbalance());
       }
     }



    © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                ้
ANSWER 12-13                                                       Computer Programming using Java              9
โจทย์ ข้อที่ 13 [ระดับปานกลาง]
public class PiggyBank {
    (1) แอตทริบว one, two, five และ ten
                 ิ
    (2) แอตทริบว size
               ิ
     public int one, two, five, ten;
     public int size;


    (3) ตัวสร้ าง 2 แบบ
     PiggyBank() {
       clear();
       size = 100;
     }
     PiggyBank(int s) {
       clear();
       size = s;
     }


    (4) เมท็อดประจําอ๊ อบเจ็คชื่อ clear(…)
     public void clear() {
       one = two = five = ten = 0;
     }


    (5) เมท็อดประจําอ๊ อบเจ็คชื่อ getTotal(…)
     public int getTotal() {
       return one + (2 * two) + (5 * five) + (10 * ten);
     }


    (6) เมท็อดประจําอ๊ อบเจ็คชื่อ full(…)
     public boolean full() {
       return getTotal() >= size;
     }
    (7) เมท็อดประจําอ๊ อบเจ็คชื่อ addOne(…)
     public void addOne(int c) {
       if (getTotal() + c <= size) one = one + c;
       else System.out.println("Piggy Bank Full");
     }


    (8) เมท็อดประจําอ๊ อบเจ็คชื่อ addTwo(…)
     public void addTwo(int c) {
       if (getTotal() + 2 * c <= size) two = two + c;
       else System.out.println("Piggy Bank Full");
     }


    (9) เมท็อดประจําอ๊ อบเจ็คชื่อ addFive(…)

© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
10     Computer Programming using Java                                                            ANSWER 12-13


          public void addFive(int c) {
            if (getTotal() + 5 * c <= size) five = five + c;
            else System.out.println("Piggy Bank Full");
          }


         (10) เมท็อดประจําอ๊ อบเจ็คชื่อ addTen(…)
          public void addTen(int c) {
            if (getTotal() + 10 * c <= size) ten = ten + c;
            else System.out.println("Piggy Bank Full");
          }


     }//End of class

     สร้ างคลาส TestPiggyBank
     public class TestPiggyBank {
       public static void main(String[] args) {
            PiggyBank pb = new PiggyBank(500);
            System.out.println("Money Total : " + pb.getTotal());
            pb.addTwo(34);
            System.out.println("Add 2 Baht Money : " + 34);
            System.out.println("Money Total : " + pb.getTotal());
            pb.addTen(13);
            System.out.println("Add 10 Baht Money : " + 13);
            System.out.println("Money Total : " + pb.getTotal());


       }//End of main
     }//End of class




     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
ANSWER 12-13                                                       Computer Programming using Java              11
  CHAPTER                                   คลาสและอ๊อบเจ็คแบบซับซ้อน
 ANS-13                                    (Advanced Classes and Objects)
โจทย์ ข้อที่ 1 [ระดับปานกลาง]
  เรี ยกตัวสร้ างใด    ผลลัพธ์ ท่ แสดง
                                  ี
  (ระบุหมายเลข)       ขึนบนจอภาพคือ
                        ้

          1                 0,0


          2                 13,2


          3                 13,2


      2       3             7,11


          2              11,13


      1       3             0,0


public class Num {
  ...
  public boolean isEquals(int x, int y) {
          return this.x == x && this.y == y;

   }
   public boolean isEquals(Num n) {
          return x == n.x && y == n.y;

  }
} //End of class


โจทย์ ข้อที่ 2 [ระดับยาก]
public class Coin {
   //แอตทริบว side และ value
            ิ
     public int value;
     public String side;




© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
12     Computer Programming using Java                                                            ANSWER 12-13


        //ตัวสร้ างแบบไม่ มีพารามิเตอร์
         public Coin() {
           side = "H";
           value = 1;
         }


        //ตัวสร้ างแบบมีพารามิเตอร์ สองตัว
         public Coin(String s, int v) {
           side = s;
           value = v;
         }


        //ตัวสร้ างแบบมีพารามิเตอร์ หนึ่งตัว
         public Coin(Coin c) {
           side = c.side;
           value = c.value;
         }


        //เมท็อด flip(…)
         public void flip() {
           side = list[(int)(Math.random() * 2)];
         }


        //เมท็อด reverse(…)
         public void reverse() {
           if (side.equals("H")) {
             side = "T";
           } else {
             side = "H";
           }
         }


        //เมท็อด equals(…)
         public boolean equals(Coin c) {
           return side == c.side && value == c.value;
         }

     } //End of class




     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
ANSWER 12-13                                                       Computer Programming using Java              13
/* คลาส DemoCoin */
public class DemoCoin {
  public static void main(String[] args) {
       Coin c1 = new Coin();
       Coin c2 = new Coin("H", 1);
       Coin c3 = new Coin("T", 5);
       Coin c4 = new Coin(c3);
       for (int i = 1; i <= 20; i++) {
         c1.flip();
         c2.reverse();
         c3.flip();
         c4.reverse();
         System.out.println(c1.equals(c2));
         System.out.println(c3.equals(c4));
       }


  } //End of main
} //End of class


โจทย์ ข้อที่ 3 [ระดับยาก]
public class SetOfInteger {
    //แอตทริบว iSet
             ิ
      public int iSet[];


    //ตัวสร้ างแบบที่รับพารามิเตอร์ 1 ตัวที่เป็ นอาเรย์
    public SetOfInteger(int[] x) {
         x = sort(x);
         x = removeDuplicatedMembers(x);
         iSet = new int[x.length];
         for (int i = 0; i < iSet.length; i++) {
           iSet[i] = x[i];
         }

    } //End of constructor

    //ตัวสร้ างแบบที่รับพารามิเตอร์ 1 ตัวที่เป็ นชนิด SetOfInteger
    public SetOfInteger(SetOfInteger s) {
         iSet = new int[s.iSet.length];
         for (int i = 0; i < iSet.length; i++) {
           iSet[i] = s.iSet[i];
         }

    } //End of constructor

    //เมท็อด sort(…)
    public int[] sort(int x[]) {
      ...
    } //End of method

© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
14     Computer Programming using Java                                                            ANSWER 12-13


         //เมท็อด removeDuplicatedMembers(…)
         public int[] removeDuplicatedMembers(int x[]) {
           ...
         } //End of method

         //เมท็อด equals(…)
         public boolean equals(SetOfInteger x) {
              if (x.iSet.length == iSet.length) {
                for (int i = 0; i < x.iSet.length; i++) {
                  if (x.iSet[i] != iSet[i]) return false;
                }
                return true;
              } else {
                return false;
              }

         } //End of method

         //เมท็อด toString(…)
         public String toString() {
              String s = "";
              for (int i = 0; i < iSet.length; i++)
                s = s + iSet[i] + " ";
              return s;

         } //End of method

         //เมท็อด addElement(…)
         public void addElement(int a) {
              int x[] = new int[iSet.length + 1];
              for (int i = 0; i < x.length - 1; i++)
                x[i] = iSet[i];
              x[x.length - 1] = a;
              x = sort(x);
              x = removeDuplicatedMembers(x);
              iSet = x;

         } //End of method

         //เมท็อด findElement(…)
         public int findElement(int a) {
              for (int i = 0; i < iSet.length; i++)
                if (iSet[i] == a) return i;
              return -1;

         } //End of method




     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
ANSWER 12-13                                                       Computer Programming using Java              15
    //เมท็อด isSubset(…)
    public boolean isSubset(SetOfInteger s) {
         int count = 0;
         for (int i = 0; i < s.iSet.length; i++) {
           for (int j = 0; j < iSet.length; j++) {
             if (s.iSet[i] == iSet[j]) {
               count++;
               break;
             }
           }
         }
         return s.iSet.length == count;

    } //End of method

    //เมท็อด union(…)
    public SetOfInteger union(SetOfInteger s) {
         int x[] = new int[s.iSet.length + iSet.length];
         for (int i = 0; i < x.length; i++) {
           if (i < iSet.length) x[i] = iSet[i];
           else x[i] = s.iSet[i - iSet.length];
         }
         SetOfInteger un = new SetOfInteger(x);
         return un;

    } //End of method

    //เมท็อด intersect(…)
    public SetOfInteger intersect(SetOfInteger s) {
         int x[] = new int[s.iSet.length];
         int len = 0;
         for (int i = 0; i < s.iSet.length; i++) {
           for (int j = 0; j < this.iSet.length; j++) {
             if (s.iSet[i] == this.iSet[j]) {
               x[len] = s.iSet[i];
               len++;
               break;
             }
           }
         }
         int n[] = new int[len];
         for (int i = 0; i < n.length; i++)
           n[i] = x[i];
         SetOfInteger inter = new SetOfInteger(n);
         return inter;

   } //End of method
} //End of class




© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
16     Computer Programming using Java                                                            ANSWER 12-13


     โจทย์ ข้อที่ 4 [ระดับยาก]
     public class Student {
        //แอตทริบวประจําอ๊ อบเจ็ค 3 ตัว
                 ิ
          private int id;
          private String name;
          private double score[];


        //ตัวสร้ างแบบไม่ กาหนดพารามิเตอร์
                           ํ
          Student() {
            id = 0;
            name = "";
            score = new double[0];
          }

        //ตัวสร้ างแบบ 3 พารามิเตอร์
          Student(int i, String n, int x) {
            id = i;
            name = n;
            score = new double[x];
          }


        //ตัวสร้ างแบบ 1 พารามิเตอร์
          Student(Student s) {
            id = s.getID();
            name = s.getName();
            score = s.getScore();
          }

         //เมท็อดประจําอ๊ อบเจ็ค 4 เมท็อด getID(…), getName(…), getScore(…)และ setScore(…)
          public int getID() {
            return id;
          }
          public String getName() {
            return name;
          }
          public double[] getScore() {
            return score;
          }
          public void setScore(double scr[]) {
            for (int i = 0; i < scr.length; i++) {
              score[i] = scr[i];
            }
          }

     } //End of class




     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
ANSWER 12-13                                                       Computer Programming using Java              17
คลาส Freshmen
import java.util.Scanner;
public class Freshmen {
  public static void main(String[] args) {
    Scanner kb = new Scanner(System.in);
      //กําหนดให้ มีนิสิต 800 คน
       Student s[] = new Student[800];


      //กําหนดค่ าเริ่มต้ นให้ กับเลขประจําตัวของนิสิต ชื่อนิสิต จํานวนวิชา
       for (int i = 0; i < s.length; i++) {
         int id = (53001 + i) * 100 + 21;
         System.out.print("Enter name : ");
         String name = kb.nextLine();
         s[i] = new Student(id, name, 4);
       }


      //เรียกใช้ งานเมท็อด setScore(…)
       for (int i = 0; i < s.length; i++) {
         double scr[] = new double[4];
         for (int j = 0; j < scr.length; j++)
           scr[j] = Math.random() * 100;
         s[i].setScore(scr);
       }


      //แสดงเลขประจําตัวนิสิต ชื่อนิสิต และคะแนนทัง 4 รายวิชาของนิสิตแต่ ละคน
                                                  ้
       for (int i = 0; i < s.length; i++) {
         System.out.print(s[i].getID() + "t" + s[i].getName() + "t");
         for (int j = 0; j < s[i].getScore().length; j++)
           System.out.print(s[i].getScore()[j] + "t");
         System.out.println();
       }


      //คํานวนหาคะแนนเฉลี่ยของแต่ ละรายวิชา
       for (int j = 0; i < s[0].getScore().length; j++) {
         double sum = 0.0;
         for (int i = 0; i < s.length; i++) {
           sum += s[i].getScore()[j];
         }
         System.out.println(sum / s.length);
       }


  } //End of main
} //End of class




© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
18     Computer Programming using Java                                                            ANSWER 12-13


     โจทย์ ข้อที่ 5 [ระดับยาก]
     1. คลาส Owner
     public class Owner {
         //แอตทริบว id และแอตทริบว name
                  ิ              ิ
          private int id;
          private String name;


         //ตัวสร้ างแบบไม่ มีพารามิเตอร์
          public Owner() {
            id = 0;
            name = "";
          }


         //ตัวสร้ างแบบที่มีพารามิเตอร์ 2 ตัว
          public Owner(int i, String n)
            id = i;
            name = n;
          }


         //ตัวสร้ างแบบที่มีพารามิเตอร์ 1
          public Owner(Owner own) {
            id = own.getID();
            name = own.getName();
          }


         //เมท็อด getId(…)
          public int getID() {
            return id;
          }


         //เมท็อด getName(…)
          public String getName() {
            return name;
          }


         //เมท็อด setID(…)
          public void setID(int i) {
            id = i;
          }


         //เมท็อด setName(…)
          public void setName(String n) {
            name = n;
          }


     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
ANSWER 12-13                                                       Computer Programming using Java              19
    //เมท็อด show(…)
     public void show() {
       System.out.println("ID : " + id);
       System.out.println("Name : " + name);
     }

} //End of class

2. คลาส Land
public class Land {
    //แอตทริบว n และแอตทริบว price
             ิ             ิ
     public Owner n;
     public double price;


    //ตัวสร้ างแบบไม่ มีพารามิเตอร์
     public Land() {
       n = new Owner();
       price = 0.0;
     }


    //ตัวสร้ างแบบมีพารามิเตอร์ 2 ตัว
     public Land(Owner w, double p) {
       n = new Owner(w);
       price = p;
     }


    //เมท็อด setOwner(…)
     public void setOwner(Owner w) {
       n.setID(w.getID());
       n.setName(w.getName());
     }


    //เมท็อด setPrice(…)
     public void setPrice(double p) {
       price = p;
     }


    //เมท็อด show(…)
     public void show() {
       n.show();
       System.out.println("Price : " + price);
     }

} //End of class




© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
20     Computer Programming using Java                                                            ANSWER 12-13


     3. คลาส City
     import java.util.Scanner;
     public class City {
       public static void main(String[] args) {
           //อาเรย์ ของอ๊ อบเจ็ค Land
            Land a[][] = new Land[50][60];


           //กําหนดค่ าเริ่มต้ นให้ กับที่ดนทุกแปลง
                                           ิ
            for (int i = 0; i           < a.length; i++) {
              for (int j = 0;           j < a[i].length; j++) {
                Owner n = new           Owner();
                a[i][j] = new           Land(n, (int)(Math.random() * 10000000) + 1);
              }
            }


           //อ๊ อบเจ็คชื่อ ow1
            Owner ow1 = new Owner(1001, "Tukie");
            ow1.show();


           //อ๊ อบเจ็คชื่อ ow2
            Owner ow2 = new Owner(1002, "Annie");
            ow2.show();


           //ให้ ow1 ครอบครองที่ดนในแปลงตําแหน่ งที่ (4, 9)
                                 ิ
            a[4][9].setOwner(ow1);
            a[4][9].show();


           //เปลี่ ยนราคาที่ดนที่ ow1 ครองครองอย่ ู
                             ิ
            a[4][9].setPrice(30000000.0);
            a[4][9].show();


           //เปลี่ ยนให้ ow2 เข้ าไปครอบครองที่ดนแปลงที่ ow1 ครอบครองอย่ ู
                                                ิ
            a[4][9].setOwner(ow2);
            a[4][9].show();


           //กําหนดให้ ow1 เข้ าครอบครองที่ดนแปลงใหม่ 50 แปลง
                                            ิ
            for (int i = 0; i < a.length; i++) {
              a[i][0].setOwner(ow1);
              a[i][0].setPrice(50000000.0);
              a[i][0].show();
            }


       } //End of main
     } //End of class

     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
ANSWER 12-13                                                       Computer Programming using Java              21
โจทย์ ข้อที่ 6 [ระดับยาก]
คลาส SScanner
import java.util.Scanner;
import java.io.InputStream;
public class SScanner {
  //แอตทริบว kb
           ิ
    public Scanner kb;


  //ตัวสร้ าง
     public SScanner(InputStream in) {
       kb = new Scanner(in);
     }


   //เมท็อด nextInt(…)
     public int nextInt() {
       return kb.nextInt();
     }


   //เมท็อด nextLine(…)
     public String nextLine() {
       String s = "";
       while (true) {
         s = kb.nextLine();
         if(s.length() != 0) break;
       }
       return s;
     }

} //End of class


คลาส TestSScanner
public class TestSScanner {
  public static void main(String[] args) {
       SScanner kb = new SScanner(System.in);
       System.out.print("Enter Int: ");
       int a = kb.nextInt();
       System.out.print("Enter Str: ");
       String b = kb.nextLine();
       System.out.println(a + "," + b);


  } //End of main
} //End of class




© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
22     Computer Programming using Java                                                            ANSWER 12-13


     โจทย์ ข้อที่ 7 [ระดับเทพ]
     1. คลาส Fruit
     public class Fruit {
         //แอตทริบวประจําอ๊ อบเจ็คชื่อ name และ weigh
                  ิ
          public String name;
          public double weigh;

         //ตัวสร้ าง 4 แบบ ดังต่ อไปนี ้
          public Fruit() {
            name = "";
            weigh = 0.0;
          }

          public Fruit(String n) {
            name = n;
            weigh = wh[(int)(Math.random() * 5)];
          }

          public Fruit(String n, double w) {
            name = n;
            weigh = w;
          }

          public Fruit(Fruit f) {
            name = f.name;
            weigh = f.weigh;
          }


         //เมท็อดประจําอ๊ อบเจ็คชื่อ showFruit
          public void showFruit() {
            System.out.println(name + " " + weigh + " kg.");
          }

     } //End of class


     2. คลาส Basket
     public class Basket {
         //แอตทริบวประจําอ๊ อบเจ็คชื่อ fruit และ count
                  ิ
          public Fruit fruit[];
          public int count;


         //ตัวสร้ างแบบไม่ มีพารามิเตอร์
          public Basket() {
            fruit = new Fruit[10];
            count = 0;
          }




     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
ANSWER 12-13                                                       Computer Programming using Java              23
    //ตัวสร้ างแบบหนึ่งพารามิเตอร์ ชนิดจํานวนเต็ม
     public Basket(int n) {
       fruit = new Fruit[n];
       count = 0;
     }


    //ตัวสร้ างแบบหนึ่งพารามิเตอร์ ชนิด Basket
     public Basket(Basket b) {
       fruit = new Fruit[b.fruit.length];
       for (int i = 0; i < fruit.length; i++) {
         fruit[i] = b.fruit[i];
       }
       count = b.count;
     }

    //เมท็อดประจําอ๊ อบเจ็คชื่อ isFull
     public boolean isFull() {
       return count == fruit.length;
     }


    //เมท็อดประจําอ๊ อบเจ็คชื่อ isEmpty
     public boolean isEmpty() {
       return count == 0;
     }


    //เมท็อดประจําอ๊ อบเจ็คชื่อ takeIn
     public void takeIn(Fruit f) {
       if (!isFull()) {
         fruit[count] = f;
         count++;
       } else {
         System.out.println("Basket Full");
       }
     }


    //เมท็อดประจําอ๊ อบเจ็คชื่อ takeOut
     public Fruit takeOut() {
       if (!isEmpty()) {
         count--;
         Fruit f = fruit[count];
         fruit[count] = null;
         return f;
       } else {
         System.out.println("Basket Empty");
         return null;
       }
     }




© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
24     Computer Programming using Java                                                            ANSWER 12-13


         //เมท็อดประจําอ๊ อบเจ็คชื่อ getTotalWeigh
          public double getTotalWeigh() {
            double weigh = 0.0;
            for (int i = 0; i < count; i++) {
              weigh += fruit[i].weigh;
            }
            return weigh;
          }


         //เมท็อดประจําอ๊ อบเจ็คชื่อ showBasket
          public void showBasket() {
            for (int i = 0; i < count; i++) {
              fruit[i].showFruit();
            }
          }

     } //End of class

     3. คลาส FruitBasket
     import java.util.Scanner;
     public class FruitBasket {
         //เมท็อดประจําคลาสชื่อ getFruitBasket
          public static Basket getFruitBasket(String f, double w, int n) {
            Basket bsk = new Basket(n);
            Fruit frt[] = new Fruit[n];
            for (int i = 0; i < frt.length; i++) {
              if (w <= 0.0) frt[i] = new Fruit(f);
              else frt[i] = new Fruit(f, w);
              bsk.takeIn(frt[i]);
            }
            return bsk;
          }


         //เมท็อดประจําคลาสชื่อ showFruitBasket
          public static void showFruitBasket(Basket b) {
            System.out.println("Total Weigh: " + b.getTotalWeigh());
            System.out.println("Total Fruit: " + b.count);
            System.out.println("List of Fruit: ");
            b.showBasket();
          }


        //เมท็อด main
        public static void main(String[] args) {
           //สร้ างกระเช้ าผลไม้ ขึนมา 3 กระเช้ า
                                   ้
            Basket      x[] = new Basket[3];
            x[0] =      getFruitBasket("Apple", 0.12, 25);
            x[1] =      getFruitBasket("Orange", 0.1, 30);
            x[2] =      getFruitBasket("Melon", 0.45, 15);



     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
ANSWER 12-13                                                       Computer Programming using Java              25
      //สร้ างกระเช้ าผลไม้ เปล่ าๆ ขึนมาอีก 6 กระเช้ า
                                      ้
       Basket y[] = new Basket[6];
       for(int i = 0; i < y.length; i++) {
         y[i] = new Basket();
         int j = 0;
         while (!y[i].isFull()) {
           if (!x[j].isEmpty()) y[i].takeIn(x[j].takeOut());
           if (y[i].getTotalWeigh() > 2.0) {
             Fruit tmp = y[i].takeOut();
             break;
           }
           j++;
           if (j > 2) j = 0;
         }
         System.out.println("-----Basket " + (i + 1) + "-----");
         showFruitBasket(y[i]);
       }

  } //End of main
} //End of class


โจทย์ ข้อที่ 8 [ระดับเทพ]
คลาส Student
public class Student {
    //แอตทริบว id แอตทริบว name และแอตทริบว noob
             ิ           ิ                ิ
     private int id;
     private String name;
     private int noob;


    //ตัวสร้ างแบบไม่ มีพารามิเตอร์
     Student() {
       id = 0;
       name = "";
       noob = 0;
     }


    //ตัวสร้ างแบบที่รับพารามิเตอร์ 3 ตัว
     Student(int i, String n, int x) {
       id = i;
       name = n;
       noob = x;
     }


    //ตัวสร้ างแบบที่รับพารามิเตอร์ เป็ นชนิด Student
     Student(Student s) {
       set(s);
     }


© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
26     Computer Programming using Java                                                            ANSWER 12-13


         //เมท็อด getID(…)
          public int getID() {
            return id;
          }


         //เมท็อด getName(…)
          public String getName() {
            return name;
          }


         //เมท็อด getNoob(…)
          public int getNoob() {
            return noob;
          }


         //เมท็อด set(…)
          public     void set(Student s) {
            id =     s.getID();
            name     = s.getName();
            noob     = s.getNoob();
          }


         //เมท็อด show(…)
          public void show() {
            String s = "";
            if (noob == 1) s = "1-Noob";
            else if (noob == 2) s = "2-Father Noob";
            else if (noob == 3) s = "3-God Noob";
            else if (noob == 4) s = "4-Hof Noob";
            else s = "Unknown";
            System.out.println(id + " " + name + " [" + s + "]");
          }


     } //End of class


     คลาส Room
     public class Room {
         //แอตทริบว s ที่เป็ นอาเรย์ 2 มิตชนิด Student
                  ิ                       ิ
          public static Student s[][] = new Student[16][40];




     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
ANSWER 12-13                                                       Computer Programming using Java              27
    //เมท็อด setSeat(…)
     public static void setSeat(Student st) {
       int startRow = s.length - 1 - (s.length / 4) * (4 - st.getNoob());
       for (int i = startRow; i < startRow + 4; i++) {
         for (int j = 0; j < s[i].length; j++) {
           if (s[i][j].getName().equals("") &&
               j != s[i].length / 2 &&
               j != s[i].length / 2 - 1) {
             s[i][j].set(st);
             return;
           }
         }
       }
       System.out.println("No Reserved Seat");
     }


    //เมท็อด showroom(…)
     public static void showRoom() {
       for (int i = 0; i < s.length; i++) {
         for (int j = 0; j < s[i].length; j++) {
           if (j == s[i].length / 2 || j == s[i].length / 2 - 1) {
             System.out.print(" ");
           } else {
             if (!s[i][j].getName().equals(""))
               System.out.print(s[i][j].getName().substring(0, 1) + " ");
             else
               System.out.print("# ");
           }
         }
         System.out.println();
       }
     }


    //เมท็อด showStudent(…)
     public static void showStudent(int r, int c) {
       System.out.print("Seat Row " + r + " Column " + c + "t");
       s[r + s.length - 2][c - 1].show();
     }


    //เมท็อด showStudent(…)
     public static void showStudent() {
       for (int i = s.length - 1; i >= 0; i--) {
         for (int j = 0; j < s[i].length; j++) {
           if (!s[i][j].getName().equals("")) {
             System.out.print("Seat Row " + (s.length - i) + " Column " +
                             (j + 1) + "t");
             s[i][j].show();
           }
         }
       }
     }


© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
28     Computer Programming using Java                                                            ANSWER 12-13


         //เมท็อด main(…)
          public static void main(String[] args) {
            for (int i = 0; i < s.length; i++) {
              for (int j = 0; j < s[i].length; j++) {
                s[i][j] = new Student();
              }
            }
            Student s1 = new Student(53300121, "Akeudom", 1); setSeat(s1);
            Student s2 = new Student(53300221, "Phakhin", 1); setSeat(s2);
            Student s3 = new Student(53300321, "Taparb", 2); setSeat(s3);
            Student s4 = new Student(53300421, "Ong-ard", 3); setSeat(s4);
            Student s5 = new Student(53300521, "Wongyos", 4); setSeat(s5);
            showRoom();
            showStudent();
          }

     } //End of class




     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้

Más contenido relacionado

La actualidad más candente

Java-Answer Chapter 08-09 (For Print)
Java-Answer Chapter 08-09 (For Print)Java-Answer Chapter 08-09 (For Print)
Java-Answer Chapter 08-09 (For Print)Wongyos Keardsri
 
Java-Answer Chapter 10-11 (For Print)
Java-Answer Chapter 10-11 (For Print)Java-Answer Chapter 10-11 (For Print)
Java-Answer Chapter 10-11 (For Print)Wongyos Keardsri
 
Java-Answer Chapter 07 (For Print)
Java-Answer Chapter 07 (For Print)Java-Answer Chapter 07 (For Print)
Java-Answer Chapter 07 (For Print)Wongyos Keardsri
 
Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)Wongyos Keardsri
 
Java-Chapter 11 Recursions
Java-Chapter 11 RecursionsJava-Chapter 11 Recursions
Java-Chapter 11 RecursionsWongyos Keardsri
 
Java-Chapter 12 Classes and Objects
Java-Chapter 12 Classes and ObjectsJava-Chapter 12 Classes and Objects
Java-Chapter 12 Classes and ObjectsWongyos Keardsri
 
Java-Chapter 01 Introduction to Java Programming
Java-Chapter 01 Introduction to Java ProgrammingJava-Chapter 01 Introduction to Java Programming
Java-Chapter 01 Introduction to Java ProgrammingWongyos Keardsri
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นFinian Nian
 
6.Flow control
6.Flow control6.Flow control
6.Flow controlUsableLabs
 
สูตรอนุพันธ์ของฟังก์ชัน อนินท์ญา
สูตรอนุพันธ์ของฟังก์ชัน อนินท์ญาสูตรอนุพันธ์ของฟังก์ชัน อนินท์ญา
สูตรอนุพันธ์ของฟังก์ชัน อนินท์ญาKanomwan Jeab
 
Java Programming: อะเรย์และคอลเล็กชั่น
Java Programming: อะเรย์และคอลเล็กชั่นJava Programming: อะเรย์และคอลเล็กชั่น
Java Programming: อะเรย์และคอลเล็กชั่นThanachart Numnonda
 
Java Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and CollectionJava Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and CollectionIMC Institute
 
ประวัติ แคลคูลัส
ประวัติ แคลคูลัสประวัติ แคลคูลัส
ประวัติ แคลคูลัสPloy Purr
 
Java-Chapter 10 Two Dimensional Arrays
Java-Chapter 10 Two Dimensional ArraysJava-Chapter 10 Two Dimensional Arrays
Java-Chapter 10 Two Dimensional ArraysWongyos Keardsri
 
09 multi arrays
09 multi arrays09 multi arrays
09 multi arraysa-num Sara
 

La actualidad más candente (20)

Java-Answer Chapter 08-09 (For Print)
Java-Answer Chapter 08-09 (For Print)Java-Answer Chapter 08-09 (For Print)
Java-Answer Chapter 08-09 (For Print)
 
Java-Answer Chapter 10-11 (For Print)
Java-Answer Chapter 10-11 (For Print)Java-Answer Chapter 10-11 (For Print)
Java-Answer Chapter 10-11 (For Print)
 
Java-Answer Chapter 07 (For Print)
Java-Answer Chapter 07 (For Print)Java-Answer Chapter 07 (For Print)
Java-Answer Chapter 07 (For Print)
 
Java-Answer Chapter 07
Java-Answer Chapter 07Java-Answer Chapter 07
Java-Answer Chapter 07
 
Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)
 
Java-Chapter 11 Recursions
Java-Chapter 11 RecursionsJava-Chapter 11 Recursions
Java-Chapter 11 Recursions
 
Java-Chapter 12 Classes and Objects
Java-Chapter 12 Classes and ObjectsJava-Chapter 12 Classes and Objects
Java-Chapter 12 Classes and Objects
 
Java-Chapter 01 Introduction to Java Programming
Java-Chapter 01 Introduction to Java ProgrammingJava-Chapter 01 Introduction to Java Programming
Java-Chapter 01 Introduction to Java Programming
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
 
6.Flow control
6.Flow control6.Flow control
6.Flow control
 
662305 08
662305 08662305 08
662305 08
 
สูตรอนุพันธ์ของฟังก์ชัน อนินท์ญา
สูตรอนุพันธ์ของฟังก์ชัน อนินท์ญาสูตรอนุพันธ์ของฟังก์ชัน อนินท์ญา
สูตรอนุพันธ์ของฟังก์ชัน อนินท์ญา
 
Java Programming: อะเรย์และคอลเล็กชั่น
Java Programming: อะเรย์และคอลเล็กชั่นJava Programming: อะเรย์และคอลเล็กชั่น
Java Programming: อะเรย์และคอลเล็กชั่น
 
Java Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and CollectionJava Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and Collection
 
Expolog clipvidva
Expolog clipvidvaExpolog clipvidva
Expolog clipvidva
 
ประวัติ แคลคูลัส
ประวัติ แคลคูลัสประวัติ แคลคูลัส
ประวัติ แคลคูลัส
 
Java-Chapter 10 Two Dimensional Arrays
Java-Chapter 10 Two Dimensional ArraysJava-Chapter 10 Two Dimensional Arrays
Java-Chapter 10 Two Dimensional Arrays
 
09 multi arrays
09 multi arrays09 multi arrays
09 multi arrays
 
Function3
Function3Function3
Function3
 
07 methods
07 methods07 methods
07 methods
 

Destacado

Java-Chapter 04 Iteration Statements
Java-Chapter 04 Iteration StatementsJava-Chapter 04 Iteration Statements
Java-Chapter 04 Iteration StatementsWongyos Keardsri
 
Java-Chapter 14 Creating Graphics with DWindow
Java-Chapter 14 Creating Graphics with DWindowJava-Chapter 14 Creating Graphics with DWindow
Java-Chapter 14 Creating Graphics with DWindowWongyos Keardsri
 
Java-Chapter 06 File Operations
Java-Chapter 06 File OperationsJava-Chapter 06 File Operations
Java-Chapter 06 File OperationsWongyos Keardsri
 
Java-Chapter 02 Data Operations and Processing
Java-Chapter 02 Data Operations and ProcessingJava-Chapter 02 Data Operations and Processing
Java-Chapter 02 Data Operations and ProcessingWongyos Keardsri
 
How to Study and Research in Computer-related Master Program
How to Study and Research in Computer-related Master ProgramHow to Study and Research in Computer-related Master Program
How to Study and Research in Computer-related Master ProgramWongyos Keardsri
 
Java-Chapter 09 Advanced Statements and Applications
Java-Chapter 09 Advanced Statements and ApplicationsJava-Chapter 09 Advanced Statements and Applications
Java-Chapter 09 Advanced Statements and ApplicationsWongyos Keardsri
 
Java-Chapter 07 One Dimensional Arrays
Java-Chapter 07 One Dimensional ArraysJava-Chapter 07 One Dimensional Arrays
Java-Chapter 07 One Dimensional ArraysWongyos Keardsri
 
Java-Chapter 05 String Operations
Java-Chapter 05 String OperationsJava-Chapter 05 String Operations
Java-Chapter 05 String OperationsWongyos Keardsri
 
ม.1 เตรียมความพร้อมการให้เหตุผล
ม.1 เตรียมความพร้อมการให้เหตุผลม.1 เตรียมความพร้อมการให้เหตุผล
ม.1 เตรียมความพร้อมการให้เหตุผลreaxe j
 

Destacado (10)

Java-Chapter 04 Iteration Statements
Java-Chapter 04 Iteration StatementsJava-Chapter 04 Iteration Statements
Java-Chapter 04 Iteration Statements
 
Java-Chapter 14 Creating Graphics with DWindow
Java-Chapter 14 Creating Graphics with DWindowJava-Chapter 14 Creating Graphics with DWindow
Java-Chapter 14 Creating Graphics with DWindow
 
Java-Chapter 06 File Operations
Java-Chapter 06 File OperationsJava-Chapter 06 File Operations
Java-Chapter 06 File Operations
 
Java-Chapter 02 Data Operations and Processing
Java-Chapter 02 Data Operations and ProcessingJava-Chapter 02 Data Operations and Processing
Java-Chapter 02 Data Operations and Processing
 
How to Study and Research in Computer-related Master Program
How to Study and Research in Computer-related Master ProgramHow to Study and Research in Computer-related Master Program
How to Study and Research in Computer-related Master Program
 
Java-Chapter 09 Advanced Statements and Applications
Java-Chapter 09 Advanced Statements and ApplicationsJava-Chapter 09 Advanced Statements and Applications
Java-Chapter 09 Advanced Statements and Applications
 
Java-Chapter 07 One Dimensional Arrays
Java-Chapter 07 One Dimensional ArraysJava-Chapter 07 One Dimensional Arrays
Java-Chapter 07 One Dimensional Arrays
 
Java-Chapter 05 String Operations
Java-Chapter 05 String OperationsJava-Chapter 05 String Operations
Java-Chapter 05 String Operations
 
Discrete-Chapter 01 Sets
Discrete-Chapter 01 SetsDiscrete-Chapter 01 Sets
Discrete-Chapter 01 Sets
 
ม.1 เตรียมความพร้อมการให้เหตุผล
ม.1 เตรียมความพร้อมการให้เหตุผลม.1 เตรียมความพร้อมการให้เหตุผล
ม.1 เตรียมความพร้อมการให้เหตุผล
 

Similar a Java-Answer Chapter 12-13

นางสาว จรัญญา-กฤตย์ณัชช์-59170236-กลุ่ม-1
นางสาว จรัญญา-กฤตย์ณัชช์-59170236-กลุ่ม-1นางสาว จรัญญา-กฤตย์ณัชช์-59170236-กลุ่ม-1
นางสาว จรัญญา-กฤตย์ณัชช์-59170236-กลุ่ม-1หน่อย หน่อย
 
Mobile Game and Application with J2ME
Mobile Gameand Application withJ2MEMobile Gameand Application withJ2ME
Mobile Game and Application with J2MEJenchoke Tachagomain
 
Mobile Game and Application with J2ME
Mobile Gameand Application with J2MEMobile Gameand Application with J2ME
Mobile Game and Application with J2MEJenchoke Tachagomain
 
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์Thanachart Numnonda
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นFinian Nian
 
บทที่ 5 คลาส
บทที่ 5 คลาสบทที่ 5 คลาส
บทที่ 5 คลาสTheeravaj Tum
 

Similar a Java-Answer Chapter 12-13 (8)

นางสาว จรัญญา-กฤตย์ณัชช์-59170236-กลุ่ม-1
นางสาว จรัญญา-กฤตย์ณัชช์-59170236-กลุ่ม-1นางสาว จรัญญา-กฤตย์ณัชช์-59170236-กลุ่ม-1
นางสาว จรัญญา-กฤตย์ณัชช์-59170236-กลุ่ม-1
 
Mobile Game and Application with J2ME
Mobile Gameand Application withJ2MEMobile Gameand Application withJ2ME
Mobile Game and Application with J2ME
 
Mobile Game and Application with J2ME
Mobile Gameand Application with J2MEMobile Gameand Application with J2ME
Mobile Game and Application with J2ME
 
J2ME Game Concept
J2ME  Game ConceptJ2ME  Game Concept
J2ME Game Concept
 
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
 
บทที่ 5 คลาส
บทที่ 5 คลาสบทที่ 5 คลาส
บทที่ 5 คลาส
 
Intro jade
Intro jadeIntro jade
Intro jade
 

Más de Wongyos Keardsri

The next generation intelligent transport systems: standards and applications
The next generation intelligent transport systems: standards and applicationsThe next generation intelligent transport systems: standards and applications
The next generation intelligent transport systems: standards and applicationsWongyos Keardsri
 
SysProg-Tutor 03 Unix Shell Script Programming
SysProg-Tutor 03 Unix Shell Script ProgrammingSysProg-Tutor 03 Unix Shell Script Programming
SysProg-Tutor 03 Unix Shell Script ProgrammingWongyos Keardsri
 
SysProg-Tutor 02 Introduction to Unix Operating System
SysProg-Tutor 02 Introduction to Unix Operating SystemSysProg-Tutor 02 Introduction to Unix Operating System
SysProg-Tutor 02 Introduction to Unix Operating SystemWongyos Keardsri
 
SysProg-Tutor 01 Introduction to C Programming Language
SysProg-Tutor 01 Introduction to C Programming LanguageSysProg-Tutor 01 Introduction to C Programming Language
SysProg-Tutor 01 Introduction to C Programming LanguageWongyos Keardsri
 
Discrete-Chapter 11 Graphs Part III
Discrete-Chapter 11 Graphs Part IIIDiscrete-Chapter 11 Graphs Part III
Discrete-Chapter 11 Graphs Part IIIWongyos Keardsri
 
Discrete-Chapter 11 Graphs Part II
Discrete-Chapter 11 Graphs Part IIDiscrete-Chapter 11 Graphs Part II
Discrete-Chapter 11 Graphs Part IIWongyos Keardsri
 
Discrete-Chapter 11 Graphs Part I
Discrete-Chapter 11 Graphs Part IDiscrete-Chapter 11 Graphs Part I
Discrete-Chapter 11 Graphs Part IWongyos Keardsri
 
Discrete-Chapter 09 Algorithms
Discrete-Chapter 09 AlgorithmsDiscrete-Chapter 09 Algorithms
Discrete-Chapter 09 AlgorithmsWongyos Keardsri
 
Discrete-Chapter 08 Relations
Discrete-Chapter 08 RelationsDiscrete-Chapter 08 Relations
Discrete-Chapter 08 RelationsWongyos Keardsri
 
Discrete-Chapter 07 Probability
Discrete-Chapter 07 ProbabilityDiscrete-Chapter 07 Probability
Discrete-Chapter 07 ProbabilityWongyos Keardsri
 
Discrete-Chapter 06 Counting
Discrete-Chapter 06 CountingDiscrete-Chapter 06 Counting
Discrete-Chapter 06 CountingWongyos Keardsri
 
Discrete-Chapter 05 Inference and Proofs
Discrete-Chapter 05 Inference and ProofsDiscrete-Chapter 05 Inference and Proofs
Discrete-Chapter 05 Inference and ProofsWongyos Keardsri
 
Discrete-Chapter 04 Logic Part II
Discrete-Chapter 04 Logic Part IIDiscrete-Chapter 04 Logic Part II
Discrete-Chapter 04 Logic Part IIWongyos Keardsri
 
Discrete-Chapter 04 Logic Part I
Discrete-Chapter 04 Logic Part IDiscrete-Chapter 04 Logic Part I
Discrete-Chapter 04 Logic Part IWongyos Keardsri
 
Discrete-Chapter 03 Matrices
Discrete-Chapter 03 MatricesDiscrete-Chapter 03 Matrices
Discrete-Chapter 03 MatricesWongyos Keardsri
 
Discrete-Chapter 02 Functions and Sequences
Discrete-Chapter 02 Functions and SequencesDiscrete-Chapter 02 Functions and Sequences
Discrete-Chapter 02 Functions and SequencesWongyos Keardsri
 
Discrete-Chapter 12 Modeling Computation
Discrete-Chapter 12 Modeling ComputationDiscrete-Chapter 12 Modeling Computation
Discrete-Chapter 12 Modeling ComputationWongyos Keardsri
 

Más de Wongyos Keardsri (19)

The next generation intelligent transport systems: standards and applications
The next generation intelligent transport systems: standards and applicationsThe next generation intelligent transport systems: standards and applications
The next generation intelligent transport systems: standards and applications
 
IP address anonymization
IP address anonymizationIP address anonymization
IP address anonymization
 
SysProg-Tutor 03 Unix Shell Script Programming
SysProg-Tutor 03 Unix Shell Script ProgrammingSysProg-Tutor 03 Unix Shell Script Programming
SysProg-Tutor 03 Unix Shell Script Programming
 
SysProg-Tutor 02 Introduction to Unix Operating System
SysProg-Tutor 02 Introduction to Unix Operating SystemSysProg-Tutor 02 Introduction to Unix Operating System
SysProg-Tutor 02 Introduction to Unix Operating System
 
SysProg-Tutor 01 Introduction to C Programming Language
SysProg-Tutor 01 Introduction to C Programming LanguageSysProg-Tutor 01 Introduction to C Programming Language
SysProg-Tutor 01 Introduction to C Programming Language
 
Discrete-Chapter 11 Graphs Part III
Discrete-Chapter 11 Graphs Part IIIDiscrete-Chapter 11 Graphs Part III
Discrete-Chapter 11 Graphs Part III
 
Discrete-Chapter 11 Graphs Part II
Discrete-Chapter 11 Graphs Part IIDiscrete-Chapter 11 Graphs Part II
Discrete-Chapter 11 Graphs Part II
 
Discrete-Chapter 11 Graphs Part I
Discrete-Chapter 11 Graphs Part IDiscrete-Chapter 11 Graphs Part I
Discrete-Chapter 11 Graphs Part I
 
Discrete-Chapter 10 Trees
Discrete-Chapter 10 TreesDiscrete-Chapter 10 Trees
Discrete-Chapter 10 Trees
 
Discrete-Chapter 09 Algorithms
Discrete-Chapter 09 AlgorithmsDiscrete-Chapter 09 Algorithms
Discrete-Chapter 09 Algorithms
 
Discrete-Chapter 08 Relations
Discrete-Chapter 08 RelationsDiscrete-Chapter 08 Relations
Discrete-Chapter 08 Relations
 
Discrete-Chapter 07 Probability
Discrete-Chapter 07 ProbabilityDiscrete-Chapter 07 Probability
Discrete-Chapter 07 Probability
 
Discrete-Chapter 06 Counting
Discrete-Chapter 06 CountingDiscrete-Chapter 06 Counting
Discrete-Chapter 06 Counting
 
Discrete-Chapter 05 Inference and Proofs
Discrete-Chapter 05 Inference and ProofsDiscrete-Chapter 05 Inference and Proofs
Discrete-Chapter 05 Inference and Proofs
 
Discrete-Chapter 04 Logic Part II
Discrete-Chapter 04 Logic Part IIDiscrete-Chapter 04 Logic Part II
Discrete-Chapter 04 Logic Part II
 
Discrete-Chapter 04 Logic Part I
Discrete-Chapter 04 Logic Part IDiscrete-Chapter 04 Logic Part I
Discrete-Chapter 04 Logic Part I
 
Discrete-Chapter 03 Matrices
Discrete-Chapter 03 MatricesDiscrete-Chapter 03 Matrices
Discrete-Chapter 03 Matrices
 
Discrete-Chapter 02 Functions and Sequences
Discrete-Chapter 02 Functions and SequencesDiscrete-Chapter 02 Functions and Sequences
Discrete-Chapter 02 Functions and Sequences
 
Discrete-Chapter 12 Modeling Computation
Discrete-Chapter 12 Modeling ComputationDiscrete-Chapter 12 Modeling Computation
Discrete-Chapter 12 Modeling Computation
 

Java-Answer Chapter 12-13

  • 1. ANSWER 12-13 Computer Programming using Java 1 CHAPTER คลาสและอ๊อบเจ็ค ANS-12 (Classes and Objects) โจทย์ ข้อที่ 1 [ระดับง่ าย] 1 public class Num { 2 private int x; 3 private double y; Attribute 4 public Num() { 5 x = 0; y = 0.0; 6 } Constructor 7 public Num(int m, double n) { 8 x = m; y = n; 9 } 10 public int addNX(int n) { 11 return n + x; Class (ต้ นแบบ) 12 } 13 public double addNY(double n) { 14 return n + y; Method ผลลัพธ์ ท่ ีได้ 15 } 16 public void showXY() { 5 17 System.out.println(x); 7.0 18 System.out.println(y); 9 19 } 20 } 20.0 1 public class RunNum { 2 public static void main(String[] args){ 3 Num obj = new Num(5, 7.0); Object 4 obj.showXY(); 5 int a = obj.addNX(4); 6 double b = obj.addNY(13.0); Class (ประมวลผล) 7 System.out.println(a); Main Method 8 System.out.println(b); 9 } 10 } โจทย์ ข้อที่ 2 [ระดับง่ าย] 1) 6) 11) 2) 7) 12) 3) 8) 13) 4) 9) 14) 5) 10) 15) © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 2. 2 Computer Programming using Java ANSWER 12-13 โจทย์ ข้อที่ 3 [ระดับง่ าย] public class Course { //แอตทริบว 3 ตัว ิ private int id; public String title; protected double credit; //ตัวสร้ างแบบไม่ มีพารามิเตอร์ ใดๆ public Course() { id = 0; title = ""; credit = 0.0; } //ตัวสร้ างแบบมีพารามิเตอร์ 3 ตัว public Course(int i, String t, double c) { id = i; title = t; credit = c; } //เมท็อด setID(…) public void setID(int i) { id = i; } //เมท็อด setTitle(…) public void setTitle(String t) { title = t; } //เมท็อด setCredit(…) public void setCredit(double c) { credit = c; } //เมท็อด getLevel(…) public String getLevel() { if (id % 1000 / 100 <= 4) { return "Undergraduate"; } else { return "Graduate"; } } © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 3. ANSWER 12-13 Computer Programming using Java 3 //เมท็อด getFaculty(…) public int getFaculty() { return id / 100000; } //เมท็อด getDepartment(…) public int getDepartment() { return id / 1000 % 100; } //เมท็อด toString(…) public String toString() { return id + " " + title + " (" + credit + ")"; } } //End of class โจทย์ ข้อที่ 4 [ระดับง่ าย] 9 1) แอตทริบว y หรือตัวแปร y ิ 5 7 2) ตัวแปร y (ในบรรทัดที่ 13) 1 1 12 11 1 12 โจทย์ ข้อที่ 5 [ระดับง่ าย] 0, 101,Taksin 103,Apisit Taksin:U Apisit:S © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 4. 4 Computer Programming using Java ANSWER 12-13 โจทย์ ข้อที่ 6 [ระดับง่ าย] //ประกาศหัวคลาส TestNumber import java.util.Scanner; public class TestNumber { public static void main(String[] args) { Scanner kb = new Scanner(System.in); //อ๊ อบเจ็คชื่อ no1 Number no1 = new Number(); //อ๊ อบเจ็คชื่อ no2 System.out.print("Enter x : "); double x = kb.nextDouble(); System.out.print("Enter y : "); double y = kb.nextDouble(); Number no2 = new Number(x, y); //แสดงผลการบวก การลบ การคณ การหาร และการม็อด ู System.out.println("Add: " + no2.add()); System.out.println("Sub: " + no2.sub()); System.out.println("Mul: " + no2.mul()); System.out.println("Div: " + no2.div()); System.out.println("Mod: " + no2.mod()); } //End of main } //End of class โจทย์ ข้อที่ 7 [ระดับง่ าย] 1) public double data; 2) private static int var = 10; 3) protected static boolean check; 4) private String stdName[] = new String[351]; 5) public static int m[][] = new int[8][5]; 6) private void show(String stdName, double grade) 7) protected static int search(int num[], int x) 8) public double[][] mulMatrix(double a[][], double b[][]) © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 5. ANSWER 12-13 Computer Programming using Java 5 9) public static int[] union(int x[], int y[]) โจทย์ ข้อที่ 8 [ระดับง่ าย] ข้ อ คําตอบ ข้ อ คําตอบ ข้ อ คําตอบ ข้ อ คําตอบ 1. B 6. A 11. C 16. D 2. D 7. D 12. B 17. C 3. B 8. D 13. D 18. D 4. C 9. A 14. A 19. B 5. B 10. D 15. B 20. C โจทย์ ข้อที่ 9 [ระดับปานกลาง] 0,0 6,10 Good By A See You F 0,0 5,7 5,7 9,7 9,7 I Love Java โจทย์ ข้อที่ 10 [ระดับปานกลาง] public class Dice { //แอตทริบวประจําอ๊ อบเจ็คชื่อ face และ value ิ public int face; public int value; //ตัวสร้ างแบบไม่ มีพารามิเตอร์ public Dice() { face = 2; roll(); } //ตัวสร้ างแบบมีพารามิเตอร์ หนึ่งตัว public Dice(int f) { face = f; roll(); } © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 6. 6 Computer Programming using Java ANSWER 12-13 //ตัวสร้ างแบบมีพารามิเตอร์ สองตัว public Dice(int f, int v) { face = f; value = v; } //เมท็อดประจําอ๊ อบเจ็คชื่อ roll public void roll() { value = (int)(Math.random() * face) + 1; } //เมท็อดประจําอ๊ อบเจ็คชื่อ setValue public void setValue(int v) { value = v; } //เมท็อดประจําอ๊ อบเจ็คชื่อ getFace public int getFace() { return face; } //เมท็อดประจําอ๊ อบเจ็คชื่อ getValue public int getValue() { return value; } //เมท็อดประจําอ๊ อบเจ็คชื่อ show public void show() { System.out.println("Face: " + face); System.out.println("Value: " + value); } } //End of class © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 7. ANSWER 12-13 Computer Programming using Java 7 public class TestDice { /* สร้ างลกเต๋ า 3 ลก ในรปของอ๊ อบเจ็คที่ช่ ือ d1, d2 และ d3 */ ู ู ู public static void main(String[] args) { Dice d1 = new Dice(); Dice d2 = new Dice(13); Dice d3 = new Dice(30, 9); d1.show(); d2.show(); d3.show(); for (int i = 1; i <= 20; i++) { d1.roll(); System.out.println(d1.getValue()); d2.roll(); System.out.println(d2.getValue()); d3.roll(); System.out.println(d3.getValue()); System.out.println("-------"); } } } //End of class โจทย์ ข้อที่ 11 [ระดับปานกลาง] public class RealNumber { //แอตทริบวประจําอ๊ อบเจ็คแบบ public ชื่อ num ิ public double num; //ตัวสร้ างแบบไม่ มีพารามิเตอร์ public RealNumber() { num = 0.0; } //ตัวสร้ างแบบมีพารามิเตอร์ public RealNumber(double n) { num = n; } //เมท็อดประจําอ๊ อบเจ็คชื่อ plus public double plus(double n) { return num + n; } //เมท็อดประจําอ๊ อบเจ็คชื่อ diff public double diff(double n) { double x = num – n; if (x >= 0) return x; else return –x; } } //End of class © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 8. 8 Computer Programming using Java ANSWER 12-13 public class TestRealNumber { /* สร้ างจํานวนจริง 1 จํานวนในรปของอ๊ อบเจ็ค r */ ู public static void main(String[] args) { RealNumber r = new RealNumber(); System.out.println(r.plus(15)); System.out.println(r.diff(50)); } } //End of class โจทย์ ข้อที่ 12 [ระดับปานกลาง] public class Account { private double balance; public Account() { balance = 0.0; } public Account(double money) { balance = money; } public void deposit(double money) { balance += money; } public double withdraw(double money) { if (balance >= money) { balance -= money; return money; } else { return 0.0; } } public double getbalance() { return balance; } } //End of Class สร้ างคลาส TestAccount public class TestAccount { public static void main(String[] args) { Account acc = new Account(2000); System.out.println("New Account"); System.out.println("Balance : " + acc.getbalance()); double money = acc.withdraw(1500); System.out.println("Withdraw : " + money); System.out.println("Balance : " + acc.getbalance()); acc.deposit(800); System.out.println("Deposit : " + 800); System.out.println("Balance : " + acc.getbalance()); } } © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 9. ANSWER 12-13 Computer Programming using Java 9 โจทย์ ข้อที่ 13 [ระดับปานกลาง] public class PiggyBank { (1) แอตทริบว one, two, five และ ten ิ (2) แอตทริบว size ิ public int one, two, five, ten; public int size; (3) ตัวสร้ าง 2 แบบ PiggyBank() { clear(); size = 100; } PiggyBank(int s) { clear(); size = s; } (4) เมท็อดประจําอ๊ อบเจ็คชื่อ clear(…) public void clear() { one = two = five = ten = 0; } (5) เมท็อดประจําอ๊ อบเจ็คชื่อ getTotal(…) public int getTotal() { return one + (2 * two) + (5 * five) + (10 * ten); } (6) เมท็อดประจําอ๊ อบเจ็คชื่อ full(…) public boolean full() { return getTotal() >= size; } (7) เมท็อดประจําอ๊ อบเจ็คชื่อ addOne(…) public void addOne(int c) { if (getTotal() + c <= size) one = one + c; else System.out.println("Piggy Bank Full"); } (8) เมท็อดประจําอ๊ อบเจ็คชื่อ addTwo(…) public void addTwo(int c) { if (getTotal() + 2 * c <= size) two = two + c; else System.out.println("Piggy Bank Full"); } (9) เมท็อดประจําอ๊ อบเจ็คชื่อ addFive(…) © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 10. 10 Computer Programming using Java ANSWER 12-13 public void addFive(int c) { if (getTotal() + 5 * c <= size) five = five + c; else System.out.println("Piggy Bank Full"); } (10) เมท็อดประจําอ๊ อบเจ็คชื่อ addTen(…) public void addTen(int c) { if (getTotal() + 10 * c <= size) ten = ten + c; else System.out.println("Piggy Bank Full"); } }//End of class สร้ างคลาส TestPiggyBank public class TestPiggyBank { public static void main(String[] args) { PiggyBank pb = new PiggyBank(500); System.out.println("Money Total : " + pb.getTotal()); pb.addTwo(34); System.out.println("Add 2 Baht Money : " + 34); System.out.println("Money Total : " + pb.getTotal()); pb.addTen(13); System.out.println("Add 10 Baht Money : " + 13); System.out.println("Money Total : " + pb.getTotal()); }//End of main }//End of class © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 11. ANSWER 12-13 Computer Programming using Java 11 CHAPTER คลาสและอ๊อบเจ็คแบบซับซ้อน ANS-13 (Advanced Classes and Objects) โจทย์ ข้อที่ 1 [ระดับปานกลาง] เรี ยกตัวสร้ างใด ผลลัพธ์ ท่ แสดง ี (ระบุหมายเลข) ขึนบนจอภาพคือ ้ 1 0,0 2 13,2 3 13,2 2 3 7,11 2 11,13 1 3 0,0 public class Num { ... public boolean isEquals(int x, int y) { return this.x == x && this.y == y; } public boolean isEquals(Num n) { return x == n.x && y == n.y; } } //End of class โจทย์ ข้อที่ 2 [ระดับยาก] public class Coin { //แอตทริบว side และ value ิ public int value; public String side; © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 12. 12 Computer Programming using Java ANSWER 12-13 //ตัวสร้ างแบบไม่ มีพารามิเตอร์ public Coin() { side = "H"; value = 1; } //ตัวสร้ างแบบมีพารามิเตอร์ สองตัว public Coin(String s, int v) { side = s; value = v; } //ตัวสร้ างแบบมีพารามิเตอร์ หนึ่งตัว public Coin(Coin c) { side = c.side; value = c.value; } //เมท็อด flip(…) public void flip() { side = list[(int)(Math.random() * 2)]; } //เมท็อด reverse(…) public void reverse() { if (side.equals("H")) { side = "T"; } else { side = "H"; } } //เมท็อด equals(…) public boolean equals(Coin c) { return side == c.side && value == c.value; } } //End of class © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 13. ANSWER 12-13 Computer Programming using Java 13 /* คลาส DemoCoin */ public class DemoCoin { public static void main(String[] args) { Coin c1 = new Coin(); Coin c2 = new Coin("H", 1); Coin c3 = new Coin("T", 5); Coin c4 = new Coin(c3); for (int i = 1; i <= 20; i++) { c1.flip(); c2.reverse(); c3.flip(); c4.reverse(); System.out.println(c1.equals(c2)); System.out.println(c3.equals(c4)); } } //End of main } //End of class โจทย์ ข้อที่ 3 [ระดับยาก] public class SetOfInteger { //แอตทริบว iSet ิ public int iSet[]; //ตัวสร้ างแบบที่รับพารามิเตอร์ 1 ตัวที่เป็ นอาเรย์ public SetOfInteger(int[] x) { x = sort(x); x = removeDuplicatedMembers(x); iSet = new int[x.length]; for (int i = 0; i < iSet.length; i++) { iSet[i] = x[i]; } } //End of constructor //ตัวสร้ างแบบที่รับพารามิเตอร์ 1 ตัวที่เป็ นชนิด SetOfInteger public SetOfInteger(SetOfInteger s) { iSet = new int[s.iSet.length]; for (int i = 0; i < iSet.length; i++) { iSet[i] = s.iSet[i]; } } //End of constructor //เมท็อด sort(…) public int[] sort(int x[]) { ... } //End of method © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 14. 14 Computer Programming using Java ANSWER 12-13 //เมท็อด removeDuplicatedMembers(…) public int[] removeDuplicatedMembers(int x[]) { ... } //End of method //เมท็อด equals(…) public boolean equals(SetOfInteger x) { if (x.iSet.length == iSet.length) { for (int i = 0; i < x.iSet.length; i++) { if (x.iSet[i] != iSet[i]) return false; } return true; } else { return false; } } //End of method //เมท็อด toString(…) public String toString() { String s = ""; for (int i = 0; i < iSet.length; i++) s = s + iSet[i] + " "; return s; } //End of method //เมท็อด addElement(…) public void addElement(int a) { int x[] = new int[iSet.length + 1]; for (int i = 0; i < x.length - 1; i++) x[i] = iSet[i]; x[x.length - 1] = a; x = sort(x); x = removeDuplicatedMembers(x); iSet = x; } //End of method //เมท็อด findElement(…) public int findElement(int a) { for (int i = 0; i < iSet.length; i++) if (iSet[i] == a) return i; return -1; } //End of method © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 15. ANSWER 12-13 Computer Programming using Java 15 //เมท็อด isSubset(…) public boolean isSubset(SetOfInteger s) { int count = 0; for (int i = 0; i < s.iSet.length; i++) { for (int j = 0; j < iSet.length; j++) { if (s.iSet[i] == iSet[j]) { count++; break; } } } return s.iSet.length == count; } //End of method //เมท็อด union(…) public SetOfInteger union(SetOfInteger s) { int x[] = new int[s.iSet.length + iSet.length]; for (int i = 0; i < x.length; i++) { if (i < iSet.length) x[i] = iSet[i]; else x[i] = s.iSet[i - iSet.length]; } SetOfInteger un = new SetOfInteger(x); return un; } //End of method //เมท็อด intersect(…) public SetOfInteger intersect(SetOfInteger s) { int x[] = new int[s.iSet.length]; int len = 0; for (int i = 0; i < s.iSet.length; i++) { for (int j = 0; j < this.iSet.length; j++) { if (s.iSet[i] == this.iSet[j]) { x[len] = s.iSet[i]; len++; break; } } } int n[] = new int[len]; for (int i = 0; i < n.length; i++) n[i] = x[i]; SetOfInteger inter = new SetOfInteger(n); return inter; } //End of method } //End of class © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 16. 16 Computer Programming using Java ANSWER 12-13 โจทย์ ข้อที่ 4 [ระดับยาก] public class Student { //แอตทริบวประจําอ๊ อบเจ็ค 3 ตัว ิ private int id; private String name; private double score[]; //ตัวสร้ างแบบไม่ กาหนดพารามิเตอร์ ํ Student() { id = 0; name = ""; score = new double[0]; } //ตัวสร้ างแบบ 3 พารามิเตอร์ Student(int i, String n, int x) { id = i; name = n; score = new double[x]; } //ตัวสร้ างแบบ 1 พารามิเตอร์ Student(Student s) { id = s.getID(); name = s.getName(); score = s.getScore(); } //เมท็อดประจําอ๊ อบเจ็ค 4 เมท็อด getID(…), getName(…), getScore(…)และ setScore(…) public int getID() { return id; } public String getName() { return name; } public double[] getScore() { return score; } public void setScore(double scr[]) { for (int i = 0; i < scr.length; i++) { score[i] = scr[i]; } } } //End of class © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 17. ANSWER 12-13 Computer Programming using Java 17 คลาส Freshmen import java.util.Scanner; public class Freshmen { public static void main(String[] args) { Scanner kb = new Scanner(System.in); //กําหนดให้ มีนิสิต 800 คน Student s[] = new Student[800]; //กําหนดค่ าเริ่มต้ นให้ กับเลขประจําตัวของนิสิต ชื่อนิสิต จํานวนวิชา for (int i = 0; i < s.length; i++) { int id = (53001 + i) * 100 + 21; System.out.print("Enter name : "); String name = kb.nextLine(); s[i] = new Student(id, name, 4); } //เรียกใช้ งานเมท็อด setScore(…) for (int i = 0; i < s.length; i++) { double scr[] = new double[4]; for (int j = 0; j < scr.length; j++) scr[j] = Math.random() * 100; s[i].setScore(scr); } //แสดงเลขประจําตัวนิสิต ชื่อนิสิต และคะแนนทัง 4 รายวิชาของนิสิตแต่ ละคน ้ for (int i = 0; i < s.length; i++) { System.out.print(s[i].getID() + "t" + s[i].getName() + "t"); for (int j = 0; j < s[i].getScore().length; j++) System.out.print(s[i].getScore()[j] + "t"); System.out.println(); } //คํานวนหาคะแนนเฉลี่ยของแต่ ละรายวิชา for (int j = 0; i < s[0].getScore().length; j++) { double sum = 0.0; for (int i = 0; i < s.length; i++) { sum += s[i].getScore()[j]; } System.out.println(sum / s.length); } } //End of main } //End of class © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 18. 18 Computer Programming using Java ANSWER 12-13 โจทย์ ข้อที่ 5 [ระดับยาก] 1. คลาส Owner public class Owner { //แอตทริบว id และแอตทริบว name ิ ิ private int id; private String name; //ตัวสร้ างแบบไม่ มีพารามิเตอร์ public Owner() { id = 0; name = ""; } //ตัวสร้ างแบบที่มีพารามิเตอร์ 2 ตัว public Owner(int i, String n) id = i; name = n; } //ตัวสร้ างแบบที่มีพารามิเตอร์ 1 public Owner(Owner own) { id = own.getID(); name = own.getName(); } //เมท็อด getId(…) public int getID() { return id; } //เมท็อด getName(…) public String getName() { return name; } //เมท็อด setID(…) public void setID(int i) { id = i; } //เมท็อด setName(…) public void setName(String n) { name = n; } © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 19. ANSWER 12-13 Computer Programming using Java 19 //เมท็อด show(…) public void show() { System.out.println("ID : " + id); System.out.println("Name : " + name); } } //End of class 2. คลาส Land public class Land { //แอตทริบว n และแอตทริบว price ิ ิ public Owner n; public double price; //ตัวสร้ างแบบไม่ มีพารามิเตอร์ public Land() { n = new Owner(); price = 0.0; } //ตัวสร้ างแบบมีพารามิเตอร์ 2 ตัว public Land(Owner w, double p) { n = new Owner(w); price = p; } //เมท็อด setOwner(…) public void setOwner(Owner w) { n.setID(w.getID()); n.setName(w.getName()); } //เมท็อด setPrice(…) public void setPrice(double p) { price = p; } //เมท็อด show(…) public void show() { n.show(); System.out.println("Price : " + price); } } //End of class © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 20. 20 Computer Programming using Java ANSWER 12-13 3. คลาส City import java.util.Scanner; public class City { public static void main(String[] args) { //อาเรย์ ของอ๊ อบเจ็ค Land Land a[][] = new Land[50][60]; //กําหนดค่ าเริ่มต้ นให้ กับที่ดนทุกแปลง ิ for (int i = 0; i < a.length; i++) { for (int j = 0; j < a[i].length; j++) { Owner n = new Owner(); a[i][j] = new Land(n, (int)(Math.random() * 10000000) + 1); } } //อ๊ อบเจ็คชื่อ ow1 Owner ow1 = new Owner(1001, "Tukie"); ow1.show(); //อ๊ อบเจ็คชื่อ ow2 Owner ow2 = new Owner(1002, "Annie"); ow2.show(); //ให้ ow1 ครอบครองที่ดนในแปลงตําแหน่ งที่ (4, 9) ิ a[4][9].setOwner(ow1); a[4][9].show(); //เปลี่ ยนราคาที่ดนที่ ow1 ครองครองอย่ ู ิ a[4][9].setPrice(30000000.0); a[4][9].show(); //เปลี่ ยนให้ ow2 เข้ าไปครอบครองที่ดนแปลงที่ ow1 ครอบครองอย่ ู ิ a[4][9].setOwner(ow2); a[4][9].show(); //กําหนดให้ ow1 เข้ าครอบครองที่ดนแปลงใหม่ 50 แปลง ิ for (int i = 0; i < a.length; i++) { a[i][0].setOwner(ow1); a[i][0].setPrice(50000000.0); a[i][0].show(); } } //End of main } //End of class © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 21. ANSWER 12-13 Computer Programming using Java 21 โจทย์ ข้อที่ 6 [ระดับยาก] คลาส SScanner import java.util.Scanner; import java.io.InputStream; public class SScanner { //แอตทริบว kb ิ public Scanner kb; //ตัวสร้ าง public SScanner(InputStream in) { kb = new Scanner(in); } //เมท็อด nextInt(…) public int nextInt() { return kb.nextInt(); } //เมท็อด nextLine(…) public String nextLine() { String s = ""; while (true) { s = kb.nextLine(); if(s.length() != 0) break; } return s; } } //End of class คลาส TestSScanner public class TestSScanner { public static void main(String[] args) { SScanner kb = new SScanner(System.in); System.out.print("Enter Int: "); int a = kb.nextInt(); System.out.print("Enter Str: "); String b = kb.nextLine(); System.out.println(a + "," + b); } //End of main } //End of class © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 22. 22 Computer Programming using Java ANSWER 12-13 โจทย์ ข้อที่ 7 [ระดับเทพ] 1. คลาส Fruit public class Fruit { //แอตทริบวประจําอ๊ อบเจ็คชื่อ name และ weigh ิ public String name; public double weigh; //ตัวสร้ าง 4 แบบ ดังต่ อไปนี ้ public Fruit() { name = ""; weigh = 0.0; } public Fruit(String n) { name = n; weigh = wh[(int)(Math.random() * 5)]; } public Fruit(String n, double w) { name = n; weigh = w; } public Fruit(Fruit f) { name = f.name; weigh = f.weigh; } //เมท็อดประจําอ๊ อบเจ็คชื่อ showFruit public void showFruit() { System.out.println(name + " " + weigh + " kg."); } } //End of class 2. คลาส Basket public class Basket { //แอตทริบวประจําอ๊ อบเจ็คชื่อ fruit และ count ิ public Fruit fruit[]; public int count; //ตัวสร้ างแบบไม่ มีพารามิเตอร์ public Basket() { fruit = new Fruit[10]; count = 0; } © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 23. ANSWER 12-13 Computer Programming using Java 23 //ตัวสร้ างแบบหนึ่งพารามิเตอร์ ชนิดจํานวนเต็ม public Basket(int n) { fruit = new Fruit[n]; count = 0; } //ตัวสร้ างแบบหนึ่งพารามิเตอร์ ชนิด Basket public Basket(Basket b) { fruit = new Fruit[b.fruit.length]; for (int i = 0; i < fruit.length; i++) { fruit[i] = b.fruit[i]; } count = b.count; } //เมท็อดประจําอ๊ อบเจ็คชื่อ isFull public boolean isFull() { return count == fruit.length; } //เมท็อดประจําอ๊ อบเจ็คชื่อ isEmpty public boolean isEmpty() { return count == 0; } //เมท็อดประจําอ๊ อบเจ็คชื่อ takeIn public void takeIn(Fruit f) { if (!isFull()) { fruit[count] = f; count++; } else { System.out.println("Basket Full"); } } //เมท็อดประจําอ๊ อบเจ็คชื่อ takeOut public Fruit takeOut() { if (!isEmpty()) { count--; Fruit f = fruit[count]; fruit[count] = null; return f; } else { System.out.println("Basket Empty"); return null; } } © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 24. 24 Computer Programming using Java ANSWER 12-13 //เมท็อดประจําอ๊ อบเจ็คชื่อ getTotalWeigh public double getTotalWeigh() { double weigh = 0.0; for (int i = 0; i < count; i++) { weigh += fruit[i].weigh; } return weigh; } //เมท็อดประจําอ๊ อบเจ็คชื่อ showBasket public void showBasket() { for (int i = 0; i < count; i++) { fruit[i].showFruit(); } } } //End of class 3. คลาส FruitBasket import java.util.Scanner; public class FruitBasket { //เมท็อดประจําคลาสชื่อ getFruitBasket public static Basket getFruitBasket(String f, double w, int n) { Basket bsk = new Basket(n); Fruit frt[] = new Fruit[n]; for (int i = 0; i < frt.length; i++) { if (w <= 0.0) frt[i] = new Fruit(f); else frt[i] = new Fruit(f, w); bsk.takeIn(frt[i]); } return bsk; } //เมท็อดประจําคลาสชื่อ showFruitBasket public static void showFruitBasket(Basket b) { System.out.println("Total Weigh: " + b.getTotalWeigh()); System.out.println("Total Fruit: " + b.count); System.out.println("List of Fruit: "); b.showBasket(); } //เมท็อด main public static void main(String[] args) { //สร้ างกระเช้ าผลไม้ ขึนมา 3 กระเช้ า ้ Basket x[] = new Basket[3]; x[0] = getFruitBasket("Apple", 0.12, 25); x[1] = getFruitBasket("Orange", 0.1, 30); x[2] = getFruitBasket("Melon", 0.45, 15); © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 25. ANSWER 12-13 Computer Programming using Java 25 //สร้ างกระเช้ าผลไม้ เปล่ าๆ ขึนมาอีก 6 กระเช้ า ้ Basket y[] = new Basket[6]; for(int i = 0; i < y.length; i++) { y[i] = new Basket(); int j = 0; while (!y[i].isFull()) { if (!x[j].isEmpty()) y[i].takeIn(x[j].takeOut()); if (y[i].getTotalWeigh() > 2.0) { Fruit tmp = y[i].takeOut(); break; } j++; if (j > 2) j = 0; } System.out.println("-----Basket " + (i + 1) + "-----"); showFruitBasket(y[i]); } } //End of main } //End of class โจทย์ ข้อที่ 8 [ระดับเทพ] คลาส Student public class Student { //แอตทริบว id แอตทริบว name และแอตทริบว noob ิ ิ ิ private int id; private String name; private int noob; //ตัวสร้ างแบบไม่ มีพารามิเตอร์ Student() { id = 0; name = ""; noob = 0; } //ตัวสร้ างแบบที่รับพารามิเตอร์ 3 ตัว Student(int i, String n, int x) { id = i; name = n; noob = x; } //ตัวสร้ างแบบที่รับพารามิเตอร์ เป็ นชนิด Student Student(Student s) { set(s); } © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 26. 26 Computer Programming using Java ANSWER 12-13 //เมท็อด getID(…) public int getID() { return id; } //เมท็อด getName(…) public String getName() { return name; } //เมท็อด getNoob(…) public int getNoob() { return noob; } //เมท็อด set(…) public void set(Student s) { id = s.getID(); name = s.getName(); noob = s.getNoob(); } //เมท็อด show(…) public void show() { String s = ""; if (noob == 1) s = "1-Noob"; else if (noob == 2) s = "2-Father Noob"; else if (noob == 3) s = "3-God Noob"; else if (noob == 4) s = "4-Hof Noob"; else s = "Unknown"; System.out.println(id + " " + name + " [" + s + "]"); } } //End of class คลาส Room public class Room { //แอตทริบว s ที่เป็ นอาเรย์ 2 มิตชนิด Student ิ ิ public static Student s[][] = new Student[16][40]; © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 27. ANSWER 12-13 Computer Programming using Java 27 //เมท็อด setSeat(…) public static void setSeat(Student st) { int startRow = s.length - 1 - (s.length / 4) * (4 - st.getNoob()); for (int i = startRow; i < startRow + 4; i++) { for (int j = 0; j < s[i].length; j++) { if (s[i][j].getName().equals("") && j != s[i].length / 2 && j != s[i].length / 2 - 1) { s[i][j].set(st); return; } } } System.out.println("No Reserved Seat"); } //เมท็อด showroom(…) public static void showRoom() { for (int i = 0; i < s.length; i++) { for (int j = 0; j < s[i].length; j++) { if (j == s[i].length / 2 || j == s[i].length / 2 - 1) { System.out.print(" "); } else { if (!s[i][j].getName().equals("")) System.out.print(s[i][j].getName().substring(0, 1) + " "); else System.out.print("# "); } } System.out.println(); } } //เมท็อด showStudent(…) public static void showStudent(int r, int c) { System.out.print("Seat Row " + r + " Column " + c + "t"); s[r + s.length - 2][c - 1].show(); } //เมท็อด showStudent(…) public static void showStudent() { for (int i = s.length - 1; i >= 0; i--) { for (int j = 0; j < s[i].length; j++) { if (!s[i][j].getName().equals("")) { System.out.print("Seat Row " + (s.length - i) + " Column " + (j + 1) + "t"); s[i][j].show(); } } } } © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 28. 28 Computer Programming using Java ANSWER 12-13 //เมท็อด main(…) public static void main(String[] args) { for (int i = 0; i < s.length; i++) { for (int j = 0; j < s[i].length; j++) { s[i][j] = new Student(); } } Student s1 = new Student(53300121, "Akeudom", 1); setSeat(s1); Student s2 = new Student(53300221, "Phakhin", 1); setSeat(s2); Student s3 = new Student(53300321, "Taparb", 2); setSeat(s3); Student s4 = new Student(53300421, "Ong-ard", 3); setSeat(s4); Student s5 = new Student(53300521, "Wongyos", 4); setSeat(s5); showRoom(); showStudent(); } } //End of class © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้