티스토리 뷰
1. 익명클래스
- 이름이 없는 클래스 = Anonymous Class
- 메소드를 오버라이드 하기 위해서 사용됨
* JAVA
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
class Person{
public void greeting() {
System.out.println("hello");
}
}
public class Example{
Person person = new Person(){
public void greeting(){
System.out.println("hiru");
}
};
person.greeting();
}
|
cs |
- 클래스에서 바로 사용하면 알아서 class override 가 됨
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
interface Utility{
public void showInfo();
}
public class Example{
public static void main(String[] args){
Utility util = new Utility(){
@Override
public void showInfo() {
System.out.println("showing info.. ");
}
};
util.showInfo();
}
}
|
cs |
- 인터페이스의 경우 클래스에서 implenets사용하여 만들어져야함
- 익명함수를 사용하면 따로 클래스에서 사용하지 않고도 바로 생성할 수 있음
* C#
* python
2. 람다
* JAVA
- 식별자 없이 실행가능한 함수
- 함수인데 함수를 따로 만들지 않고 코드 한줄에 함수를 써서 그것을 호출하는 방식
- Lambda Expression은 코드 블럭을 메소드에 넣을 떄 사용하는 기술
- 자바 8버전부터 소개된 개념
- 여러줄의 코드를 메소드 안에 넣을때 사용하는 개념
- 원래 메소드안에 코드를 넣을 떄 인터페이스라는 개념을 사용했음
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
interface Say{
void something();
}
class Person{
public void greeting(Say line){
line.something();
}
}
public class Example{
Person person = new Person();
//java7
person.greeting(new Say(){
@Override
public void something() {
System.out.println("My name");
} //line이 없기때문에 say가객체화
});
//Lambda Exmpression
person.greeting(()->{
System.out.println("Lambda Expression");
});
}
|
cs |
* C#
* python
<출처>
1. www.youtube.com/watch?v=foC6t8dZHls
'Programming > JAVA&JAVASCRIPT비교' 카테고리의 다른 글
[JAVA, JAVASCRIPT, PYTHON] Call by ..... (0) | 2022.09.06 |
---|---|
[JAVA,C#,Python 코드 비교] 6. 배열과 컬렉션 (0) | 2022.04.24 |
[JAVA,C#,Python 코드 비교] 10. 상속과 interface (0) | 2020.09.11 |
댓글