개발/Java

λ³€μˆ˜ 이야기(1) - μžλ°”μ˜ 4가지 λ³€μˆ˜

daramii 2022. 3. 17. 17:07

봄을 λ§žμ•„ λ°”κΏ”λ΄€μŠ΅λ‹ˆλ‹€ :)

 

 

μ•ˆλ…•ν•˜μ„Έμš”, λͺ½λ°λΈŒμž…λ‹ˆλ‹€.

μ˜€λŠ˜μ€ μžλ°”μ˜ λ³€μˆ˜μ— λŒ€ν•΄ 이야기 ν•΄λ³ΌκΉŒν•©λ‹ˆλ‹€.

 

ν•΄λ‹Ή λ‚΄μš©μ€ 'μžλ°”μ˜ μ‹ ' chapter4λ₯Ό 기초둜 μž‘μ„±ν–ˆμœΌλ©°,

이λ₯Ό 기반으둜 제 λ‚˜λ¦„μ˜ μš”μ•½ 정리λ₯Ό ν•œ κΈ€μž…λ‹ˆλ‹€.

 

μžμ„Έν•œ 곡뢀λ₯Ό μœ„ν•΄μ„œλŠ”

λ¨Όμ € 책을 읽고, μ •λ¦¬μš©μœΌλ‘œ μ°Έκ³ ν•˜μ‹œλ©΄ 베슀트일 것 κ°™μŠ΅λ‹ˆλ‹€!

 

 

4가지 λ³€μˆ˜


- 지역 λ³€μˆ˜(local variables)
- 맀개 λ³€μˆ˜(parameters)
- μΈμŠ€ν„΄μŠ€ λ³€μˆ˜(instance variables)
- 클래슀 λ³€μˆ˜(class variables)

 

 

μžλ°”μ—λŠ” μœ„μ™€ 같이 4가지 λ³€μˆ˜κ°€ μžˆμŠ΅λ‹ˆλ‹€.

μžμ„Ένžˆ ν’€μ–΄ μ„€λͺ…을 적기 λ³΄λ‹€λŠ” μš”μ•½ 정리λ₯Ό μœ„ν•œ κΈ€μ΄λ―€λ‘œ, ν•΄λ‹Ή λ‚΄μš©μ„ ν•œλˆˆμ— 보기 μ‰½κ²Œ ν‘œλ‘œ μž‘μ„±ν•΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€. 

 

μ’…λ₯˜ μ„ μ–Έ μœ„μΉ˜ 생λͺ… μ£ΌκΈ°
지역 λ³€μˆ˜(local variables) - μ€‘κ΄„ν˜Έ λ‚΄ - 지역 λ³€μˆ˜λ₯Ό μ„ μ–Έν•œ μ€‘κ΄„ν˜Έ λ‚΄μ—μ„œλ§Œ 유효
맀개 λ³€μˆ˜(parameters) - λ©”μ†Œλ“œ 이름 μ˜† μ†Œκ΄„ν˜Έ λ‚΄ - λ©”μ†Œλ“œκ°€ 호좜될 λ•Œ 생λͺ…이 μ‹œμž‘
- λ©”μ†Œλ“œκ°€ λλ‚˜λ©΄ μ†Œλ©Έ
μΈμŠ€ν„΄μŠ€ λ³€μˆ˜(instance variables) - λ©”μ†Œλ“œ λ°–, 클래슀 μ•ˆ
- static μ—†μ–΄μ•Ό 함
- 객체가 생성될 λ•Œ 생λͺ…이 μ‹œμž‘
- κ·Έ 객체λ₯Ό μ°Έμ‘°ν•˜κ³  μžˆλŠ” λ‹€λ₯Έ 객체가 μ—†μœΌλ©΄ μ†Œλ©Έ
클래슀 λ³€μˆ˜(class variables) - λ©”μ†Œλ“œ λ°–, 클래슀 μ•ˆ
- static μžˆμ–΄μ•Ό 함
- ν΄λž˜μŠ€κ°€ 처음 호좜될 λ•Œ 생λͺ…이 μ‹œμž‘
- μžλ°” ν”„λ‘œκ·Έλž¨μ΄ 끝날 λ•Œ μ†Œλ©Έ

 

 

