Java

[Java] 클래슀(Class) - λ°±κΈ°μ„  라이브 μŠ€ν„°λ””

ukkkk7 2024. 4. 10. 14:13
728x90
λ°˜μ‘ν˜•

πŸ“– λͺ©ν‘œ

μžλ°”μ˜ Class에 λŒ€ν•΄ ν•™μŠ΅ν•˜μ„Έμš”.

ν•™μŠ΅ν•  것 (ν•„μˆ˜)

  • 클래슀 μ •μ˜ν•˜λŠ” 방법
  • 객체 λ§Œλ“œλŠ” 방법 (new ν‚€μ›Œλ“œ μ΄ν•΄ν•˜κΈ°)
  • λ©”μ„œλ“œ μ •μ˜ν•˜λŠ” 방법
  • μƒμ„±μž μ •μ˜ν•˜λŠ” 방법
  • this ν‚€μ›Œλ“œ μ΄ν•΄ν•˜κΈ°

 

πŸ” ν΄λž˜μŠ€λž€ ?

클래슀(Class)λŠ” 객체 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ°(OOP)μ—μ„œ νŠΉμ • 객체λ₯Ό μƒμ„±ν•˜κΈ° μœ„ν•΄ λ³€μˆ˜μ™€ λ©”μ†Œλ“œλ₯Ό μ •μ˜ν•˜λŠ” μΌμ’…μ˜ 섀계도 ν˜Ήμ€ 틀이닀.

객체(Object) ?

λ©΄μ ‘μ—μ„œ 객체(Object)κ°€ λ­”μ§€ μ •μ˜ν•  수 μžˆλƒλŠ” μ§ˆλ¬Έμ„ λ°›μ•˜μ„ λ•Œ 머릿속이 ν•˜μ–˜μ§€λ©΄μ„œ νš‘μ„€μˆ˜μ„€ν•˜λ©° λŒ€λ‹΅ν–ˆλ˜ κ²½ν—˜μ΄ μžˆλ‹€.

객체(Object)의 사전상 μ˜λ―ΈλŠ” μ•„λž˜μ™€ κ°™λ‹€.

  • 1.λͺ…사 μ˜μ‚¬λ‚˜ ν–‰μœ„κ°€ λ―ΈμΉ˜λŠ” λŒ€μƒ.
  • 2.λͺ…사 λ¬Έμž₯ λ‚΄μ—μ„œ λ™μ‚¬μ˜ ν–‰μœ„κ°€ λ―ΈμΉ˜λŠ” λŒ€μƒ.
  • 3.λͺ…사 μž‘μš©μ˜ λŒ€μƒμ΄ λ˜λŠ” μͺ½.

즉 객체(Object)λŠ” μ–΄λ– ν•œ ν–‰μœ„λ‚˜ μ†μ„±μ˜ κΈ°λŠ₯을 κ°€μ§€λŠ” λŒ€μƒμœΌλ‘œ μš°λ¦¬κ°€ μ‹€μƒν™œμ—μ„œ 인식할 수 μžˆλŠ” 사물이라고 생각할 수 μžˆλ‹€.

컴퓨터 κ³΅ν•™μ˜ κ΄€μ μ—μ„œ μ΄λŸ¬ν•œ 객체의 μƒνƒœμ™€ ν–‰μœ„λ₯Ό κ΅¬μ²΄ν™”ν•˜μ—¬ ν”„λ‘œκ·Έλž˜λ°μ„ ν•˜λŠ”κ²ƒμ„ 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°(OOP)라고 이해할 수 μžˆλ‹€.

 

 

πŸ” 객체λ₯Ό λ§Œλ“œλŠ” 방법(new ν‚€μ›Œλ“œμ— λŒ€ν•œ 이해)

객체λ₯Ό μƒμ„±ν•˜κΈ° μœ„ν•΄μ„œλŠ” μ•„λž˜μ™€κ°™μ΄ new ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•œλ‹€.

Car car = new Car();

 

new ν‚€μ›Œλ“œλ‘œ μƒμ„±ν•œ κ°μ²΄λŠ” λ©”λͺ¨λ¦¬ ꡬ쑰상 Heapμ˜μ—­μ— μ˜¬λΌκ°€κ³  μ €μž₯된 μ£Όμ†Œκ°’μ„ λ°˜ν™˜ν•΄μ€€λ‹€.

