package ch02;
//new가 되어서 heap에 할당이 될 때 사이즈를 알 수 있다. ( 프로그램이 실행되었을 때 == 런타임 되었을 때 )
class MyData{
int id = 1; // 4Byte
int price = 1000; // 4Byte
}
public class VarRefEx01 {
public static void main(String[] args) {
//타입 변수; => 변수를 선언한다.
//타입 변수 = 값 => 변수를 초기화한다. , 초기화한다 == 메모리에 할당 된다.
int num = 10;// 일반변수 (컴파일시 크기가 정해져 있는 것 )
MyData d = new MyData() ; // 레퍼런스 변수 (컴파일시 크기가 정해져 있지 않는 것)
System.out.println(d.id);
}
}
메서드 : 클래스가 하는 행위
package ch02;
class 손님{
void 커피마시기(){
System.out.println("손님이 커피를 마셔요");
}
}
public class MethodEx01 {
//메서드 == MethodEx01클래스의 행위
static void start() {
System.out.println("만나서 반갑습니다."); //String
System.out.println("start 메서드 종료");
}
public static void main(String[] args) {
MethodEx01.start();
손님 s = new 손님();
s.커피마시기();
}
}
package ch02;
public class StackEx01 {
static void a() {
StackEx01.b();
System.out.println("a2");
System.out.println("a3");
System.out.println("a4");
}
static void b() {
System.out.println("b1");
System.out.println("b2");
System.out.println("b3");
}
public static void main(String[] args) {
System.out.println("m1");
System.out.println("m2");
StackEx01.a();
System.out.println("m4");
System.out.println("m5");
}
}