클래스 (Class)

김덕근·2022년 12월 15일
0

concept

목록 보기
2/21

클래스 선언
속성값 설정 = 필드(- private)

클래스 이름과 동일한 메서드 = 생성자
getter/setter메서드(+ public)

클래스 접근제한자
[] => 생략가능
() => 무조건생략

public
누구나 쓸 수 있음(공공의) : 어디서든지 import 할 수 있다

default
외부 패키지에서 사용 못함(접근불가), 같은 패키지내에서만 사용 가능

DAO(Data Access Object)
DTO(Data Transfer Object) == getter/setter만 가진 클래스
VO(Value Object)

예)
service = 메서드들의 모음
cls.model.vo
cls.model.service
cls.run

객체(속성, 기능)

속성)클래스에서 변수에 관련된 것(속성)을 작성하는 곳


필드 : 객체의 속성을 작성하는 클래스 내부 영역

  • 멤버 변수(== 필드)
    객체의 속성
    1. 인스턴스 변수
    2. 클래스 변수(== static변수) (프로그램 실행시 1회만 생성되는 변수)
    - 필드에 static예약어와 함께 작성된 변수
    - static영역에 메모리가 할당되어 프로그램 종료시 까지 유지됨
    static ==
    공전 : 태양 주변을 돌듯이 static을 보고 값을 얻어옴(가지고 있는게 아님)

=> static으로 선언된 멤버변수로,
프로그램 실행 시 static(정적메모리 영역)에 자동할당되며,
프로그램 종료 시 자동 소멸

인스턴스 변수

  • 필드에 작성된 일반 변수
  • new 연산자에 의해서 객체(인스턴스)가 생성될 때
    메모리가 할당된다고 하여 인스턴스 변수라 함.
  • heap영역(동적메모리 영역)에 메모리가 할당.
  • 객체가 생성될 때 마다 생성
  • 객체가 참조하는 변수가 없을경우 사라짐

지역변수
메소드 또는 제어문 안에서 선언된 변수
(stack 메모리 영역)에 할당 되었다가,
메소드 종료시 소멸됨


필드 접근제한자 정리

public + 해당 클래스 내부 / 같은 패키지 내 / 후손 클래스 내 / 전체
protected # 해당 클래스 내부 / 같은 패키지 내 / 후손 클래스 내
(default) ~ 해당 클래스 내부 / 같은 패키지 내
private - 해당 클래스 내부


필드 (field) - 초기화 순서

클래스 변수
인스턴스 변수

profile
안녕하세요!

0개의 댓글