변수(Variable)
- 타입에 따른 분류
- 선언 위치에 따른 분류
- 멤버변수
- 인스턴스 멤버 변수
- 클래스 멤버 변수
- 지역변수
- 지역 변수
- 파라미터 변수
- 멤버변수
인스턴스 멤버 변수의 특징
- 선언 위치 : 클래스 { } 영역에 선언
public class Person {
String name;
int age;
}
- 변수의 생성 : 객체가 만들어질 때 heap에 객체 별로 생성됨
- 변수의 초기화 : 타입 별로 default 초기화
- 변수 접근 : 객체 생성 후(메모리에 올린 후) 객체 이름(소속)으로 접근
- 객체를 만들 때마다 객체 별로 생성 → 객체마다 고유한 상태(변수 값) 유지
Person p1 = new Person();
p1.name = "홍길동";
Person p2 = new Person();
p2.name = "임꺽정";
- 소멸 시점
- GC(Garbage Collector)에 의해 객체가 없어질 때(프로그래머가 명시적으로 소멸시키기 불가능)
클래스 멤버 변수의 특징
- 선언 위치 : 클래스 { }영역에 선언되며 static 키워드를 붙임
public class Person {
static String scName = "Sapiens";
String name;
}
- 변수의 생성 : 클래스 로더에 의해 클래스가 로딩 될 때 heap에 클래스 별로 생성
- 개별 객체의 생성과 무관하며 모든 객체가 공유하게 됨(공유 변수라고도 불림)
- 변수의 초기화 : 타입 별로 default 초기화
- 변수 접근 : 객체 생성과 무관하게 클래스 이름(소속)으로 접근
- 객체를 생성하고 객체 이름으로 접근도 가능하나 static에 부합한 표현은 아님
Person p = new Person();
p.scName = "객체를 통한 변경";
Person.scName = "클래스를 통한 변경";
- 소멸 시점
- 클래스가 언로드 될때 G.C 발생
지역 변수 & 파라미터 변수
- 선언 위치 : 클래스 영역의 { } 이외의 모든 중괄호 안에 선언되는 변수들
- 메서드, 생성자, 초기화 블록
void call(String to){ //파라미터 변수
String beep = "띠"; //로컬 변수
for(int i=0; i<3; i++){ //로컬 변수
System.out.println(beep);
}
}
- 변수의 생성 : 선언된 라인이 실행될 때
- 생성 메모리 영역 : stack의 메서드 프레임 내부
- 변수 초기화 : 사용하기 전 명시적 초기화 필요
- 변수 접근 : 외부에서는 접근이 불가하므로 소속 불필요
- 내부에서는 이름에 바로 접근
- 소멸 시점
- 선언된 영역인 { }을 벗어날 때
자바 주석문(Annotation)
// 한줄 주석문
/* 여러줄 주석문 */
- 사전적 의미 : 주석
- 컴파일러, JVM, 프레임워크 등이 보는 주석
- 소스코드에 메타 데이터를 삽입하는 형태
- 소스 코드에 붙여놓은 라벨
- 코드에 대한 정보 추가 → 소스 코드의 구조 변경, 환경 설정 정보 추가 등의 작업 진행
- API 문서 주석문
- 형식 : /** API 문서 도움말 내용 */
- 위치 : 클래스 선언문, 멤버변수 선언문, 메서드 선언문, 생성자 선언문 앞에 위치해야 함
- API 문서 도움말 내용 구성요소
- 도움말 텍스트 내용
- html tag : <pre>…</pre>
- api 전용 어노테이션 태그
- @어노태이션태그명 주석내용
- @어노태이션태그명
- @author 작성자 이름
- @version 개발버전
- @see 관련참고 api 정보
- @since jdk1.8 버전
- @param 매개변수명 설명
- @return 반환값에 대한 설명
- ….
- @자동완성 추천목록 제공
- 기본 annotation의 예
- @Deprecated
- 컴파일러에게 해당 메서드가 deprecated 되었다고 알려줌
- @Override
- 컴파일러에게 해당 메서드는 override한 메서드 임을 알려줌
- @Override가 선언된 경우 반드시 super class에 선언 되어있는 메서드여야 함
- @SuppressWarnings
- 컴파일러에게 사소한 warning의 경우 신경 쓰지 말라고 알려줌
- @Deprecated
- 개발이 완료되면 api 문서 자동 생성하기
- jdk\bin > javadoc.exe
'Java' 카테고리의 다른 글
[JAVA] 생성자, this, super (0) | 2024.01.24 |
---|---|
[JAVA] 메서드(Method) (0) | 2024.01.23 |
[JAVA] 객체지향 프로그래밍(Object Oriented Programming) (1) | 2024.01.19 |
[JAVA] 배열, 다차원 배열 (0) | 2024.01.18 |
[JAVA] 기본 문법 (0) | 2024.01.17 |