6장 클래스(상속).

Slides:



Advertisements
Similar presentations
어서와 Java는 처음이지! 제3장선택과 반복.
Advertisements

상속에 대해 알아봅니다. 상속과 클래스 계층구조 메소드 오버라이딩
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
10. 예외 처리.
컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review
객체지향 프로그래밍.
Chap05 상속 5.1 상속의 개요 5.2 멤버 변수의 상속 5.3 메소드의 상속과 오버라이딩(Overriding)
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
어서와 Java는 처음이지! 제4장 배열.
윤 홍 란 제3장 클래스와 객체의 사용-1 윤 홍 란
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개
8. 객체와 클래스 (기본).
명품 JAVA Programming 제 7 장 제네릭과 컬렉션.
명품 JAVA Essential.
명품 JAVA Programming.
Java RMI (Remote Method Invocation)
명품 JAVA Programming 제 4 장 클래스와 객체.
[INA470] Java Programming Youn-Hee Han
10장 객체-지향 프로그래밍 II ©창병모.
8장 자바 입출력.
JAVA 프로그래밍 6장 객체지향프로그래밍의 핵심.
객체지향 언어와 클래스, 객체 ㅎㅎ 개요 클래스의 선언, 객체의 생성 및 속성 참조 방식 멤버 변수 메소드 한빛미디어(주)
자바 5.0 프로그래밍.
Choi, Namseok Java 기초 (Java의 제어문과 배열) Choi, Namseok
프로그래밍 언어론 제 9 장 객체 지향 개념 객체 지향 방법론 객체 모델링 객체 지향 언어 C++ 객체 지향 언어 CLOS
01. 직렬화와 역직렬화에 대하여 객체의 직렬화 직렬화와 역직렬화
명품 JAVA Essential.
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 03. 클래스의 기본.
명품 Java Programming.
최용술 장 Thread 최용술
2장 자바환경과 자바 프로그램 2.1 자바 개발 환경 2.2 자바 통합환경 2.3 자바 응용 프로그램과 애플릿 프로그램
윤 홍 란 4 장 클래스 작성 윤 홍 란
Chapter 05. 클래스 완성. chapter 05. 클래스 완성 01. 복사 생성자 복사 생성(Copy Construction) 생성될 때 자신과 같은 타입의 객체를 변수로 받아, 이 객체와 같은 값을 갖는 새로운 객체를 생성하는 것 명시적인 생성 과정뿐만.
C ++ 프로그래밍 시작.
This, static, final 지정 예약어 자바 4대 중첩 클래스
김 정 석 Web Programming 김 정 석
주소록 프로그램.
12 검색.
2009학년도 1학기 상지대학교 컴퓨터정보공학부 고 광 만
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
Java 8장. 상속 public class SumTest {
자바의 신 Volume 1 1부(1~3장) 자바의 신 메인 홈 : 자바의 신 페이스북: 자바의 신 문제 풀이 :
어서와 Java는 처음이지! 제9장 인터페이스, 패키지.
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
소프트웨어 공학 (Software Engineering)
가상함수와 추상 클래스.
메소드와 클래스 정의 및 문제 풀이 Method and Class Define and Problem Solve
Web programming Chap 04 상속 김 정 석
제 2장 어휘구조와 자료형 토 큰 리 터 럴 주 석 자 료 형 배 열 형.
Chap. 14 성능향상시키기 PS Lab. 이지연.
Java Chapter 4 ~ 주차.
컴퓨터공학실습(I) 3주 인공지능연구실.
Java IT응용시스템공학과 김형진 교수 5장. 객체지향 개념 public class SumTest {
Chap02 객체 지향 개념 2.1 객체지향(object-oriented)과 절차지향(procedural-oriented)
프로그래머를 위한 첫걸음 JDBC Lecture 001 BY MINIO
JA A V W. 04.
자바 5.0 프로그래밍.
JA V A W. 07 Sb.L.
Chapter 02. 소프트웨어와 자료구조.
Java 3장. 자바의 기본 구조 I : 변수, 자료형, 연산자 public class SumTest {
[ 단원 06 ] 상속과 다형성.
JVM의 구조와 메모리 모델 JVM의 내부 구조 클래스 파일 클래스 로더 메소드(method) 영역 힙(heap) 영역
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
제 14 장 응용 계층과 클라이언트-서버 모델 클라이언트-서버 모델 14.2 동시성 14.3 프로세스 14.4 요약.
Java 5장. 객체지향 개념 public class SumTest {
C++ 언어의 특징
자바 가상 머신 프로그래밍 Chapter 3. 메소드 작성하기 Pslab 오민경.
Chapter8 : 인터페이스와 패키지 8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용
Presentation transcript:

6장 클래스(상속)

클래스 상속 클래스 상속 메서드 오버로딩 메서드 오버라이딩 접근 제어자 Vector 클래스 (Method Overloading : 메서드 중복 정의) 메서드 오버라이딩 (Method Overriding : 메서드 재정의) 접근 제어자 Vector 클래스

클래스 클래스 상속 두 클래스가 상속관계에 있을 때 상속되는 클래스를 부모 클래스 혹은 상위 클래스라 부르고 상속 받는 클래스를 자녀 클래스 혹은 하위 클래스라 부른다. 하위 클래스는 상위 클래스의 public, protected로 선언된 멤버(변수, 메서드)들을 상속받아 사용하거나 재정의 할 수 있다. 상속을 할 때는 extends 지시자를 사용한다. [접근 제어자] class 클래스 이름 extends 상위 클래스 { 멤버 변수; 생성자; 멤버 메서드; }

클래스 예제

클래스 this 와 super super 지시자는 상위 클래스의 멤버 변수나 메서드에 접근할 때 사용한다. super 지사자의 경우 오버라이딩이 되어 있지 않다면 생략될 수 있고 this 지시자는 일반적으로 생략이 되지만 메서드 내부에서 멤버변수와 동일한 이름의 식별자를 사용할 경우 this 지시자를 해야만 사용된 변수가 멤버 변수임을 컴파일러가 알 수 있다.

클래스 메서드 오버로딩(overloading) 같은 이름의 메서드를 중복해서 정의하는 것을 말한다. public int sum(int intNum1, int intNum2) { int result = intNum1 + intNum2; System.out.println("int형 인자를 받는 메서드 호출"); System.out.println(intNum1 + " + " + intNum2 + " = " + result); return result; } public long sum(long longNum1, long longNum2) { .... public double sum(double doubleNum1, double doubleNum2) { ... Calculator cal = new Calculator(); int intResult = cal.sum(10, 20); long longResult = cal.sum(10L, 20L); double doubleResult = cal.sum(10.0, 20.0);

클래스 메서드 오버라이딩(overriding) 상위 클래스의 메서드를 개선하거나 하위 클래스에 맞게 변경하여 사용해야 할 때 메서드 오버라이딩을 사용하게 된다. 메서드 오버라이딩을 하면 메서드가 호출되었을 때 상위 클래스의 메서드가 아닌 하위 클래스의 메서드를 호출한다. 상위 클래스의 메서드를 호출하기 위해서는 super 지시자를 사용하여 호출한다.

오버라이딩 된 메서드에서 변경가능한 접근제어자 클래스 메서드 오버라이딩 규칙 상위 메서드의 이름, 인자, 반환형이 완전히 같아야 한다. 접근 제어의 변경은 다음과 같은 경우만 허용된다. static, final, private으로 정의된 메서드는 오버라이딩 할 수 없다. 상위 클래스의 메서드 접근 제어자 오버라이딩 된 메서드에서 변경가능한 접근제어자 public protected private

클래스 예제 class Human { public void speak() { System.out.println("말하다.");     } } class Korean extends Human {         System.out.println("한국어로 말하다."); class American extends Human {         System.out.println("영어로 말하다.");

클래스 접근제어자 어떤 접근 제어자를 쓰는가에 따라 클래스의 멤버에 접근할 수 있는 권한이 틀려진다. private - 메서드나 멤버 변수에 클래스의 외부에서 접근 할 수 없다. protected - 상속받은 클래스나 같은 패키지에 있는 클래스에서 접근가능하하다. public - 아무런 제약 없이 접근 가능하다. 접근 제어자가 없는 경우는 같은 패키지 내에서 접근가능하다.

클래스 Vector 클래스 리스트 자료 구조를 제공한다. Vector 클래스는 java.util 패키지에 정의되어 있다. 데이터가 가득 차면 자동으로 크기가 늘어나며 프로그래머가 임의로 크기를 조절 할 수 있다. 배열은 인덱스를 통한 접근만을 허용하지만 Vector는 Enumeration 인터페이스와 인덱스를 이용해 접근할 수 있다.

클래스 Vector 클래스 생성자 Vector 객체에 요소 추가하기 Vector 객체에서 요소 제거하기 void add(Object obj) Vector 객체에서 요소 제거하기 Objcet remove(int index) Vector 객체에서 저장된 객체 가져오기 Object get(int index)와 int size() 메서드를 사용한다. get 메서드를 사용해 가져온 객체는 캐스팅(형변환)을 하여 사용한다. for(int i=0 ; i < vec.size() ; i++) { Object obj = vec.get(i); } 생성자 설명 Vector() 크기가 10인 Vector 클래스 객체를 만들고 가득차면 10만큼 크기를 증가시킨다. Vector(int initialCapacity) initialCapacity만큼의 크기를 가지는 Vector 클래스 객체를 만들고 가득차면 initialCapacity만큼 증가시킨다. Vector(int initialCapacity, int capacityIncrement) initialCapacity만큼의 크기를 가지는 Vector 클래스 객체를 만들고 가득차면 capacityIncrement만큼 크기를 증가시킨다.