13일 차 - scope, 지역변수, 인스턴스변수, 클래스(23.01.11)

yvonne·2023년 1월 11일
0

📂Java

목록 보기
13/51
post-thumbnail

1. 변수의 scope 는?

  • scope는 영역, 범위라는 뜻으로 변수는 변수가 선언된 시점부터 해당 변수가 속한 중괄호 안에서만 사용 가능
  • class 클래스 밖에서의 변수 선언은 불가능
  • 같은 영역 내에서 동일 이름의 변수 선언은 불가능

2. 지역변수란?

  • 지역변수(local variable): 함수 안에서 선언된 변수
  • 인스턴스변수(instance variable): 함수 밖, 클래스 안에 선언된 변수 (전역변수라고도 함)

3. 지역변수와 인스턴스 변수의 차이는?

  • 지역변수의 범위: 선언된 함수 (중괄호) 내에서만 유효
  • 인스턴스변수(전역변수)의 범위: 함수와 관계없이 클래스 전체에서 유효

4. 클래스의 구성요소

  • 데이터(변수) + 기능(함수)

  • 데이터(변수): 프로그램상에서 유지하고 관리해야 할 데이터

  • 기능(함수): 데이터를 처리하고 조작하는 기능

    	*클래스명.java (반드시 클래스명 이어야 한다.) 코딩 상에서의 클래스
    	*클래스명.class (컴파일된 파일)

5. 객체란 무엇인가?


📌 클래스(Class)

  • 객체를 정의하고 만들어 내기 위한 설계도 혹은 틀
    연관되어 있는 변수와 메서드의 집합

📌 객체(Object)

  • 소프트웨어 세계에 구현할 대상
  • 클래스에 선언된 모양 그대로 생성된 실체
  • 클래스의 인스턴스(instance) 라고 부른다.
  • 객체를 생성한다는 것은 해당 클래스의 .class 파일을 메모리에 올린다는 것을 의미한다.

📌 인스턴스(Instance)

  • 설계도를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체
  • 즉, 객체를 소프트웨어에 실체화 하면 그것을 '인스턴스'라고 부른다.
  • 실체화된 인스턴스는 메모리에 할당된다.
  • 객체가 메모리에 할당되어 실제 사용될 때 '인스턴스'라고 부른다.
  • 인스턴스는 어떤 원본(추상적인 개념)으로 부터 '생성된 복제본'을 의미


6. 아래의 클래스를 참고 하여,

BankAccount yoon = new BankAccount(); 객체 생성시 메모리를 그리시오.


class BankAccountTest {
	int balance = 0; // 예금 잔액

	public int deposit(int amount) {
		balance += amount;
		return balance;
	}

	public int withdraw(int amount) {
		balance -= amount;
		return balance;
	}

	public int checkMyBalance() {
		System.out.println("잔액 : " + balance);
		return balance;
	}
}

public class BankAccount {

	public static void main(String[] args) {
		BankAccountTest yu; // 변수 선언 (데이터타입 - 변수명) - 참조형 데이터타입
		yu = new BankAccountTest(); 

		yu.deposit(5000);
		yu.checkMyBalance();
		
		yu.withdraw(1000);
		yu.checkMyBalance();

	}
}
  • 메모리 과정
profile
개발 연습장

0개의 댓글