λ”°λΌμ„œ carλΌλŠ” λ³€μˆ˜λŠ” new ν‚€μ›Œλ“œλ‘œ μƒμ„±ν•œ 객체의 μ£Όμ†Œκ°’μ„ μ°Έμ‘°ν•˜λŠ” ν˜•νƒœκ°€ λœλ‹€. 

 

 

πŸ”λ©”μ†Œλ“œλ₯Ό μ •μ˜ν•˜λŠ” 방법

 

Classλ‚΄μ—μ„œλŠ” 속성을 ν‘œν˜„ν•˜λŠ” ν•„λ“œ(Field)와 κΈ°λŠ₯을 ν‘œν˜„ν•˜λŠ” λ©”μ†Œλ“œ(Method)λ₯Ό κ°€μ§„λ‹€.

 

λ©”μ†Œλ“œ(Method)λŠ” νŠΉμ • μž‘μ—…μ„ μˆ˜ν–‰ν•˜κΈ° μœ„ν•œ λͺ…λ Ήλ¬Έμ˜ μ§‘ν•©μœΌλ‘œ λ³Ό 수 μžˆλ‹€. 

μœ„μ™€κ°™μ΄ λ©”μ†Œλ“œ (Method)λ₯Ό μ •μ˜ν•˜λŠ” μ΄μœ λŠ” 반볡적으둜 μ‚¬μš©λ˜λŠ” μ½”λ“œλ₯Ό λ©”μ†Œλ“œ ν•˜λ‚˜λ‘œ μ •μ˜ν•˜μ—¬ μ—¬λŸ¬κ³³μ—μ„œ μž¬μ‚¬μš©ν•  수 있고 μ—¬λŸ¬κ³³μ—μ„œ μ‚¬μš©λ˜λŠ” λ©”μ†Œλ“œλŠ” ν•΄λ‹Ή λ©”μ†Œλ“œ ν•˜λ‚˜λ§Œ μˆ˜μ •ν•˜λ©΄ λ˜κΈ°λ•Œλ¬Έμ— μœ μ§€λ³΄μˆ˜ μΈ‘λ©΄μ—μ„œλ„ μœ μš©ν•˜λ‹€.

 

 λ©”μ†Œλ“œλ₯Ό μž‘μ„±ν• λ•ŒλŠ” ν•˜λ‚˜μ˜ κΈ°λŠ₯λ§Œμ„ μˆ˜ν–‰ν•˜λ„λ‘ μž‘μ„±ν•˜λŠ” 것이 μ’‹λ‹€.

 

 

λ©”μ†Œλ“œλŠ” μœ„μ™€κ°™μ€ κ΅¬μ„±μœΌλ‘œ μž‘μ„±ν•΄μ•Ό ν•œλ‹€.

 

  public class Car {
	public void stop(){
    	System.out.println("μ°¨λ₯Ό 멈μΆ₯λ‹ˆλ‹€.")
    }
	public void run(){
    	System.out.println("μ°¨λ₯Ό μ›€μ§μž…λ‹ˆλ‹€.")    
    }
  }
  
  public class CarMain{    
      public static void main(String[] args) {
        Car car = new Car();
        car.run;
        car.stop;
      }
  }

 

μœ„μ˜ μ˜ˆμ‹œμ—μ„œλŠ” CarλΌλŠ” 클래슀λ₯Ό μ •μ˜ν•˜κ³  μ•ˆμ— run(), stop()μ΄λΌλŠ” 차의 κΈ°λŠ₯을 μ •μ˜ν•œ λ©”μ†Œλ“œλ₯Ό μž‘μ„±ν–ˆλ‹€.

이후 new ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•΄ car객체λ₯Ό λ§Œλ“€κ³  carλ³€μˆ˜μ— μ €μž₯된 μ£Όμ†Œκ°’μ„ 톡해 Car ν΄λž˜μŠ€λ‚΄μ— μ •μ˜λ˜μ–΄ μžˆλŠ” λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜κ³  μžˆλ‹€.

 

 

