본문 바로가기

java

Step03_Class(class, 메모리 영역, import)

 

 

java 에서의 클래스(class)

 

public class 클래스명{}

 

1. 객체의 설계도 역할

- 해당 클래스로 객체를 만들었을때(new) 어떤 field(저장소) 와 어떤 method(기능) 를 가지게 할지를 설계할 수 있다.

 

2. data type 역할

-지역변수나 필드를 만들때 선언하는 data type의 역할을 할 수 있다.

-변수나 필드에 저장된 값의 사용 설명서에 해당된다.

 

3. static 필드나 static 메소드를 포함하는 역할

-필요에 따라서 객체에 필드나 메소드를 만들지 않고 클래스 자체에 만들어 놓을 수도 있다.

 

 

java의 3가지 메모리 영역

 

static     class(클래스)가 만들어지는 영역

stack     local valuable(지역변수)이 만들어지는 영역

heap      object(객체)가 만들어지는 영역

 

void

반환 값이 없을 때 사용하는 data type이다.

 

예시

 

MainClass01.java, Calculator.java

 

코드를 작성하기에 앞서 Step03_class 폴더 src 안에 package를 두개 만들었다. 또 각각 class를 만들었다.

 

 

Calculator.java

 

먼저 Calculator.java에는 두가지 코드를 작성했다.

 

Public String brand="샤오미";

 

public void exec() {
System.out.println("계산해요!");
}

 

 

 

MainClass01.java

 

상단에 import를 사용해서 Calculator.java와 연결해준다.

다음으로 new를 사용해서 객체(Calculator())를 생성해주고 객체를 담을 변수를 선언해준다.

 

이후에는 Calculator.java에서 만들어둔 코드들을 활용했다.

 

MainClass01.java

 

각각 어떤 메모리 영역에 담겼는지 생각해보자.

 

 

MainClass02.java, Car.java

 

Car.java

 

Calculator.java와 비슷한 코드를 작성했다.

 

 

MainClass02.java

 

 

MainClass01.java와 거의 같다.

 

 

MainClass03.java, Member.java

 

 

Member.java

public class Member {
public int num=0;
public String name=null;
public String addr=null;
}

 

public class Member {
public int num;
public String name;
public String addr;
}

 

필드에서는 초기값을 생략 가능하다.

 

Member에 다수의 정보(번호,이름, 주소)를 담았다. 이때 초기값으로 0, null으로 지정했다.

 

 

MainClass03.java

 

Member crtl+space 단축키를 필드에서 사용하여 import 코드까지 한번에 작성했다.

 

이후 Member 객체를 생상하고 mem1, mem2라는 변수를 Member() type으로 만들었다.

만든 변수에 새로운 정보를 담았다. 이때 기존의 0과 null 데이터는 새로운 정보로 변경된 것을 알 수 있다.