본문 바로가기
Java

[JAVA] 변수(Variable)와 자바 주석문

by 코코형아 2024. 1. 21.

4. 변수와 자바 주석문

 

 

변수(Variable)


  • 타입에 따른 분류
  • 선언 위치에 따른 분류
    • 멤버변수
      1. 인스턴스 멤버 변수
      2. 클래스 멤버 변수
    • 지역변수
      1. 지역 변수
      2. 파라미터 변수

 

인스턴스 멤버 변수의 특징

  • 선언 위치 : 클래스 { } 영역에 선언
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의 경우 신경 쓰지 말라고 알려줌

 

 

  • 개발이 완료되면 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