Search

λ³€μˆ˜μ™€ λ©”μ†Œλ“œ

λ³€μˆ˜μ™€ λ©”μ†Œλ“œ

β€’
λ³€μˆ˜
β€’
λ©”μ†Œλ“œ

INDEX

λ³€μˆ˜ (Variables)

데이터λ₯Ό μ €μž₯ν•˜λŠ” λ©”λͺ¨λ¦¬ 곡간

μžλ£Œν˜•

μžλ°”μ—μ„œ λ‹€λ£¨λŠ” 데이터 νƒ€μž…μ€ 크게 κΈ°λ³Έν˜•(Primitive Type)κ³Ό μ°Έμ‘°ν˜•(Reference Type)으둜 λ‚˜λˆŒ 수 μžˆμŠ΅λ‹ˆλ‹€.
β€’
κΈ°λ³Έ μžλ£Œν˜•
β€’
μ°Έμ‘° μžλ£Œν˜•

κΈ°λ³Έ μžλ£Œν˜•

κΈ°λ³Έν˜•(Primitive Type)
크기
λ²”μœ„
byte
1λ°”μ΄νŠΈ
-128 ~ 127
short
2λ°”μ΄νŠΈ
-32,768 ~ 32,767
int
4λ°”μ΄νŠΈ
-2,147,483,648 ~ 2,147,483,647
long
8λ°”μ΄νŠΈ
-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
float
4λ°”μ΄νŠΈ
μ•½ Β±3.4 Γ— 10^38 (μ†Œμˆ˜μ  6-7자리)
double
8λ°”μ΄νŠΈ
μ•½ Β±1.8 Γ— 10^308 (μ†Œμˆ˜μ  15-16자리)
char
2λ°”μ΄νŠΈ
0 ~ 65,535 (μœ λ‹ˆμ½”λ“œ)
boolean
1λ°”μ΄νŠΈ
true λ˜λŠ” false

μ°Έμ‘° μžλ£Œν˜•

μ°Έμ‘°ν˜•(Reference Type)
μ„€λͺ…
클래슀(Class)
객체λ₯Ό μ •μ˜ν•˜λŠ” 섀계도 (String, Integer λ“±)
μΈν„°νŽ˜μ΄μŠ€(Interface)
ν΄λž˜μŠ€κ°€ κ΅¬ν˜„ν•΄μ•Ό ν•˜λŠ” κΈ°λŠ₯듀을 μ •μ˜
λ°°μ—΄(Array)
같은 νƒ€μž…μ˜ μ—¬λŸ¬ 데이터λ₯Ό μ €μž₯ν•˜λŠ” ꡬ쑰
μ—΄κ±°ν˜•(Enum)
μƒμˆ˜ 집합을 μ •μ˜ν•˜λŠ” 데이터 νƒ€μž…
κΈ°λ³Έν˜•μ€ μ‹€μ œ 값을 μ €μž₯ν•˜κ³ , μ°Έμ‘°ν˜•μ€ 객체의 λ©”λͺ¨λ¦¬ μ£Όμ†Œ(μ°Έμ‘°)λ₯Ό μ €μž₯ν•©λ‹ˆλ‹€.

λ³€μˆ˜ μ„ μ–Έ 및 μ΄ˆκΈ°ν™”

λ³€μˆ˜ μ„ μ–Έ

λ³€μˆ˜ 선언은 ν”„λ‘œκ·Έλž¨μ—μ„œ μ‚¬μš©ν•  λ³€μˆ˜λ₯Ό μƒμ„±ν•˜λŠ” κ³Όμ •μž…λ‹ˆλ‹€.
λ³€μˆ˜λ₯Ό μ„ μ–Έν•  λ•ŒλŠ” 데이터 νƒ€μž…κ³Ό λ³€μˆ˜λͺ…을 λͺ…μ‹œν•΄μ•Ό ν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 μ»΄ν“¨ν„°λŠ” λ©”λͺ¨λ¦¬μ— ν•΄λ‹Ή νƒ€μž…μ˜ 데이터λ₯Ό μ €μž₯ν•  곡간을 ν• λ‹Ήν•©λ‹ˆλ‹€.

μ΄ˆκΈ°ν™”

