본문 바로가기

JAVA BASE/OOP(객체지향 프로그래밍)16

13. [자바] 내부 클래스(inner class) 내부 클래스란? 내부 클래스는 클래스 안에 만들어진 클래스이다 이렇게 클래스 안에 클래스를 만드는 이유는 두 클래스가 서로 긴밀한 관계에 있기 때문이다. 클래스 안에 클래스를 만들게 되면 멤버들 간에 서로 쉽게 접근이 가능하고 불필요한 클래스를 감춰서 코드의 복잡성을 줄일 수 있다. 내부 클래스의 장점 * 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있다. * 코드의 복잡성을 줄일 수 있다(캡슐화) class A { // 외부 클래스 (outer class) ... class B { // 내부 클래스 (inner class) ... } } ⭐내부 클래스는 외부 클래스를 제외하고는 다른 클래스에서 잘 사용되지 않아야 한다.⭐ 내부 클래스의 종류와 특징 내부 클래스의 종류는 변수의 선언위치에 따른.. 2020. 12. 20.
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.