PlayData/Java

[Day2 | Java] λ³€μˆ˜μ™€ νƒ€μž…

κΉ€μœ λ‹ˆμ½˜ 2021. 11. 17. 17:43

λ³€μˆ˜

λ³€μˆ˜: 값을 μ €μž₯ν•  수 μžˆλŠ” λ©”λͺ¨λ¦¬μ˜ νŠΉμ • λ²ˆμ§€μ— λΆ™μ΄λŠ” 이름 

λ©”λͺ¨λ¦¬μ— 값을 μ €μž₯ν•˜κ³  μ‹Άλ‹€λ©΄ λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜κ³  λ³€μˆ˜μ— 값을 μ§€μ •ν•˜λ©΄ 됨. 

μ–΄λ–€ λ°©μ‹μœΌλ‘œ μ €μž₯ν• μ§€λŠ” μžλ°”μ˜ 경우 JVM이 ν•˜λŠ” 일.

 

λ³€μˆ˜μ„ μ–Έ

λ³€μˆ˜ μ„ μ–Έ: μ–΄λ–€ νƒ€μž…(μžλ£Œν˜•)의 데이터λ₯Ό μ €μž₯ν•  것인지, λ³€μˆ˜ 이름이 무엇인지 κ²°μ •. 

같은 νƒ€μž…μ˜ λ³€μˆ˜λŠ” 콀마(,)λ₯Ό μ΄μš©ν•΄μ„œ ν•œ λ²ˆμ— μ„ μ–Έν•  수 있음 

int x; 
int y;
int z;
int x, y, z; 

 

μžλ°”μ˜ λ³€μˆ˜ 이름λͺ…λͺ… κ·œμΉ™

  1. 첫 κΈ€μžλŠ” λ¬Έμžμ΄κ±°λ‚˜ $ λ˜λŠ” _ μ—¬μ•Όν•˜κ³  숫자둜 μ‹œμž‘ν•  수 μ—†μŒ
  2. μ˜μ–΄ λŒ€μ†Œλ¬Έμž ꡬ뢄(ν•„μˆ˜)
  3. 첫 λ¬ΈμžλŠ” μ˜μ–΄ μ†Œλ¬Έμžλ‘œ μ‹œμž‘ν•˜λ˜, λ‹€λ₯Έ 단어가 뢙을 경우 첫 문자λ₯Ό λŒ€λ¬Έμžλ‘œ (κ΄€λ‘€) (maxSpeed)
  4. 문자 길이 μˆ˜λŠ” μ œν•œ μ—†μŒ
  5. μžλ°” μ˜ˆμ•½μ–΄λŠ” μ‚¬μš©ν•  수 μ—†μŒ 

μ˜ˆμ•½μ–΄: μ΄λ―Έ ν•΄λ‹Ή ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ—μ„œ 의미λ₯Ό κ°–κ³  μ‚¬μš©λ˜κ³  μžˆλŠ” 단어, λ³€μˆ˜ μ΄λ¦„μœΌλ‘œ μ‚¬μš©ν•  수 μ—†μŒ. μ˜ˆμ•½μ–΄λ‘œ λ³€μˆ˜ 이름을 μ„ μ–Έν•˜λ©΄ 컴파일 μ—λŸ¬. 

* μ˜ˆμ•½μ–΄λ₯Ό λͺ¨λ‘ μ™ΈμšΈ ν•„μš” μ—†μŒ *

더보기

μ˜ˆμ•½μ–΄ 

 

νƒ€μž…κ³Ό κ΄€λ ¨λœ μ˜ˆμ•½μ–΄λ“€(8개)

νƒ€μž… μ„€λͺ…
byte 8 bit μ •μˆ˜ν˜•
short 16 bit μ •μˆ˜ν˜•
int 32 bit μ •μˆ˜ν˜•
long 63 bit μ •μˆ˜ν˜•
float 32 bit μ†Œμˆ˜ν˜•
double 64 bit μ†Œμˆ˜ν˜•
char 0 ~ 65,535 λ²”μœ„λ₯Ό κ°–λŠ” μ •μˆ˜ν˜•
boolean true, false 만 μ‘΄μž¬ν•˜λŠ” νƒ€μž…

