[자바의 정석] 클래스 변수와 인스턴스 변수, 호출스택

2023. 9. 19. 18:11·📝 끄적끄적/🖥️ 자바의 정석
목차
  1. 선언위치에 따른 변수의 종류
  2. 클래스 변수와 인스턴스 변수
  3. return문
  4. 호출 스택

선언위치에 따른 변수의 종류

lv는 메소드가 시작하고 끝날 때까지만 유효 = 메소드 종료 시 자동제거

클래스 변수와 인스턴스 변수

  • 카드라는 객체 2개가 있다.

개별적인 속성(숫자, 무늬) = 인스턴스 변수 = iv

공통적인 속성(폭,높이) = 클래스 변수 = cv = static

 


      
class Card {
String kind; //무늬
int number; //숫자
static int width = 100; //폭
static int height = 200; //높이
}
//예제
Card c = new Card();
c.king = "HEART";
c.number = 5;
//참조변수로 가능하나 권장 안함
c.width = 200;
c.height = 300;
//권장
Card.width = 200;
Card.heihjt = 300;

return문

반환 타입이 void일때는 return; 가 생략된 거다.

컴파일러가 자동으로 추가해 줌

호출 스택

스택(stack) - 밑이 막힌 상자. 위에 차곡차곡 쌓인다.

  • main()이 println()을 호출

→ main메서드는 대기상태가 되고 println메서드는 실행상태가 됨\

  • println()이 종료됨

→ println() 메서드는 사라짐

→ main() 다시 실행

= 아래 있는 메서드가 위의 메서드를 호출한 것

 

호출 스택 예제


      
class Data { int x; }
class PrimitiveParamEx {
public static void main(String[] args) {
Data d = new Data();
d.x = 10;
System.out.println("main() : x = " + d.x);
change(d.x);
System.out.println("After change(d.x)");
System.out.println("main() : x = " + d.x);
}
static void change(int x) { // 기본형 매개변수
x = 1000;
System.out.println("change() : x = " + x);
}
}

      
class Data { int x; }
class PrimitiveParamEx {
public static void main(String[] args) {
Data d = new Data();
d.x = 10;
System.out.println("main() : x = " + d.x);
}
}

 

main메서드에서 객체 생성하면 d라는 객체가 생성됨

멤버변수 x주소 100번지로 생성됨

 

x에 10이 저장됨


      
class Data { int x; }
class PrimitiveParamEx {
public static void main(String[] args) {
Data d = new Data();
d.x = 10;
System.out.println("main() : x = " + d.x); //main() : x = 10
change(d.x);
System.out.println("After change(d.x)"); //After change(d.x)
System.out.println("main() : x = " + d.x); //main() : x = 10
}
static void change(int x) { // 기본형 매개변수
x = 1000;
System.out.println("change() : x = " + x); //change() : x = 1000
}
}

 

change메소드가 실행됐을때 d.x의 값 즉 10이 복사가 된다.

change 메소드의 x=1000;가 실행된다.

change메소드의 지역변수가 1000으로 바뀐다.

change 메소드를 다 끝내고 main으로 돌아오면 change스택이 사라짐

→change의 지역변수 x도 사라진다.

 

그리고 main메서드도 종료되고(main스택이 사라지고)

프로그램이 종료된다.

저작자표시 비영리 (새창열림)

'📝 끄적끄적 > 🖥️ 자바의 정석' 카테고리의 다른 글

[자바의 정석] 제어자, 캡슐화  (0) 2023.09.24
[자바의 정석] 상속, 참조변수 super, 생성자 super()  (0) 2023.09.23
[자바의 정석] 생성자, 변수/멤버 변수의 초기화  (0) 2023.09.22
[자바의 정석] static 메서드와 인스턴스 메서드, 오버로딩  (0) 2023.09.21
[자바의 정석] 기본형/참조형 매개변수, 참조형 반환타입  (0) 2023.09.20
[자바의 정석] 클래스와 객체  (0) 2023.09.17
  1. 선언위치에 따른 변수의 종류
  2. 클래스 변수와 인스턴스 변수
  3. return문
  4. 호출 스택
'📝 끄적끄적/🖥️ 자바의 정석' 카테고리의 다른 글
  • [자바의 정석] 생성자, 변수/멤버 변수의 초기화
  • [자바의 정석] static 메서드와 인스턴스 메서드, 오버로딩
  • [자바의 정석] 기본형/참조형 매개변수, 참조형 반환타입
  • [자바의 정석] 클래스와 객체
현주먹
현주먹
대구 불주먹 출신 현주먹의 개발.log
  • 현주먹
    현주먹의 개발로그
    현주먹
  • 전체
    오늘
    어제
    • 전체글 (178) N
      • 👶🏻 CS (15)
        • Operating System (7)
        • DB (5)
        • Data Structure (2)
        • Software Engineering (1)
      • 💻 Dev (54)
        • Java & OOP (24)
        • Spring (4)
        • DB&JPA (6)
        • Test Code (1)
        • JSP & Servlet (13)
        • Etc (6)
      • 💡 Algorithm (25)
        • 인프런 (9)
        • 백준 (16)
      • 🛠 DevOps & Tool (11)
        • Linux (4)
        • AWS (1)
        • Git (2)
        • Etc (4)
      • 📝 끄적끄적 (73) N
        • 후기 및 회고 (10)
        • TDD, 클린 코드 with Java 17기 (3)
        • F-Lab (23)
        • 🖥️ 자바의 정석 (11)
        • 📖 Clean Code (3)
        • 항해99 코테 스터디 (11)
        • 📖 가상 면접 사례로 배우는 대규모 시스템 설계 .. (11) N
  • 블로그 메뉴

    • 🐈‍⬛ GitHub
    • TIL repository
  • 인기 글

  • 최근 글

  • 최근 댓글

  • 태그

    2025스프링캠프
    오라클
    til
    TDD 클린 코드 with Java
    에프랩 후기
    오블완
    jsp 2.3 웹 프로그래밍: 기초부터 중급까지
    객체지향
    JPA
    자바의신절판
    개발자멘토링
    jsp
    ==와 equals()
    코테스터디
    항해99
    인프런 특정문자뒤집기
    백준
    99클럽
    로또 미션
    NextSTEP
    f-lab 후기
    C
    개발자취업
    개구리책
    F-Lab
    에프랩
    자바의정석
    코딩테스트준비
    데브클럽
    티스토리챌린지
  • hELLO· Designed By정상우.v4.10.2
현주먹
[자바의 정석] 클래스 변수와 인스턴스 변수, 호출스택

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.