본문 바로가기
Java/Java_basic

Step13. 패키지와 Static

by Mr.DonyStark 2023. 9. 24.

□ 패키지(package)

 ○ Java 프로그램은 많은 클래스로 구성되고 이러한 클래스를 폴더형식으로 관리하는 것을 패키지라고 함
 ○ 패키지명은 패키지에 속해 있는 클래스가 최대한 다른 클래스와 중복되는 것을 방지
 ○ 패키지명은 일반적으로 도메인을 거꾸로 이용
 ○ 개발중 패키지 이름과 구조는 변경될 수 있음
 ○ 패키지명만 보고도 해당 패키지 안에 있는 클래스가 어떤 속성과 기능을 가지고 있는 예상이 될수 있도록 이름을 만듬

□ 임포트(import)

 ○ 다른 패키지에 있는 클래스를 사용하기 위해서는 import 키워드를 이용

예제 1) 다른 패키지 생성 및 클래스 생성 + 다른 패키지의 클래스파일 임포트

(*패키지는 별도 디렉토리에 생성하여 진행했음)

package src.java;  //패키지명 및 경로 지정
//다른 패키지에 있는 클래스에 있는 객체를 사용하고자, 호출하고자하는 객체가 포함된 패키지의 클래스를 임포트
import pjt_test.Newer_Class_Third;

public class CLASS {
	//다른 패키지에 있는 클래스를 임포트하여 객체 생성
	Newer_Class_Third Other_Class_Import = new Newer_Class_Third();
}

예제 1-1) 기존 클래스에서 새로 생성된 패키지와 해당 패키지에 생성된 클래스 임포트하여 객체 생성

package pjt_test;
//다른 패키지에 있는 클래스에 있는 객체를 사용하고자, 호출하고자하는 객체가 포함된 패키지의 클래스를 임포트
import src.java.CLASS;

public class Newer_Class_Third {
	
	//다른 패키지에 있는 클래스를 임포트하여 객체 생성
	CLASS Import_Class = new CLASS();
	
}

 

□ 스태틱(static)

 ○ 클래스의 속성과 메서드에 static 키워드를 사용한다면 어디서나 속성과 메서드를 공유할 수 있음

예제 2) 클래스 생성 및 클래스에 대한 속성(전역변수)중 특정 속성을 Static을 활용해 모든 객체에서 공유되는 속성으로 지정

package pjt_test;

public class Bank_Money {
	
	String name;
	//Static을 사용하요 모든 객체간에 해당 변수가 공유되도록 지정
	static int sum = 0;
	
	public Bank_Money(String name) {
		this.name = name;
	}
	
	public void Save_Money(int money) {
		sum += money;
		System.out.println("추가금액 : " +money +"\n 누적금액 : " +sum  );
	}
	public void getBankInfo() {
		System.out.println("입금자명 : " +this.name);
		System.out.println("누적금액 : " +this.sum);
	}
}

예제 2-1) 클래스를 활용하여 객체 3개 생성 및 클래스에서 Static을 활용해 지정한 속성을 모든 객체에서 공유하도록 구현

package pjt_test;

public class Bank_Money_Main {
	public static void main(String[] args) {
		//클래스 활용하여 객체 1 생성 및 클래스 메서드 활용
		//객체에서 입력받은 매개변수는 클래스의 지역변수로 전달됨
		Bank_Money kBank = new Bank_Money("김뭐시기");
		kBank.Save_Money(1000000);
		kBank.getBankInfo();           //Static 이 붙은 변수 sum으로 인하여 money 값이 추가 될때마다 다른 객체들과 공유되어 연산됨
		
		Bank_Money bBank = new Bank_Money("박뭐시기");
		bBank.Save_Money(2222222);
		bBank.getBankInfo();           //Static 이 붙은 변수 sum으로 인하여 money 값이 추가 될때마다 다른 객체들과 공유되어 연산됨

		Bank_Money cBank = new Bank_Money("찰리뭐시기");
		cBank.Save_Money(5555555);
		cBank.getBankInfo();           //Static 이 붙은 변수 sum으로 인하여 money 값이 추가 될때마다 다른 객체들과 공유되어 연산됨
	}
}