1、内部类可以看成一个类的方法或属性,因而单位可以被四个修饰符修饰,同时也可以被static final abstract修饰。
a.成员内部类例子:
public class Test {
public static void main(String agrs[]){
People.Brain b=new People.Brain();
b.show();
b.getName("ajjjfj");
People p=new People();
People.Shoulder s=p.new Shoulder();
s.show();
}
}
class People{
String name="jajjf";
static class Brain{
String name="brain";
void show(){
System.out.println("I am show");
}
void getName(String name){
System.out.println(name);
System.out.println(this.name);
//System.out.println(People.this.name);由于是静态,所以不可以用this修饰
}
}
class Shoulder{
String name="shoulder";
void show(){
System.out.println("I am show");
}
void getName(String name){
System.out.println(name);
System.out.println(this.name);
System.out.println(People.this.name);
}
}
}
b.成员内部类例子:常常返回类或接口的对象。
例子如下:
方式一:class OutClass{
public Comparable getComparable(){
class MyComparable implements Comparable{
public int compareTo(Object arg0) {
// TODO Auto-generated method stub
return 0;
}
}
return new MyComparable();
}
}
方式二(匿名):public Comparable getComparable1(){
return new Comparable(){
public int compareTo(Object arg0) {
// TODO Auto-generated method stub
return 0;
}
};
}