nyximos.log

[Java] νŒ¨ν‚€μ§€ λ³Έλ¬Έ

Programming/JAVA

[Java] νŒ¨ν‚€μ§€

nyximos 2022. 8. 17. 22:56

πŸ‘©‍πŸš€ λͺ©ν‘œ

μžλ°”μ˜ νŒ¨ν‚€μ§€μ— λŒ€ν•΄ ν•™μŠ΅ν•˜μ„Έμš”.

πŸ‘©‍πŸ’» ν•™μŠ΅ν•  것

  • package ν‚€μ›Œλ“œ
  • import ν‚€μ›Œλ“œ
  • 클래슀패슀
  • CLASSPATH ν™˜κ²½λ³€μˆ˜
  • -classpath μ˜΅μ…˜
  • μ ‘κ·Όμ§€μ‹œμž

 

 

πŸ“¦ package ν‚€μ›Œλ“œ

μ„œλ‘œ κ΄€λ ¨ μžˆλŠ” ν΄λž˜μŠ€λ‚˜ μΈν„°νŽ˜μ΄μŠ€λ₯Ό ν•˜λ‚˜λ‘œ 묢은 것. 폴더, 디렉토리 κ°œλ…

주둜 클래슀의 name spaceλ₯Ό λΆ„λ¦¬ν•˜λŠ”λ° μ‚¬μš©λœλ‹€.

내뢀에 λ‹€λ₯Έ νŒ¨ν‚€μ§€λ₯Ό 포함할 수 μžˆλ‹€.

클래슀의 μ‹€μ œ 이름 FQCN(Fully Qualified Class Name)은 νŒ¨ν‚€μ§€λͺ…을 ν¬ν•¨ν•œλ‹€.

→ String 클래슀의 μ‹€μ œ 이름은 java.lang.String 이닀.

 

μžλ°”κ°€ μ œκ³΅ν•˜λŠ” λΌμ΄λΈŒλŸ¬λ¦¬λ„ κΈ°λŠ₯λ³„λ‘œ νŒ¨ν‚€μ§€λ‘œ λ¬Άμ—¬μ„œ 제곡되고 μžˆλ‹€.

java.lang : 기초적인 κΈ°λŠ₯ μ œκ³΅ν•˜λŠ” 클래슀λ₯Ό λͺ¨μ•„λ‘” νŒ¨ν‚€μ§€ (importλ¬Έ μž‘μ„±ν•˜μ§€ μ•Šμ•„λ„ μ‚¬μš©κ°€λŠ₯)

java.net : λ„€νŠΈμ›Œν¬λ₯Ό λ‹΄λ‹Ήν•˜λŠ” 클래슀

 

🧐 νŒ¨ν‚€μ§€ μ •μ˜

package νŒ¨ν‚€μ§€μ΄λ¦„;

μœ„μ™€ 같은 ν˜•μ‹μ˜ μ½”λ“œλ₯Ό μ†ŒμŠ€ 파일의 첫번째 쀄에 μž‘μ„±ν•œλ‹€. (주석, 곡백 μ œμ™Έ)

이 μ†ŒμŠ€νŒŒμΌ μ•ˆμ—μ„œ μ„ μ–Έλœ ν΄λž˜μŠ€λ“€μ€ 이 νŒ¨ν‚€μ§€μ— μ†ν•˜κ²Œ λœλ‹€.

ν•˜λ‚˜μ˜ μ†ŒμŠ€νŒŒμΌμ—λŠ” νŒ¨ν‚€μ§€ λ¬Έμž₯ ν•˜λ‚˜λ§Œ μžˆμ„ 수 있으며 λͺ¨λ“  ν΄λž˜μŠ€λŠ” λ°˜λ“œμ‹œ ν•˜λ‚˜μ˜ νŒ¨ν‚€μ§€μ— ν¬ν•¨λ˜μ–΄μ•Ό ν•œλ‹€.

