반응형
추상클래스란 무엇인가.
Backend/java2018. 8. 12. 20:42추상클래스란 무엇인가.

추상클래스(abstract class)란 ?? 1. 클래스가 설계도라면 추상클래스는 “미완성 설계도” 2. 추상메서드(미완성 메서드)를 포함하고 있는 클래스 3. 일반메서드가 추상메서드를 호출할 수 있다(호출할 때 필요한건 선언부) 4. 완성된 설계도가 아니므로 인스턴스를 생성할 수 없다. 5. 다른 클래스를 작성하는 데 도움을 줄 목적으로 작성된다.

여러 종류의 객체를 하나의 배열로 다루기3
Backend/java2018. 8. 12. 20:23여러 종류의 객체를 하나의 배열로 다루기3

전에 Product배열을 사용했던 코드를 Vector클래스를 이용해서 바꾸면... 이렇게 됩니다. Product배열 대신에 Vector를 생성하고... add메서드만 호출하도록 바꾸는 거죠. 책에 Vector클래스를 이용한 예제가 나와있고요... 그 중에서 구입한 제품의 목록을 출력해주는 summary메서드만 자세히 설명해 드리겠습니다. 변수 sum은 구입한 물건가격의 총합을 저장하기 위한 것이고요. cartList는 구입한 제품의 목록을 저장할 문자열입니다. isEmpty메서드는 Vector인스턴스인 cart에 저장된 객체가 있는지를 확인하는 것이죠. 반환값이 boolean이기 때문에 if문의 조건문으로 사용할 수 있습니다. cart가 비어있으면... 바로 메서드의 수행을 종료하고요. 그렇지 않으면....

여러 종류의 객체를 하나의 배열로 다루기2 ( Vector )
Backend/java2018. 8. 12. 20:18여러 종류의 객체를 하나의 배열로 다루기2 ( Vector )

좀전에는 크기가 10인 Product배열을 사용했는데요... 저장할 객체의 수가 10이 넘으면... 배열은 한번 만들면 크기변경이 안되니까... 새로운 배열을 생성하고 복사하고... 해야할 일이 많습니다. 그렇다고 해서... 너무 큰 배열을 생성하면 메모리 낭비가 되니까 안되겠죠. 그래서... 이럴 때는 Product배열 대신에 java.util패키지의 Vector클래스를 사용하면 됩니다. Vector클래스는 이와 같이... 내부적으로 Object타입의 객체배열을 가지고 있어서... 어떠한 종류의 객체도 담을 수 있습니다. Object가 모든 클래스의 조상이고 조상의 타입으로 자손인스턴스를 참조할 수 있으니까요... 게다가 이 Object배열을 자동적으로 관리해주기 때문에... 배열을 직접관리해줄 필요없..

여러 종류의 객체를 하나의 배열로 다루기
Backend/java2018. 8. 12. 20:13여러 종류의 객체를 하나의 배열로 다루기

여러 종류의 객체를 하나의 배열로 다루기 1. 조상타입의 배열에 자손들의 객체를 담을 수 있다. 설명서 앞서 정의된 바와 같이... Tv, Computer, Audio클래스는 Product클래스의 자손이므로... 이와 같이 조상타입의 참조변수로 자손인스턴스를 참조할 수 있습니다. 이 문장들을 배열로 변경하면... 이와 같습니다. 먼저... 3개의 객체를 담을 수 있는 객체배열을 생성하고... 배열의 각 요소에 객체를 생성해서 저장합니다. 사실 이 배열은 실제 객체를 저장하는 것이 아니라... 참조변수를 저장하기 위한 것이고요. 배열의 각 요소에는 인스턴스의 주소값이 저장되겠죠. 이처럼... 조상타입의 객체배열을 이용하면... 여러 종류의 자손인스턴스를 하나의 배열에 담아서 다룰 수 있습니다. 그래서.....

매개변수의 다형성
Backend/java2018. 8. 12. 19:58매개변수의 다형성

매개변수의 다형성 1. 참조형 매개변수는 메서드 호출시 , 자신과 같은 타입 or 자손타입의 인스턴스를 넘겨줄 수 있다. 설명서 제품가격과 보너스점수를 멤버로 정의한 Product클래스를 정의하고... 모든 제품은... Product클래스를 상속받도록 하였습니다. 그래서 Tv, Computer, Audio클래스는 Product클래스를 상속받았습니다. Buyer클래스는 물건을 사는 사람... 구매자를 클래스로 정의한 것이고요. 멤버변수로 가진돈과 보너스점수를 정의하였습니다. Buyer클래스에... 제품을 구입하는 기능의 buy메서드를 추가하려고 합니다. 그래서... Tv를 구입할 수 있는 buy메서드를 이와 같이 구현하였습니다. 매개변수로 Tv타입의 참조변수를 선언하고... Tv의 가격인 price의 금액..

참조변수와 인스턴스변수의 연결
Backend/java2018. 8. 12. 19:55참조변수와 인스턴스변수의 연결

참조변수와 인스턴스변수의 연결 1. 멤버변수가 중복정의된 경우 , 참조변수의 타입에 따라 연결되는 멤버변수가 달라진다(참조변수타입에 영향받음) 2. 메서드가 중복정의된 경우 , 참조변수의 타입에 관계없이 항상 실제 인스턴스의 타입에 정의된 메서드가 호출된다 . ( 참조변수타입에 영향받지 않음 ) 설명서 앞에서... 참조변수의 타입에 따라 사용할 수 있는 인스턴스의 멤버가 달라진다고 배웠습니다. 그 외에도 한가지 더 차이점이 있는데요. 멤버변수가 중복정의된 경우에는...참조변수의 타입에 따라 연결되는 멤버가 달라진다는 것입니다. 왼쪽과 같이 Parent클래스와 이를 조상으로 하는 Child클래스가 정의되어 있을 때... 멤버변수 x가 중복되어 있습니다. 메서드 역시... 오버라이딩되어 있고요. main메서..

반응형
image