본문 바로가기
Java

Java_패키지

by 히예네 2023. 1. 27.
728x90
반응형

패키지

클래스를 카테고리로별로 관리하기위해 만든것. 체계적으로 클래스를 관리하도록 도와준다. 

 

【패키지선언】

package 패키지명;

 

※네이밍컨벤션

패키지명은 소문자로 만든다. 


패키지 사용법

예를들어

나는 학교의 선생님인데 아이들의 인적사항이나 성적정보를 효율적으로 관리하려한다.

 

class Person에는 이름,나이,주소

class Student에는 이름, 국어성적,영어성적

어느쪽이든 Student라고 써도 이상하진않다. 

 

위 2개의 클래스는 내용은 다를순있지만 학생 정보라는것에는 틀림없다.

그래서 패키지를 만들어 넣어두자.  

aaa패키지에 Person클래스와 Student클래스를 묶어두었다. (관리가 용이함)


 

이제, Person클래스와 Student클래스를 살펴보자. 

 

class Person

package aaa;

public class Person {
	
	public String name;
	public int age;

}

 

class Student

 

package aaa; //패키지이름과 위치가 다르면 에러! 

//[이름,나이,주소]데이터를 저장하는 학생정보 클래스
public class Student {
	
	public String name; 
	int age;
	String address;
	
	//같은 패키지에 있는 다른 class는 그냥 사용가능
	Person p=new Person();
}

class를 만들었으니 메인에서 호출해보자 (클래스만 만든다고 기능을 사용할수있는게 아니다. 객체를 만들자 )


class Main

///bbb패키지 안에있는 Student클래스를 편하게 사용하도록 .. 미리 불러오기
//import bbb.Student;
//import bbb.Nice;

//bbb패키지안에 있는 모든 클래스를 한번에 import하기
import bbb.*;   //*은 모든것이라는 뜻 당분간은 권장하지 않는다. 
//연습을하기위해, 그리고 다 불러와서 메모리가 아까움

//import aaa.Student; 이러면 에러! Student가 중복되니까
//같은 패키지를 둘다 임포트하는건 불가능이다. 

import java.util.Random; //패키지를 불러오는 작업


public class Main {
public static void main(String[] args) {
	//기본적인 class를 설계하고 객체를 생성하여 사용하는 모습
	Test t=new Test();
	t.a=10; //멤버변수 사용
	
	
	t.show();//멤버함수 호출
	
	aaa.Student stu=new aaa.Student(); 
	stu.name="sam";
	
	
	bbb.Student stu2=new bbb.Student();
	stu2.name="robin"; //패키지가 다르더라도 퍼블릭해줫으니가 보인다.
    
	stu2.kor=80;
	stu2.eng=90;
	
	//패키지의 장점: 같은이름이 있어도 구별가능하다
	//접근 제한자의 영향을 받는다.
	
	
	//bbb패키지에 Student클래스 객체가 또 필요하다면?
	//패키지명을 매번 작성하는 것이 번거로움 귀찮
	//그래서 이 .java문서 안에서는 bbb. 패키지를 마음대로 인식할수있도록
	//미리 ..클래스를 가져오기 >> import
	bbb.Student stu3=new bbb.Student();
	bbb.Student stu4=new bbb.Student(); // 너무 많다...
	
	Student stu5=new Student();
	Student stu6=new Student();
	
    }

 

728x90
반응형

'Java' 카테고리의 다른 글

Java_자바의 메모리  (0) 2023.01.27
Java_메서드 오버로딩, 가변 길이 인자  (0) 2023.01.27
Java_접근제한자  (0) 2023.01.27
Java_객체 지향 프로그래밍 OOP  (0) 2023.01.27
Java_배열  (0) 2023.01.26