728x90
728x90
추상클래스 미완성 메서드: 몸통 { } 이 없는 미완성 메서드 = 추상클래스; 미완성 설계도 목적: 다른 클래스 작성에 도움을 주기 위함 각각의 자손 클래스마다 조건이 다르므로 꼭 필요한 메서드지만 기능을 달리할 필요가 있는 메서드들은 조상에게 상속을 받아오고 자손의 클래스로 넘어올 때 기능을 각기 구현해준다 각기 구현해줌으로써 코드도 간결화되고 유지보수가 쉬워지는 장점 도움이 되는 과정 미완성 설계도가 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개를 사..
메서드 코드들을 블록안에 묶어놓은 것 중복되는 코드들을 묶어서 이름을 선언해 코드를 간결화 시킨다. - 코드의 재사용 가능 + 이해하기 쉬워진다 class Card{ public static void main(String[] args) { List list = new List(); int[] n = {1,2,3,4,5}; List.numArr(n); int[] n2 = {6,7,8,9}; List.numArr(n2); } } class List { static void numArr(int[] number) { for(int i = 0; i y ? x : y; } } 출력문 true 5
한 파일에 여러 class 작성하기 소스파일의 이름은 public 클래스의 이름과 반드시 일치해야함 public 클래스가 없는경우 이름을 변경하여 여러 class를 작성해도 문제없음 다만 되도록 하나의 소스파일에서 하나의 class만 생성하는 것이 바람직 //public class가 있는경우 public class ATestVer {} class java2{} class hello2{} // public class가 없는경우 class java{} class hello{} 객체 생성 & 사용 class의 객체를 생성하여 각각의 설정된 기능을 호출하고 속성에 값을 지정하여 사용한다 순서: class 생성 > 객체 생성 (TV t = new TV() ) > 객체 속성값 지정 > 객체 기능 메서드 호출 후 사..