| ต.ย.โปรแกรมเชิงวัตถุ ชุดที่ 1 | 
| Home | Contents | KM | Articles | Members | Sponsors | About us | 
| ปรับปรุง : 2556-09-17 (ปรับคำอธิบายโค้ดใหม่) | 
| OOP :: intro ch1-12 :: keyword & sign :: method calling :: series #1 :: series #2 :: series #3 :: series #4 :: pro_pmy | 
|  |  | |
| Access level | ||
| 
 
  class x {
  public static void main(String args[])   {
    System.out.println("hello world");
  }
}
// ===
  class y {
  public static void main(String args[])   {
    String s[] = {};
    x.main(s);
    x a = new x();
    a.main(s);
  }
}
 | |
| 
 
class x {
  static int i = 1;
  public static void main(String args[])   {
    ok1(); ok2(); ok3(); ok4();
  }
  static void ok1()   {
    System.out.println(i++);
  }
  public static void ok2()   {
    System.out.println(i++);
  }
  protected static void ok3()   {
    System.out.println(i++);
  }
  private static void ok4()   {
    System.out.println(i++);
  }
}
// Result of this program
// 1 2 3 4
 | |
| 
 
class x {
  int i = 1; // global variable
  public static void main(String args[])   {
    x a = new x();
    a.ok1(); a.ok2(); a.ok3(); a.ok4();
  }
  void ok1()   {
    System.out.println(i++ + ++i); //4
  }
  void ok2()   {
    System.out.println(++i + i++); // 8
  }
  void ok3()   {
    int i = 1; // local variable
    System.out.println(++i + i++); // 4
  }
  void ok4()   {
    System.out.println(i++ + ++i); // 12
  }
}
 | |
|  |  | |
| Inheritance (review) | ||
| 
 
class father {
  int box1 = 5;
  static int box2 = 10;
  static Integer box3 = new Integer(15);
  static Integer box4;
}
// ===
class child extends father {
  public static void main(String args[]) {
    father gift = new father();
    father money = new father();
    gift.box1 = 7;
    System.out.println(gift.box1 + money.box1); // 12
    box2 = 1;
    System.out.println(gift.box1 + money.box2 + box2); // 9    
    System.out.println(father.box2 + box2); // 2
    System.out.println(father.box3 + box3); // 30
    System.out.println(father.box4); // null
  }
}
// ===
class anotherchild {
  public static void main(String args[]) {
    System.out.println(father.box2); // 10
    System.out.println(father.box3); // 15
    System.out.println(father.box4); // null
  }
}
 | |
|  |  | |
| Collection & Array | ||
| 
 
import java.io.*;
class ar5max {
 public static void main(String args[]) throws IOException {
  BufferedReader stdin;
  stdin=new BufferedReader(new InputStreamReader(System.in));    
  int buf[] = new int[5];
  int i,max=0;
  for (i=0;i<5;i++) {
    buf[i] = Integer.parseInt(stdin.readLine());
  }  
  for (i=0;i<5;i++) {
    if (buf[i] > max) { max = buf[i]; }
  }
  System.out.println("Max = " + max);
 }
}
 | |
| 
 
class Friend {
  String name;
  Integer age;
  Friend(String name,Integer age) { 
     this.name = name;
     this.age = age;
  }
}
class child {
  public static void main(String args[]) {
    Friend f[] = {
      new Friend("tom",9),new Friend("boy",6),
      new Friend("jack",11),new Friend("jojo",10)
   };
   System.out.println(f[0].name); 
   System.out.println(f[1].name);
   System.out.println(f.length);
  }
}
 | |
| 
 
class child {
  static int elems=0; 
  static Comparable ar[] = new Comparable[2];
  public static void main(String[] args) {
    insert(new Integer(6));
    insert(new Integer(5));
    java.util.Arrays.sort(ar);
    printresult();
  }
  static void insert(Comparable value) { 
    ar[elems] = value;
    elems++;
  }  
  static void printresult() {
    System.out.println(ar[0]+"|"+ar[1]);  // 1|2
  }
}
 | |
| 
 