클래슀, λ©”μ†Œλ“œ, λ³€μˆ˜ μ„ μ–Έ, 객체 생성과 κ΄€λ ¨λœ μ˜ˆμ•½μ–΄λ“€ (26개)

νƒ€μž… μ„€λͺ…
package 클래슀의 νŒ¨ν‚€μ§€λ₯Ό μ„ μ–Έν•  λ•Œ μ‚¬μš©ν•˜λ©° μ½”λ“œ λ‚΄μ—μ„œ 단 ν•œ 번만 지정 κ°€λŠ₯
import λ‹€λ₯Έ νŒ¨ν‚€μ§€μ— μžˆλŠ” 클래슀 및 κ·Έ μ•ˆμ— μ„ μ–Έλœ μš”μ†Œλ“€μ„ μ‚¬μš©ν•˜λ €κ³  ν•  λ•Œ μ‚¬μš©
interface μΈν„°νŽ˜μ΄μŠ€ μ„ μ–Έ
abstract abstract 클래슀 μ„ μ–Έ
class 클래슀 μ„ μ–Έ
enum enum μ„ μ–Έ
implements interfaceλ₯Ό κ΅¬ν˜„ν•œλ‹€κ³  μ„ μ–Έν•  λ•Œ μ‚¬μš©ν•˜λ©°, μ—¬λŸ¬ 개의 μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•  κ²½μš°μ—λŠ” 콀마둜 κ΅¬λΆ„ν•˜μ—¬ λ‚˜μ—΄ν•˜λ©΄ 됨
extends ν΄λž˜μŠ€λ‚˜ abstract 클래슀λ₯Ό ν™•μž₯ν•  λ•Œ μ‚¬μš©ν•˜λ©°, ν•˜λ‚˜μ˜ 클래슀만 ν™•μž₯ κ°€λŠ₯
private λ‹€λ₯Έ ν΄λž˜μŠ€μ—μ„œμ˜ 접근이 λΆˆκ°€λŠ₯ν•˜κ²Œ ν•  경우 μ‚¬μš©
protected 같은 νŒ¨ν‚€μ§€ 내에 μžˆκ±°λ‚˜ 상속받은 κ²½μš°μ—λ§Œ μ ‘κ·Όν•˜κ²Œ ν•  경우 μ‚¬μš©
public λˆ„κ΅¬λ‚˜ μ ‘κ·Όν•  수 μžˆλ„λ‘ ν•  λ•Œ μ‚¬μš©
final λ³€μˆ˜μ— μ‚¬μš©ν•  경우 값을 λ³€κ²½ν•˜μ§€ λͺ»ν•˜λ„둝 μ„ μ–Έν•˜λ©°, ν΄λž˜μŠ€μ— μ‚¬μš©ν•  경우 ν™•μž₯을 λͺ»ν•˜λ„둝 μ„ μ–Έ
synchronized λ™μ‹œ μ ‘κ·Ό μ œμ–΄μž
void λ©”μ†Œλ“œμ—μ„œ λ°˜ν™˜ν•˜λŠ” 값이 μ—†μŒμ„ μ„ μ–Έ
static ν•˜λ‚˜μ˜ μΈμŠ€ν„΄μŠ€λ§Œ ν—ˆμš©ν•˜λŠ” μ œμ–΄μž
return λ©”μ†Œλ“œλ₯Ό μ’…λ£Œν•˜κ³  값을 λ°˜ν™˜ν•  λ•Œ μ‚¬μš©
assert 검증을 μœ„ν•œ 둜직 μ„ μ–Έ
native λ‹€λ₯Έ μ–Έμ–΄λ‘œ κ΅¬ν˜„λœ 것을 μ„ μ–Έ
new μƒˆλ‘œμš΄ 객체 생성을 μ„ μ–Έ
null 참쑰되고 μžˆλŠ” 객체가 μ—†λ‹€λŠ” 것을 μ„ μ–Έ
strictfp static μ†Œμˆ˜ κ°’ μ œμ–΄μž
super μƒμœ„ 클래슀 μ°Έμ‘°
this ν˜„μž¬ 객체에 λŒ€ν•œ μ°Έμ‘°λ₯Ό λͺ…μ‹œμ μœΌλ‘œ λ‚˜νƒ€λ‚Ό λ•Œ μ‚¬μš©
transient Serializable ν•  λ•Œ μ €μž₯λ˜κ±°λ‚˜ μ „μ†‘λ˜μ§€ μ•ŠλŠ” 객체λ₯Ό μ„ μ–Έ
volatile ν•˜λ‚˜μ˜ λ³€μˆ˜λ₯Ό μ—¬λŸ¬ μ“°λ ˆλ“œκ°€ μ°Έμ‘°ν•  λ•Œ λ™μΌν•œ 값을 바라보도둝 ν•  λ•Œ μ‚¬μš©
instanceof 객체의 νƒ€μž…μ„ 확인할 λ•Œ μ‚¬μš©

