內部類根據在類中的位置不同分為三種
1. 成員內部類: 在類的成員位置
2. 區域性內部類: 在方法中
3. 匿名內部類: 在方法中,是一種簡化的寫法
public
class
outer
}}
public
class
demo1
}
區域性內部類是定義在方法中的類,只能在方法中使用,侷限性很強。所以一般不會使用。
public
class
outer
}new
inner()
.inshow()
;}}
匿名內部類實際開發的時候還是使用的特別多的
1.前提: 需要有乙個介面或者抽象類
2.格式:
new 介面/抽象類()
3.本質:匿名內部類本質上是乙個抽象類/介面的子類物件
public
inte***ce
usb
public
class
computer
}
public
class
demo2
@override
public
void
loaddriver()
@override
public
void
run()}
);}}
lambda表示式是函式式程式設計的一種體現,它可以簡化匿名內部類的**書寫。
lamdba表示式的使用步驟
1.必須要有乙個函式式介面
當介面中只有乙個抽象方法,這樣的介面叫做函式式介面
2.有乙個方法,把函式式介面作為引數
3.呼叫方法,傳遞lambda表示式作為函式式介面的實現方式。
lambda表示式案例
//1.定義乙個函式式介面,只有乙個抽象方法
@functionalinte***ce
public
inte***ce
animal
public
class
demo3})
;//lambda標準規格
method
((string food)
->);
//lambda省略資料型別
method
((food)
->);
//lambda省略小括號,引數只乙個的情況下
method
(food -
>);
//lambda省略小括號,引數只乙個的情況下
//lambda省略大括號,方法體只有一條語句
method
(food -
> system.out.
println
("狗在吃"
+ food));
}//2.把介面作為方法的引數
public
static
void
method
(animal a)
}
lambda表示式的格式
1.標準格式:
(資料型別1 引數1
, 資料型別2 引數1)-
>
2.省略資料型別
(引數1
, 引數1)-
>
3.引數只有乙個時,可以省略(
) 引數 -
>
3.當語句體只有一條語句時,可以省略
引數 -
> 語句體
public
inte***ce
inter
//jdk8之後,允許在介面中寫靜態方法
public
static
void
show3()
//jdk9之後,允許在介面中寫私有方法
private
void
show4()
}
Lambda和Stream流知識點
一 函式式介面,滿足條件 函式式介面 functionalinte ce public inte ce functioninte ce 二 引數的傳遞public void test 三 編寫特性 public void test collect collectors.joining system....
Lambda 函式式介面 Stream流 序列化
函式程式設計思想 1 不使用lambda 需要定義類 建立物件 2 使用lambda 不需要定義類,不需要建立物件。lambda相對於物件導向程式設計的優勢 寫法簡單,可讀性強。預設規則 1 形參相關 形參的資料型別都可以省略。2 形參相關 如果形參只有乙個,可以同時省略 資料型別 一對小括號。注 ...
關於stream 和lambda使用
這幾天看專案用到了這些,總結學習一下 先生成測試資料 liststudents new arraylist students.add student.builder name wyp id 1l age 21 男 build students.add student.builder name wj ...