class x {
  static int elems=0; 
  static Comparable ar[] = new Comparable[5];
  public static void main(String[] args) {
    insert(new Integer(1));
    insert(new String("is 2"));
    insert(new Double(1.2));
    insert(new Boolean(true));
    insert(new Integer(2));
    printresult();
  }
  static void insert(Comparable value) { 
    ar[elems++] = value;
  }  
  static void printresult() {
    System.out.println(ar[0]+"|"+ar[1]+"|"+ar[2]+"|"+ar[3]); 
    if(ar[0].compareTo(ar[4]) < 0) 
      System.out.println("less than"); // print
    System.out.println(ar[2].getClass());
    // class java.lang.Double
  }
}
 | |
| 
 
import java.util.ArrayList;
class x {
  public static void main(String[] args) {
    Myclass work = new Myclass();
    work.insert(new Integer(1));
    work.insert(new Integer(2));
    work.printresult();
  }
}
class Myclass {
  ArrayList<Integer> ar = new ArrayList<Integer>();
  public void insert(Integer value) { 
    ar.add(value);
  }  
  public void printresult() {
    for(int i=0;i<ar.size();i++) 
     System.out.print(ar.get(i)+"|");  // 1|2|
  }
}
 | |
| 
 
import java.util.ArrayList;
import java.io.*;
class x {
  public static void main(String[] args) throws IOException {
    Myclass work = new Myclass();
    BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
    String buf = stdin.readLine();
    work.insert(new Integer(Integer.parseInt(buf)));
    buf = stdin.readLine();
    work.insert(new String(buf));
    buf = stdin.readLine();
    work.insert(new Integer(Integer.parseInt(buf)));
    buf = stdin.readLine();
    work.insert(new String(buf));
    work.printresult();
  }
}
class Myclass {
  ArrayList<Integer> id = new ArrayList<Integer>();
  ArrayList<String> name = new ArrayList<String>();
  public void insert(Object value) { 
    if (value instanceof Integer) {
	id.add((Integer)value);
    } else {
    name.add((String)value);
    }
  }  
  public void printresult() {
    for(int i=0;i<id.size();i++) 
     System.out.println(id.get(i)+"|"+name.get(i));  
  }
}
 | |
| 
 
import java.util.*;
public class child {
public static void main(String args[]) {
  TreeSet t = new TreeSet();
  t.add("B");
  t.add("C");
  t.add("A");
  t.add("D");
  System.out.println(t); //  [A, B, C, D]
  Iterator tn =t.iterator();
  while(tn.hasNext()){
    Object o = tn.next();
    System.out.print(o); // ABCD
  }
}
}
  http://www.c-sharpcorner.com/UploadFile/433c33/vector-class-in-java/ | |
|  |  | |
| Constructor | ||
| 
 
class friend {
  friend() { 
    System.out.println("ok 1");
  }
  void work() { 
    System.out.println("ok 2");
  }
}
class child {
  public static void main(String args[]) {
    friend f = new friend();
    f.work();
  }
}
 | |
| 
 
class Myclass { 
  void showValue() { 
    System.out.println("xx"); 
  } 
} 
class x { 
  public static void main(String args[]) { 
    System.out.println("x"); 
    new Myclass().showValue(); 
    Myclass work = new Myclass();  // ไม่มี constructor ใน Myclass
    work.showValue(); 
  } 
} 
// Result of this program
// x
// xx 
// xx
 | |
| 
 
class Myclass { 
  static void showValue() { 
    System.out.println("y"); 
  } 
  Myclass() {
    System.out.println("x"); 
  }
} 
class x { 
  public static void main(String args[]) { 
    System.out.println("z"); 
    new Myclass().showValue();  
    Myclass a = new Myclass();  
    a.showValue();          
    new Myclass();         
    // Myclass.Myclass();   error
    // showValue(); // ok if have extends Myclass
    Myclass.showValue(); // showValue must be static
  } 
} 
// Result of this program
// zxyxyxy
 | |
|  |  | |
| Overload | ||
| 
 
// x.java
class a {
  int b;
  a() { p("Call object a"); }
  a(int i) { p("Number is " + i); }
  void c() { p("Receive nothing"); }
  void c(int i) { p("Number = " + i); }
  void c(String d) { p("Word = " + d); }
  static void p(String s) { System.out.println(s); }
}
class x {
  public static void main(String args[]) {
    a n = new a(2);
    n.c();
    n.c(3);
    n.c("This is test");
    new a();
  }
}
// Result of this program
// Number is 2
// Receive nothing
// Number = 3
// Word = This is test
// Call object a
 | |
| 
 
