변수
- 클래스변수 : static 으로 선언된 멤버변수, 프로그램 실행시 정적메모리 영역에 자동 할당되며, 프로그램 종료시 자동 소멸되는 변수
- 인스턴스변수 : new 에 의해 동적메모리 힙(heap) 에 할당되는 객체(인스턴스) 안에 할당되는 변수로 this 에 의해 참조된다. 가비지콜렉터에 의해 삭제된다.
- 지역변수 : 메소드 또는 제어문 안에서 선언된 변수로 메모리 스택(stack)에 메소드 또는 제어문 실행시 할당되었다가 메소드 또는 제어문 종료시 소멸된다.
- List<Integer> iList = new ArrayList<Integer>(); - 다형성 활용하겠다는 뜻
ArrayList 만 써도 되면 ArrayList<Integer> iList = new ArrayList();
클래스 다이어그램으로 표현한 추상화 예시
Person |
- pNo : String - name : String - gender : char - address : String - phone : String - age : int |
- Person : 클래스 이름
- 접근 제한자(private) : “-” 기호
- 접근 제한자(public) : “+” 기호
- import : 사용할 클래스를 지정하는데 사용
- static, final : 예약어
- final : 상수화, 필드 예약어, 하나의 값만 계속 저장해야 하는 변수에 사용. 한번 초기화하고 나면 더이상 바뀌지 않아야 할 때
- 클래스에서는 변수를 멤버변수나 필드라고 부른다. (변수 = 필드 = 멤버변수 = 멤버필드 = 클래스변수)
- static : 멤버변수 앞에 static 이 붙으면 클래스 변수로 사용된다. 멤버변수와는 다르지만 멤버변수처럼 쓸 수 있다.
- 클래스 안에 정의가 된 변수, 메서드는 다 멤버이다.
- 클래스안에 클래스 변수, 멤버변수 있고, 메서드가 있고, 메서드 안에 있는 게 지역변수이다.
- 지역변수 : 메서드 안에서 정의되고 메서드가 종료되면 소멸한다.
- 접근제한자 + 데이터타입 + 변수이름으로 변수 선언.
- 메서드와 변수의 접근 제한자(access modifier) : public, protected, private, defalut
- 클래스에서 사용하는 접근제한자 : public, default
- 모든 클래스는 최소 하나의 패키지엔 속한다.
- 접근 가능 범위 : proteted는 상속의 개념 필요. 해당 부모 클래스를 상속받는 자식 클래스에서는 사용 가능하다.
- 모든 멤버에 대해서 다 캡슐화를 시킬 이유는 없으니까 일부분만 캡슐화 = private, 필요한 것만의 의미
- static 은 메모리에 들어가며 인스턴스들이(Heap) static 이라고 명명이 된 필드를 참조해서 들여다보는 형태이기 때문에 static 필드의 값은 인스턴스들 사이에 공유된다.
'Java' 카테고리의 다른 글
[exam14] List (0) | 2021.09.11 |
---|---|
상속, 오버로딩 오버라이딩, 추상메서드 인터페이스 (0) | 2021.09.11 |
[210730] 배열 (0) | 2021.09.11 |
[210728~29] 반복문 for, while (0) | 2021.09.11 |
[210727] 연산자, switch문 (0) | 2021.09.11 |