21강. 인터페이스
21-1. 인터페이스란?
- 클래스와 달리, 객체를 생성할 수는 없다.
- 클래스에서 구현해야 하는 작업명세서이다.
21-2. 인터페이스를 사용하는 이유
- 인터페이스를 사용하는 이유는 많지만, 가장 큰 이유는 객체가 다양한 자료형(타입)을 가질 수 있기 때문이다.
21-3. 인터페이스 구현
- class 대신 interface 키워드를 사용하며, extends 대신 implements키워드를 이용한다.
- 메서드를 선언만하지, 정의는 하지 않는다. public void funA( ); 까지만. ( aka 추상메서드)
==> 선언된 메서드는 이를 활용하는 class에서 별도로 정의된다.
public class 클래스이름 implements 인터페이스이름1, 이름2... {...}
# 상속과 인터페이스의 차이점
상속 (Inheritance) | 인터페이스 (Interface) |
extends | inplements |
다형성 불가능 | 다형성 가능 |
21-4. 장난감 인터페이스
- interface를 이용하면 객체가 다양한 자료형(타입)을 가질 수 있다.
22강. 추상클래스
22-1. 추상클래스란?
public abstract class AbstractClassExample { . . . }
public abstract void func1( ); // 추상메서드
- 클래스의 공통된 부분을 뽑아서 별도의 클래스(추상클래스)로 만들어놓고, 이것을 상속해서 사용한다.
# 추상클래스의 특징
1. 멤버변수를 가진다.
2. 추상클래스를 상속하기 위해서는 extends를 이용한다.
3. 추상메서드를 가지며, 상속한 클래스에서 반드시 구현해야한다.
4. 일반 메서드도 가질 수 있다.
5. 일반 클래스와 마찬가지로 생성자도있다.
22-2. 추상클래스 구현
22-3. 인터페이스 vs abstract클래스
인터페이스 | abstract클래스 |
추상메서드를 가진다. 객체생성이 불가하다. 자료형 타입으로 사용된다 |
|
상수, 추상 메서드만 가진다 | 클래스가 가지는 모든 속성과 기능을 가진다. |
추상메서드를 구현만 하도록 한다. | 추상 메서드 구현 및 상속의 기능을 가진다 |
다형성 가능 | 단일 상속만 가능하다. |
23강. 람다식
23-1. 람다식이란?
: 익명함수 anonymous function을 이용해서 익명객체를 생성하기 위한 식이다.
- 객체를 따로 만들필요없이, 메서드의 가장 핵심요소인 parameter와 실행문만을 만들어서 바로 활용할 수 있으므로 효율적이다.
23-2. 람다식 구현
(솔직히 이해 x)
24강. 문자열 클래스
24-1. String 객체와 메모리
- String의 경우, 문자열이 변경되면 기존의 객체를 버리고 메모리에 새로운 공간을 할당하여 객체를 생성한다.
- 이때, 기존의 객체는 GC에 의해 메모리가 회수된다.
24-2. StringBuffer, StringBuilder
StringBuffer sf = new StringBuffer("JAVA");
sf.append(" Hello World!");
- String 클래스의 단점을 보완한 클래스로, 데이터가 변경되면, 메모리에서 기존 객체를 재활용한다
'ONLINE COURSES > Java' 카테고리의 다른 글
인프런 자바기초강의_List, Map, 예외처리, 입출력, (0) | 2021.08.15 |
---|---|
인프런 자바기초강의_15,16,17,18,19,20강 (0) | 2021.07.25 |
인프런 자바기초강의_9,10,11,12,13강 (0) | 2021.07.17 |
인프런 자바기초강의_5,6,7,8강 (0) | 2021.07.15 |
댓글