Burninghering's Blog
article thumbnail
Static이란?
JAVA 2023. 2. 14. 19:07

아래 블로그를 참조하자. [C#] 정적(Static) 클래스(Class), 메소드(Method), 필드(Field) 정적 클래스(Static Class) 정적 클래스는 new 키워드를 사용해서 인스턴스를 만들 수 없습니다. 정적 클래스는 class 키워드 앞에 static 키워드를 선언해서 만듭니다. 정적 클래스의 모든 멤버는 static ssabi.tistory.com 정적 클래스(Static Class) 정적 클래스는 new 키워드를 사용해서 인스턴스를 만들 수 없습니다. 정적 클래스는 class 키워드 앞에 static 키워드를 선언해서 만듭니다. 정적 클래스의 모든 멤버는 static으로 선언되어야 합니다. 정적 클래스는 생성자를 포함할 수 없습니다. 정적 클래스는 객체들이 처음 호출될 때 생성되..

Stream 활용 예제
JAVA 2022. 6. 22. 02:55

스트림을 활용하여 패키지 여행 비용 계산하기 문제 정의 여행사에 패키지 여행 상품이 있습니다. 여행 비용은 15세 이상은 100만원, 그 미만은 50만원 입니다. 고객 세 명이 패키지 여행을 떠난다고 했을 때 비용 계산과 고객 명단 검색등에 대한 연산을 스트림을 활용하여 구현해 봅니다. 고객에 대한 클래스를 만들고 ArrayList로 고객을 관리 합니다. 고객 정보는 다음과 같습니다. CustomerLee 이름 : 이순신 나이 : 40 비용 : 100 CustomerKim 이름 : 김유신 나이 : 20 비용 : 100 CustomerHong 이름 : 홍길동 나이 :13 비용 : 50 고객 클래스 public class TravelCustomer { private String name; //이름 priva..

reduce()
JAVA 2022. 6. 21. 15:12

reduce() 연산 Stream에서 정의된 연산이 아닌 프로그래머가 직접 구현한 연산을 적용 T reduce(T identify, BinaryOperator accumulator) //reduce 메소드의 두 번째 파라미터로 직접 구현 가능 //직접 구현하기 어렵다면 BinaryOperator를 상속받자 최종 연산으로 스트림의 요소를 소모하며 연산을 수행 배열의 모든 요소의 합을 구하는 reduce() 연산 구현 예 Arrays.stream(arr).reduce(0, (a,b)->a+b)); //초기값, 매개 변수, 매개 변수로 수행할 식 reduce() 메서드의 두 번째 요소로 전달되는 람다식에 따라 다양한 기능을 수행 할 수 있음 람다식을 직접 구현하거나 람다식이 긴 경우 BinaryOperator..

Stream
JAVA 2022. 6. 21. 14:37

스트림이란? 자료 처리에 대한 추상화, 일관적인 기능을 제공함 자료의 대상과 관계없이 동일한 연산을 수행일관성 있는 연산으로 자료의 처리를 쉽고 간단하게 함 자료 처리에 대한 추상화가 구현되었다고 함 배열, 컬렉션을 대상으로 동일한 연산을 수행 함 한번 생성하고 사용한 스트림은 재사용 할 수 없음, 다른 연산을 수행하기 위해서는 스트림을 다시 생성해야 함 자료에 대한 스트림을 생성하여 연산을 수행하면 스트림은 소모됨 스트림 연산은 기존 자료를 변경하지 않음 자료에 대한 스트림을 생성하면 스트림이 사용하는 메모리 공간은 별도로 생성되므로 연산이 수행되도 기존 자료에 대한 변경은 발생하지 않음 스트림 연산은 중간 연산과 최종 연산으로 구분 됨 최종연산이 호출되어야 중간 연산에 대한 수행이 이루어 지고 그 결..

article thumbnail
6-4.스트림(Stream)
JAVA 2022. 2. 27. 06:12

스트림이란? - 자료의 대상과 관계없이 동일한 연산을 수행 배열, 컬렉션을 대상으로 연산을 수행 함 일관성 있는 연산으로 자료의 처리를 쉽고 간단하게 함 자료 처리에 대한 추상화가 구현되었다고 함 - 한번 생성하고 사용한 스트림은 재사용 할 수 없음 다른 연산을 수행하기 위해서는 스트림을 다시 생성해야 함 자료에 대한 스트림을 생성하여 연산을 수행하면 스트림은 소모됨 - 스트림 연산은 기존 자료를 변경하지 않음 자료에 대한 스트림을 생성하면 스트림이 사용하는 메모리 공간은 별도로 생성되므로 연산이 수행되어도 기존 자료에 대한 변경은 발생하지 않음(배열을 정렬한다고 해도 그 배열 자체가 정렬되지는 않음) - 스트림 연산은 중간 연산과 최종 연산으로 구분 됨 중간 연산 : 중간의 값을 꺼내거나, 조작하거나,..

6-3.객체지향 프로그래밍 vs 람다식 차이
JAVA 2022. 2. 26. 21:12

객체 지향 프로그래밍과 람다식 비교 문자열 두 개를 연결하여 출력하는 예제를 두 가지 방식으로 구현해 보자 StringConcat.java(I) public interface StringConcat { public void makeString(String s1, String s2); } StringConcatImpl.java public class StringConCatImpl implements StringConcat{ @Override public void makeString(String s1, String s2) { System.out.println( s1 + "," + s2 ); } } StringConcatTest.java package ch04; public class StringConcatT..

article thumbnail
6-2.람다식(Lambda expression)과 함수형 인터페이스
JAVA 2022. 2. 25. 00:08

함수형 프로그래밍과 람다식 자바는 객체 지향 프로그래밍이며 기능을 수행하기 위해서, 객체를 만들고, 그 객체 내부에 멤버 변수를 선언하고 기능을 수행하는 메서드를 구현한다. 그런데 자바 8부터 함수형 프로그래밍 방식을 지원하고 이를 람다식이라 이른다. 함수형 프로그래밍(Functional Programming: FP) 함수를 기반으로 하는 프로그래밍이며 함수의 구현과 호출만으로 프로그래밍이 수행되는 방식 입력받는 자료(매개변수)이외에 외부 자료(외부 변수)를 사용하지 않아 여러 자료가 동시에 수행되는 병렬처리가 가능합니다. 함수형 프로그래밍은 함수의 기능이 자료에 독립적임을 보장합니다. 이는 동일한 자료에 대해 동일한 결과를 보장하고, 다양한 자료에 대해 같은 기능을 수행할 수 있습니다. 함수형 프로그래..

article thumbnail
6-1.여러 내부 클래스의 정의와 유형
JAVA 2022. 2. 24. 23:49

내부 클래스란? (inner class) = 중첩 클래스 클래스 내부에 선언한 클래스로 이 클래스를 감싸고 있는 외부 클래스와 밀접한 연관이 있는 경우가 많고, 다른 외부 클래스에서 사용할 일이 거의 없는 경우에 내부 클래스로 선언해서 사용함 내부 클래스의 종류 : 1) 인스턴스 내부 클래스, 정적(static) 내부 클래스, 지역(local) 내부 클래스 (멤버 변수 (=인스턴스 변수)와 선언 위치, 생성주기 등 똑같음) 2) 익명(anonymous) 내부 클래스 - 인스턴스 내부 클래스 내부적으로 사용할 클래스를 선언 (private으로 선언하는 것을 권장, 안하면 외부에서도 사용가능하니까) 외부 클래스가 생성된 후 생성됨 ( 정적 내부 클래스와 다름 ) private이 아닌 내부 클래스는 다른 외부..