πŸ”μƒμ„±μž μ •μ˜ν•˜λŠ” 방법

 

  public class Car {
  	
    String name;
  	
	public void stop(){
    	System.out.println("μ°¨λ₯Ό 멈μΆ₯λ‹ˆλ‹€.")
    }
	public void run(){
    	System.out.println("μ°¨λ₯Ό μ›€μ§μž…λ‹ˆλ‹€.")    
    }
    
    public Car(){
    
    }
    
    public Car(String name){
    	this.name = name;
    }
    
  }
  
  public class CarMain{    
      public static void main(String[] args) {
        Car car = new Car();
		Car car = new Car("람보λ₯΄κΈ°λ‹ˆ");
		
      }
  }

 

μœ„μ™€κ°™μ΄ μƒμ„±μžλ₯Ό μ •μ˜ν•˜λŠ” λ°©λ²•μ—λŠ” κΈ°λ³Έμƒμ„±μžμ™€ λ§€κ°œλ³€μˆ˜λ₯Ό κ°–λŠ” μƒμ„±μžλ‘œ μ •μ˜ν•  수 μžˆλ‹€.

만일 Car 클래슀 λ‚΄μ—μ„œ κΈ°λ³Έ μƒμ„±μžλ₯Ό λͺ…μ‹œν•˜μ§€ μ•Šμ•˜λ‹€λ©΄ new ν‚€μ›Œλ“œλ₯Ό 톡해 객체λ₯Ό 생성할 λ•Œ μ»΄νŒŒμΌλŸ¬κ°€ μžλ™μœΌλ‘œ κΈ°λ³Έ μƒμ„±μžλ₯Ό μƒμ„±ν•œλ‹€. 

ν•˜μ§€λ§Œ 인자λ₯Ό κ°–λŠ” μƒμ„±μžλ₯Ό μ •μ˜ν–ˆλ‹€λ©΄ μ»΄νŒŒμΌλŸ¬λŠ” κΈ°λ³Έ μƒμ„±μžλ₯Ό μžλ™μœΌλ‘œ 생성해주지 μ•ŠκΈ° λ•Œλ¬Έμ— 컴파일 였λ₯˜κ°€ λ‚œλ‹€.

였λ₯˜κ°€ λ°œμƒν•˜λŠ” μ΄μœ λŠ” ν΄λž˜μŠ€λ‚΄μ— κΈ°λ³Έ μƒμ„±μžκ°€ μ •μ˜λ˜μ–΄ μžˆμ–΄μ•Όν•˜κΈ° λ•Œλ¬Έμ΄λ‹€.

 

 

πŸ”this ν‚€μ›Œλ“œ

this ν‚€μ›Œλ“œλŠ” μžκΈ°μžμ‹ μ„ 가리킨닀.

  public class Car {
  	
    String name;
  	
    public Car(){
    	System.out.println("this 호좜")
    }
    public Car(String name){
    	this();
    	this.name = name;
    }
    
  }
  
  public class CarMain{    
      public static void main(String[] args) {
		Car car = new Car("람보λ₯΄κΈ°λ‹ˆ");
		
      }
  }

 

ν•΄λ‹Ή μ½”λ“œμ—μ„œ carλΌλŠ” 객체λ₯Ό 생성할 λ•Œ "람보λ₯΄κΈ°λ‹ˆ"λΌλŠ” 차의 이름을 λ§€κ°œλ³€μˆ˜λ‘œ μ „λ‹¬ν–ˆλ‹€.

μœ„μ˜ 인자λ₯Ό λ°›λŠ” μƒμ„±μžμ˜ name μΈμžμ—λŠ” "람보λ₯΄κΈ°λ‹ˆ"λΌλŠ” 이름이 μ „λ‹¬λ˜κ³  thisλΌλŠ” ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•΄ Car클래슀의 μΈμŠ€ν„΄μŠ€μ— 이름을 μ €μž₯ν•œλ‹€.

즉 thisλŠ” μžκΈ°μžμ‹ μ˜ ν•„λ“œ ν˜Ήμ€ μƒμ„±μžλ₯Ό κ°€λ¦¬ν‚€λŠ” ν‚€μ›Œλ“œλ‘œ μ‚¬μš©λœλ‹€. 

 

 

 

 

728x90
λ°˜μ‘ν˜•