2010. 4. 28. 09:55 Program.../Java Language
자바를 배워보자 Java Begin (2)
7. 용어 정리
(1) 클래스 (class)
-> 객체를 만들어 내는 틀
ex) 붕어빵틀
(2) 객체 (Object)
-> 클래스를 통해 만들어 낸 구현물
ex) 붕어빵
(3) 메소드(Method)
-> 객체(class도 포함)가 할 수 있는 일
ex) 먹힌다.
(4) 생성자(Constructor)
-> 객체가 만들어 질 때 호출되는 메소드
ex) 붕어빵의 반죽을 틀에 붓는 기능
(5) 속성 (Field)
-> 객체의 특성(속성)
ex) 앙꼬, 색
메소드와 생성자의 차이점
8. OOP의 특징
(1) 상속성(Inheritance)
-> 자식객체가 부모객체의 모든 것을 상속받는 것
( 사용할 수 있는 것 )
<1> 모든 클래스는 java.lang.Object클래스의 자식이다.
<2> 객체가 타입캐스팅이 되려면 반드시 상속관계여야 한다.ㅣ
- 묵(암)시적 형변환 (Implicit Type Casting)
--> 자동형변환(하위 --> 상위)
- 명시적 형변환 (Explicit Type Casting)
--> 강제형변환(상위 --> 하위)
<3> 메소드 오버라이딩도 반드시 상속관계여야 한다.
--> 접근제한자는 부모 메소드의 접근제한자 보다
크거나 같아야 한다.
(2) 다형성(Polymorphism)
--> 메소드의 기능이 다양해지는 것
ex) PolyTest.java
(3) 은닉성(Information Hiding)
--> 외부 프로그램(class)에게 정보(속성값)를 감춘는 것
ex) 계좌.java
(4) 캡슐화(Encapsulation)
ex) 메소드의 기능을 모듈화시키는ㄱ 것
ex) 적분.java
9. 자바의 변수
(1) 유효범위를 기준으로
<1> 멤버변수
- 클래스내에서만 유효
- 소속 기준 (클래스변수/객체변수)
- 초기화를 하지 않아도 됨 (by JVM)
<2> 지역변수
- 해당 메소드내에서만 유효
- 종류
- 메소드내에서 선언 및 초기화
- 파라미터 변수
- 반드시 초기화가 선행되어야지 사용이 가능
ex) Chogy.java
(2) 변수타입(type)을 기준으로
<1> 기본형 (8개)
- call by value;
- 형태 : 소문자
- 종류
byte(1) -> short(2) -> int(4) -> long(8) -> float(4) -> double(8)
char(2)
boolean
- 자동형변환방향 (작은 범위 type --> 큰범위 type)
- 형변환의 필요성 (연산)
- 초기값
정수(0), 실수(0.0), 불린(false)
- 존재이유 : 실행의 효율성 때문이다.
- 예외 연산 형변환
정수형(byte, short, char, int) 산술연산에서는
그 연산결과가 무조건 int 로 나온다.
cf) float f = 123456789.123456789f;
double dou = 123456789.123456789;
<2> 참조형
- call by reference
- 형태 : 대문자
- 종류 : 8가지 기본형을 제외한 나머지 모두
- 초기값 : null
- 자동형변환 (자식(남자) --> 부모(사람))
Object
|
Human
|
Man
- 일반적인 형태의 자동형변환
Human h = new Man();
Man m = (Man)h;
(3) static 이 붙는 여부에 따라
<1> 클래스 소유 변수
<2> 객체 소유 변수
(4) final 이 붙는 여부에 따라
<1> 상수
<2> 변수
ex) FinalVTest.java
10. 제한자 (Modifier)
- 제한자란 ? 클래스, 인터페이스, 변수, 상수, 메소드, 생성자
앞에 붙어서 기능을 제한하는 keyword
(1) 접근 제한자
- public : 접근 제한이 없음
- protected : 상속, 동일 패키지(디렉토리-폴더)
- default : 동일 패키지
- private : 클래내에서만 가능
public > protected > default > private
(2) 소유 제한자
- static : 붙으면 클래스에 소유되고,
붙지 않으면 객체에 소유된다.
- 특징
- static 메소드내에서는 다른 static메소드만 호출 가능
- 클래스 이름으로 접근
- 생성자에는 static 이 붙지 않는다.
(3) 수정 제한자
- final : 붙으면 수정을 못하게 한다.
- class 앞에 붙으면 상속을 못하게 하고
method 앞에 붙으면 오버라이딩을 못하게 하고
변수앞에 붙으면 변수값을 변하게 할 수 없다.
즉, 상수가 된다.
- 지역변수 앞에는 붙을 수 있다.
- 생성자 앞에서 final 붙을 수 없다.
- 부모클래스의 상수와 동일한 일반변수를 자식클래스
에서 선언하면 그 것을 부모상수에 영향을 받지 않는다.
ex) FinalTest.java
(4) 추상 제한자
- abstract : 붙으면 추상화가 된다.
- class 앞에 붙으면 추상 클래스가 되고 method 앞에 붙으면 추상 메소드가 된다.
- 하나 이상의 추상메소드를 가지고 있으면 그 클래스는 자동으로 추상 클래스가 된다.
- 변수앞에나 생성자 앞에는 붙을 수 없다.
- 추상클래스의 객체는 반드시 하위클래스를 만들어서 하위객체를 생성하여
형변환해서 사용해야 한다.
- 하위클래스는 상위클래스의 추상메소드를 반드시 모두 구현(재정의)해야한다.
ex) AbstractTest.java
(5) 기타 제한자
synchronized(쓰레드), transient(보안상),
native (System 자원 사용), volatile
'Program... > Java Language' 카테고리의 다른 글
자바를 배워보자 Java Begin (4) (0) | 2010.04.28 |
---|---|
자바를 배워보자 Java Begin (3) (0) | 2010.04.28 |
자바를 이용한 Swing 달력만들기 (0) | 2010.04.28 |
자바를 배워보자 Java Begin (1) (0) | 2010.04.28 |
Java 1~10 홀수별, 짝수별 합 구하기 (0) | 2009.10.28 |