Upload
heejun-kim
View
182
Download
2
Embed Size (px)
Citation preview
JAVA, Android 스터디
2015.04.14
김희준
• EX 1)
- 자신의 학번과 이름을 받을 수 있는 클래스를 만든다.
(학번 -> int형 , 이름 -> String 객체)
- 생성자 4개 만들기
( 그냥 생성, 학번을 가지고 생성, 이름을 가지고 생성,
학번과 이름을 가지고 생성)
- 학번 이나 이름을 안주고 만든 클래스는 0과”none”으로 초기화
0. 지난주 복습
0. 지난주 복습
0. 지난주 복습
• EX 2)
- EX1에서 작성한 프로그램을 이용해서 접근지정자 예제 실습
- 학번정보를 “private”로 설정 한다.
- 객체(인스턴스)생성시 기본생성자로 생성한다.
- 학번정보를 수정하고 얻을 수 있는 메소드 2개를 작성한다.
0. 지난주 복습
0. 지난주 복습
• EX 3)
- EX2에서 작성한 프로그램을 이용해서 객체배열 예제 실습
- 4개의 객체배열을 생성한다(기본생성자 이용)
- 객체배열에 학번값을 넣어준다.(20xxxxxxx0, 20xxxxxxx1 …)
- 학번값 출력
0. 지난주 복습
• 클래스
- 클래스는 생성자를 이용해 상속 받을 때 초기화 시킬 수 있다.
- 오버로딩이 지원되므로 여러 개의 생성자를 이용 가능하다.
- 모두 사용할 수 있는 접근지정자 public
- 해당 클래스만 사용할 수 있는 접근지정자 private
- private인 경우 해당 클래스 내 public 메소드 이용 접근 가능
- 객체도 레퍼런스 변수이다.(포인터의 개념과 유사)
- 따라서 객체배열 생성시 2차원 배열이 생성된다.
0. 지난주 복습
• EX 4 + HW2)
- 끝말잇기(228p) // 공연예약 시스템(237p) // 로또번호 추첨
- 위 세가지 과제 중 택 1하여 다음주 시연
- 시연 후, 알고리즘 및 코드내용 설명(주석 필요없음)
- 컨트롤 c + v 가능, 대신 설명가능 해야함.
- 클래스를(두 개 이상) 이용하여 구현하기
0.5 지난주 과제
• EX 4 + HW2) 샘플(끝말잇기)
0.5 지난주 과제
• EX 4 + HW2) 샘플(끝말잇기)
0.5 지난주 과제
• EX 4 + HW2) 샘플(끝말잇기)
0.5 지난주 과제
• 상속– 상위 클래스의 특성(필드, 메소드)을 하위 클래스에 물려주는 것
– 슈퍼 클래스 (superclass)
• 특성을 물려주는 상위 클래스
– 서브 클래스 (subclass)
• 특성을 물려 받는 하위 클래스
• 슈퍼 클래스에 자신만의 특성(필드, 메소드) 추가
• 슈퍼 클래스의 특성(메소드)을 수정 : 구체적으로 오버라이딩이라고 부름
• 다중 상속 불가능(extended뒤엔 오직하나의 클래스 가능)
• 슈퍼클래스에서하위클래스로갈수록구체적
– 예) 폰 -> 모바일폰 -> 뮤직폰
• 상속을 통해 간결한 서브 클래스 작성
– 동일한 특성을 재정의할 필요가 없어 서브 클래스가 간결해짐
13
1. 상속
14
1. 상속
• EX 1(240p)- 점을 표시할 수 있도록 좌표 x,y를 설정하고 출력하는 클래스 작성
- 위의 클래스를 상속받아 좌표변수 x,y를 이용 색깔을 출력
15
1. 상속
• EX 1(240p)
- 점을 표시할 수 있도록 좌표 x,y를 설정하고 출력하는 클래스 작성- 위의 클래스를 상속받아 좌표변수 x,y를 이용 색깔을 출력
Class Point{int x, y;void set(int x, int y)void showPoint()
}
pulbic class (클래스명) extends Point{void Color(String color)void showColorPoint()public static void main()
}
16
1. 상속
• EX 1(240p)
작성
• 서브 클래스의 객체와 멤버 접근
– 서브 클래스의 객체에는 슈퍼 클래스 멤버 포함
• 단, 슈퍼 클래스의 private 멤버는 상속되지 않음
– 서브 클래스에서 직접 접근 불가
• 슈퍼 클래스의 private 멤버는 슈퍼 클래스의 메소드를 통해 접근
17
2. 상속과 접근지정자
• 자바의 접근 지정자 4 가지
– public, protected, default, private
• 상속 관계에서 주의할 접근 지정자는 private와 protected
• 슈퍼 클래스의 private 멤버
– 슈퍼 클래스의 private 멤버는 모든 클래스에 접근 불허
• // 부모의 사유재산
• 슈퍼 클래스의 protected 멤버
– 같은 패키지 내의 모든 클래스는 접근
– 동일 패키지 여부와 상관없이 서브 클래스에서 슈퍼 클래스의protected 멤버 접근 가능
• // 부모 자식간에는 상속
18
• EX 2(247p)- 클래스 Person을 아래와 같은 멤버 필드를 갖도록 선언하고 클래스
Student는 클래스 Person을 상속받아 각 멤버 필드에 값을 저장
- int age;
- pubilc String name;
- protected int height;
- private int weight;
2. 상속과 접근지정자
19
• EX 2(247p)
2. 상속과 접근지정자
20
3. 오버라이딩
21
• EX 3(247p)- Person을 상속받는 Professor라는 새로운 클래스를 만들고
Professor클래스에서 getPhone()메소드를 오버라이딩 하라 그리고
이 메소드에서 슈퍼클래스의 getPhone() 메소드를 호출하도록
작성하라
3. 오버라이딩
22
• EX 3(247p)- Person을 상속받는
Professor라는 새로운 클래스를
만들고 Professor클래스에서
getPhone()메소드를 오버라이딩
하라 그리고이 메소드에서 슈퍼
클래스의 getPhone() 메소드를
호출하도록 작성하라
3. 오버라이딩
• 클래스- 다중 상속 불가능(extended뒤엔 오직하나의 클래스 가능)
- 슈퍼 클래스 (superclass)특성을 물려주는 상위 클래스
- 서브 클래스 (subclass) 특성을 물려 받는 하위 클래스
- 접근지정자는 private, default, protected, public 4가지
- 슈퍼 클래스의 private 멤버는 모든 클래스에 접근 불허
- 슈퍼 클래스의 메소드를 서브클래에서 재정의
- 동적바인딩 발생(오버라이딩이 된 메소드기 무조건 실행됨)
0. 지난주 복습
Q & A
Thank you!!