no image
5장 상속
1. 객체 지향 상속과 자바 상속 개념 이해 2. 클래스 상속 작성 및 객체 생성 // 예제 5-1 클래스 상속 (x, y)의 한 점을 표현하는 Point 클래스와 이를 상속받아 점에 색을 추가한 ColorPoint 클래스를 만들고 활용해보자. class Point{ private int x,y ; // 한점을 구성하는 x,y 좌표 public void set(int x, int y) { this.x = x; this.y = y; } public void showPoint() { // 점의 좌표 출력 System.out.println(x + "," y); } } // Point를 상속받은 ColorPoint 선언 class ColorPoint extends Point{ private String colo..
2024.04.14
no image
4장 클래스와 객체_연습문제
// 1. 아래 실행 결과와 같이 출력하는 다음 main()을 가진 Song 클래스를 작성하라. // Song 클래스는 노래 제목 title 필드, 생성자, getTitle() 메소드로 구성된다. // 2. 다음은 이름(name 필드)과 전화번호(tel 필드)를 가진 Phone 클래스이다. // 이름과 전화번호를 입력받아 2개의 Phone 객체를 생성하고, 출력하는 main() 메소드를 작성하라. import java.util.Scanner; public class pro2 { private String name, tel; public pro2(String name, String tel) { this.name = name; this.tel = tel; } public String getName() {re..
2024.04.14
no image
4장 클래스와 객체
1. 객체 지향의 개념과 특성 이해 2. 자바 클래스 만들기 3. 생성자 만들기 4. 객체 배열 선언 및 활용 5. 객체 치환 이해 6. 객체의 소멸과 가비지 컬렉션 제목과 저자를 나타내는 title과 author 필드를 가진 Book 클래스를 작성하고, 생성자를 작성하여 필드를 초기화하라 Circle 객체 5개를 가지는 배열을 생성하고, Circle 객체의 반지름을 0에서 4까지 각각 지정한 후, 면적을 출력하라. class Circle { int radius; public Circle(int radius) { this.radius = radius; } public double getArea() { return 3.14*radius*radius; } } public class CircleArray { ..
2024.04.10

5장 상속

파이썬정복
|2024. 4. 14. 14:59

1. 객체 지향 상속과 자바 상속 개념 이해


2. 클래스 상속 작성 및 객체 생성

// 예제 5-1 클래스 상속

(x, y)의 한 점을 표현하는 Point 클래스와 이를 상속받아 점에 색을 추가한 ColorPoint 클래스를 만들고 활용해보자.

class Point{
	private int x,y ; // 한점을 구성하는 x,y 좌표
    public void set(int x, int y) {
    	this.x = x; this.y = y;
    }
    public void showPoint() { // 점의 좌표 출력
    	System.out.println(x + "," y);
        }
    }
    
    // Point를 상속받은 ColorPoint 선언
    class ColorPoint extends Point{
    	private String color; // 점의 색
        public void setColor(String color) {
        this.color = color;
        }
        public void showColorPoint() { // 컬러 점의 좌표 출력
       		System.out.print(color);
            showPoint(); // Point의 showPoint() 호출
            }
        }
  public class ColorPointEx {
 	 public static void main(String[] args) {
     	Point p = new Point(); // Point 객체 생성
        p.set(1,2); // Point 클래스의 set() 호출
        p.showPoint();
        
        ColorPoint cp = new ColorPoint();
        cp.set(3,4); // Point 객체 생성
        cp.setColor("red"); // ColorPoint의 setColor() 호출
        cp.showColorPoint(); // 컬러와 좌표 출력
        }
   }

]


3. protected 접근 지정


4. 상속 시 생성자의 실행 과정

서브 클래스의 매개 변수를 가진 생성자에 대해서도 슈퍼 클래스의 기본 생성자가 자동 선택

super()로 슈퍼 클래스의 생성자 명시적 선택


5. 업캐스팅과 instanceof 연산자

 

6. 메소드 오버라이딩과 동적 바인딩의 이해 및 활용

 

