이 블로그의 인기 게시물
다형성 추가정리, instanceof
public class Blog { public static void main(String[] args) { new Byul(); } } class Byul { Byul() { main(); } void main() { //1. 왜 부모 타입으로 선언하고 자식 타입으로 생성하는게 선호되는가? Animal cat = new Cat(); Cat cat2 = new Cat(); //답: 데이터 타입이 다르면 관리하기가 불편하다. // 예를 들어서, 한 배열에 담을 수가 없다. Animal cat3 = new Cat(); Animal dog = new Dog(); Animal[] animals = {cat3, dog}; //이런식으로 부모타입으로 선언하면 한 배열에 묶는 등, 관리가 편해진다. //2. 다형성 예시--------------------------------------------- Animal[] animals2 = { new Cat(), new Dog(), new MikeNeko(), new Shitzu(), new Animal() }; for (Animal animal : animals2) { animal.makeSound(); } System.out.println("---------------"); // 같은 함수, 같은 데이터 타입인데, 자식 클래스가 달라서 다양한 결과를 보여 줄 수 있다. //3. instanceOf--------------------------------------------- // 객체가 해당 객체 타입인지 확인 (상속 관계), // 에러 없이 캐스팅 가능한지 확인 (부모는 자식, 자식은 부모, 메모리에 올라갔는지) // instanceCheck 함수 // - 다형성의 원리를 설명한다. // - 받아오는 객체의 instance 상태에 ...
사각형 넓이 비교 문제
아래의 프로그램을 작성 하시오 . 다음 멤버를 가지고 직사각형을 표현하는 Rectangle 클래스를 작성하라 . - int 타입의 x, y, width, height 필드 : 사각형을 구성하는 점과 크기 정보 - x, y, width, height 값을 매개변수로 받아 필드를 초기화하는 생성자 - int square() : 사각형 넓이 리턴 - void show() : 사각형의 좌표와 넓이를 화면에 출력 - boolean contatins(Rectangle r) : 매개변수로 받은 r 이 현 사각형 안에 있으면 true 리턴 - main() 메소드의 코드와 실행 결과는 다음과 같다 public static void main(String[] args) { Rectangle r = new Rectangle(2, 2, 8, 7); Rectangle s = new Rectangle(5, 5, 6, 6); Rectangle t = new Rectangle(1, 1, 10, 10); r.show(); System.out.println("s 의 면적은 "+s.square()); if(t.contains(r)) System.out.println("t 는 r 을 포함합니다 ."); if(t.contains(s)) System.out.println("t 는 s 를 포함합니다 ."); } (2,2) 에서 크기가 8x7 인 사각형 s 의 면적은 36 t 는 r 을 포함합니다 . Rectangle 클래스 contains 함수에 대하여 한 사각형이 다른 사각형을 포함하는 의미를 코드로 표현한다. 조건1: 현 사각형의 시작 지점 x, y는 상대 사각형의 시작 지점 x, y 보다 작거나 같아야 한다. 조건2:...
댓글
댓글 쓰기