μ΄ˆκΈ°ν™”λž€ λ³€μˆ˜μ— 졜초둜 값을 ν• λ‹Ήν•˜λŠ” κ³Όμ •μž…λ‹ˆλ‹€.
λ³€μˆ˜λ₯Ό μ„ μ–Έν•œ 후에 처음으둜 값을 μ €μž₯ν•˜λŠ” κ²ƒμœΌλ‘œ, 이λ₯Ό 톡해 λ³€μˆ˜κ°€ λ©”λͺ¨λ¦¬μ—μ„œ νŠΉμ • 값을 κ°€μ§€κ²Œ λ©λ‹ˆλ‹€. μ΄ˆκΈ°ν™”ν•˜μ§€ μ•Šμ€ λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜λ©΄ 였λ₯˜κ°€ λ°œμƒν•˜κ±°λ‚˜ μ˜ˆμΈ‘ν•  수 μ—†λŠ” 값이 λ‚˜μ˜¬ 수 μžˆμŠ΅λ‹ˆλ‹€.
// λ³€μˆ˜ μ„ μ–Έ int number; String name; // λ³€μˆ˜ μ΄ˆκΈ°ν™” number = 10; name = "홍길동"; // μ„ μ–Έκ³Ό μ΄ˆκΈ°ν™” λ™μ‹œμ— int age = 25;
Java
볡사

λ³€μˆ˜μ˜ μŠ€μ½”ν”„(Scope)