쑰건 및 반볡문과 κ΄€λ ¨ μžˆλŠ” μ˜ˆμ•½μ–΄λ“€ (10개)

νƒ€μž… μ„€λͺ…
if λ°μ΄ν„°μ˜ 쑰건을 확인할 λ•Œ μ‚¬μš©ν•˜λ©°, if κ΄„ν˜Έ μ•ˆμ˜ κ²°κ³ΌλŠ” λ°˜λ“œμ‹œ boolean νƒ€μž…μž„
else if 쑰건에 λΆ€ν•©ν•˜μ§€ μ•ŠλŠ” 경우λ₯Ό μ„ μ–Έ
switch μ •μˆ˜ν˜• 및 String λ¬Έμžμ—΄(JDK 7 이상)의 값에 λ”°λ₯Έ λΆ„κΈ°λ₯Ό ν•  λ•Œ μ‚¬μš©
case switchμ—μ„œ μ„ μ–Έν•œ λ³€μˆ˜μ˜ 값에 λ”°λ₯Έ μž‘μ—…μ„ μ„ μ–Έ
default switchμ—μ„œ case 쑰건에 λΆ€ν•©λ˜λŠ” 값이 없을 λ•Œ 기본적으둜 μˆ˜ν–‰λ˜λŠ” μž‘μ—…μ„ μ„ μ–Έ
for 쑰건에 λ”°λ₯Έ λ°˜λ³΅μ„ λ³€μˆ˜μ— λ”°λΌμ„œ μ‹€ν–‰ν•˜κ³ μž ν•  λŒ€ μ‚¬μš©
do ν•œ 번 μˆ˜ν–‰ ν›„ 쑰건 λ°˜λ³΅μ„ ν•˜κ³ μž ν•  λ•Œ μ‚¬μš©
while 쑰건에 λ‹€λ₯Έ 반볡만 μˆ˜ν–‰ν•˜κ³ μž ν•  λ•Œ μ‚¬μš©
continue 반볡 μž‘μ—… μ‹œ 쑰건 ν™•μΈλ¬ΈμœΌλ‘œ μ΄λ™ν•˜κ³ μž ν•  λ•Œ μ‚¬μš©
break 반볡 μž‘μ—…μ„ μ’…λ£Œν•˜κ³ μž ν•  λ•Œ μ‚¬μš©

μ˜ˆμ™Έ μ²˜λ¦¬μ™€ κ΄€λ ¨λœ μ˜ˆμ•½μ–΄λ“€ (5개)