μ„ μ–Έ μœ„μΉ˜λ₯Ό κ°„λ‹¨νžˆ μ˜ˆμ‹œλ‘œ λ³΄μ—¬λ“œλ¦¬λ©΄ μ΄λ ‡μŠ΅λ‹ˆλ‹€. 

public class VariableTrpesKor {
  
  int instanceVariable;//μΈμŠ€ν„΄μŠ€λ³€μˆ˜
  static int classVariable;//ν΄λž˜μŠ€λ³€μˆ˜
  
  public void method(int parameter) { //λ§€κ°œλ³€μˆ˜
    int local Variable; //μ§€μ—­λ³€μˆ˜
  }
  
}

 

 

결둠적으둜,

'각 λ³€μˆ˜μ˜ 생λͺ…μ£ΌκΈ°κ°€ λ‹€λ₯΄κΈ° λ•Œλ¬Έμ— 이름을 이와 같이 λ‹€λ₯΄κ²Œ λΆ€λ₯΄λŠ” 것이닀' 라고 μ΄ν•΄ν•˜λ©΄ μ’‹κ² μŠ΅λ‹ˆλ‹€.

λ˜ν•œ 각 λ³€μˆ˜μ˜ μš©λ„κ°€ λ‹€λ₯Έ μ΄μœ λ„ μžˆμ„ 것 μž…λ‹ˆλ‹€.

 

 

 

νŠΉλ³„νžˆ, κ°€μž₯ 많이 μ“°λŠ” μ§€μ—­λ³€μˆ˜μ—μ„œ λ‹€μŒκ³Ό 같이 μ£Όμ˜ν•΄μ•Όν•  사항이 μžˆμŠ΅λ‹ˆλ‹€.

public void anotherMethod() {
	
    if(true) {
    	int localVariable;
    }
    
    if(true) {
    	int localVariable;
    }

}

 

첫번째 ifλ¬Έ μ•ˆμ— μžˆλŠ” localVariableκ³Ό λ‘λ²ˆμ§Έ ifλ¬Έ μ•ˆμ— μžˆλŠ” localVarible은 μ„œλ‘œ λ‹€λ₯Έ λ³€μˆ˜ μž…λ‹ˆλ‹€. 이름이 κ°™μ§€λ§Œ, ν‘œμ—μ„œ 보듯이 μ€‘κ΄„ν˜Έκ°€ λλ‚¨μœΌλ‘œμ¨ μžμ‹ μ˜ 생λͺ…μ£ΌκΈ°κ°€ 끝났기 λ•Œλ¬Έμž…λ‹ˆλ‹€. 즉, μ„œλ‘œ λ‹€λ₯Έ μ€‘κ΄„ν˜Έμ•ˆμ— μžˆμœΌλ―€λ‘œ μ„œλ‘œ 상관 μ—†λŠ” λ³€μˆ˜μž…λ‹ˆλ‹€.

 

 

κ·Έλ ‡λ‹€λ©΄, 밑에 μ˜ˆμ‹œλŠ” μ–΄λ–¨κΉŒμš”? 

 

public void anotherMethod() {
	
    if(true) {
    
    	int localVariable; //1번
        
        if(true) {
        	int localVariable; //2번
        }
     }

}

 

 

정닡은 "μ΄λ ‡κ²Œ μ‚¬μš©ν•˜λ©΄ μ ˆλŒ€ μ•ˆλœλ‹€." μž…λ‹ˆλ‹€.

 

1번의 localVariable의 생λͺ…μ£ΌκΈ°λŠ” 아직 μ€‘κ΄„ν˜Έκ°€ λ‹«νžˆμ§€ μ•Šμ•„, μ§€μ†λ˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 그런데 κ·Έ μ•ˆμ—μ„œ λ‹€μ‹œ localVariable을 μ„ μ–Έν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. ν•΄λ‹Ή μ†ŒμŠ€λ₯Ό μ»΄νŒŒμΌν•˜λ©΄ "localVariable is already defined in anotherMethod()" λΌλŠ” μ—λŸ¬ 메세지가 뜨며 컴파일 μ—λŸ¬κ°€ λ°œμƒν•˜κ²Œ λ©λ‹ˆλ‹€. 

 