μžμ‹ μ΄ 속할 νŒ¨ν‚€μ§€λ₯Ό μ§€μ •ν•˜μ§€ μ•Šμ€ ν΄λž˜μŠ€λŠ” μžλ™μ μœΌλ‘œ unnamed package에 μ†ν•˜κ²Œ λœλ‹€.

νŒ¨ν‚€μ§€λͺ…에 μ˜ˆμ•½μ–΄λ₯Ό μ‚¬μš©ν•˜λ©΄ μ•ˆλ˜κ³  클래슀λͺ…κ³Ό μ‰½κ²Œ κ΅¬λΆ„ν•˜κΈ° μœ„ν•΄ μ†Œλ¬Έμžλ‘œ μ§“λŠ” 것이 μ’‹λ‹€.

 

πŸ€” νŒ¨ν‚€μ§€ μ‚¬μš© 이유

  1. νŒ¨ν‚€μ§€λ₯Ό μ΄μš©ν•˜λ©΄ μ„œλ‘œ κ΄€λ ¨λœ ν΄λž˜μŠ€λ“€μ„ ν•˜λ‚˜μ˜ λ‹¨μœ„λ‘œ λͺ¨μ„ 수 μžˆλ‹€.
  2. λ”μš± μ„Έλ°€ν•œ μ ‘κ·Ό μ œμ–΄ κ΅¬ν˜„μ΄ κ°€λŠ₯ν•˜λ‹€. → 클래슀의 μΊ‘μŠν™”
  3. NameSpace의 역할을 ν•΄μ€€λ‹€. → 클래슀λͺ… μ€‘λ³΅μœΌλ‘œ μ •μ˜ κ°€λŠ₯

 

 

 

πŸ’‘ import ν‚€μ›Œλ“œ

import νŒ¨ν‚€μ§€λͺ….클래슀λͺ…;
λ˜λŠ”
import νŒ¨ν‚€μ§€λͺ….*;

λ‹€λ₯Έ νŒ¨ν‚€μ§€μ˜ 클래슀λ₯Ό μ‚¬μš©ν•˜λ €λ©΄ νŒ¨ν‚€μ§€λͺ…이 ν¬ν•¨λœ 클래슀 이름을 μ‚¬μš©ν•œλ‹€.

μ»΄νŒŒμΌλŸ¬μ—κ²Œ μ†ŒμŠ€νŒŒμΌμ— μ‚¬μš©λœ 클래슀의 νŒ¨ν‚€μ§€μ— λŒ€ν•œ 정보λ₯Ό μ œκ³΅ν•œλ‹€.

λͺ¨λ“  import문은 packageλ¬Έ λ‹€μŒμ—, 클래슀 μ„ μ–Έλ¬Έ 이전에 μœ„μΉ˜ν•œλ‹€.

packageλ¬Έκ³Ό 달리 ν•œ μ†ŒμŠ€νŒŒμΌμ— μ—¬λŸ¬ 번 μ„ μ–Έν•  수 μžˆλ‹€.

같은 νŒ¨ν‚€μ§€μ—μ„œ μ—¬λŸ¬ 개의 ν΄λž˜μŠ€κ°€ μ‚¬μš©λ  λ•Œ, 'νŒ¨ν‚€μ§€λͺ….*' 을 μž‘μ„±ν•˜μ—¬ νŒ¨ν‚€μ§€λͺ… 없이 μ‚¬μš©ν•  수 μžˆλ‹€.

 

 

 

 

πŸ“ 클래슀패슀

클래슀λ₯Ό μ°ΎκΈ° μœ„ν•œ 경둜

μžλ°” ν”„λ‘œκ·Έλž¨ μ‹€ν–‰μ‹œ, 

β‘  μ†ŒμŠ€νŒŒμΌ(.java)을 μ»΄νŒŒμΌν•œλ‹€.

