Java形式參數返回值&內部類

形式參數和返回值問題
 形式參數
 基本類型:
 形式參數的改變對實際參數沒有影響(String是引用類型和基本數據類型的效果一樣String s ="abc")


引用類型:
          具體類:如果形式參數是一個具體類,那麼需要創建該類對象
 抽象類:如果形式參數是抽象類的情況,那麼需要自定義一個抽象類的子類,來進行實例化(創建對象)!,創建對象的實質:抽象類多態!
 接口:那麼需要自定義一個接口的子實現類,然後通過接口多態的形式給接口進行實例化!(接口多態!
      由於接口不能實例化,需要定義接口的子實現類)


  返回值類型
基本類型

        引用類型
          具體類:直接返回該類對象(實際開發中使用的是匿名對象) 
   抽象類:返回值如果是抽象類,需要的返回是該抽象類的子類對象
 接口:返回值如果是接口類型,需要的是返回該接口的子實現類對象,通過子實現類進行實例化。

3:內部類的概述及訪問特點
概念: 在一個類中定義另一個類,那麼把這種情況稱爲內部類


內部類是直接可以訪問外部類的成員,無論是局部內部類還是成員內部類(一般指非靜態)包括私有

 

  外部類想要訪問內部類的成員,必須通過創建內部類的對象訪問該內部類的成員

 

格式:

外部類名.內部類名.對象名 = 外部類對象.內部類對象

 

class Outer{
	//外部類的成員變量
	public int num = 100 ;
	private int num = 20 ;//內部類可以訪問私有外部類成員變量
	
	//內部類
	class Inner{
	//內部類的成員方法
		public void show(){
			System.out.println(num);
		}
	}
	
	//外部類的成員方法
	public void method(){
		//創建內部類對象
		Inner i = new Inner() ;
		i.show() ;
	}
}


4:內部類的分類


  成員內部類:在外部類的成員位置
  局部內部類:在外部了的局部位置定義的這個類
關係如下:

 

//外部類
class Outer2{
	//外部類的成員變量
	public int num = 100 ;
	
	//成員內部類
	class Inner2{
		
	}
	
	//外部類的成員方法
	public void method(){
		//局部位置
		class Inner2{
			
		}
	}
}


  匿名內部類是內部類的簡化版格式。
  前提條件:
  必須存在一個接口或者是一個類(可以是具體類,也可以是一個抽象類)
  
  書寫格式:
  new 接口名或者類名(){
  方法重寫;

  }

  

 匿名內部類面試題:
按照要求,補齊代碼
interface Inter { void show(); }
class Outer { //補齊代碼 }
class OuterDemo {
public static void main(String[] args) {
 Outer.method().show();
 }
}
要求在控制檯輸出”HelloWorld”
 

/*按照要求,補齊代碼
			interface Inter { void show(); }
			class Outer { //補齊代碼 }
			class OuterDemo {
				public static void main(String[] args) {
					  Outer.method().show();
				  }
			}
			要求在控制檯輸出”HelloWorld”*/

package org.west_09_匿名內部類面試題;

interface Inter {
	public abstract void show(); 
}
class Outer { //補齊代碼
	public static Inter method() {
		//返回值是一個接口
		return new Inter() {
		
			@Override
			public void show() {
				
				System.out.println("HelloWorld");
			}
		};
	}
}

class OuterDemo {
	public static void main(String[] args) {
		  Outer.method().show();
		  
		/*  method能被類名調用  說明方法是靜態的(static)
		  method能調用show 說明返回一個對象*/
	  }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章