内部类可以是静态(static)的,可以使用 public、protected 和 private 访问控制符,而外部类只能使用 public,或者默认。
(1)内部类可以直接访问外部类成员,包括私有成员(private);外部类调用内部类成员,需要实例化内部类对象再调用;
public class Outerclass { int x; private int y; public void addOuter() { Inner inner = new Inner(); inner.m++; } public class Inner { int m; public void addInner() { x++; y++; } } }
(3)静态内部类只能访问外部类静态数据(方法和变量);
语句:new 接口名或者抽象类名
(1)定义位置-方法体内或者语句块内;
(2)必须继承一个抽象类或者实现一个接口;
abstract class Person{ public void eat(); } class Cat extends Person{ public void eatSth(){ Person p=new Person(){ public void eat(){} } } p.eat();
}
<pre name="code" class="html"> new Person{
public void eat(){} } }.eat();}
定义 class Point<T1 T2>{ T1 x; T2 y; }
实例化 Point<Integer,Integer> p=new <span style="font-family: Arial, Helvetica, sans-serif;">Point<Integer,Integer>;</span>
定义 public <T1,T2> void Name(T1 x,T2 y){} //<>内为泛型参数 ()为传值参数
修饰符与返回值类型直接定义在泛型中使用的泛型参数列表