목록Java (181)
충분히 쌓여가는
추상 클래스 미완성 설계도, 미완성 메서드를 갖고 있는 클래스 추상 메서드를 가지고 있는 클래스에 abstract라는 키워드를 붙이고 추상 클래스라고 한다 abstract class Player { // 추상클래스(미완성 클래스) abstract void play(int pos); // 추상메서드(몸통 {}이 없는 미완성 메서드) abstract void stop(); // 추상클래스 } 추상 클래스는 다른 클래스 작성에 도움을 주기 위한 것으로, 인스턴스 생성 불가능하다 추상 클래스의 Player의 객체를 만드는 것이 불가능하다(아직 설계도가 완성되지 않았기 때문) Player p = new Player(); // 에러, 추상 클래스의 인스턴스 생성 불가 상속을 통해 추상 메서드를 완성해야 인스턴스 생..
하나의 배열로 여러 종류 객체 다루기 조상타입의 배열에 자손들의 객체를 담을 수 있다 Product라는 타입의 배열 p는 다형성 때문에 자식들이 들어올 수 있다 (Tv 객체, Computer 객체, Audio 객체는 타입이 전부 다른데 함께 배열에 들어갈 수 있다) 코드 class Buyer { int money = 1000; int bonusPoint = 0; Product[] cart = new Product[10]; int i = 0; void buy(Product p) { if(money < p.price) { System.out.print("잔액 부족"); return; } money -= p.price; bonusPoint += p.bonusPoint; cart[i++] = p; } } cla..
다형성이란 조상 타입 참조 변수로 자손 타입 객체를 다루는 것 참조변수의 형변환이란 사용할 수 있는 멤버의 갯수를 조절하는 것(리모컨 바꾸기) instanceof란 참조변수의 형변환 가능여부 확인, 가능할 경우 true 반환 매개변수의 다형성 참조형 매개변수는 메서드 호출시, 자신과 같은 타입 또는 자손타입의 인스턴스를 넘겨줄 수 있다 메서드의 매개변수로 조상 타입의 참조변수를 사용하여 하나의 메서드를 여러 타입의 객체를 받을 수 있다 코드 class Product { int price; int bonusPoint; } class Tv extends Product { } class Computer extends Product { } class Audio extends Product { } class B..
instanceof 연산자 참조변수의 형변환 가능여부 확인에 사용, 가능하면 true반환 형변환 전에 반드시 instanceof로 확인해야 된다 코드 class Car { String color; int door; void drive() { System.out.println("drive"); } void stop() { System.out.println("stop"); } } class FireEngine extends Car { void water() { System.out.println("water"); } } Car 또는 Car의 모든 자손은 doWork()에 들어갈 수 있다 어떤 것이 들어올지 모르는 상태에서 FireEngine이 형변환으로 들어갈 수 없다 만약 Ambulance가 들어왔을때 Fi..