패키지와 static

msung99·2022년 2월 14일
0

패키지

  • 자바는 많은 클래스로 구성되고, 클래스들을 폴더 형식으로 관리하는 것이 패키지이다.

패키지 이름 결정 요령

  • 패키지 이름은 패키지에 속해있는 클래스가 최대한 다른 클래스와 중복되는 것을 방지하도록 만든다.

  • 패키지 이름은 일반적으로 도메인을 거꾸로 이용한다.

  • 개발 중에 패키지의 이름과 구조는 변경될 수 있다.

  • 패키지 이름만 보고도 해당 패키지 안에 있는 클래스가 어떤 속성과 기능을 가지고 있는 예상이 될 수 있도록 이름을 만든다.


import

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


import의 편의성

만일 import 를 하지 않았더라면,

com.java.dailyJournal.DailyJournal object1 = new DailyJournal();

// dailyJournal 패키지의 DailyJournal 클래스로 객체 object1 를 생성

이렇게 다른 패키지의 클래스 경로를 일일히 적어가면서 클래스 객체를 생성해야 한다.

그러나 아래와 같이 다른 패키지의 클래스를 편히 사용할 수 있다.

DailyJournal object1 = new DailyJournal();

import 형식

  • 다른 패키지의 클래스를 이용하기 위해 import 하는 방법은 2가지가 있다.
  1. 다른 패키지에 있는 특정 클래스 import

    => import com.java.dailyJournal

  2. 다른 패키지에 있는 모든 클래스 import

    => import com.java.dailyJournal *


예시 - 다른 패키지에 있는 클래스를 import

// 현재 패키지 : Employee 패키지
pakage com.java.employee;

// dailyJournal 패키지의 Daily 라는 클래스를 사용하기 위해 import 함
import com.java.dailyJournal.Daily; 

public class Employee{
  DailyJournal object1 = new DailyJournal();

// import 를 하지 않았다면 아래와 같이 클래스를 사용해야 했을 것이다.
  // com.java.dailyJournal.DailyJourna object1 = new DailyJournal();

}

static

동일한 클래스에서 파생된 여러 객체들이 서로 공유하는 멤버변수와 메소드를 사용할 수 있게 해주는 키워드

-클래스의 속성과 메소드에 static 키워드를 사용하면 어디서나 공유하는 멤버변수와 메소드를 사용할 수 있다.

형식 : 클래스나 멤버변수 등의 이름 맨 앞에 static 을 기입

예시

예를들어 다음과 같은 클래스가 있을 때

public class EmployeeBank{
	String name;
	static int amount = 0; // EmployeeBank 로 부터 만들어서 모든 객체들이 공유하는 static 변수
	
	public EmployeeBank(String name) {
		this.name = name;
	}
	
	public void saveMoney(int money) {
		amount += money;
		System.out.println("amount:" + amount);
	}
	
	public void getBankInfo() {
		System.out.println("Emoloyee name: " + this.name);
		System.out.println("amount: " + amount);
	}	
}

static 변수가 각 객체끼리 공유되는 변수임을 알 수 있다.

public static void main(String[] args){
  EmployeeBank parkBank = new EmployeeBank("박찬호");
  parkBank.saveMoney(100); // static 변수 amount 에 100 더함
  
  EmployeeBank leeBank = new EmployeeBank("이승엽");
  leeBank.saveMoney(300); // static 변수에 300 더해서 400이 됨
  
  leeBank.getBankInfo(); // amount 값 400 출력
  parkBank.getBankInfo(); // amount 값 400 출력
profile
블로그 이전했습니다 🙂 : https://haon.blog

0개의 댓글