-
패키지와 static컴퓨터/Java 2019. 9. 3. 08:48
출처 : 자바프로그래밍 입문(인프런)
class 파일을 효율적으로 관리하기 위한 방법
객체 간에 속성 또는 기능 공유
- 패키지
폴더를 만들어서 클래스 파일을 관리하는 디렉토리
패키지 이름은 클래스들을 대표할 수 있는 이름으로 한다
잘 만든 패키지의 경우 다른 곳에 이식해서 사용할 수 있기 때문에 unique한 이름으로 짓는다. 도메인을 거꾸로 해서.
ex. kr.co.회사이름
- import
import java.util.ArrayList;
ex. com.java.employee.Employee; -> com.java.employee 패키지에서 Employee 클래스 불러온다
com.java.dailyJournal.* -> 해당 패키지에 있는 모든 클래스를 import하겠다.
- static
필드와 메서드에 붙이는 제한자.
static을 붙인 멤버의 특징
1) 프로그램 시작 전에 메모리에 로딩된다.
- 클래스로부터 객체 생성시 메모리에 별도로 존재
2) 오브젝트를 생성하지 않고도 필드, 메서드 사용이 가능하다.
3) 다른 오브젝트에서 참조하기 위해서는 오브젝트 이름이 아닌 클래스명을 지정한다.
필드의 static : 같은 클래스에서 생성된 오브젝트들은 static을 붙인 필드의 값을 공유한다.
package com.java.employeeBank; public class EmployeeBank { String name; static int amount = 0; // 클래스에서 생성된 객체가 공유할 수 있다. public EmployeeBank(String name) { this.name = name; } public void saveMoney(int money) { amount += money; System.out.println("amount : " + amount); } public void spendMoney(int money) { amount -= money; System.out.println("amount : " + amount); } public void getBankInfo() { System.out.println("Employee name : "+ this.name); System.out.println("amount : " + amount); } }
메서드의 static : 어떤 오브젝트에서도 같은 동작을 하는 메서드는 static 키워드를 붙여주는 것이 좋다.
-> 한 번만 생성된다.
static을 붙인 메서드의 특징
- static 메서드는 오버라이딩 할 수 없다.(한 번만 생성되기 때문)
- static 메서드에서 동일한 오브젝트 내의 멤버를 이용하기 위해서는 멤버(필드, 메서드)에게 static을 붙여야만 한다.