Programming/Java

[JAVA 객체지향 프로그래밍] 패키지의 개념

joah.k 2021. 2. 21. 22:09
728x90

- 패키지 선언이 필요한 상황 

 

원(circle) 개발을 한다고 가정하자. 빠른 개발을 위해 team1 과 team2를 동시에 투입하여 

team1에게는 원의 넓이를 구하게 했고, team 2에게는 원의 둘레를 구하도록 하였다. 

그런데 개발된 결과물을 보니 문제가 발생하게 된다. 

원의 넓이를 구해야 하는 team1은 Cricle 이라는 클래스명의 코드를 작성했고, 원의 둘레를 구해야 하는 team2 또한 Circle이라는 클래스를 작성한 것이다. 클래스명은 패키지 내부에서 중복되면 오류가 발생하므로 문제가 발생한다. 

 

===> 따라서 공간적, 접근적 충돌 해결을 위한 패키지 선언의 필요 

 

package teamproject;

public class Circle{
	// 원의 넓이 구하기
}

public class Circle{  // 클래스명이 위와 동일하기에 오류
	// 원의 길이 구하기
}

 

  • 클래스의 접근 방법 구분
    - 서로 다른 패키지의 두 클래스는 인스턴스 생성 시 사용하는 이름(=클래스의 변수명)이 다르다. 
  • 클래스의 공간적 구분 
    - 서로 다른 패키지의 두 클래스 파일은 저장되는 위치가 다르다. 

이렇게 클래스의 공간적 구분과 클래스명의 구분이 필요하다. 

team1.Circle c1 = new team1.Circle();
team2.Circle c2 = new team2.Circle();

 

 

- 패키지 작성 시 주의사항

  패키지 이름은 모두 소문자로 써야한다. 

728x90