Explain람다식 - Lambda Expression: 자바에서 함수형 프로그래밍을 구현하는 방식 (자바 8부터 지원): 클래스를 생성하지 않고 함수의 호출만으로 기능을 수행'함수형 프로그래밍' 이란?: 순수함수를 구현하고 호출함으로써 외부 자료에 부수적인 영향없이 매개변수만을 사용하도록 만든 함수: 외부에 영향을 미치지 않아 병렬처리 등에 사용이 가능 (+확장성 / +안정적)일반 함수에서는int add(int x, int y){ return x + y;]처럼 구현이 되지만,람다식에서는(int x, int y) -> {return x + y;}처럼 간단히 구현할 수 있다.매개변수가 1개이냐, 2개이냐에 따라 혹은 반환하는 값에 따라 중괄호의 여부가 달라지지만기본적인 구조는 이와 같은 것이다."매..
ExplainCompareble 인터페이스: 컬렉션 프레임워크의 TreeSet, TreeMap 등 Tree--- 에서 쓰이는 인터페이스로, 정렬을 할 때 사용이 된다.: 여기서 TreeSet, TreeMap은 객체의 정렬에 사용되는 클래스를 의미: Compareble 인터페이스는 compareTo()메서드를 구현하고, 매개변수와 객체 자신(this)를 비교한다는 점이다.Comparator 인터페이스: 컬렉션 프레임워크의 TreeSet, TreeMap 등 Tree--- 에서 쓰이는 인터페이스로, 정렬을 할 때 사용이 된다.: Comparator 인터페이스는 compare()메서드를 구현하고, 두 개의 매개변수를 비교한다.- 중복을 허용하지 않으면서 오름차순이나 내림차순으로 객체를 정렬- 내부적으로는 이진검..
Explain스택 (Stack): 하노이탑에 개체를 쌓듯 데이터가 LIFO(Last-In First-Out) 구조로 쌓이는 자료구조큐 (Queue): 가로형태의 원통형 구조라고 가정할 수 있고, 맨 좌측 front, 맨 우측 rear(꼬리) 의 자료구조: 데이터가 FIFO(First-In First-Out) = 가장 먼저 들어간 것이 가장 먼저 나오는 구조해시세트 (HashSet): Set 인터페이스의 구현 클래스로 객체를 중복해서 저장할 수 없고: 하나의 null 값만 저장할 수 있는 Set의 성질을 그대로 상속받음>> 저장순서가 중요하지 않음>> 같은 Set 인터페이스의 하위 클래스 중 TreeSet은 데이터를 자동정렬해주는 특징이 있지만 HashSet은 그렇지 않음실습코드 package chapte..
Explain컬렉션 인터페이스 (Collection Interface): 하나의 객체를 관리하기 위한 메서드가 정의된 인터페이스: 하위에 List와 Set 인터페이스를 가짐1. 리스트 인터페이스 (List Interface)- 순서가 있는 자료관리, 중복을 허용 - 객체를 순서에 따라 저장하고 관리하는데 필요한 메서드가 선언된 인터페이스- 배열의 기능을 구현하기 위한 인터페이스- 이 인터페이스를 구현한 클래스는 ArrayList / Vector / LinkedList / Stack / Queue 등이 있음2. 세트 인터페이스 (Set Interface)- 자료관리에 순서가 없음, 중복을 허용하지 않음 - 이 인터페이스를 구현한 클래스는 HashSet / TreeSet 이 있음- 아이디, 주민번호 등 유일..
Explain스택 (Stack): 하노이탑에 개체를 쌓듯 데이터가 LIFO(Last-In First-Out) 구조로 쌓이는 자료구조- 배열이나 연결리스트 둘다 구현가능- 중간에서 데이터의 수정이 일어나지 않음- 맨 위의 위치를 top, 맨 아래의 위치를 bottom 이라 칭함- LIFO (후입선출) 구조로 가장 나중에 넣은것이 가장 먼저 나오는 자료구조- push() = 데이터 삽입, pop() = 데이터 빼기 처럼 사용가능- 실무 사용 예로 게임개발에서 두 수 무르기, 왔던 곳을 되돌아가기 등의 기능을 구현할때 사용- 자바 JDK에서는 Stack 클래스로 구현하거나 ArrayList로 구현이 가능- Peek() : 일종의 get()으로 스택의 맨 위에 있는 원소를 반환 (=실제로 꺼내진 않고 그 값이 ..
Explain제네릭 프로그래밍 (Generic Programmming) : 변수의 선언이나 메서드의 매개변수를 하나의 참조 자료형이 아닌 여러 자료형을 변환될 수 있도록프로그래밍 하는 방식- 실제 사용되는 참조 자료형으로의 변환은 컴파일러가 검증하므로 안정적- 컬렉션 프레임워크에서 많이 사용되고 있음1. 제네릭 클래스는 여러 참조 자료형으로 대체될 수 있어야하므로 그 부분을 "하나의 문자"로 표현함>> 이 문자를 '자료형 매개변수' 라고함>> 자료형 매개변수 선언은 T 로 하며, 이 T는 Type의 의미로 사용됨 다이아몬드 연산자 안에 T를 사용해 표현static키워드는 매개변수 T에 사용이 불가하다.2. 예시로 T extends 클래스= T가 사용될 클래스를 제한하기 위해 사용하는 기법컬렉션 프레임워크..
강의를 참고해 만든 프로그램이므로 코딩 난이도는 다소 떨어질 수 있습니다.IntroductionArrayList를 이용해 동물 클래스로부터 상속받는 Human, Tiger, Eagle, Bear 클래스를 만든다.각 클래스는 공통적으로 move()메서드가 있으며, 각각 다른 기능의 메서드가 존재한다.구현은 print문을 통해 간단히 확인한다.부모 클래스 (class Animal)class Animal{ public void move() { System.out.println("동물이 움직입니다."); }}큰 카테고리인 동물 클래스를 만들고 이로부터 상속받을 수 있도록 코드를 구현한다. 자식 클래스 (class Human, Tiger, Eagle, Bear)class Human extends Animal{ ..
강의를 참고해 상속없이, 객체 간의 협업으로 만든 프로그램이므로 코딩 난이도는 다소 떨어질 수 있습니다.Introduction필요한 클래스 : 학생, 버스, 지하철'학생'클래스의 정보 : 이름, 학년, 돈'학생'클래스의 메서드 : 탄다, 정보'버스'클래스의 정보 : 버스번호, 승객 수, 돈'버스'클래스의 메서드 : 태우다, 정보'지하철'클래스의 정보 : 노선번호, 승객 수, 돈'지하철'클래스의 메서드 : 태우다, 정보첫번째 클래스 (Student.java)package cooperation;public class Student { int grade; int money; String studentName; public Student(String studentName, int money) { this.s..
ExampleStudent studentLee = new Student(); Explain라는 코드에서 Student() 는 "생성자"를 의미한다.그렇다면 public Student() { } 처럼 기본생성자를 넣어주어야하지만 코드에는 없어도 실행이 잘되는 것을 확인할 수 있다.왜냐하면 자바 컴파일러가 자동적으로 추가해 실행해주기 때문인데, 자바 컴파일러는 클래스에 생성자가 하나도 없는 경우에 기본생성자를 알아서 추가해서 실행해주는 특징이 있다.* 특징1. 매개변수가 없음2. 하나의 클래스에는 반드시 적어도 하나 이상의 생성자가 존재해야함 3. 프로그래머가 따로 지정하지 않으면 컴파일러가 기본생성자를 자동으로 코드에 추가해줌 4. 만약 매개변수가 있는 생성자를 추가하게 된다면 기본생성자는 제공되지 않음Q..