λ³€μˆ˜κ°€ ν”„λ‘œκ·Έλž¨ λ‚΄μ—μ„œ μ ‘κ·Ό κ°€λŠ₯ν•œ λ²”μœ„λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€.
β€’
μΈμŠ€ν„΄μŠ€ λ³€μˆ˜: 클래슀 λ‚΄λΆ€, λ©”μ†Œλ“œ 외뢀에 μ„ μ–Έλœ λ³€μˆ˜
β€’
클래슀 λ³€μˆ˜(static): static ν‚€μ›Œλ“œκ°€ 뢙은 λ³€μˆ˜
β€’
지역 λ³€μˆ˜: λ©”μ†Œλ“œ 내뢀에 μ„ μ–Έλœ λ³€μˆ˜
μŠ€μ½”ν”„ μœ ν˜•
μ„ μ–Έ μœ„μΉ˜
생λͺ… μ£ΌκΈ°
μ ‘κ·Ό 방법
μΈμŠ€ν„΄μŠ€ λ³€μˆ˜
클래슀 λ‚΄λΆ€, λ©”μ†Œλ“œ μ™ΈλΆ€
객체가 생성될 λ•Œ μƒμ„±λ˜κ³ , 객체가 μ†Œλ©Έλ  λ•ŒκΉŒμ§€ μœ μ§€
객체λ₯Ό 톡해 μ ‘κ·Ό
클래슀 λ³€μˆ˜(static)
클래슀 λ‚΄λΆ€, static ν‚€μ›Œλ“œ μ‚¬μš©
ν΄λž˜μŠ€κ°€ λ‘œλ“œλ  λ•Œ μƒμ„±λ˜κ³ , ν”„λ‘œκ·Έλž¨μ΄ μ’…λ£Œλ  λ•ŒκΉŒμ§€ μœ μ§€
클래슀 μ΄λ¦„μœΌλ‘œ 직접 μ ‘κ·Ό κ°€λŠ₯
지역 λ³€μˆ˜
λ©”μ†Œλ“œ λ‚΄λΆ€
λ©”μ†Œλ“œκ°€ 호좜될 λ•Œ μƒμ„±λ˜κ³ , λ©”μ†Œλ“œ 싀행이 λλ‚˜λ©΄ μ†Œλ©Έ
μ„ μ–Έλœ 블둝 λ‚΄μ—μ„œλ§Œ μ ‘κ·Ό κ°€λŠ₯
public class ScopeExample { // μΈμŠ€ν„΄μŠ€ λ³€μˆ˜ int instanceVar = 10; // 클래슀 λ³€μˆ˜(static) static int staticVar = 20; public void method() { // 지역 λ³€μˆ˜ int localVar = 30; System.out.println(localVar); // 지역 λ³€μˆ˜ μ ‘κ·Ό System.out.println(instanceVar); // μΈμŠ€ν„΄μŠ€ λ³€μˆ˜ μ ‘κ·Ό System.out.println(staticVar); // 클래슀 λ³€μˆ˜ μ ‘κ·Ό } }
Java
볡사

λ©”μ†Œλ“œ (Methods)

νŠΉμ • μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” μ½”λ“œμ˜ μ§‘ν•©μž…λ‹ˆλ‹€.

λ©”μ†Œλ“œ ꡬ쑰

μ ‘κ·Όμ œμ–΄μž λ°˜ν™˜νƒ€μž… λ©”μ†Œλ“œμ΄λ¦„(λ§€κ°œλ³€μˆ˜) { // λ©”μ†Œλ“œ λ³Έλ¬Έ return λ°˜ν™˜κ°’; // λ°˜ν™˜ νƒ€μž…μ΄ voidκ°€ μ•„λ‹Œ 경우 }
Java
볡사

λ©”μ†Œλ“œ ꡬ성 μš”μ†Œ

ꡬ성 μš”μ†Œ
μ„€λͺ…
μ˜ˆμ‹œ
μ ‘κ·Όμ œμ–΄μž (Access Modifier)
λ©”μ†Œλ“œμ˜ μ ‘κ·Ό κ°€λŠ₯ λ²”μœ„λ₯Ό κ²°μ •
public, private, protected, default(μ—†μŒ)
λ°˜ν™˜νƒ€μž… (Return Type)
λ©”μ†Œλ“œκ°€ μž‘μ—… ν›„ λ°˜ν™˜ν•˜λŠ” λ°μ΄ν„°μ˜ νƒ€μž…
int, String, boolean, void λ“±
λ§€κ°œλ³€μˆ˜ (Parameters)
λ©”μ†Œλ“œ 싀행에 ν•„μš”ν•œ 데이터λ₯Ό μ™ΈλΆ€μ—μ„œ λ°›κΈ° μœ„ν•œ λ³€μˆ˜
int num, String name, Person p λ“±
return
λ©”μ†Œλ“œμ˜ 결과값을 ν˜ΈμΆœν•œ 곳으둜 λ°˜ν™˜
return 10; return "Hello"; return true;
void
λ°˜ν™˜κ°’μ΄ μ—†μŒμ„ μ˜λ―Έν•˜λŠ” λ°˜ν™˜ νƒ€μž…
public void printInfo() { ... }
각 μ ‘κ·Όμ œμ–΄μžμ˜ νŠΉμ§•κ³Ό λ²”μœ„λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€
μ ‘κ·Όμ œμ–΄μž
클래슀 λ‚΄λΆ€
같은 νŒ¨ν‚€μ§€
ν•˜μœ„ 클래슀
μ™ΈλΆ€ 클래슀
public
O
O
O
O
protected
O
O
O
X
default(μ—†μŒ)
O
O
X
X
private
O
X
X
X

λ©”μ†Œλ“œ 예제

// 두 수λ₯Ό λ”ν•˜λŠ” λ©”μ†Œλ“œ public int add(int a, int b) { return a + b; } // λ°˜ν™˜κ°’μ΄ μ—†λŠ” λ©”μ†Œλ“œ public void printMessage(String message) { System.out.println(message); } // 정적(static) λ©”μ†Œλ“œ public static double calculateAverage(double[] numbers) { double sum = 0; for (double number : numbers) { sum += number; } return sum / numbers.length; }
Java
볡사

λ©”μ†Œλ“œ μ •μ˜ - 4가지 ν˜•νƒœ

ν˜•νƒœ
λ§€κ°œλ³€μˆ˜
λ°˜ν™˜κ°’
νŠΉμ§•
1. λ§€κ°œλ³€μˆ˜ X, λ°˜ν™˜κ°’ X
μ—†μŒ
μ—†μŒ (void)
λ‹¨μˆœ μ‹€ν–‰ μž‘μ—…μ— 적합
2. λ§€κ°œλ³€μˆ˜ O, λ°˜ν™˜κ°’ X
있음
μ—†μŒ (void)
μž…λ ₯ 데이터λ₯Ό μ²˜λ¦¬ν•˜λŠ” μž‘μ—…μ— 적합
3. λ§€κ°œλ³€μˆ˜ X, λ°˜ν™˜κ°’ O
μ—†μŒ
있음
μΌκ΄€λœ κ²°κ³Όλ₯Ό λ°˜ν™˜ν•˜λŠ” μž‘μ—…μ— 적합
4. λ§€κ°œλ³€μˆ˜ O, λ°˜ν™˜κ°’ O
있음
있음
μž…λ ₯을 λ°›μ•„ 처리 ν›„ κ²°κ³Όλ₯Ό λ°˜ν™˜ν•˜λŠ” μž‘μ—…μ— 적합
각 λ©”μ†Œλ“œ ν˜•νƒœμ˜ μ˜ˆμ‹œ:
// 1. λ§€κ°œλ³€μˆ˜ X, λ°˜ν™˜κ°’ X public void printHello() { System.out.println("Hello!"); } // 2. λ§€κ°œλ³€μˆ˜ O, λ°˜ν™˜κ°’ X public void printMessage(String message) { System.out.println(message); } // 3. λ§€κ°œλ³€μˆ˜ X, λ°˜ν™˜κ°’ O public int getCurrentYear() { return 2025; } // 4. λ§€κ°œλ³€μˆ˜ O, λ°˜ν™˜κ°’ O public int add(int a, int b) { return a + b; }
Java
볡사

λ©”μ†Œλ“œ μ˜€λ²„λ‘œλ”©(Method Overloading)

같은 μ΄λ¦„μ˜ λ©”μ†Œλ“œλ₯Ό λ§€κ°œλ³€μˆ˜μ˜ νƒ€μž…, 개수, μˆœμ„œλ₯Ό λ‹€λ₯΄κ²Œ ν•˜μ—¬ μ—¬λŸ¬ 개 μ •μ˜ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.
public int add(int a, int b) { return a + b; } public double add(double a, double b) { return a + b; } public int add(int a, int b, int c) { return a + b + c; }
Java
볡사
λ©”μ†Œλ“œ μ˜€λ²„λ‘œλ”©μ€ μžλ°”μ˜ νŠΉμ§•μΈ λ‹€ν˜•μ„±μ„ κ΅¬ν˜„ν•œ κ°œλ…μž…λ‹ˆλ‹€. 같은 μ΄λ¦„μ˜ λ©”μ†Œλ“œλ₯Ό μ—¬λŸ¬ ν˜•νƒœλ‘œ μ‚¬μš©ν•  수 있게 ν•¨μœΌλ‘œμ¨ μ½”λ“œμ˜ 가독성과 μœ μ§€λ³΄μˆ˜μ„±μ„ λ†’μž…λ‹ˆλ‹€.
λ©”μ†Œλ“œ μ˜€λ²„λ‘œλ”©μ˜ μž₯점:
β€’
λΉ„μŠ·ν•œ κΈ°λŠ₯을 ν•˜λŠ” λ©”μ†Œλ“œλ“€μ— 같은 이름을 μ‚¬μš©ν•˜μ—¬ 일관성을 μœ μ§€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
β€’
λ§€κ°œλ³€μˆ˜λ§Œ λ‹€λ₯΄κ³  λ©”μ†Œλ“œ 이름이 κ°™μ•„ μ½”λ“œλ₯Ό μ§κ΄€μ μœΌλ‘œ 이해할 수 μžˆμŠ΅λ‹ˆλ‹€.
β€’
λ©”μ†Œλ“œ 호좜 μ‹œ μ μ ˆν•œ λ©”μ†Œλ“œκ°€ μžλ™μœΌλ‘œ μ„ νƒλ˜μ–΄ νŽΈλ¦¬ν•©λ‹ˆλ‹€.
λ©”μ†Œλ“œ μ˜€λ²„λ‘œλ”©μ€ λ°˜ν™˜ νƒ€μž…λ§Œ λ‹€λ₯΄κ²Œ μ •μ˜ν•  수 μ—†μœΌλ©°, λ°˜λ“œμ‹œ λ§€κ°œλ³€μˆ˜μ˜ νƒ€μž…, 개수, μˆœμ„œ 쀑 ν•˜λ‚˜ 이상이 달라야 ν•©λ‹ˆλ‹€.