Programming Language54 [자바] 스트림 - 스트림 예시 // 스트림 생성 int[] arr = {1, 2, 3, 4, 5}; Arrays.stream(arr).forEach(n -> System.out.println(n)); - 스트림 연산 중간 연산 - filter(), map() filter()는 조건을 넣고 그 조건에 맞는 참인 경우만 추출하는 경우에 사용 sList.stream().filter(s->s.length() >= 5).forEach(s-> System.out.println(s)); map()은 특정조건에 해당하는 값으로 변환 시 사용 ex) 클래스가 가진 자료 중 이름만 출력하는 경우에 사용 customerList.stream().map(c-> c.getName()).forEach(s-> System.out.println(s.. 2021. 10. 27. [자바] 람다식 활용 - 람다식으로 인터페이스 구현 람다식으로 인터페이스를 구현할 때 클래스를 따로 생성할 필요 없이 바로 메서드를 구현함. 람다식을 활용한 경우와 그렇지 않은 경우를 비교해보자. package first_project; public interface StringConcat { public void makeString(String s1, String s2); } 1. 람다식 사용하지 않고 클래스에서 인터페이스 구현 package first_project; public class StringConCatImpl implements StringConcat { @Override public void makeString(String s1, String s2) { System.out.println(s1 + ", "+s2.. 2021. 10. 27. [자바] 제네릭 - 제네릭 프로그래밍이란? 어떤 값이 하나의 참조 자료형이 아닌 여러 참조 자료형을 사용할 수 있도록 프로그래밍 하는 것 - 제네릭 사용법 제네릭에서는 여러 참조 자료형을 사용해야 하는 부분에 Object가 아닌 하나의 문자로 표현함. ex) public class GenericPrinter 여기서 이 T를 자료형 매개변수라고 부르고 나중에 클래스를 사용할 때 이 T위치에 실제로 사용할 자료형을 지정. - 자료형 매개변수 T와 static static 변수나 메서드는 인스턴스 생성없이 클래스 이름으로 호출 가능함. static 변수는 인스턴스 변수 생성 이전에 생성. 또한 static 메서드에서는 인스턴스 변수를 사용할 수 없음. 그런데 T의 자료형이 정해지는 순간은 제네릭 클래스의 인스턴스가 생성되는 .. 2021. 10. 26. [자바] 인터페이스 - (3) 활용하기 - 한 클래스가 여러 인터페이스를 구현 인터페이스는 구현 코드나 멤버 변수를 가지지 않기 때문에 여러 개를 동시에 구현할 수 있음. 두 인터페이스에 이름이 같은 메서드가 선언되었다고 해도 구현은 클래스에서 이루어지므로, 어떤 메서드를 호출해야 하는지 모호하지 않기 때문임. (* 상속은 한번에 여러 개 상속 받기 불가능) 예시 package first_project; public interface Buy { void buy(); } package first_project; public interface Sell { void sell(); } Customer 클래스는 Buy 인터페이스와 Sell 인터페이스를 모두 구현 package first_project; public class Customer imple.. 2021. 10. 26. [자바] 인터페이스 - (2) 요소 - 디폴트 메서드와 정적 메서드 인터페이스의 활용성을 높이기 위해 사용. 디폴트 메서드 - 인터페이스에서 구현 코드까지 작성한 메서드 정적 메서드 - 인스턴스 생성과 상관없이 사용할 수 있는 메서드 - 디폴트 메서드 인터페이스에서 구현하지만, 이후 인터페이스를 구현한 클래스가 생성되면 그 클래스에서 사용함 예약여 default를 사용 사용 예시 지난 계산기 프로그램에 다음을 추가해보자. 일반 함수처럼 작성하고 앞에 default만 붙여주면 된다. package first_project; public interface Calc { ... default void description() { System.out.println("정수 계산기를 구현합니다."); } } package first_project; p.. 2021. 10. 26. [자바] 인터페이스 - (1) 구현과 다형성 인터페이스란? 추상 메서드와 상수로만 이루어져 있음. 구현 코드가 없기 때문에 당연히 인터페이스로 인스턴스를 생성할 수 없음 그럼 인터페이스는 어떻게 사용하는 것인가? 인터페이스를 구현하는 클래스는 implements 예약어를 사용한다. 이때 1. 인터페이스에 포함된 추상 메서드를 구현하거나 2. 이 클래스를 추상 클래스로 만들거나 둘 중에 하나를 택해야 오류가 발생하지 않는다. 인터페이스의 형 변환 상속 관계에서 하위 클래스는 상위 클래스 자료형을 묵시적 형 변환을 할 수 있었던 것과 마찬가지로 인터페이스를 구현한 클래스는 인터페이스 형으로 형 변환이 가능 인터페이스의 역할 인터페이스를 구현한 클래스가 어떤 기능의 메서드를 제공하는지 명시하는 것입니다. 인터페이스와 다형성 package first_pr.. 2021. 10. 26. 이전 1 2 3 4 5 6 7 ··· 9 다음