[Java] 클래스와 변수

Walter Mitty·2022년 10월 25일
0

KOSTA

목록 보기
15/33
post-custom-banner
  • 클래스: 객체를 원하는 형태로 타입 정의

  • 멤버 변수: 객체의 값 저장
    • 클래스 내에서 모든 메서드가 사용 가능
    • 클래스 내에서 전역변수 역할을 한다.
      • 클래스 안에 메서드가 여러개 있을 수 있는데, 그 메서드들이 멤버변수들을 마구마구 사용할 수 있다.
    • 값을 초기화하지 않아도 초기값으로 heap에 저장된다.
      - 자동초기화
      숫자타입 : 0
      객체타입 : null
      boolean: false

  • 지역 변수: 메서드 안에 선언한 변수와 파라미터.
    • 메서드 안에서만 사용이 가능하다.
    • 멤버 변수와 이름이 같아도 되지만, 저장되는 메모리가 다르기 때문에 상관이없다.
    • 값을 초기화하거나 할당하지 않으면 쓰레기값이 stack에 저장된다(자동초기화 X)

  • 메서드: 기능 구현
    • 메서드 타입
      - void : return 값이 없을 때,
      - int : return 값이 int일 때,
      - String : return 값이 String일 때.

  • 객체는 heap 에 저장된다
  • 메서드와 메서드 지역변수들은 stack에 저장된다.
    • 메서드가 끝나면 메모리가 반환된다(메모리가 사라진다기보다는 쓰레기값을 가지고있다가 유의미한 값이 입력되면 그 값으로 치환되는개념?)

기본형

class Test{
	int x; //멤•변
    int y; //멤•변

	메서드타입 메서드명(파라미터 리스트){
    	구현내용
    }
}

예)

메서드타입 메서드명(파라미터 리스트){
    	구현내용
        return 4;
}

만약 리턴값이 4라는 정수면, 메서드 타입은 int
같은 로직에 따라서 리턴값이 4.235면 메서드 타입은 double 이된다.


메서드명을 짓는 방식이 중요하다. 회사마다 달라서 회사 들어가면 알려준다.

파라미터: 외부에서 필요한 값을 받아온다.
왜? 만약 메서드가 + 연산 메서드라면


메서드타입 메서드명(파라미터 리스트){
    	int z;
        return 4;
}

void test(){
	System.out.println(z)
}

출력이 안된다. 메서드의 지역변수 z는 다른 메서드에서 사용 불가!

post-custom-banner

0개의 댓글