비교 차트
비교의 근거 | 패키지 | 인터페이스 |
---|---|---|
기본 | 패키지는 클래스 및 / 또는 인터페이스의 그룹입니다. | 인터페이스는 추상 메소드 및 상수 필드의 그룹입니다. |
예어 | 패키지는 "패키지"키워드를 사용하여 작성됩니다. | 인터페이스는 "인터페이스"키워드를 사용하여 작성됩니다. |
통사론 | package_name; public class class_name { . (클래스의 본문) . } | interface interface_name { 변수 선언; 메서드 선언; } |
접속하다 | 패키지를 가져올 수 있습니다. | 인터페이스는 다른 인터페이스에 의해 확장되고 클래스에 의해 구현 될 수 있습니다. |
키워드에 액세스 | 패키지는 "import"키워드를 사용하여 가져올 수 있습니다. | 인터페이스는 "implement"키워드를 사용하여 구현할 수 있습니다. |
패키지 정의
패키지는 다양한 클래스 및 인터페이스의 컬렉션 또는 그룹입니다. 패키지의 클래스는 일부 범위 또는 상속에 의해 서로 관련되어 있습니다. 패키지를 만들어 프로그램에 사용할 수도 있습니다.
패키지 만들기
패키지를 만들려면 다음 단계를 따르십시오.
- 파일을 연 다음 파일 맨 위에 패키지 이름을 선언하십시오 (예 : [package package_name; ] 패키지 이름은 패키지에 제공하려는 이름입니다.
- 그런 다음 패키지에 넣을 클래스를 정의하고 public으로 선언해야한다는 것을 기억하십시오.
- 파일을 .java 파일로 저장 한 다음 파일을 컴파일하면 ".class"파일이 확보됩니다.
- 이 파일의 패키지를 만들려면 "javac -d"를 사용하십시오. file_name.java. 현재 디렉토리에 ".class"파일이 들어있는 패키지가 생성되었음을 알 수 있습니다. 상위 디렉토리에 배치하려면 "javac -d"를 사용하십시오. . file_name.java "명령을 사용하십시오.
- 하위 패키지 이름을 [package package_name1]로 선언하여 하위 패키지를 만들 수도 있습니다. package_name2; ]를 클릭하십시오.
패키지 Mypackage; public class myclass {public void displayMypackage () {system.out.println ( "패키지 Mypackage의 클래스 myclass의 메소드 displayMypackage"); }
패키지 사용
디렉토리에서 작성되었거나 사용 가능한 패키지는 import 문을 사용하여 프로그램에서 사용할 수 있습니다. 프로그램에서 패키지를 가져 오는 데 사용되는 키워드는 "가져 오기"입니다. import 문은 두 가지 방법으로 작성되거나 패키지에 액세스하는 두 가지 방법이 있다고 말할 수 있습니다. 첫째, 패키지의 특정 클래스를 사용하려면 "import"키워드 다음에 패키지 이름과 점 연산자 및 패키지에서 사용할 클래스 이름이옵니다. 둘째, 패키지에 포함 된 많은 클래스를 사용하려면 import 키워드 뒤에 패키지 이름과 점 및 "*"연산자가옵니다.
import package_name. class_name; 또는 package_name을 가져 오십시오. *;
위의 코드에서 두 번째 메소드가 패키지에 포함 된 모든 클래스를 가져 오는 것을 나타내는 * 기호를 볼 수 있습니다.
자, 예를 들어 패키지의 사용을 봅시다.
Mypackage를 가져옵니다. myclass {클래스 TestMypackage {public static void main (string args []) {myclass ob1 = new myclass (); ob1.displayMypackage (); }} // 패키지 Mypackage의 myclass 클래스의 출력 메소드 displayMypackage.
위의 코드에서 TestMypackage 클래스는 Mypackage 패키지를 가져 와서 displayMypackage () 메소드를 사용했습니다.
인터페이스의 정의
인터페이스는 일종의 클래스이지만, 인터페이스에서 선언 된 메소드가 추상이라는 의미에서 메소드가 선언되었지만 정의되지 않았 음을 의미합니다. 인터페이스의 필드는 항상 public, static, final입니다. 필드는 선언시에 초기화되어야합니다. 인터페이스에 의해 선언 된 메소드는 요구 사항에 따라 해당 인터페이스를 구현하는 클래스에 의해 정의됩니다. 인터페이스의 메소드는 어떤 기능도 수행하지 않으므로 인터페이스의 객체를 만드는 용도는 없습니다. 따라서 인터페이스에 대한 객체를 만들 수 없습니다.
인터페이스는 다른 인터페이스를 상속 할 수도 있지만 그러한 인터페이스를 상속하는 클래스는 상속 된 인터페이스의 모든 메소드도 구현해야합니다. 인터페이스가 선언시 인터페이스에서 초기화되므로 인터페이스에 생성자가 필요하지 않으므로 인터페이스에 생성자가 포함되어 있지 않습니다. 인터페이스를 만들고 사용하는 예를 살펴 보겠습니다.
인터페이스 영역 {float pi = 3.14; float find_area (float a, float b) {} 클래스 Circle implements Area {float find_area (float a, float b) {return (pi * a * a); } 클래스 셰이프 {public static void main (string args []) {영역 A = 새 영역 (); 원 C = 새 원 (); A = C; 플로트 F = 면적. find_area (10, 10); system.out.println ( "원의 면적은 : + F); }
위의 코드에서 우리는 인터페이스 영역을 만들었고 Circle 클래스는 인터페이스 영역을 구현했습니다. 필드 "pi"는 선언시 인터페이스에서 초기화되었습니다. Circle 클래스는 요구 사항에 따라 클래스 영역의 추상 메서드를 정의했습니다.
Java의 패키지와 인터페이스의 주요 차이점
- 패키지는 클래스와 인터페이스의 그룹이며, 인터페이스는 추상 메소드의 그룹입니다.
- 패키지는 키워드 패키지를 사용하여 생성되지만 인터페이스는 키워드 인터페이스를 사용하여 생성 됩니다 .
- 패키지 내의 클래스 또는 인터페이스를 사용하려면 인터페이스를 구현해야하는 동안 패키지를 가져와야합니다.
결론:
패키지와 인터페이스는 모두 컨테이너입니다. 패키지는 다시 정의하는 대신 사용할 클래스를 가져 오기 때문에 코드의 크기를 줄입니다. 인터페이스가 다중 상속 동안 발생하는 혼란을 줄이는 반면, 상속 클래스는 다중 상속의 경우 어떤 메소드를 상속 받아야하는지에 대한 정의가 결정되지 않았기 때문에 상속 클래스는 자신을 정의합니다.