import java.io.*;
class a {
  int x[] ={0,0,0};
  void myget() throws IOException {
    BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
    for(int i=0;i<=2;i++) x[i] = Integer.parseInt(stdin.readLine());
  }
}
class b extends a{
  static int c(int c1,int c2) { return (c1 + c2); }
  static int c(int c1,int c2,int c3) { return (c1 * c2 * c3); }
  public static void main(String args[]) throws IOException {
    b me = new b();
    me.myget(); // 1, 2, 3
    System.out.println(c(me.x[0],me.x[1])); // 3
    System.out.println(c(me.x[0],me.x[1],me.x[2])); // 6
  }
}
 | |
|  |  | |
| Inheritance & Override | ||
| 
 
// my55.java
class my55 { 
  public static void main(String args[]) { 
    showValue(); 
  } 
  static void showValue() { 
    System.out.println("egg"); 
  } 
} 
// my56.java
class my56 { 
  public static void main(String args[]) { 
    System.out.println("hen"); 
    my55 work = new my55(); 
    work.showValue(); 
  } 
}
// Result of my56
// hen
// egg
 | |
| 
 
// a1.java : รุ่นปู่ กำหนดค่าให้ i แล้วพิมพ์ 2 บรรทัด
class a1 {   
  static int i;
  public static void main(String args[]) { 
    seti();
    printnumber(i); 
    printline(); 
  } 
  static void seti() { 
    i = 1; 
  } 
  static void printnumber(int j) { 
    System.out.println("Number = " + j); 
  } 
  static void printline() { 
    System.out.println("=========="); 
  } 
} 
// a2.java : รุ่นพ่อ กำหนดค่า i เอง ไม่ใช้ seti() และไม่พิมพ์เส้น
public class a2 extends a1 {
  static int i = 2;
  public static void main (String[] args) {
    printnumber(i); 
  }
}
// a3.java : รุ่นหลาน เปลี่ยนรูปแบบเส้น และไม่ใช้ i จากรุ่นก่อน
public class a3 extends a2 {
  public static void main(String args[]) { 
    printnumber(3); 
    printline(); 
  } 
  static void printline() { 
    System.out.println("----------"); 
  } 
}
// a4.java : รุ่นเหลน เปลี่ยน seti ให้เรียก setinew ที่ช่วยกำหนด i ใหม่ 
public class a4 extends a3 {
  public static void main(String args[]) { 
    seti();
    printnumber(i); 
    printline(); 
  } 
  static void seti() { 
    // override หรือสืบทอดเปลี่ยนได้เฉพาะ code  
    i = setinew(); 
  } 
  static int setinew() {     
    i = 4; 
    return i;
  } 
}
 | |
| 
 
// a.java 
public class a {
  a() {
    System.out.println("a constructor");
  }
}
// b.java
public class b extends a {
  b(int i) {
    System.out.println("b constructor " + i);
  }
  public static void main (String[] args) {
    b xxx = new b(100);
  }
}
// Result of this program
// a constructor
// b constructor 100
 | |
| 
 
// a.java is superclass
public class a {
  a() {
    System.out.println("a constructor");
  }
  void aa() {
    System.out.println("aa in class a");
  }
}
// b.java is superclass of c.java and subclass of a.java
public class b extends a {
  b() {
    System.out.println("b constructor");
  }
  void aa() {
    System.out.println("aa in class b");
  }
}
// c.java is subclass of b.java
public class c extends b {
  c() {
    System.out.println("c constructor ");
  }
  void aa() {
    System.out.println("aa in class c");
    super.aa(); // call aa in superclass
    new a().aa();
  }
  public static void main(String args[]) { 
    c d = new c();
    d.aa();
    // aa(); can not run because aa should be static
    new a().aa();
  } 
}
// Result of this program
// a constructor
// b constructor
// c constructor
// aa in class c
// aa in class b
// a constructor
// aa in class a
// a constructor
// aa in class a
 | |
|  |  | |
| Composition | ||
| 
 
// a.java
public class a {
  a() {
    System.out.println("a constructor");
  }
}
// b.java
public class b {
  public a aa =  new a(); 
  static a bb =  new a();
  public static void main (String args[]) {
    b x = new b();
  }
  b() {
    System.out.println("b constructor");
  }
}
// Result of this program
// a constructor
// a constructor
// b constructor
 | |
| 
 
