본문 바로가기

OOP5

12. [자바] 인터페이스(interface) 인터페이스란? 인터페이스는 일종의 추상클래스이다. 인터페이스는 추상클래스처럼 추상메서드를 갖지만 추상클래스보다 추상화 정도가 높아 몸통을 갖춘 메서드나 멤버변수를 가질 수 없다. 오직 추상메서드와 상수만을 멤버로 가질 수 있다. 추상클래스를 부분적으로 완성된 '미완성 설계도' 라고 한다면 인터페이스는 밑그림만 그려져 있는 '기본 설계도' 이다. 인터페이스의 작성 인터페이스를 작성하는 것은 클래스를 작성하는 것과 같지만 키워드를 class 대신 interface로 사용한다. 또 interface에도 클래스와 같이 접근제어자로 public 또는 default를 사용할 수 있다. interface 인터페이스이름 { public static final 타입 상수이름 = 값; public abstract 메서드이.. 2020. 12. 15.
11. [자바] 추상클래스(abstract class) 추상클래스란? 클래스가 설계도라면 추상클래스는 미완 설계도이다. 추상클래스는 클래스로서의 역할을 다 못하지만 새로운 클래스를 작성할 때 바탕이 되는 조상클래스이다. 즉 새로운 클래스를 작성할 때 어느 정도의 틀을 잡아주는 게 추상클래스이다. 추상클래스를 만드는 법은 키워드 'abstract'를 붙이면 된다. abstract class Main { ... } 추상클래스는 추상메서드를 가지고 있다는 것 외에는 일반 클래스와 다를 게 없다. 추상클래스에도 생성자, 멤버변수, 메서드를 가질 수 있다. 추상 메서드 추상메서드는 선언부만 작성하고 몸통은 작성하지 않는다 /* 주석을 통해 어떤 기능을 수행할 목적인지 작성 */ abstract 리턴타입 메서드이름(); 키워드인 'abstract'를 작성해주고 구현부가.. 2020. 12. 15.
10. [자바] 다형성(polymorphism) 다형성이란? 객체지향에서 다형성이란 '여러 가지 형태를 가질 수 있는 능력'을 뜻한다. 자바는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 프로그램적으로 구현하였다. 구체적으로 말하면 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 하였다 class Tv { boolean power; int channel; void power() { power = !power; } void channelUp() { ++channel; } void channelDown() { --channel; } } class CaptionTv extends Tv { String text; void caption() {} } 클래스 Tv를 상속받는 클래스 CaptionTv가 있다고 .. 2020. 12. 14.
09-1. [자바] 제어자(modifier) 제어자란? 제어자(modifier)는 변수나 메서드의 선언부에 사용되며 부가적인 의미를 부여한다. 크게 두 가지로 분류가 되는데 접근 제어자와 그 외의 제어자로 나눌 수 있다. 접근 제어자 : public, protected, default, private 그 외 : static, final, abstract, native, transient, synchronized, volatile, strictfp 제어자는 클래스나 멤버변수와 메서드에 주로 사용되고 여러 제어자를 조합해서 사용하는 것이 가능하다. 단, 접근 제어자는 네 가지 중 하나만 선택해 사용 가능하다. static - 클래스의, 공통적인 static은 '클래스의' 또는 '공통적인'의 의미를 가지고 있다. 인스턴스 변수는 각 인스턴스마다 다른 값.. 2020. 12. 14.