內部類,Lambda表示式

2021-10-08 02:47:49 字數 2788 閱讀 8594

內部類定義格式

內部類的訪問特點

示例**:

/*

內部類訪問特點:

內部類可以直接訪問外部類的成員,包括私有

外部類要訪問內部類的成員,必須建立物件

*/public

class

outer

}public

void

method()

}

外界建立成員內部類格式

私有成員內部類

靜態成員內部類

區域性內部類方式方式

示例**

class

outer

} inner i =

newinner()

; i.

show()

;}}public

class

outerdemo

}

匿名內部類的格式

匿名內部類的本質

匿名內部類的細節

匿名內部類直接呼叫方法

inte***ce

inter

class

test}.

method()

;// 直接呼叫方法

}}

示例**:

/*

游泳介面

*/inte***ce

swimming

public

class

testswimming})

;}/** * 使用介面的方法

*/public

static

void

goswimming

(swimming swimming)}*/

swimming.

swim()

;}}

組成lambda表示式的三要素:

練習描述

​ 無參無返回值抽象方法的練習

操作步驟

示例**

//介面

public

inte***ce

eatable

//實現類

public

class

eatableimpl

implements

eatable

}//測試類

public

class

eatabledemo})

;//lambda表示式

useeatable((

)->);

}private

static

void

useeatable

(eatable e)

}

示例**

public

inte***ce

flyable

public

class

flyabledemo})

; system.out.

println

("--------");

//lambda

useflyable

((string s)

->);

}private

static

void

useflyable

(flyable f)

}

示例**

public

inte***ce

addable

public

class

addabledemo);

}private

static

void

useaddable

(addable a)

}

**演示

public

inte***ce

addable

public

inte***ce

flyable

public

class

lambdademo

);//引數的型別可以省略

useaddable

((x, y)

->);

// useflyable((string s) -> );

//如果引數有且僅有乙個,那麼小括號可以省略

// useflyable(s -> );

//如果**塊的語句只有一條,可以省略大括號和分號

useflyable

(s -

> system.out.

println

(s))

;//如果**塊的語句只有一條,可以省略大括號和分號,如果有return,return也要省略掉

useaddable

((x, y)

-> x + y);}

private

static

void

useflyable

(flyable f)

private

static

void

useaddable

(addable a)

}

使用限制不同

實現原理不同

內部類,lambda表示式

在乙個類中定義乙個類.分類 成員內部類 在類的成員位置 區域性內部類 在類的區域性位置 例子 成員內部類 public class test1inner class outer 成員內部類 概述 定義在類中方法之外的內部類.私有成員內部類訪問 private 在自己所在的外部類中建立物件訪問.sta...

匿名內部類與Lambda表示式

1.特徵上 沒有名字 2.實現上 既可以擴充套件類,也可以實現介面,但是不能兩者兼備 3.限制上 如果實現介面,只能實現乙個介面 4.功能上 簡化 符合優先使用類而不是介面的設計思想 舉例 description service介面 inte ce service description servi...

靜態內部類和Lambda表示式

1.靜態內部類 有名靜態內部類 static class heart 匿名靜態內部類 class father 外部類 public class outclass 2.用法 在非靜態方法建立非靜態內部類的物件,先建立外部類物件,是隱式,用this。public class body public v...