서브 클래스 객체와 오버라이딩된 메소드 호출 - 오버라이딩한 메소드가 실행됨을 보장

 

오버라이딩 -> 다형성 실현 : 하나의 인터페이스에 서로 다른 구현 (슈퍼 클래스의 메소드를 서브 클래스에서 각각 목적에 맞게 다르게 구현)


7. 추상 클래스

 

8. 인터페이스

 

 

// 1. 아래 실행 결과와 같이 출력하는 다음 main()을 가진 Song 클래스를 작성하라. 
// Song 클래스는 노래 제목 title 필드, 생성자, getTitle() 메소드로 구성된다.

// 2. 다음은 이름(name 필드)과 전화번호(tel 필드)를 가진 Phone 클래스이다. 
// 이름과 전화번호를 입력받아 2개의 Phone 객체를 생성하고, 출력하는 main() 메소드를 작성하라.

import java.util.Scanner;

public class pro2 {
	private String name, tel;
	public pro2(String name, String tel) {
		this.name = name;
		this.tel = tel;
	}
	public String getName() {return name;}
	public String getTel() {return tel; }
	
	public static void main(String[] args) {
		Scanner scn = new Scanner(System.in);
		pro2 phone [] = new pro2[2];
		
		for (int i=0; i<phone.length; i++) {
			System.out.println("이름과 전화번호 입력 >");
			String name = scn.next();
			String tel = scn.next();
			
			phone[i] = new pro2(name, tel);
		}
		for(int i=0; i<phone.length; i++) {
			System.out.println(phone[i].getName() + "의 번호"+ phone[i].getTel());
		}
		scn.close();
		
	}

}

// 3. 사각형을 표현하는 다음 Rect 클래스를 활용하여, Rect 객체 배열을 생성하고, 
// 사용자로부터 4개의 사각형을 입력받아 배열에 저장한 뒤, 
// 배열을 검색하여 사각형 면적의 합을 출력하는 main() 메소드를 가진 RectArray 클래스를 작성하라.

import java.util.Scanner;
class Rect {
	private int width, height;
	public Rect(int width, int height) {
		this.width = width;
		this.height = height;
	}
	public int getArea() {return width*height;}

}

public class pro3{
	public static void main(String[] args) {
		Scanner scn = new Scanner(System.in);
		pro3 [] rect = new pro3[4];
		int sum = 0;
		
		for(int i=0; i<rect.length; i++) {
			System.out.print((i+1)+"너비와 높이 >>");
			
		}
	}
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1. 객체 지향의 개념과 특성 이해
2. 자바 클래스 만들기
3. 생성자 만들기

 

4. 객체 배열 선언 및 활용
5. 객체 치환 이해
6. 객체의 소멸과 가비지 컬렉션

 

제목과 저자를 나타내는 title과 author 필드를 가진 Book 클래스를 작성하고, 생성자를 작성하여 필드를 초기화하라

Circle 객체 5개를 가지는 배열을 생성하고, Circle 객체의 반지름을 0에서 4까지 각각 지정한 후, 면적을 출력하라.

class Circle {
	int radius;
	public Circle(int radius) {
	this.radius = radius;
	}
	public double getArea() {
	return 3.14*radius*radius;
	}
}
	public class CircleArray {
		public static void main(String[] args) {
				Circle [] c;
				c = new Circle[5];
				for(int i=0; i<c.length; i++)
					c[i] = new Circle(i);
					for(int i=0; i<c.length; i++)
					System.out.print((int)(c[i].getArea()) + " "):
               }
       }

 




7. 클래스와 멤버에 대한 접근 지정
8. static 속성을 가진 멤버의 특성
9. final로 선언된 클래스, 메소드, 필드에 대한 이해


전역 함수로 작성하고자 하는 abs, max, min의 3개 함수를 static 메소드를 작성하고 호출하는 사례를 보여라.

static 메소드의 제약 조건 1

- static 메소드는 오직 static 멤버만 접근 가능

- static 메소드는 this 사용불가