본문 바로가기
Programming/JAVA(eclipse)

java 8일차 _ 7일차 리뷰

by yoon9i 2024. 3. 19.

<7일차리뷰>
1. 클래스 구성요소
- 인스턴스 변수: 
데이터 저장용. 객체 속성값 저장 (ex) Cat 클래스의 이름, 나이 )
일반적으로 private 로 지정한다. ( 은닉화(캡슐화, encapsulation) )
private 로 지정하여 직접접근이 불가능함.

- 생성자( Constructor ):
인스턴스 변수 초기화용.
반드시 클래스명으로 사용
오버로딩(overloading) 생성자가 가능
( 단, 인자리스트( 갯수, 타입, 순서 )는 반드시 다르다. )
반드시 호출해야 실행이 된다.
호출하는 방법은 2가지 ( 외부: new 생성자( ); / 내부: this( ) )

- 메서드( Method ):
기능처리. 일반적으로 인스턴스변수를 관리하는 기능임.
( 변수값 수정, 조회, 유효성검사,... )

역할에 따른 2가지 종류: 
값 설정용은 setter 메서드 사용.
값 조회용은 getter 메서드 사용.

파라미터 및 리턴값 존재여부에 따른 4가지 종류:
파라미터x 리턴값x , 파라미터 o 리턴값 x, 파라미터 x 리턴값 o,
파라미터 o 리턴값 o

반드시 호출해야 실행이 된다. 실행된후에 반드시 호출한 곳으로 
돌아온다. ( stack 메모리에 함수정보 저장 ; stack 에서 저장되는데 어디 method 에 있는지도 저장한다. )
오버로딩(overloading) 메서드가 가능 
(단, 인자리스트는 반드시 다르다.)


2. Call by value vs Call by value reference
개념: 메서드 호출시 값을 전달할 수 있는데 전달되는 방식은
       값이 전달된다.

값의 종류:
기본형인 경우에는 call by value 라고 한다. ( 실제값 전달 )
=> 전달받은 메서드안에 값을 변경하면 원본값은 영향받지 않음.
참조형인 경우에는 call by value reference 라고 한다. ( 주소값 전달 )
=> 전달받은 메서드안에 값을 변경하면 원본값도 영향을 받는다.
ex) 배열 또는 클래스 전달하고 전달받은 메서드에서 값을 변경하면
     원본배열 또는 클래스( Cat, 컬렉션 )의 변수값이 수정이 된다.

3. package 와 import
1) package
- 용도: 클래스 파일 관리목적( 윈도우의 폴더와 비슷 )
- 문법:
package 패키지명;
package 패키지명.패키지명1;

- 특징: 
단한번만 지정 가능.
유일한 값으로 지정. ( 일반적으로 도메인으로 지정함 )         
패키지 컴파일 필요: javac -d Hello.java
패키지 실행시 패키지명을 명시적으로 지정해야 된다.
: java com.ssginc.Hello
java API 도 패키지로 제공된다. ( java.lang, ...javax... )
사용자지정 패키지명은 java API 패키지명은 사용불가.

2) import
- 용도: 패키지가 다른 클래스는 접근이 불가능한데 가능하도록
         경로를 알려주는 역할.
- 문법:
import 패키지명.패키지명1.클래스명; // 권장
import 패키지명.패키지명1.*; // 권장안함

이클립스에서 ctrl + shift + o(영문자) 하면 자동으로 import 해줌.

- 특징:
자동으로 import 되는 API 패키지는 java.lang 이다.
역으로 java.lang 을 제외한 나머지는 무조건 import 해야 된다.

4. static 키워드
- 특징: new(객체생성)와는 무관하고 프로그램실행할 때 정해짐(정적)
- 사용:
클래스: 중첩클래스에서만 사용가능. ( 외부클래스는 사용불가 )
변수: static 변수(클래스변수), 프로그램 실행시 method area에 생성.
       단 한번만 생성 되고 new 한 여러 인스턴스들이 공유가능하다.
메서드: static 메서드. 프로그램 실행시 method area 에 생성됨.
         목적은 new 없이 메서드 사용할수 있다.
         (ex) Integer.parseInt("10") )
         주의할점은 new에 의한 인스턴스와 무관하기 때문에
         인스턴스변수, this 키워드를 사용할 수 없다.
- 접근방법:
클래스명.변수( );
클래스명.메서드( );

5. static 블럭
- 용도:
프로그램에서 특정 작업을 초기화(선처리)가 필요한 경우이다.
초기화는 생성자 또는 메서드에서도 가능하다.
그런데 static 블럭은 추가작업이 필요없음.

- 문법:
static {
   // 초기화작업
}

'Programming > JAVA(eclipse)' 카테고리의 다른 글

java 8일차 _02. 상속  (0) 2024.03.19
java 8일차 _01. 클래스 관계  (0) 2024.03.19
java 7일차_ 03. import & package (+ UML )  (0) 2024.03.18
java 7일차 _02.static  (0) 2024.03.18
java 7일차 _01.메서드  (0) 2024.03.18