1. 程式人生 > >Java內部類和泛型

Java內部類和泛型

一、內部類

內部類可以是靜態(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){} //<>內為泛型引數 ()為傳值引數

修飾符與返回值型別直接定義在泛型中使用的泛型引數列表