λ”°λΌμ„œ, ν•˜λ‚˜μ˜ λ©”μ†Œλ“œμ—μ„œλŠ” ν•˜λ‚˜μ˜ μ΄λ¦„λ§Œ μ‚¬μš©ν•˜λ„λ‘ ꢌμž₯ν•©λ‹ˆλ‹€.

 

λ§ˆμ§€λ§‰μœΌλ‘œ λ³€μˆ˜μ˜ 이름 μ •μ˜ κ·œμΉ™μ„ μ •λ¦¬ν•˜κ³ , 이번 글은 λ§ˆμΉ˜κ² μŠ΅λ‹ˆλ‹€.

 

 

λ³€μˆ˜ 이름 μ •μ˜ κ·œμΉ™


- 길이의 μ œν•œμ€ μ—†λ‹€.
- 첫 λ¬ΈμžλŠ” μœ λ‹ˆμ½”λ“œ 문자, μ•ŒνŒŒλ²³, $(λ‹¬λŸ¬ν‘œμ‹œ, dollar sign), _(μ–Έλ”μŠ€μ½”μ–΄, underscore)만 올 수 μžˆλ”°. 그런데 보톡 λ³€μˆ˜ 이름은 일반적으둜 $와 _둜 μ‹œμž‘ν•˜μ§€ μ•ŠλŠ”λ‹€.
- λ‘λ²ˆμ§Έ λ¬ΈμžλΆ€ν„°λŠ” μœ λ‹ˆμ½”λ“œ 문자, μ•ŒνŒŒλ²³, 숫자, $, _쀑 μ•„λ¬΄κ²ƒμ΄λ‚˜ μ‚¬μš©ν•  수 μžˆλ”°.
- 보톡은 λ©”μ†Œλ“œ μ΄λ¦„μ²˜λŸΌ μ§€μ •ν•΄μ„œ μ‚¬μš©ν•œλ‹€. 첫 λ¬ΈμžλŠ” μ†Œλ¬Έμžλ‘œ μ‹œμž‘ν•˜λŠ” 단어이고, 두 번째 λ‹¨μ–΄μ˜ 첫 문자만 λŒ€λ¬Έμžλ‘œ μ‹œμž‘ν•˜λ©΄ λœλ‹€.
- μƒμˆ˜(constant value)의 κ²½μš°μ—λŠ” λͺ¨λ‘ λŒ€λ¬Έμžλ‘œ μ§€μ •ν•˜λ©°, 단어와 단어 μ‚¬μ΄μ—λŠ” _둜 ꡬ뢄을 ν•œλ‹€. μ—¬κΈ°μ„œ μƒμˆ˜λΌλŠ” 것은 μ ˆλŒ€ λ³€ν•˜μ§€ μ•ŠλŠ” 값을 이야기 ν•œλ‹€. λ”°λΌμ„œ, 계속 값이 λ³€ν•˜λŠ” 일반적인 λ³€μˆ˜λŠ” 이 _λ₯Ό 뢙이지 μ•ŠκΈ° λ°”λž€λ‹€.

 

 

 

Quiz


일반적인 λͺ…λͺ…κ·œμΉ™μ„ μ œλŒ€λ‘œ λ”°λΌμ„œ μ„ μ–Έλœ λ³€μˆ˜λ“€μ€ λͺ‡λ²ˆμΌκΉŒμš”?

 

1. godOfJava
2. #godOfJava
3. _god_Of_Java
4. god_of_java
5. BASIC_JAVA
6. godOfJava1
7. godOfJava2
8. 8thBook

λ‹΅ : 1, 5, 6, 7

 

 

 

 

λ‹€μŒκΈ€μ—μ„œλŠ” μžλ°”μ˜ νƒ€μž…(μžλ£Œν˜•)에 λŒ€ν•΄ μ •λ¦¬ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

κ°μ‚¬ν•©λ‹ˆλ‹€ :)