인터페이스추상 메서드의 집합구현된 것이 전혀 없는 설계도이다. 껍데기 (모든 멤버가 public) interface 인터페이스이름 { public static final 타입 상수이름 = 값 ; public abstract 메서드이름 (매개변수목록);} 상수에서의 public staitc final, 메서드의 public abstract 는 생략이 가능하다.interface PlayingCard { // 상수 public static final int SPADE = 4; final int DIAMOND = 3; static int HEART = 2; int CLOVER = 1; // ( public static final ) int CLOVER = 1; // ..
추상 클래스미완성 설계도, 미완성 메서드를 갖고 있는 클래스이다.abstract class Player { abstract void play (int post); abstract void stop ();} 다른 클래스 작성에 도움을 주기 위한 것이며, 인스턴스 생성이 불가능하다.* 미완성 설계도이기 때문에 제품 생산이 불가능하다.Player p = new Player(); // 에러. 추상메서드의 인스턴스 생성 불가 상속을 통해 추상 메서드를 완성해야 인스턴스가 생성이 가능하다.class AudioPlayer extends Player { void play (int pos) { ... } void stop () { ... }} AudioPlayer ap = new AudioPlayer();..
다형성이란조상 타입 참조 변수로 자손 타입 객체를 다루는 것 * 자손 타입의 참조변수로 조상 타입의 객체를 가리킬 수 없다. 있는 기능을 안 쓰는 건 괜찮은데, 실제 가지고 있는 기능보다 버튼이 더 많으면 안된다.ex) 리모콘에 버튼 있는데 실제 작동 안하면 난리난다는 상황을 생각해보면 된다.Tv t = new SmartTv();SmartTv s = new Tv(); // 에러 객체와 참조변수의 타입이 일치할 때, 일치하지 않을 때 차이class Tv { boolean power; int channel; void power() { power = !power; } void channelUp() { ++ channel; } void channelDown() { -- chan..
접근제어자자바의 접근제어자로는 public, protected, default, private 이 있다.각각의 접근 범위는 아래와 같다. 해당 내용은 기억해 두는 게 좋다. public // 모두 접근 가능protected // 같은 패키지 + 자손 (다른 패키지)(default) // 같은 패키지private // 같은 클래스 내 접근 가능 private 접근 제어자를 사용하는 이유는1. 외부로부터 데이터를 보호하기 위해서- 외부접근을 막아 원하지 않는 데이터로 변경되는 것을 막는다. 2. 외부에는 불필요한, 내부적으로만 사용되는 부분을 감추기 위해서.- 접근 제어자의 범위는 좁혀놓고, 필요하면 넓힌다. 좁을수록 테스트할 경우의 수가 줄어들기 때문이다. private 을 사용하여 멤버변수에 직접..