β‘‘ μžλ°” μ»΄νŒŒμΌλŸ¬λŠ” μžλ°” μ†ŒμŠ€ μ½”λ“œλ₯Ό λ°”μ΄νŠΈ μ½”λ“œ(.class)둜 λ³€ν™˜ν•œλ‹€. 이λ₯Ό 클래슀 파일이라고 ν•œλ‹€.

β‘’ class loaderλŠ” ν”„λ‘œκ·Έλž¨μ˜ λ°”μ΄νŠΈ μ½”λ“œκ°€ λ“€μ–΄μžˆλŠ” 클래슀 파일과 싀행에 ν•„μš”ν•œ λ‹€λ₯Έ 클래슀 νŒŒμΌμ„ ν•¨κ»˜ λ©”λͺ¨λ¦¬μ— μ μž¬ν•œλ‹€.

     λ°”μ΄νŠΈ μ½”λ“œ κ²€μ¦κΈ°λŠ” λ°”μ΄νŠΈ μ½”λ“œλ“€μ΄ 이상이 μ—†μœΌλ©° μžλ°” λ³΄μ•ˆ κ·œμΉ™μ„ μœ„λ°°ν•˜μ§€ μ•ŠλŠ”μ§€ κ²€μ‚¬ν•œλ‹€.

β‘£ JVM이 λ°”μ΄νŠΈ μ½”λ“œλ₯Ό μ‹€ν–‰ν•œλ‹€. μ΄λ•Œ  클래슀 νŒŒμΌμ—  ν¬ν•¨λœ λͺ…령을 μ‹€ν–‰ν•˜κΈ° μœ„ν•΄ 파일의 μœ„μΉ˜λ₯Ό μ•Œκ³  μžˆμ–΄μ•Ό ν•˜κΈ° λ•Œλ¬Έμ— classpath에 μ§€μ •λœ 경둜λ₯Ό μ‚¬μš©ν•œλ‹€.

 

classpath

.class 파일이 ν¬ν•¨λœ 디렉토리와 νŒŒμΌμ„ 콜둠(;)으둜 κ΅¬λΆ„ν•œ λͺ©λ‘

class 지정방법

β‘  CLASSPATH ν™˜κ²½λ³€μˆ˜ μ‚¬μš©

β‘‘ java runtime에 -classpath μ˜΅μ…˜ μ‚¬μš©

 

 

 

 

πŸ“Ί CLASSPATH ν™˜κ²½λ³€μˆ˜

μ œμ–΄νŒ - μ‹œμŠ€ν…œ

 

 

κ³ κΈ‰μ‹œμŠ€ν…œ μ„€μ •

 

 

ν™˜κ²½ λ³€μˆ˜

 

 

μ‹œμŠ€ν…œ λ³€μˆ˜ - μƒˆλ‘œ λ§Œλ“€κΈ°

 

 

λ³€μˆ˜λͺ… : JAVA_HOME

λ³€μˆ˜κ°’ : jdk 경둜

 

 

μ‹œμŠ€ν…œ λ³€μˆ˜ - Path - νŽΈμ§‘

 

 

μƒˆλ‘œ λ§Œλ“€κΈ° ν›„ μ•„λž˜μ™€ 같이 μž…λ ₯

%JAVA_HOME%bin 

JAVA_HOME에 μ €μž₯된 jdk κ²½λ‘œμ—μ„œ bin 폴더λ₯Ό μ°Ύμ•„κ°„λ‹€.

 

μ΄λ ‡κ²Œ 해두면 jdk 버전이 λ‹¬λΌμ§ˆλ•Œ JAVA_HOME만 λ³€κ²½ν•΄μ£Όλ©΄ λœλ‹€.

 

cmdλ₯Ό μ‹€ν–‰ν•΄ javacλ₯Ό μž…λ ₯ν•΄λ³΄μž.

이런 창이 뜨면 성곡

 

 

