본문 바로가기
STUDY/JAVA

[JAVA] 22-06-17 Package ☑

by ReCode.B 2022. 6. 17.
728x90

main

import java.util.package001; //불러올 패키지명 선언해주기

public class main {
    
    public static void main(String args[]){
        // 인스턴스 생성
        // 스택    , 힙
        Car myCar = new Car();

        // 인스턴스 내용 출력
        System.out.println(" : " + myCar.company);

        // 인스턴스의 내용 출력
        // myCar에서 스피드는 0으로 초기값이 되어 있었지만 main에 speed에 대한 필드 데이터를 부여
        myCar.speed = 60;
        System.out.println("myCar : " + myCar.speed);

        int check = myCar.speedCheck();
        System.out.println("this_speed : "+ check);
        //Carc에 있는 Carchek메소드에 check라는 구현 된 메소드를 가져와서 *2를 해준다.
        System.out.println("Carc: "+ Carc.Carcheck(check));

    }
}

클래스에 속한 각각의 객체 : 인스턴스 new 연산자로 생성된 객체는 메모리 힙 영역에 생성된다.
메모리 내에 객체의 위치를 알 수 있도록 new 연산자는 힙 영역에 객체를 생성 후 객체의 주소를 반환한다.

Car

package package001;

public class Car {
    public String company = "company"; //각각불러와주는것이라 public을 모두각각기입
    public int speed = 0;//각각불러와주는것이라 public을 모두각각기입





    public int speedCheck(){
        return speed;
    }


}

위에서 각각 불러왔기 때문에 타입 앞에 각각 전부 public 을 붙여주어야한다.
main에서 return으로 전체를 출력하면, public을 각각 넣어주지 않아도 된다.

Carc

package package001;

public class Carc {
    public static int Carcheck(int input){
        //static은 이미 구현 되어 있기 때문에 main에 선언을 하지 않아도 사용 할 수 있다.
        //리턴을 해야하기 때문에 리턴 속성을 정하고 매개변수에 리턴속성과 같은 매개변수를 만든다.

        return input*2;
    


    }
    
}

'static'으로 선언을 하게 되면 객체를 생성해주지 않아도 프로그램 실행시 자동으로 메모리에 적재된다.

위 예제 저장 위치이다. package폴더 안에 main.java와 폴더 package001이 있다.
package001에 car과 carc가 있다.

패키지 장점

클래스의 분류가 용이하다. (비슷한 것 끼리 묶는다)
패키지가 다르다면 동일한 클래스명을 사용할 수 있다.
패키지를 사용하면 비슷한 성격의 클래스들끼리 묶을 수 있어 클래스의 분류가 용이하다. (디렉터리 개념)
그리고 자바코드를 작성하다 보면 다른 사람이 작성한 자바 클래스나 라이브러리를 사용해야 할 경우도 많이 생기는데
이 때 클래스명이 동일한 경우도 발생할 수 있을 것이다.
하지만 패키지명이 다르면 클래스명이 동일해도 충돌없이 사용할 수 있다.
따라서 배포용으로 작성하는 자바 클래스는 반드시 패키지명을 포함하는 것이 올바른 방법이다.


접근제한자 설명 링크
https://gyrfalcon.tistory.com/m/entry/JAVA-%EC%A0%91%EA%B7%BC-%EC%A0%9C%ED%95%9C%EC%9E%90

 

이미지 출처 : 이것이자바다

728x90