JAVA 클래스와 멤버 2014년 4월 2일 19:00 손은경 강원대학교 데이터베이스 연구실 강원대학교 데이터베이스 연구실.

Slides:



Advertisements
Similar presentations
3. 메소드와 변수 SCJP 자격증 프로젝트 발표자 : 최선웅. 1. 메 소 드 개 념 2. 메 소 드 양 식 3. 메 소 드 변 수 4. 메 소 드 예 제 5. 참 고 문 헌 / 자 료 목 차.
Advertisements

1 08 배열. 한국대학교 객체지향연구소 2 C 로 배우는 프로그래밍 기초 2 nd Edition 배열  동일한 자료유형의 여러 변수를 일괄 선언  연속적인 항목들이 동일한 크기로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는.
5. 접근 제한자의 이해 SCJP 자격증 프로젝트 발표자 : 노효진.
01_ 가상 함수를 사용한 다형성의 구현 02_ 오버라이딩
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
Chap07 상속 Section 1 : 상속의 개요 Section 2 : 멤버 변수의 상속
최윤정 Java 프로그래밍 클래스 상속 최윤정
클래스 구성 요소 1개의 클래스는 최대 8개의 구성 요소를 가질 수 있다
Java로 배우는 디자인패턴 입문 Chapter 5. Singleton 단 하나의 인스턴스
제 9 장 구조체와 공용체.
Lesson 5. 레퍼런스 데이터형.
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
Lesson 6. 형변환.
6장 클래스 6.1 클래스의 일반 구조 6.2 클래스 선언 6.3 객체의 생성 6.4 멤버 변수 6.5 멤버변수 접근 한정자
5장. 참조 타입.
Chap08 다중 스레드 8.1 스레드 개요 8.2 Thread 클래스와 스레드 생명주기 8.3 스레드 생성과 사용
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
6장. 클래스.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
자바 5.0 프로그래밍.
23장. 구조체와 사용자 정의 자료형 2.
패키지와 접근 제어 패키지에 대하여 접근 제어에 대하여.
3장 자바의 기본문법(2).
Java 6장. 클래스 : 속성 public class SumTest {
Lesson 7. 클래스와 메소드 - 1.
10장. 예외처리.
자바 5.0 프로그래밍.
Choi, Namseok Java 기초 (객체와 클래스) Choi, Namseok
C#.
6장 클래스 6.1 클래스의 일반 구조 6.2 클래스 선언 6.3 객체의 생성 6.4 멤버 변수 6.5 멤버변수 접근 한정자
13. 연산자 오버로딩.
7장 인터페이스와 추상 클래스.
Java 9장. 인터페이스와 예외처리 public class SumTest {
Method & library.
JA A V W. 03.
Chapter 11 객체지향 프로그래밍의 기초 01 클래스 02 생성자 03 인스턴스 변수와 클래스 변수 예제 모음 요약
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
명품 C++ 9장 가상 함수와 추상 클래스.
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
Lesson 2. 기본 데이터형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
Effective Java [Issue 1 and 2]
Part 4 클래스 라이브러리 Chapter 10 : 다중 스레드 Chapter 11 : 패키지와 주요 클래스
자바 5.0 프로그래밍.
자바 가상 머신 프로그래밍 Chap 10. 자바 컴파일링의 안쪽 ② Pslab 오민경.
Power Java 제11장 상속.
Chapter 02. 자바 기본 문법.
Java Programming Java Programming 기초 2장 백석대학교 인터넷멀티미디어 LAB1111호.
JA A V W. 06.
10장 상속 Section 1 상속의 개요 Section 2 상속과 한정자 Section 3 상속과 생성자
CHAP 21. 전화, SMS, 주소록.
12. 상속 : 고급.
Java Programming Java Programming 3장 백석대학교 인터넷멀티미디어 LAB1111호.
18강. 인터페이스 – II - 인터페이스와 다중상속 - 인터페이스를 통한 로봇 장남감 만들기 프로그래밍
클래스 : 기능 CHAPTER 7 Section 1 생성자(Constructor)
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
Lecture 04 객체지향 페러다임 Kwang-Man Ko
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
발표자 : 이지연 Programming Systems Lab.
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
2.가상머신의 탐험 도구, Oolong에 대하여 ps lab 김윤경.
Java의 정석 제 8 장 예외처리 (Exception handling) Java 정석 남궁성 강의
자바 객체 지향 프로그래밍 Ps lab 김윤경.
상속 (Inheritance) private 전용부분 전용부분 공용부분 공용부분 public 기본 클래스
7 생성자 함수.
6 객체.
3장 자바의 기본문법(2).
Presentation transcript:

JAVA 클래스와 멤버 2014년 4월 2일 19:00 손은경 강원대학교 데이터베이스 연구실 강원대학교 데이터베이스 연구실

1 기본 용어 자전거 설계도 클래스 : 객체를 만들기 위한 설계도 같은 역할 객체 : 사물 또는 물체(부품) 부품 : 바퀴색, 의자색, 페달모양 기능 : 앞으로 간다. 벨을 울린다 클래스 : 객체를 만들기 위한 설계도 같은 역할 객체 : 사물 또는 물체(부품) 메소드(함수) : 인스턴스가 할 수 있는 기능을 수행할 수 있도록 하는 것 강원대학교 데이터베이스 연구실 강원대학교 데이터베이스 연구실

2 클래스의 기본 구성 클래스 헤더 멤버 변수 클래스 클래스 멤버 생 성 자 메 소 드 강원대학교 데이터베이스 연구실

동일하지 않은 자료형은 묶어서 관리할 수 있는 구조체 2 클래스의 기본 구성 변수 배열 구조체 클래스 Method의 수행까지 포함하는 클래스 변수들만 사용하는 프로그램 동일한 자료형의 변수들은 묶어서 배열로 사용 동일하지 않은 자료형은 묶어서 관리할 수 있는 구조체 강원대학교 데이터베이스 연구실 강원대학교 데이터베이스 연구실

2 클래스의 기본 구성 <형식-클래스> <형식 – 단순형 클래스> 접근_제한자 지정_예약어 class 클래스명 extends 상위_클래스 implements 상위_인터페이스들 { 내용부; ...... } <형식 – 단순형 클래스> Class 클래스명 { 내용부; …… } 강원대학교 데이터베이스 연구실 강원대학교 데이터베이스 연구실

3 클래스에 포함되는 멤버들 자바 클래스=Nested Class + Field + Construct + Method Method – 메서드는 C언어에서 함수와 비슷한 역할을 하는 것으로 특정한 행위를 기술할 수 있는 부분이다 강원대학교 데이터베이스 연구실 강원대학교 데이터베이스 연구실

4 클래스 사용법 자료형 -기본 자료형 : boolean, byte, short, char, int, long, float, double -클래스 자료형 : String 사용자 정의 자료형이란? -사용자가 임의적으로 원하는 자료형을 담을 수있는 것 강원대학교 데이터베이스 연구실 강원대학교 데이터베이스 연구실

5 객체의 생성 객체의 선언 클래스명 객체참조변수; 객체의 생성 객체참조변수 = new 클래스명(); 객체의 선언과 생성 클래스명 객체참조변수; 객체의 생성 객체참조변수 = new 클래스명(); 객체의 선언과 생성 클래스명 객체참조변수 = new 클래스명(); 강원대학교 데이터베이스 연구실 강원대학교 데이터베이스 연구실

5 객체의 생성 Box mybox1; Box mybox2; mybox1 = new Box(); 객체의 선언 : 객체의 선언은 null 값을 가진 변수만을 의미 class Box { int width; int height; int depth; } class MyBox { ............ Box mybox1; Box mybox2; mybox1 = new Box(); // 또는 Box mybox1 = new Box(); mybox2 = new Box(); // 또는 Box mybox2 = new Box(); null Box mybox1; Box mybox2; mybox1 = new Box(); mybox2 = new Box(); mybox1 null mybox2 객체의 생성 : 객체에 대한 메모리가 할당되고 변수(객체참조변수)는 객체에 대한 참조(주소)를 가진다 width height depth mybox1 width height depth mybox2 강원대학교 데이터베이스 연구실 강원대학교 데이터베이스 연구실

6 생성자 메서드 <형식-생성자 메서드> <단순형> 접근_제한자 클래스명(매개_변수들) throws 예외_처리_클래스들{ 멤버 필드 초기화 작업 } <단순형> 클래스명(매개_변수들) { 내용부; …… } 강원대학교 데이터베이스 연구실 강원대학교 데이터베이스 연구실

6 생성자 메서드의 특징 클래스명과 동일하다.(대,소문자까지도) 결과형 리턴값을 가지지 않는다(void조차도 적지 않는다) 클래스 객체가 생성될 때 반드시 하나의 생성자가 호출된다 멤버 필드들의 값을 초기화한다 하나의 클래스 내부에 생성자가 하나도 없으면 자동적으로 defult 생성자가 있는 것으로 인식한다 (defult 생성자는 매개 변수도 없고 내용부도 없는 생성자) 하나의 클래스에는 매개 변수의 개수가 다르거나 매개 변수의 자료형이 틀린 생성자들이 여러 개 있을 수 있다(생성자 오버로딩) 생성자의 첫 번째 라인으로 this(매개변수) 생성자를 사용하여 또 다른 생성자 하나를 호출할 수 있다 강원대학교 데이터베이스 연구실 강원대학교 데이터베이스 연구실

6 생성자 메서드의 특징 강원대학교 데이터베이스 연구실 강원대학교 데이터베이스 연구실

7 메서드 오버로딩 메서드 오버로딩이란? 한 클래스내에, 같은 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것 한 클래스내에, 같은 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것   메서드 오버로딩의 조건 1. 같은 이름의 메서드 2. 파라미터의 데이터 타입이나 개수가 달라야한다. 3. 파라미터는 동일하나 리턴 타입이 다른 경우는 메서드 오버로딩이 성립하지 않는다. 강원대학교 데이터베이스 연구실 강원대학교 데이터베이스 연구실

7 메서드 오버로딩 오류! 강원대학교 데이터베이스 연구실 강원대학교 데이터베이스 연구실

8 접근 제한자와 멤버필드 접근 제한자   _ 클래스 내의 멤버에 접근을 제한하기 위한 예약어   _ 하나의 클래스 내에 모든 멤버들은 제한자를 가진다.   _ 클래스라는 것은 관리의 편의를 위한 하나의 집합. 접근 제한자의 종류 private : 하나의 클래스 내에서만 사용 가능한 멤버를 지정할 때 사용 package : 동일 파일 , 동일 폴더, 패키지 내에서 사용 가능 protected : 동일 파일,동일 폴더, 상속받은 하위 클래스 public : 객체를 가진 모든 영역 강원대학교 데이터베이스 연구실 강원대학교 데이터베이스 연구실

8 멤버 필드와 멤버 메서드 멤버 필드의 형식 :    접근제한자, 지정예약어, 자료형(클래스형도 가능하다), 필드명(사용자정의명) = 값;   멤버 메소드의 형식 :    접근제한자   지정예약어   결과형리턴값==나가는 값        메소드명(매개변수들 ==들어오는 값) throws 예외클래스들 {             내용부    } 강원대학교 데이터베이스 연구실 강원대학교 데이터베이스 연구실

9 필드(Field)에 대한 지정 예약어들 static-하나의 클래스로 발생된 모든 객체가 공유하는 필드를 선언할 때 사용.때문에 객체문이 아닌 클래스명으로도 접근 가능 final-상수형 필드로 한번 값이 정해지면 그 값을 변경하지 못하는 필드 를 선언할 때 사용 static final-static의 속성과 final의 속성이 혼합된 형태 transient – 임시 메모리 필드로 네트워크로의 전송이나 파일로의 전송 시에 그 값 자체가 없는 것과 같은 효과를 나타낼 필드를 선 언할 때 사용 강원대학교 데이터베이스 연구실 강원대학교 데이터베이스 연구실

10 메서드에 대한 지정 예약어들 static -static 지정 예약어로 선언된 필드의 값을 처리하고자 할 때 사용하는 예약어로 static 메서드 내부에는 static 필드나 static 메서드만 올 수 있다. 또한 이 메서드 역시 클래스명으로 접근할 수 있다. final -모든 메서드는 오버로딩(Overloading) 기능이 있다. 이 기능을 상속 관계에서 사용하게 되면 오버라이딩이라는 개념이 되는데 일반적으로 '메서드의 재정의'라고 불린다. 그러나 final로 지정된 메서드는 오버라이딩(Overriding)을 할 수가 없다. 나쁜 의도로 특정 메서드를 오버라이딩하려는 사용자로 부터 프로그램이나 시스템을 보호하기 위해 필요하다. static final -static과 final의 기능을 혼합한 형태이다. abstract -내용부 정의가 없는 추상 메서드를 선언할 때 사용한다. 이렇게 선언된 메서드는 반드시 오버라이딩(Overriding)되어야 한다. synchronized -특정 메서드의 실행이 열 개의 스레드(Thread)로 인하여 중첩되어 수행되는 것을 방지하기 위해서 사용하는 예약어이다. 동기화라는 이름으로 많이 사용된다. native - 순수한 자바의 개념으로 구현할 수 없거나 이미 만들어진 다른 언어의 코딩을 자바 내무 메서드의 코딩처럼 사용하기 위해 선언된 메서드의 지정 예약어로 사용한다. 강원대학교 데이터베이스 연구실 강원대학교 데이터베이스 연구실

11 메서드 오버라이딩 메서드 오버라이딩-상위 클래스의 메서드를 하위 클래스에서 새롭게 정의하고 사용하는 것을 의미한다. 하지만 메서드의 내용을 바꾸는 것이지 메서드의 이름이나 인자, 반환형을 바꾸는 것은 아니다. 메서드를 오버라이딩하기 위해서는 먼저 상위 클래스의 기존 메서드와 완전히 똑같은 이름과 인자, 반환형을 갖도록 메서드를 선언해주어야 한다. 메서드 오버라이딩시 주의 사항 1. 상위 메서드의 이름, 인자 정의, 반환형에 대해서 완전히 같아야 한다. 2. 접근 제어자는 더 좁아질 수 없다. 만일 상위 클래스의 메서드가 protected인 경우에, 이 접근 제어를 하위 클래스에서 private으로 바꾸는 것은 불가능하다. 그러나 역의 경우는 가능하다.(public> protected>default>private) 3. Exception의 추가가 불가능하다. 상위 클래스의 메서드가 가지고 있는 기존 예외 사항에 새로운 Exception의 추가가 불가능하다. 4. static, final, private 메서드의 경우에는 오버라이딩 할 수 없다. 강원대학교 데이터베이스 연구실 강원대학교 데이터베이스 연구실

11 메서드 오버라이딩 public class A { public static void main(String args[]) { C o = new C();  // C라는 클래스. 객체를 생성    o.m();     // C클래스의 m메서드를 호출  } } class B { void m(){    System.out.println(100);   } } class C extends B {   void m(){    System.out.println(200);   } } 강원대학교 데이터베이스 연구실 강원대학교 데이터베이스 연구실

-end- ♥JavA♥ 강원대학교 데이터베이스 연구실 강원대학교 데이터베이스 연구실