μš”λ ‡κ²Œ ν™˜κ²½ λ³€μˆ˜λ₯Ό 섀정해두면 CLI ν™˜κ²½μ—μ„œλ„  ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ μ‹œν‚¬ 수 μžˆλ‹€.

 

 

πŸ“· -classpath μ˜΅μ…˜

java -classpath [경둜]

java -cp [경둜];[경둜];[경둜]

μ»΄νŒŒμΌλŸ¬κ°€ 컴파일 ν•˜κΈ° μœ„ν•΄μ„œ ν•„μš”λ‘œ ν•˜λŠ” 클래슀 νŒŒμΌλ“€μ„ μ°ΎκΈ° μœ„ν•΄μ„œ μ»΄νŒŒμΌμ‹œ 파일 경둜λ₯Ό μ§€μ •ν•΄μ£ΌλŠ” μ˜΅μ…˜

-class μ˜΅μ…˜μ„ μ‚¬μš©ν•˜μ§€ μ•Šμ„ 경우 클래슀 파일이 μœ„μΉ˜ν•œ ν˜„μž¬ 디렉토리λ₯Ό default classpath둜 μ§€μ •ν•œλ‹€. 

javac와 java λͺ…λ Ήμ–΄λ₯Ό μ“Έ λ•Œ λͺ¨λ‘ μ‚¬μš©ν•  수 μžˆλ‹€.

μ°Έμ‘°ν•  클래슀 파일 κ²½λ‘œκ°€ λ‹€λ₯Έ λ‹€λ₯Έ 디렉토리에도 μ‘΄μž¬ν•  μ‹œ μ„Έλ―Έμ½œλ‘ ; 으둜 κ΅¬λΆ„ν•œλ‹€. 

 

 

 

🎬 μ ‘κ·Ό μ§€μ‹œμž

access modifier

멀버, ν΄λž˜μŠ€μ— μ‚¬μš©λ˜μ–΄, ν•΄λ‹Ήν•˜λŠ” 멀버 λ˜λŠ” 클래슀λ₯Ό μ™ΈλΆ€μ—μ„œ μ ‘κ·Όν•˜μ§€ λͺ»ν•˜λ„둝 μ œν•œν•˜λŠ” 역할을 ν•œλ‹€.

μ ‘κ·Ό μ œμ–΄μžκ°€ μ§€μ •λ˜μ–΄ μžˆμ§€ μ•Šμ„ λ•ŒλŠ” defaultμž„μ„ λœ»ν•œλ‹€.

μ ‘κ·Ό μ œμ–΄μžλ₯Ό μ‚¬μš©ν•˜λŠ” μ΄μœ λŠ” μ™ΈλΆ€λ‘œλΆ€ν„° 데이터λ₯Ό λ³΄ν˜Έν•˜κ³  λ‚΄λΆ€μ μœΌλ‘œλ§Œ μ‚¬μš©λ˜λŠ” 뢀뢄을 숨기기 μœ„ν•¨μ΄λ‹€.

μ ‘κ·Ό μ œμ–΄μž 같은 클래슀 같은 νŒ¨ν‚€μ§€ μžμ‹ 클래슀 전체
public O O O O
protected O O O  
μ—†μŒ O O    
private O      

 

 

 

μ°Έμ‘°

7μ£Όμ°¨ 과제: νŒ¨ν‚€μ§€ 

남ꢁ성, μžλ°”μ˜ 정석 기초편, λ„μš°μΆœνŒ, 2019

천인ꡭ, μ–΄μ„œμ™€ JAVAλŠ” μ²˜μŒμ΄μ§€!, INFINITYBOOKS, 2015

 

'Programming > JAVA' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[Java] μ˜ˆμ™Έ 처리  (0) 2022.09.01
[Java] μΈν„°νŽ˜μ΄μŠ€  (1) 2022.08.29
[Java] 상속  (0) 2022.08.12
[Java] 클래슀  (0) 2022.08.05
[Java] μ œμ–΄λ¬Έ  (0) 2022.08.04