TIL: 스스로 이해한 것을 바탕으로 정리하였기에 오류가 있을 수 있습니다. 틀린 부분은 댓글로 알려주시면 감사하겠습니다.
클래스(class)와 객체(object/instance)
클래스: 객체를 만들기 위해 필요한 설계도
자료형이 다른 변수들을 배열처럼 메모리에 연속 나열 할당하기 위한 순서를 지정하는 역할
멤버 변수들을 하나의 타입으로 묶어준다.
객체: 클래스로부터 만들어진 객체를 해당 클래스의 인스턴스(instance)라고 부른다.
객체(인스턴스)는 무조건 메모리안 Heap 영역에 할당된다.
추상화가 이루어 진 클래스로부터 메모리가 있는 실체로 만드는 과정을 인스턴스화라고 한다.
설계도-> 클래스
설계도에의해 만들어진 구체적인 제품 -> 인스턴스
클래스는 [필드부 + 생성자부 + 메소드부]의 조합으로 이루어져 있다.
필드부
필드부에는 변수가 선언되는데, 여기서 접근제한자를 사용하여 외부에서의 접근을 제한해준다.
변수는 변수 작성 위치에 따라 전역 변수와 지역변수로 구분된다.
전역변수
멤버 변수와 클래스 변수로 나뉜다.
해당 클래스 영역에서 바로 선언하는 변수 => 클래스 내 어디서든 사용 가능
멤버변수 (인스턴스 변수)
new 연산자를 통해서 해당 객체 생성 시 곧바로 메모리상에 만들어지고, 해당 객체가 소멸될 때 함께 소멸된다.
클래스변수(static변수)
프로그램 실행과 동시에 메모리상에 생성되고 (객체 생성을 하지 않아도), 프로그램 종료와 동시에 소멸된다.
클래스 변수는 실행과 동시에 메모리에서 공유해서 사용하는 개념이다.
클래스 변수 안에는 상수 필드가 있다.상수필드는 값을 변경할 수 없다.
상수필드 표현법 public static final 자료형 변수명;
지역변수
클래스 영역 내의 어떤 특정한 구역 ( ) / { }에 선언하는 변수 => 그 지역에서만 사용 가능
특정 구역 == 메소드영역, 제어문(if/for) 영역 등
속해있는 특정 구역 호출 시 메모리상에 생성되고, 해당 구역 종료 시 소멸된다.
매개변수: 메소드 호출 시 전달되는 값을 담기 위한 변수
private int global; // 멤버 변수(인스턴스 변수)
public void test (int num) { // int num-> 매개변수
int local = 10; // int local -> 지역변수
}
'Java' 카테고리의 다른 글
[Java] 객체지향_예제1. 추상화, 캡슐화를 통해 정보출력하기 (0) | 2021.01.10 |
---|---|
[Java] 객체지향_생성자; 기본 생성자와 매개변수 생성자 (0) | 2021.01.10 |
[Java] 접근제한자? public/protected/default/private (0) | 2021.01.07 |
[Java] 객체지향언어? 추상화(Abstraction)와 캡슐화(Encapsulation), 그리고 구조체 (0) | 2021.01.06 |
[Java] 이차원 배열/다차원 배열(Dimensional Array) 그리고 가변배열 (0) | 2021.01.04 |
댓글