搜尋此網誌

2012年3月17日 星期六

Java Inner Class(內部類別)


public class InnerClassDemo {

class Student{
void print(){
System.out.println("This is an inner class as an instance variable");
}
}

void classInAmethod(){
class Son{
void print(){
System.out.println("I am within a method");
}
}
Son s = new Son();
s.print();
}

public static void main(String[]args){
InnerClassDemo is = new InnerClassDemo();
is.classInAmethod();
InnerClassDemo.Student s = is.new Student();
s.print();
}

}


資料來源:http://docs.oracle.com/javase/tutorial/java/javaOO/innerclasses.html
相關文章:anonymous class

你真的是一個programmer嗎??

光會if-else, for or while loop, call 3rd party library, or 知道常用的framework, 對於programmer 來說, 以上只是必須的基本技巧, 嚴格來說要能實做出各種演算法,才能說自己會寫程式.

Java 變數指定


import java.util.ArrayList;

public class VariableAssignDemo {

public static void main(String[] args){
ArrayList a1 = new ArrayList();
a1.add(1);
/**
* Following case assigns object reference to a new variable
*/
ArrayList a2 =a1;
a2.add(2);
System.out.println(a1.toString());
System.out.println(a2.toString());

System.out.println("-------------------");

/**
* Following is a deep copy , all elements are included..
* If you want to keep original object , but do some changes on it.
* A deep copy is a solution.
*/
ArrayList a4 =new ArrayList();
for(int i = 0 ;i < a1.size() ;i++){
a4.add(a1.get(i));
}
a1.remove(0);
System.out.println(a1.toString());
System.out.println(a4.toString());

}
}

Java method override


public class OverwriteDemo {

}

class Father{

void print(){

}
}

class Son extends Father{

// compile-error
// private void print(){
// }

protected void print(){

}
}