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
이미지 출처 : 이것이자바다
'STUDY > JAVA' 카테고리의 다른 글
[JAVA] 22-06-21 Getter와 Setter / 싱글톤 ☑ (0) | 2022.06.21 |
---|---|
[JAVA] 22-06-20 자바 생성자 / this() ☑ (0) | 2022.06.20 |
[JAVA] 22-06-17 클래스 (CLASS) ☑ (0) | 2022.06.17 |
[JAVA] vscode 상위하위 packaging 만들기 (0) | 2022.06.17 |
[JAVA] 2022-06-16 기본 · 참조 타입 ☑ (0) | 2022.06.16 |