목록개발자/JAVA (21)
개발자
함수형 프로그래밍이란 함수형 프로그래밍은 프로그래밍의 패러다임이다. 마치 절차지향 프로그래밍, 객체지향 프로그래밍처럼. 함수형 프로그래밍은 선언적 프로그래밍이다. 이와 대조적으로 람다를 지원하기 전의 자바는 완전한 명령형 프로그래밍이었다. 명령형 프로그래밍 : 클래스에서 메서드를 정의하고, 필요할 때 그 메서드를 호출하는 명령하여 동작. 선언적 프로그래밍 : 데이터가 입력으로 주어지고, 데이터가 처리되는 과정(흐름)을 정의하는 것으로 동작. 함수형 프로그래밍의 조건 1. 순수 함수 같은 입력 시 같은 출력을 보장한다. 부수 효과(Side Effect)가 없다. 멀티쓰레드에서도 안전하다. (Side effect는 반환 값 이외에, 호출 된 함수 밖에서 관찰할 수 있는 어플리케이션의 상태 변경이다.) 2. ..
익명(무명) 클래스 익명(무명) 클래스는 말 그대로 이름이 없는 클래스이다. 인터페이스를 구현한 클래스가 특정한 한곳에서만 사용되고 다른 곳에서는 재사용되지 않는 경우이라면 이럴 경우에는 굳이 클래스 파일로 만들 필요 없이 익명(무명) 클래스로 사용하면 된다. 익명(무명) 클래스의 객체는 반드시 부모 클래스를 상속받는 클래스 이거나 인터페이스를 구현한 클래스이어야 한다. 왜냐하면 클래스의 이름은 없지만 저장받는 타입은 존재해야 하기 때문이다. 그래서 익명(무명) 클래스의 객체는 부모 클래스 또는 인터페이스로 받게 되어있다. 익명(무명) 클래스를 사용하는 가장 큰 목적은 부모 클래스를 상속받는 자식 클래스를 생성하지 않고도 객체를 만들어서 부모 클래스에 정의된 메소드를 재정의 할 수 있다는 것이다. 익명(..
final 더이상 값을 할당 할수 없고, 클래스면 상속받을 수 없다. 1. :rule 메소드가 final 메소드일 때 && PI 필드가 final 필드일때 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 package my.day18.a.Final; public class Final_test_1 { public String id; public String name; // 필드에 final 이 붙으면 더 이상 새로운 값으로 할당 할 수 없다. public final double PI =3.141592; // 한번 적은건 변경 불가, final은 구분지으려고 관습상 대문자로 쓴다.\ public void greeting() { System.out.println..
다중 상속 Father 클래스, Mother클래스가 있고 Me라는 클래스가 있을때, Me라는 클래스는 Father와 Mohter클래스 두클래스 모두 상속받을 수 없다. 1 2 3 4 5 6 7 8 9 10 11 package my.day17.a.multi_inheritance; public class Me extends Father, Mother { 0) this.weight = weight; } //메소드의 오버라이딩 @Override public void show_info() { super.show_info(); //승계받은 다음에 없애준다. 없애면 아예 다 뜯어고치는 것. System.out.println("3. 체중 : " + weight + "kg\n"); } @Override public vo..