1. 程式人生 > >java內部類的用法

java內部類的用法

                                      java內部類的用法

java中的內部類是指在一個類中定義另一個類。這樣用的好處是什麼呢?

我們先來看下內部類的實現程式碼:

package csdn;

public class Csdn {
	
	public interface Content{
		int content();
	}
	public interface Destination{
		String destination();
	}
	public static class Goods{
		private class Contents implements Content{

			private int value;
			
			private Contents(int s) {
				this.value=s;
				System.out.println("貨物的價格"+this.value);
			}
			
			@Override
			public int content() {
				return this.value;
			}
			
		}
		protected class Destinations implements Destination{
			
			private String dest;
			
			private Destinations(String s) {
				this.dest=s;
				System.out.println("貨物的目的地"+this.dest);
			}
			
			@Override
			public String destination() {
				return this.dest;
			}
		}
	
		public Contents cont(int a) {
			return new Contents(a);
		}
		public Destinations dest(String s) {
			return new Destinations(s);
		}
		public static void main(String[] args) {

			Goods good=new Goods();
			Content c=good.cont(100);
			Destinations d=good.dest("鞋子");
		}

	}
	
	
}

執行結果:

這是一個簡單的demo。

總結下內部類應用的場景和好處:

1:我們把實現功能的類用內部類實現,達到了封裝的效果。外部只是呼叫內部類的方法而已

2:可以用內部類來實現對應類的介面,這樣能更好的實現介面的實現,避免了一個類要實現多個介面。降低耦合度。

3:由於內部類可以層層巢狀,所以某種意義上來說實現了類似於c++中的多繼承。

4:內部類可以直接訪問外部類的變數,包括外部類宣告的private變數。

注意事項:

1:由於內部類可以訪問外部類,並可以修改。而且內部類與外部類是非同步執行的,所以如果內部類要對外部類的變數訪問

最好把變數設定成static final private型別。

2:不能直接宣告內部類,要先宣告外部類在宣告內部類。因為內外類類似於繼承,也是先有祖先才有孩子。