패키지 : .java 파일의 모임
import
: 다른 패키지에있는 클래스를 사용하고자 할 때 import를 해줌
: 같은 패키지에 있다면 import 필요없음
=> 접근 제어자는 메소드,클래스,변수 앞에 붙일 수 있다.
package ch04.a;
//main이 없기 때문에 실행파일이 아님
public class Cal {
//default
int num = 10;
void add() {
System.out.println("더하기 메서드");
}
//public
public void minus() {
System.out.println("빼기 메서드");
}
//private
private void multi() {
System.out.println("곱하기 메서드");
}
//같은 클래스 안에서만 사용
public void divide() {
multi();
}
}
package ch04.b; //다른 패키지
import ch04.a.Cal;
// main이 잇는 자바파일을 실행파일이라고 함
public class App {
//JVM이 main메서드를 찾으려면 public이 필요
//JVM이 main메서드를 찾으려면 static이 필요 (메모리에 올린다는 뜻)
//main 메서드만 return 타입을 허용하지 않는다.
//메서드의 이름 main이다.
// String[] args 매개변수
public static void main(String[] args) {
Cal c = new Cal();
c.minus();
//같은 클래스가 아니다
//c.multi();
//System.out.println(c.num);
}
}
package ch04.a; // 같은 패키지
// main이 잇는 자바파일을 실행파일이라고 함
public class App2 {
public static void main(String[] args) {
//같은 패키지 이므로 import필요없음
Cal c = new Cal();
//Cal의 함수의 접근제어가 default 즉 같은패키지내에서는 사용가능하므로 오류X
c.add();
c.minus();
//같은 클래스가 아니다
//c.multi();
System.out.println(c.num);
}
}
//recipe 프로젝트
package recipe;
public class MySoup {
public void 김치찌개 () {
System.out.println("김치찌개가 만들어졌습니다.");
}
}
//test 프로젝트
package ch04;
import java.util.Random;
import recipe.MySoup;
//JDK 설치 - JDK(javac,jave) , JRE(라이브러리) , JVM(자바 가상머신)
public class LibEx01 {
public static void main(String[] args) {
//buildPath해서 가져옴
MySoup m = new MySoup();
m.김치찌개();
//JRE안에 있음 , 제공된 라이브러리
Random r = new Random();
System.out.println(r.nextInt());
}
}