본문 바로가기

Spring-Java/Java15

super, super() 세 줄 요약- super : 부모 클래스로부터 상속받은 필드나 메소드를 사용하기 위한 참조변수- super() : 부모 클래스로부터 상속받은 필드의 값을 초기화 해주는 메소드(= 생성자 역할)- super() 메소드는 자동으로 추가되나, 부모 클래스에 매개변수를 갖는 생성자가 있는 경우 기본 생성자를 추가해줘야 함  super? supersuper 키워드는 부모 클래스로부터 상속받은 필드나 메소드를 자식 클래스에서 참조하는데 사용하는 참조 변수입니다.  this와 super인스턴스 필드와 지역 변수의 이름이 같을 때 this 키워드로 인스턴스 필드임을 구분했습니다.class Parent { int a; public Parent(int a) { .. 2024. 4. 24.
Optional 클래스 Optional? Optional Integer 혹은 Double과 같이 객체 T를 포장(wrap)해주는 래퍼 클래스입니다. 자바의 NullPointException(NPE)을 조금 더 세련되게 처리할 수 있도록 도와줍니다. 객체 생성 of() 메소드나 ofNullable() 메소드를 통해 객체를 생성합니다. 타입에는 / int / long / double 등이 있습니다. Optional : 객체 T OptionalInt : int OptionalLong : long OptionalDouble : double of( ) null이 아닌 명시된 값을 가지는 Optional 객체를 반환합니다. 만약 of() 메소드를 통해 생성된 Optionla 객체에 null이 저장되면 NPE가 발생합니다. ofNullab.. 2024. 4. 5.
스트림(Stream)_최종 처리 기능 세 줄 요약 - 최종 처리 기능을 담당하는 메소드를 체이닝 패턴 마지막에 위치시켜 내부 반복을 종료한다. - 집계 처리 메소드 중 Optional 타입을 리턴하는 메소드는 get() 메소드를 통해 그 값을 얻는다. - collect() 메소드를 사용해서 중간 처리를 거친 요소를 컬렉션에 담을 수 있다. 루핑 스트림에서 요소를 하나씩 반복해서 가져와 처리하는 것을 말합니다. 매개타입은 함수형 인터페이스인 Consumer이며, 해당 인터페이스에는 매개값을 처리하는 accept() 메소드가 있습니다. forEach( ) / peek( ) 둘 다 요소를 하나씩 반복해서 가져오는 기능을 수행합니다. 다만, peek() 메소드는 최종 처리 기능이 아니므로 스트림 메소드 체이닝 패턴에서 마지막에 위치할 수 없습니다... 2024. 4. 5.
스트림(Stream)_중간 처리 기능 네 줄 요약 - 매개값으로 넘길 땐 람다식을 통해 작성한다. - filter()를 통해 조건에 맞는 요소를 구별할 수 있다. - map()과 flatMap()을 통해 요소의 타입이나 개수를 바꿀 수 있다. - 객체 요소의 정렬을 위해선 해당 클래스에 Comparable을 구현하거나 Comparator의 리턴값을 매개값으로 넘겨준다. 반복자 반복자에는 외부 반복자와 내부 반복자가 있습니다. 외부 반복자의 경우 컬렉션의 요소를 반복적으로 바깥으로 가져와서 처리하며, 내부 반복자의 경우 처리 방법(람다식)을 컬렉션 내부로 주입시켜 요소를 반복 처리합니다. 외부 반복자 for 문과 Iterator는 컬렉션의 요소를 바깥쪽으로 반복해서 가져오는 외부 반복자입니다. Set 컬렉션의 iterator() 메소드를 통해.. 2024. 4. 4.
익명 객체와 람다식(lambda) 람다식 사용법 세 줄 요약 - 함수형 인터페이스를 생성하고, - 해당 인터페이스의 참조 변수를 통해 추상 메소드를 호출하는 데이터 처리부(메소드)를 만들고, - 해당 인터페이스의 추상 메소드에 선언된 매개변수(데이터)의 처리 방법을 기술한다. 익명 객체 이름이 없는 객체를 뜻하며 함수형 프로그래밍에 사용됩니다. 종류에는 1) 익명 자식 객체와 2) 익명 구현 객체가 있습니다. 함수형 프로그래밍 함수를 정의하고 이 함수를 데이터 처리부로 보내 데이터를 처리하는 기법입니다. 데이터 처리부는 처리 방법은 없고 단지 데이터만 존재하기 때문에 외부에서 제공된 함수에 의존적입니다. → 함수(A) 결과 = A → 함수(B) 결과 = B → 데이터 처리의 다형성 익명 자식 객체 클래스를 상속해서 익명 객체를 만드는 경.. 2024. 4. 3.
Day10_class 예제 2023.08.25 예제 source code package day10; public class Product { // 필드 private String name; private int price; private int no; private static int num = 100; // 생성자 public Product() { no = num++; } // 메소드 public int getNo() { return no; } public void setNo(int no) { this.no = no; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPrice().. 2023. 8. 28.