This is a blog.

자바 기록 7일차 본문

JAVA/Book Summary

자바 기록 7일차

Calcot 2021. 6. 7. 21:28

혼자 공부하는 자바 / 저자 : 신용권

chapter06. 클래스 정리-3.

 

 

클래스-3

 

 

인스턴스 멤버와 정적 멤버

 

인스턴스 멤버와 this

인스턴스 멤버 : 객체(인스턴스)를 생성한 후 사용할 수 있는 필드와 메소드

=> 인스턴스 필드, 인스턴스 메소드

 

인스턴스 멤버 선언

ex) Car 클래스에 인스턴스 필드 gas와 인스턴스 메소드 setSpeed()를 선언

public class Car{

int gas;

void setSpeed(int speed){...}

}

 

this

객체 내부에서 인스턴스 멤버에 접근하기 위해 this를 사용.

주로 생성자와 메소드의 매개 변수 이름이 필드와 동일한 경우, 인스턴스 멤버인 필드임을 명시하고자 할 때 사용.

 

 

정적 멤버와 static

정적 멤버 : 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메소드.

=> 정적 필드, 정적 메소드.

 

정적 멤버 선언

필드와 메소드 선언 시 static 키워드를 붙인다.

public class 클래스 {

//정적 필드

static 타입 필드[=초기값]‘

//정적 메소드

static 리턴 타입 메소드( 매개변수선언,...){...}

}

 

정적 멤버 사용

클래스.필드;

클래스.메소드(매개값,...);

 

정적 메소드 선언 시 주의할 점

정적 메소드를 선언할 때는 이들 내부에 인스턴스 필드나 인스턴스 메소드를 사용할 수 없다.

객체 자신의 참조이 this 키워드도 사용이 불가능.

=> main() 메소드도 정적 메소드로 동일한 규칙이 적용.

 

싱글톤

단 하나의 객체만 만들도록 보장

싱글톤을 만들기 위해서는 클래스 외부에서 new 연산자로 생성자를 호출할 수 없도록 막아야 한다.

=> 생성자가 호출한 만큼 객체가 생성되기 때문.

=> 생성자 앞에 private를 붙여서 생성자를 외부에서 호출할 수 없도록 막는다.

=> 클래스 내부에서는 new 연산자로 생성자 호출이 가능.

=> 대신 외부에서 호출할 수 있는 정적 메소드인 getInstance()를 선언하고 정적 필드

에서 참조하고 있는 자신의 객체를 리턴해 준다.

클래스 변수1 = 클래스.getInstance();

클래스 변수2 = 클래스.getInstance():

 

 

final 필드와 상수

 

final 필드

초기값이 최정적인 값이 되어 수정할 수 없다는 것.

final 타입 필드[=초기값]

초기값을 줄 수 있는 방법은 두 가지밖에 없다.

1. 필드 선언시 초기값을 준다.

- 단순 값 선언시.

2. 생성자에게 초기값을 준다.

- 복잡한 초기화 코드가 필요하거나 객체 생성 시에 외부 데이터로 초기화해야 할 때.

 

상수

불변의 값을 저장하는 필드.

상수는 static이면서 final이어야 한다.

static fianl 필드는 객체마다 존재하지 않고 클래스에만 존재한다.

한 번 초기값이 저장되면 변경할 수 없다

static final 타입 상수 = 초기값;

상수는 모두 대문자로 작성하는 것이 관례.

서로 다른 단어가 혼합된 이름이라면 _(언더바)로 단어들을 연결한다.

 

 

패키지와 접근 제한자

 

패키지 선언.

package 상위패키지.하위패키지;

public class ClassName{...}

ex) package com.mycompany;

public class Car{...}

=> Car 클래스가 com.mycompany 패키지에 속해있다.

패키지 선언시 규칙

º 숫자로 시작해서 안된다.

º _,$를 제외한 특수 문자를 사용해서는 안 된다.

º JAVA로 시작하는 패키지는 자바 표준 API에서만 사용하므로 사용해서는 안된다.

º 모두 소문자로 작성하는 것이 관례.

클래스를 유일하게 만들어주는 식별자 역할.

클래스 이름이 동일하더라도 패키지가 다르면 다른 클래스로 인식.

 

import

import문 작성하는 방법

import 상위패키지.하위패키지.클래스이름;

import 상위패키지.하위패키지.*;

import문은 패키지 선언과 클래스 선언 사이에 작성.

import문은 개수 제한이 없고 얼마든지 추가 가능.

 

 

접근 제한자

클래스 및 인터페이스 그리고 이들이 가지고 있는 멤버의 접근을 제한하기 위해 사용.

접근제한자 종류

1. public 접근 제한자 : 외부 클래스가 자유롭게 사용할 수 있도록 한다.

2. protected 접근 제한자 : 같은 패키지 또는 자식 클래스에서 사용.

3. private 접근 제한자 : 외부에서 사용할 수 없도록 하낟.

4. (default) 접근 제한 :같은 패키지에 소속된 클래스에서만 사용.

: public을 생략했을 경우 default.

 

 

GetterSetter 메소드

메소드를 통해 필드를 변경하는 방법.

필드는 외부에서 접근할 수 없도록 막고 메소드는 공개해서 외부에서 메소드를 통해 필드에 접근하도록 유도.

필드 값을 외부로 리턴해주는 메소드 = Getter

외부에서 값을 받아 필드를 변경하는 메소드 = Setter

 

 

 

'JAVA > Book Summary' 카테고리의 다른 글

자바 기록 9일차  (0) 2021.06.09
자바 기록 8일차  (0) 2021.06.08
자바 기록 6일차  (0) 2021.06.05
자바 기록 5일차  (0) 2021.06.03
자바 기록 4일차  (0) 2021.06.02
Comments