νƒ€μž… μ„€λͺ…
try μ˜ˆμ™Έκ°€ λ°œμƒ κ°€λŠ₯ν•œ μ½”λ“œμ˜ λ²”μœ„ μ„ μ–Έ
catch try둜 묢은 λ²”μœ„μ—μ„œ μ˜ˆμ™Έκ°€ λ°œμƒν•  λ•Œ 처리 방법 μ„ μ–Έ
finally try~catch μˆ˜ν–‰ ν›„ λ°˜λ“œμ‹œ μ‹€ν–‰ν•΄μ•Ό ν•˜λŠ” μž‘μ—… μ„ μ–Έ
throw μ˜ˆμ™Έλ₯Ό λ°œμƒ μ‹œν‚€κ±°λ‚˜ ν˜ΈμΆœν•œ 클래슀둜 λ„˜κΈΈ λ•Œ μ‚¬μš©
throws μ˜ˆμ™Έλ₯Ό 던질 μˆ˜λ„ μžˆλ‹€λŠ” 것을 μ„ μ–Έν•  λ•Œ μ‚¬μš©

κ°’ μ €μž₯

λ³€μˆ˜μ— 값을 μ €μž₯ν•  λ•Œμ—λŠ” λŒ€μž… μ—°μ‚°μž(=)λ₯Ό μ‚¬μš©.

였λ₯Έμͺ½ 값을 μ™Όμͺ½μ— μ €μž₯ν•œλ‹€.

int score; //λ³€μˆ˜ μ„ μ–Έ
score = 90;  // κ°’ μ„ μ–Έ

μžλ°”μ—μ„œλŠ” λ³€μˆ˜μ•  값이 μ €μž₯λ˜μ§€ μ•ŠμœΌλ©΄ λ³€μˆ˜κ°€ μƒμ„±λ˜μ§€ μ•ŠμŒ. 

λ”°λΌμ„œ 생성을 μœ„ν•΄μ„œλŠ” 값을 μ €μž₯ν•΄μ£Όμ–΄μ•Ό 함. 졜초둜 값이 μ €μž₯λ˜λŠ” 것을 λ³€μˆ˜ μ΄ˆκΈ°ν™” λΌκ³  함. 

λ³€μˆ˜κ°€ μ΄ˆκΈ°ν™”λ˜λ©΄ λ©”λͺ¨λ¦¬ λ²ˆμ§€ 정보λ₯Ό κ°€μ§€κ²Œ 되고, ν•΄λ‹Ή λ©”λͺ¨λ¦¬ λ²ˆμ§€μ— 값이 μ €μž₯됨. 

 

λ³€μˆ˜ μ‚¬μš© λ²”μœ„

μžλ°”μ˜ λͺ¨λ“  λ³€μˆ˜λŠ” { } 블둝 λ‚΄μ—μ„œ 선언됙 μ‚¬μš©λ¨.

λ©”μ†Œλ“œ 블둝 λ‚΄μ—μ„œ μ„ μ–Έλœ λ³€μˆ˜λ₯Ό λ‘œμ»¬λ³€μˆ˜ λΌκ³  함. 

둜컬 λ³€μˆ˜λŠ” 블둝 λ‚΄λΆ€μ—μ„œλ§Œ μ‚¬μš©λ˜κ³ , λ©”μ†Œλ“œ 싀행이 λλ‚˜λ©΄ λ©”λͺ¨λ¦¬μ—μ„œ μžλ™μœΌλ‘œ 없어짐.

λ³€μˆ˜λ₯Ό μ„ μ–Έν•  λ•Œμ—λŠ”

  • λ³€μˆ˜κ°€ μ–΄λ–€ λ²”μœ„μ—μ„œ μ‚¬μš©λ  것인지 생각, μ„ μ–Έ μœ„μΉ˜ κ²°μ •
  • λ©”μ†Œλ“œ 블둝 μ „μ²΄μ—μ„œ μ‚¬μš©ν•˜κ³  μ‹Άλ‹€λ©΄ λ©”μ†Œλ“œ 블둝 첫머리에 μ„ μ–Έ
  • νŠΉμ • 블둝 λ‚΄λΆ€μ—μ„œλ§Œ μ‚¬μš©λœλ‹€λ©΄ ν•΄λ‹Ή 블둝 λ‚΄ μ„ μ–Έ

 

 

 

 

 

 


 

 

κΈ°λ³Ένƒ€μž…

μžλ°”μ˜ κΈ°λ³Έ νƒ€μž… 총 8개