ต.ย.โปรแกรมเชิงวัตถุ ชุดที่ 1 |
| Home | Contents | KM | Articles | Members | Sponsors | About us |
|
ปรับปรุง : 2556-09-25 (horse) |
| OOP :: intro ch1-12 :: keyword & sign :: method calling :: series #1 :: series #2 :: series #3 :: pro_pmy |
![]() | ![]() | |
|
Encapsulation
| ||
class student {
int id;
String name;
}
class x1 {
public static void main (String args[]) {
student x;
x = new student();
x.id = 101;
x.name = "wichep";
System.out.println(x.id + " " + x.name);
}
}
| |
class student {
private int id;
void setter(int gid) { id = gid; }
int getter() { return id; }
}
class x {
public static void main (String args[]) {
student s = new student();
s.setter(5601);
System.out.println(s.getter());
}
}
| |
class student {
private Integer id;
void setter(Integer id) { this.id = id; }
Integer getter() { return this.id; }
}
class x {
public static void main (String args[]) {
student s1,s2;
s1 = new student();
s1.setter(5601);
s2 = new student();
s2.setter(5602);
System.out.println(s1.getter() + "" + s2.getter());
// 56015602
}
}
| |
class student {
private Integer id;
void setter(Integer id) { this.id = id; }
Integer getter() {
this.id = work1();
this.id = work2();
return this.id;
}
private Integer work1() {
this.id++;
return this.id;
}
public Integer work2() {
this.id++;
return this.id;
}
}
class x {
public static void main (String args[]) {
student s;
s = new student();
s.setter(01);
System.out.println(s.work2()); // = 2
System.out.println(s.getter()); // = 4
}
}
| |
![]() | ![]() | |
|
Polymorphism
| ||
// x.java : เรียก a1 ซึ่งเป็นลูกของ a มาทำงาน
class a {
a() {
System.out.println("a");
}
static void a22() {
System.out.println("oh no");
}
}
class a1 extends a {
a1() {
System.out.println("a1");
}
}
class a2 extends a {
a2() {
System.out.println("a2");
}
static void a22() {
System.out.println("a22");
}
}
public class x {
public static void main (String args[]) {
a xxx1 = new a1();
a xxx2;
xxx2 = new a2();
a2 xxx3 = new a2();
xxx3.a22();
}
}
// Result of this program
// a
// a1
// a
// a2
// a
// a2
// a22
| |
![]() | ![]() | |
|
this
| ||
class child {
child() {
this(5); // this() must be first line under constructor
System.out.println(this.i);
}
child(int i) { System.out.println(i); }
static int i = 1;
public static void main(String args[]) {
new child();
}
}
| |
class x1 {
// this program error on compile
// error on theory of this
x1() { System.out.print("ketsarin"); }
public static void main (String args[]) {
this();
}
}
| |
class x2 {
x2() { this('a'); } // แต่ใช้ x2('a') ไม่ได้
x2(char y) { System.out.println(y); }
}
class x1 {
public static void main (String args[]) {
new x2();
}
}// output : a
| |
class father {
static int box1 = 5; // required static in main
}
// ===
class child extends father {
child() {
int box2 = this.box2 + box1 + 1;
System.out.println(this.box2 + box2); // 18
}
static int box2 = box1 + 1;
public static void main(String args[]) {
new child();
}
}
| |
![]() | ![]() | |
|
Abstract
| ||
abstract class x {
public abstract void show();
public static void main (String args[]) {
person p[] = new person[3];
p[0] = new person("tom");
p[1] = new person("boy");
System.out.println(p[0].getName());
System.out.println(p[1].getName());
}
}
class person {
private String myname;
person(String n) {
myname = n;
}
String getName() { return myname; }
}
| |
import java.util.*;
abstract class y {
public abstract void show();
TreeSet ss = new TreeSet(); // SortedSet
}
//===
class x extends y {
public void show() {
System.out.println(ss.size()); // 3
ss.remove("tom");
System.out.println(ss.contains("tom")); // false
System.out.println(ss.size()); // 2
System.out.println(ss);
Iterator it = ss.iterator(); // ใช้สำหรับเข้าถึง element
while (it.hasNext()) {
Object element = it.next();
System.out.println(element.toString());
} // ant boy
}
public static void main (String args[]) {
x o = new x();
o.ss.add("tom");
o.ss.add("boy");
o.ss.add("ant");
o.show();
}
}
| |
// x.java
abstract class workinfile {
public abstract void edit();
public abstract void show();
public void display(){
System.out.println("display");
}
}
class w extends workinfile {
public void edit(){
System.out.println("edit");
}
public void show(){
System.out.println("show");
}
}
public class x {
public static void main (String args[]) {
w aaa = new w();
aaa.edit();
aaa.show();
aaa.display();
}
}
// Result of this program
// edit
// show
// display
| |
![]() | ![]() | |
|
Interface
| ||
interface a {
int bb = 10;
public void show();
public int i();
}
class c implements a {
public void show() {
System.out.println("show");
}
public int i() { return (bb + 5); }
}
public class x {
public static void main (String args[]) {
c aaa = new c();
aaa.show();
System.out.println(aaa.i());
}
}
// Result of this program
// show
// 15
| |
![]() | ![]() | |
|
package + abstact + interface
| ||
package a;
public class b{
public void b1() {
System.out.println("1");
}
}
abstract class d {
void e () {
System.out.println("2");
}
abstract void f ();
}
interface g {
int h = 5;
public void i ();
}
interface j {
void k ();
}
import a.*;
public class l extends d implements g,j{
public static void main(String a[]){
new b().b1();
l x = new l();
x.e();
x.f();
x.i();
x.k();
System.out.println(x.h);
}
public void f () {System.out.println("f");}
public void i () {System.out.println("i");}
public void k () {System.out.println("k");}
}
| |
![]() | ![]() | |
|
Thread
| ||
class x {
static Thread t1 = Thread.currentThread();
public static void main(String args[]) {
Thread t0 = new Thread("t0"); // t0
newthread(t0);
sleep1();
System.out.println(t1.getName()); // main (default name)
sleep1();
System.out.println(t1.getPriority()); // 5
sleep1();
System.out.println(t1.isAlive()); // true
newthread(t1); // main
t0.yield();
System.out.println(t0.isAlive()); // false
t0.start();
System.out.println(t0.isAlive()); // true
}
static void newthread(Thread t) {
System.out.println(t.getName());
}
static void sleep1 () {
try { Thread.sleep(1000); } catch (InterruptedException e) { }
}
}
// t0
// main
// 5
// true
// main
// false
// true
| |
class x {
public static void main(String args[]) {
new mthread("a").start();
new mthread("b").start();
}
}
// ===
class mthread extends Thread {
// super ก็คือ Thread เพราะ mthread มีการ extends จาก Thread
mthread(String n) { super(n); } // ค่า n กลายเป็นชื่อของ Thread
public void run() {
for(int i=0;i<200;i++) System.out.print(getName());
}
}
// random : aaabaaabaabbbabbabbbbabbbbbbbaaabbbbbbbaba
| |
class CallThread {
public static void main(String args[]) {
new t1().start();
new t2().start();
new t1().start();
new t2().start();
}
}
// ===
class t1 extends Thread {
public void run() {
for(int i=0;i<10;i++) {
System.out.print("1");
try { Thread.sleep(10); } catch (InterruptedException e) { }
}
}
}
// ===
class t2 extends Thread {
public void run() {
for(int i=0;i<10;i++) {
System.out.print("2");
try { Thread.sleep(10); } catch (InterruptedException e) { }
}
}
}
| |
class x {
public static void main(String args[]) {
new mthread("a").t.start();
new mthread("b").t.start();
}
}
// ===
// class mthread extends Thread { // both is ok
class mthread implements Runnable {
Thread t;
mthread(String n) { t = new Thread(this,n); }
public void run() {
for(int i=0;i<200;i++)
System.out.print(t.getName());
}
}
// random : aaabaaabaabbbabbabbbbabbbbbbbaaabbbbbbbaba
| |
class HorseStart {
public static void main(String args[]) {
new Horse1().start();
new Horse2().start();
}
}
// ===
class Horse1 extends Thread {
public void run() {
for(int i=0;i<3;i++) {
try {
Thread.sleep((int)(Math.random() * 1000));
} catch (InterruptedException e) { }
}
CheckFinish chk = new CheckFinish();
if (chk.flag++ == 1) System.out.println("1");
}
}
// ===
class Horse2 extends Thread {
public void run() {
for(int i=0;i<3;i++) {
try {
Thread.sleep((int)(Math.random() * 1000));
} catch (InterruptedException e) { }
}
CheckFinish chk = new CheckFinish();
if (chk.flag++ == 1) System.out.println("2");
}
}
// ===
class CheckFinish {
static int flag = 0;
}
| ||||
class MyHorseStart {
public static void main(String args[]) {
new MyHorse("tom").start();
new MyHorse("jack").start();
new MyHorse("coco").start();
}
}
// ===
class MyHorse extends Thread {
static int flag = 0;
String horse_id;
MyHorse(String horse_id) {
this.horse_id = horse_id;
}
public void run() {
try {
int r = (int)(Math.random() * 1000);
Thread.sleep(r);
} catch (InterruptedException e) { }
if (flag++ == 1) System.out.println(horse_id);
}
}
| ||||
![]() | ![]() | |
|
runtime
| ||
class x{
public static void main(String args[]) {
Runtime r = Runtime.getRuntime();
System.out.println("Total memory is: " + r.totalMemory());
System.out.println("1 Free memory: " + r.freeMemory());
r.gc(); // clear bin
System.out.println("2 Free memory: " + r.freeMemory());
Integer someints[] = new Integer[10];
System.out.println("3 Free memory: " + r.freeMemory());
for(int i=0; i<10; i++) {
someints[i] = new Integer(i); // allocate integers
}
System.out.println("4 Free memory: " + r.freeMemory());
for(int i=0; i<10; i++) someints[i] = null;
System.out.println("5 Free memory: " + r.freeMemory());
r.gc(); // clear bin
System.out.println("6 Free memory: " + r.freeMemory());
}
}
| ||
class x{
public static void main(String args[]) {
Runtime r = Runtime.getRuntime();
long mem1, mem2;
Integer someints[] = new Integer[1000];
System.out.println("Total memory is: " + r.totalMemory());
mem1 = r.freeMemory();
System.out.println("Initial free memory: " + mem1);
r.gc();
mem1 = r.freeMemory();
System.out.println("Free memory after gc: " + mem1);
for(int i=0; i<1000; i++) {
someints[i] = new Integer(i); // allocate integers
}
mem2 = r.freeMemory();
System.out.println("Free memory after allocation: " + mem2);
System.out.println("Memory used by allocation: " + (mem1-mem2));
// discard Integers
for(int i=0; i<1000; i++) someints[i] = null;
r.gc(); // request garbage collection
mem2 = r.freeMemory();
System.out.println("Free memory after gc: " + mem2);
}
}
ผลการทำงานของรุ่น 1.7.0_03
Total memory is: 15204352
Initial free memory: 14834592 (- 369760)
Free memory after gc: 15057968 (+ 223376)
Free memory after allocation: 14887400 (- 170568)
Memory used by allocation: 170568
Free memory after gc: 15057560 (+ 170160)
| |
![]() | ![]() | |
|
Appendix
| ||
class student {
student(String x) {
System.out.println(x);
n = x;
}
String n;
}
class x1 {
public static void main (String args[]) {
student s = new student("atichart");
System.out.println(s.n);
s = new student("sasivimon");
s = new student("wichep");
System.out.println(s.n);
}
}
// atichart
// atichart
// sasivimon
// wichep
// wichep
| |
class x1 {
public static void main (String args[]) {
b: for (int i=0;i<5;i++) {
if (i == 2) break b; else System.out.print(i);
}
// 01
for (int i=0;i<5;i++) {
if (i == 2) continue; else System.out.print(i);
}
// 0134
x2();
// 01
System.out.print(8);
System.out.print(x3());
// 876
}
public static void x2 () {
for (int i=0;i<5;i++) {
if (i == 2) return; else System.out.print(i);
}
System.out.print(10);
}
public static int x3 () {
System.out.print(7);
return (6);
}
}
// 01013401876
| |
| "Imagination is more important than knowledge" - Albert Einstein |