๐ฆJava Package
Cpp์ ๋นํ๋ฉด ์ ๋ ๋ค
ํจํค์ง
- ํด๋์ค๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํ ๋๊ตฌ
- ํด๋์ค๋ค์ ๊ตฌ๋ถ์ง๋ ๋๋ ํ ๋ฆฌ
- ํจํค์ง์ ๋ฌผ๋ฆฌ์ ์ธ ํํ๋ ํ์ผ ์์คํ ์ ๋๋ ํ ๋ฆฌ
- ๋จ์ํ ํ์ผ ์์คํ ์ ๋๋ ํ ๋ฆฌ ๊ธฐ๋ฅ๋ง ํ๋ ๊ฒ์ด ์๋๋ผ ํด๋์ค์ ์ผ๋ถ๋ถ์ด๋ค.
๋ชฉ์
- C++์ ๋ค์์คํ์ด์ค์ฒ๋ผ ํด๋์ค ์ด๋ฆ ์ค๋ณต์ ๋ฐฉ์งํ๋ค.
์คํ
$ java {ํจํค์ง/ํจํค์ง/ํด๋์ค๋ช
}
- Java๋ ์ต์์ ๋๋ ํ ๋ฆฌ์์ ์คํํ๊ธฐ๋ก ์ฝ์์ด ๋์ด์๋ค.
- ์ง์
cd
๋ก ๋๋ ํ ๋ฆฌ์ ๋ค์ด๊ฐ์ง๋ง๊ณ ์์ฒ๋ผ ํจํค์ง๋ช ์ผ๋ก ๊ตฌ๋ถํด์ ์คํ์ํค์. - ํจํค์ง ๋ช ๊ณผ ์์นํ ๋๋ ํ ๋ฆฌ์ ์ด๋ฆ์ ๊ฐ์์ผํ๋ค. ๋ฐ๋ผ์ ์์ ๊ฐ์ ๋์์ด ๊ฐ๋ฅํ๋ค.
๊ท์น
- Package ์ ์ธ์ ์ต์๋จ์ ํ๋๋ง ์์ด์ผ ํ๋ค.
- java๋ก ํจํค์ง๋ช ์ด ์์ํ ์ ์๋ค.
- ์ด๊ธธ๊ฒฝ์ฐ
java.lang.SecurityException
์ด ๋ฐ์ํ๋ค. - ํจํค์ง ์ด๋ฆ์ ์๋ฌธ์๋ก ์์ํ๋๊ฒ ๊ตญ๋ฃฐ์ด๋ค.
Package์ ์์์ด๋ฆ
java
: ์๋ฐ๊ธฐ๋ณธํจํค์ง, java ๋ฒค๋์์ ๊ฐ๋ฐjavax
: ์๋ฐํ์ฅํจํค์ง, java ๋ฒค๋์์ ๊ฐ๋ฐorg
: ์คํ์์ค ๋ฑ ๋น์๋ฆฌ๋จ์ฒด์ ํจํค์ง (ex) org.apache.xxxcom
: ์๋ฆฌ๋จ์ฒด์ ํจํค์ง
import static
- Java 1.5๋ฒ์ ๋ถํฐ
import static
์ด๋ผ๋๊ฒ์ด ์ถ๊ฐ๋์๋ค. - import static c.javapackage.sub.AnyClass.staticmethod;
- ์์ ๊ฐ์ด ์ ์ธํ๋ฉด ์ผ๋ฐ์ ์ธ import์ ๋ค๋ฅด๊ฒ static method, field๋ฅผ ํจํค์ง ๋ฐ ํด๋์ค๋ช ์์ด ์ ๊ทผ๊ฐ๋ฅํ๋ค.
FQCN
- ํจํค์ง์ ํด๋์ค๋ฅผ ๋ชจ๋ ๊ธฐ์ ํ๋ ๊ฒ์
FQCN(Fully Qualified Class Name)
์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. - ์ด๋ฆ์ด ๋์ผํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ๋ ์ด์ฉ ์ ์์ด ํ์ชฝ์ FQCN์ ์ฌ์ฉํด์ผํ๋ค.
- c.javapackage.sub.AnyClass anyClass = new c.javapacakge.sub.AnyClass();
import static c.javapackage.sub.AnyClass.*;
๋ ๊ฐ๋ฅํ๋ค.
import๋ฅผ ์ํด๋ ๋๋ ๊ฒฝ์ฐ
- java.lang ํจํค์ง (Built-in package๋ผ๊ณ ๋ถ๋ฅธ๋ค)
- ๊ฐ์ ํจํค์ง (hierarchy์๋ ์๊ด์ด ์๋ค. ํ๋๋ผ๋ ๋ค๋ฅด๋ฉด ๋ค๋ฅธ๊ฑฐ๋ค.)
์ ๊ทผ์ง์ ์
- Package๋ ์ ๊ทผ์ง์ ์์๋ ๊ด๊ณ๊ฐ ์๋ค.
package-private
- ์๋ฌด ์ ๊ทผ ์ ์ด์๋ ์ ์ง ์์ผ๋ฉด, ๋ํดํธ๋ก
package-private ์ ๊ทผ์ง์ ์
๊ฐ ๋๋ค. - ๊ฐ์ ํจํค์ง ๋ด์ ์์๋ private์๋ ์ ๊ทผํ ์ ์๋ค.
ํด๋์ค ์ ์ธ๊ณผ ์ ๊ทผ์ง์ ์
- ์ ๊ทผ์ง์ ์๋ ํด๋์ค ์ ์ธ์๋ ๋ถ์ ์ ์๋ค.
// ์ด ๊ฒฝ์ฐ ํ์ผ๋ช
์ ๋ฐ๋์ AAA.java์ด์ด์ผ ํ๋ค
public class AAA {
}
- java ํ์ผ์ ์ฌ๋ฌ ๊ฐ์ ํด๋์ค๊ฐ ์๋ ๊ฒ์ ์๊ด์์ง๋ง
- ํ๋์ java ํ์ผ์ ์ฌ๋ฌ ๊ฐ์
public class
๋ ์์ ์ ์๋ค. -
[1] ์ด์๋ฏผ, 9์ฅ โ์๋ฐ๋ฅผ ๋ฐฐ์ฐ๋ฉด ํจํค์ง์ ์ ๊ทผ ์ ์ด์๋ ๊ผญ ์์์ผ ํด์โ, ์๋ฐ์็ฅ 2nd Edition
[2] ์ํ์ฝ๋ฉ, ํจํค์ง - ์ํ์ฝ๋ฉ