728x90
반응형
728x90
반응형
섯다 카드 한벌 생성 섯다카드 클래스 자체를 array로 지정하여 선언 지정한 후 if로 조건문을 선언하여 숫자 조건 추가 숫자를 배정할 때 객체를 선언하여 그 멤버변수에 숫자를 배정 위의 메인클래스에서 for문으로 출력 // 섯다카드 20장을 포함하는 섯다카드 한벌(sutdadeck클래스)를 정의한 것. // 섯다카드 20장ㅇ을 담는 sutdacard배열을 초기화하시오. // 섯다카드는 1-10까지 숫자가 적힌 카드가 한장씩 있고 1,3,8일 경우 둘증의 한장은 Kwang이어야 함 // public class Chap7 { public static void main(String[] args) { SutdaDeck deck = new SutdaDeck(); for(int i = 0; i
인터페이스 정의: 추상메서드의 집합 구현된 것이 전혀 없는 설계도 껍데기 모든 멤버가 public static final & public abstract이여야 함 따라서 public static final과 public abstract는 인터페이스 내에서 생략이 가능하다 추상메서드와 인터페이스의 차이점 추상메서드는 생성자, IV, 추상메서드를 가지고 있지만 인터페이스는 찐으로 아무것도 없는 빈 깡통 IV의 보유 여부로 판별 가능 = 인터페이스 IV 없음, 추상 메서드 IV 존재 다만 상수는 가질 수 있음 = final 인터페이스 선언하는 법 클래스와 동일하게 생성 위의 설명과 같이 앞의 public static final 은 interface에서 필수로 적용되야하기 때문에 생략이 가능하다 interfac..
추상클래스 미완성 메서드: 몸통 { } 이 없는 미완성 메서드 = 추상클래스; 미완성 설계도 목적: 다른 클래스 작성에 도움을 주기 위함 각각의 자손 클래스마다 조건이 다르므로 꼭 필요한 메서드지만 기능을 달리할 필요가 있는 메서드들은 조상에게 상속을 받아오고 자손의 클래스로 넘어올 때 기능을 각기 구현해준다 각기 구현해줌으로써 코드도 간결화되고 유지보수가 쉬워지는 장점 도움이 되는 과정 미완성 설계도가 1개 있다고 치면 추상 클래스는 그 미완성 설계도의 작성을 도와주는 추가 설계도라고 볼 수 있다. 그 설계도만 고침으로써 코드의 중복을 막아주고 나머지 코드를 동일화시켜서 관리가 용이해진다. 또한 각각의 의미있는 단계를을 추상클래스로 정의해 놓으면 나중에 특정 부분을 수정할 때 일처리가 쉬워진다. 설명:..
instanceof 참조변수의 형변환을 하기 전에 instanceof 함수를 써서 형변환 가능여부 확인 > 가능하면 true 반환 사용이유: 형변환하기전에 형변환 가능여부를 확인할 때 조상 멤버를 상속받을 때 어떤 인스턴스를 받을 지 알 수 없기 때문에 instanceof로 TV가 가르키는 smartTV 인스턴스로 형변환이 가능한지 확인해야 함 아래와 같이 형변환이 가능하면 true값을 반환하고 불가능하면 false값을 반환 SmartTV smarttv = new SmartTV(); TV tv = new TV(); System.out.println(smarttv instanceof TV); System.out.println(smarttv instanceof SmartTV); System.out.print..
다형성 - polymorphism 조상 타입 참조 변수로 자손 타입 객체를 다루는 것 다만 반대의 경우는 불가능 (자손타입이 조상타입 객체를 가리키는 것) 참조된 인스턴스 멤버의 개수(조상)가 실제 사용 가능한 개수(자손)보다 적기때문에 오류 발생 아래와 같이 객체와 인스턴스 타입이 불일치함을 다형성을 표현하였다고 함 TV t = new SmartTV(); // 객체와 인스턴스 타입이 불일치 SmartTV st = new SmartTV(); 객체와 인스턴스가 불일치함의 의미는 사용할 수 있는 인스턴스 멤버의 개수가 달라진다고 볼 수 있다. 만약 다형성이 아니라면 (객체와 인스턴스가 일치하면) 아래의 코드처럼 TV의 클래스에 들어있는 총 4개의 변수 + SmartTv 클래스의 2개의 변수 = 총 6개를 사..