본문 바로가기
ONLINE COURSES/Java

인프런 자바기초강의_인터페이스, 추상클래스, 람다식

by jono 2021. 7. 30.

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 클래스의 단점을 보완한 클래스로,  데이터가 변경되면, 메모리에서 기존 객체를 재활용한다

 

댓글