Java內部類和泛型
阿新 • • 發佈:2018-12-26
一、內部類
內部類可以是靜態(static)的,可以使用 public、protected 和 private 訪問控制符,而外部類只能使用 public,或者預設。
1、成員內部類
(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++; } } }
(2)內部類可以對同一包其他類隱藏;
(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();
}
二、泛型
1、泛型類-可以接受所有型別的資料
定義 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>
2、泛型方法
定義 public <T1,T2> void Name(T1 x,T2 y){} //<>內為泛型引數 ()為傳值引數
修飾符與返回值型別直接定義在泛型中使用的泛型引數列表