클래스와 객체
용어 정리
- 객체 : 객체 지향 프로그램의 대상, 생성된 인스턴스
- 클래스 : 객체를 프로그래밍하기 위해 코드로 만든 상태
- 인스턴스 : 클래스가 메모리에 생성된 상태
- 멤버 변수 : 클래스의 속성, 특성
- 메서드 : 멤버 변수를 이요하여 클래스의 기능을 수현
- 참조변수 : 메모리에 생성된 인스턴스를 가리키는 변수
- 참조 값 : 생성된 인스턴스의 메모리 주소값
코드
package classpart;
public class Student{
int studentID;
String studentName;
int grade;
String address;
public String getStudentName() {
return studentName;
}
public static void main(String[ ] args) {
Student studentAhn = new Student();
studnetAhn.studentName = "안연수";
System.out.println(studentAhn.studentName);
System.out.println(studentAhn.getStudentName());
}
}
메모리 구조
Data
- 프로그램의
전역변수
와 정적변수
가 저장되는 공간
- 프로그램의 시작과 동시에 할당
- 프로그램이 종료되면 소멸
- Data 영역과 Stack 영역은 컴파일 시 할당될 메모리의 크기가 결정
Heap 메모리
- 프로그램에서 사용하는 동적 메모리 공간
- 객체가 생성될 때 사용하는 공간
- 사용이 끝나면 메모리를 해제해 줘야함
- 자바는
Garbage Collector
가 자동으로 메모리 해제
Stack 메모리
- 함수의 호출과 관계된
지역변수
와 매개변수
가 저장되는 영역
- 스택영역에 저장되는 함수의 호출과 관련된 정보를
stack frame
이라고 함
- 함수의 호출이 종료되면 저장된 정보들은 함께 소멸