// a.java
public class a {
  a() {
    System.out.println("a constructor");
  }
}
// b.java
public class b {
  public a aa; 
  public static void main (String args[]) {
    b x = new b();
    if(x.aa == null) x.aa = new a();
    // if(aa == null) aa = new a(); // static of aa required
  }
  b() {
    System.out.println("b constructor");
    new a();
  }
}
// Result of this program
// b constructor
// a constructor
// a constructor
 | |
| 
 // เมื่อแปล wheel จะแปล car ด้วย
// wheel.java
public class wheel {
  private int a;
  private int b;
  public car thecar;
  wheel() {
    System.out.println("constructor wheel() from class wheel");
  }
  public void putwheel() {
    System.out.println("putwheel() from class wheel");
  }
}
// เมื่อแปล door จะแปล car ด้วย
// door.java
public class door {
  private int x;
  private int y;
  public car thecar;
  door() {
    System.out.println("constructor door() from class door");
  }
  public void putdoor() {
    System.out.println("cleandoor() from class door");
  }
}
// แปล car จะแปล และได้ wheel.class และ door.class
// car.java
public class car {
  public wheel thewheel =  new wheel();
  public door thedoor =  new door();
  public static void main (String args[]) {
    car  x = new car();
    x.thewheel.putwheel();
    x.thedoor.putdoor();
  }
  car() {
    System.out.println("Constructor car()");
  }
  public void drive() {
    System.out.println("drive()");
  }
}
// Result of this program
// constructor wheel() from class wheel
// constructor door() from class door
// Constructor car()
// putwheel() from class wheel
// cleandoor() from class door
 | |
|  |  | |
| Package | ||
| 
 
package burin; 
public class x { 
  public static void main (String args[]) { 
    System.out.println("NTU"); 
    myhome();
  } 
  protected static void myhome() { 
    System.out.println("University"); 
  } 
} 
 | |
| 
 
package burin;
class y { 
  public static void main (String[] args) { 
     x a = new x();
     a.myhome();
  } 
}
// ===
package burin;
public class y extends x {  } 
 | |
| 
 
import burin.*;
class z { 
  public static void main (String[] args) { 
     x a = new x();
     a.myhome();
  } 
} 
 | |
| 
 
// yonok1.java 
package burin; 
public class yonok1 { 
  public yonok1() { 
    System.out.println("YONOK"); 
  } 
} 
// yonok2.java 
package burin; 
public class yonok2 { 
  public yonok2() { 
    System.out.println("Burin Rujjanapan"); 
  } 
  public void prt(String s){ 
    System.out.println(s); 
  } 
} 
// import testpackage.java 
import burin.*; 
class testpackage { 
  public static void main (String[] args) { 
    yonok1 xxx = new yonok1(); 
    yonok2 yyy = new yonok2(); 
    yyy.prt("test of package"); 
  } 
} 
// Result of this program
// YONOK 
// Burin Rujjanapan 
// test of package
 | |
|  |  | |
| try .. catch .. | ||
| 
 
Compile-time errors :
class x {
  public static void main(String args[]  {
    System.out.println("aa");
  }
}
หรือ
Run-time errors :
class x {  
  public static void main(String args[]) {
    for(int j=5;j>-5; j--) {
      System.out.println(5/j); // เกิด arithmetic error ขณะ run-time
    }
  }
}
 | |
| 
 
class x {  
  public static void main(String args[]) {
    System.out.println("===== start =====");
    try {
      for(int j=5;j>-5; j--) {
        System.out.println(7/j);
      }
    } catch (ArithmeticException e) {
        System.out.println("You divide by zero");      
    }
    System.out.println("===== finish =====");
  }
}
// Result of this program
// ===== start =====
// 1
// 1
// 2
// 3
// 7
// You divide by zero
// ===== finish =====
 | |
| 
 
class x {  
  public static void main(String args[]) {
    System.out.println("===== start =====");
    for(int j=2;j>-2; j--) {
      try {
        System.out.println(7/j);
      } catch (ArithmeticException e) {
        System.out.println("You divide by zero");      
      } catch (ArrayIndexOutOfBoundsException e) {
        System.out.println("Error on array");      
	  } finally {
         System.out.println("Each case");      
      }
    }
    System.out.println("===== finish =====");
  }
}
// Result of this program
// ===== start =====
// 3
Each case
// 7
Each case
// You divide by zero
Each case
// -7
Each case
// ===== finish =====
 | |
| "Imagination is more important than knowledge" - Albert Einstein |