본문 바로가기

Java

(11)
객체지향 프로그래밍(1) - 변수와 메서드(2) JVM(Java Virtual Machine) 메모리 구조 - Method Area 프로그램에서 클래스가 사용되면, 해당 클래스 파일을 읽어서 클래스에 대한 정보를 이곳에 저장한다. 클래스 변수(cv)도 이 영역에 생성된다. - Call Stack 메서드 호출 시, 메서드의 작업에 필요한 메모리 공간을 제공한다. 호출된 메서드는 호출 스택에 쌓이게 되며, 호출 스택 최상단에 있는 메서드부터 실행된다. 메서드 작업을 위해 할당된 메모리에는 메서드가 작업을 수행하는 동안 지역변수, 연산의 중간 결과 등이 저장된다. 메서드가 작업을 마치면 메모리공간은 반환되고, 비워진다. - Heap 프로그램 실행 중 생성되는 인스턴스가 저장되는 공간. 인스턴스 변수도 생성되어 저장된다. 참조형 변수 어떤 객체의 주소를 저장..
객체지향 프로그래밍(1) - 변수와 메서드(1) 선언위치에 따른 변수의 종류 클래스 변수(cv) static int cv; // 클래스 변수(Class Variable) 사용 방법 - 클래스명.cv; 한 클래스의 모든 인스턴스들이 공통적인 값을 유지해야하는 경우 클래스 변수를 사용한다. 프로그램 종료 시까지 유지된다. public을 붙이면 전역 변수로 사용 가능하다. ex) 카드 넓이, 높이 등 인스턴스 변수(iv) int iv; // 인스턴스 변수(Instance Variable) 사용 방법 - 인스턴스명.iv; 클래스 영역 내 선언. 인스턴스 생성시 만들어진다. 인스턴스 별로 독립적인 저장공간을 가지므로 같은 클래스의 인스턴스라도 다른 값을 가질 수 있다. - 인스턴스 별로 고유한 상태를 가져야 하는 속성을 iv로 선언한다. ex) 카드의 종류, ..
객체지향 프로그래밍(1) - 객체지향이란? 객체지향(OOP - Object-Oriented Programming) 실제 세계를 컴퓨터 속으로. 클래스는 각 제품의 설계서이며, 해당 클래스(설계서)로 생성되는 것이 객체(제품) 이다. 차(Car) 를 기준으로 설명하면, 클래스(Class) - 차(Car)의 설계서 객체 - 차 설계서로 만들어진 제품 각 객체는 속성(attribute)과 기능(method)을 가진다. 속성(attribute) - 차의 크기, 높이 등 기능(method) - 차 속도 올리기, 속도 줄이기 등 즉, 설계서로 차 (객체)를 만들고, 객체가 가진 속성과 기능을 사용한다. 인스턴스 - 특정 클래스로부터 만들어진 객체 인스턴스든 객체든 뜻은 비슷하므로, 굳이 구분 지을 필요는 없다. 객체 = 변수 + 메서드(기능) 이 합쳐져있는..