λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

#1 Language πŸ‘„/1-4 JAVA

[JAVA] 객체와 클래슀

객체

 

 

  • κ°μ²΄λž€ 물리적으둜 μ‘΄μž¬ν•˜κ±°λ‚˜ μΆ”μƒμ μœΌλ‘œ 생각할 수 μžˆλŠ” 것 쀑에 μžμ‹ μ˜ 속성 값을 κ°€μ§€κ³  μžˆλŠ” 것
  • κ°μ²΄λŠ” 속성과 λ™μž‘μ„ κ°€μ§€κ³  있음
물리적 객체

TV, 냉μž₯κ³ , μ°¨, 리λͺ¨μ»¨, 컴퓨터..

 

좔상적 객체

κ°•μ˜, μ£Όλ¬Έ...

 

객체의 예
μ‚¬λžŒ {
			λ‚˜μ΄
			μ‹ μž₯
			이름
			λ°₯을 λ¨ΉλŠ”λ‹€
			μž”λ‹€
			μ›ƒλŠ”λ‹€
}

 

객체와 클래슀의 관계
  • ν΄λž˜μŠ€λŠ” 객체의 섀계도
Class Human{
			int age;            // 속성
			int height;
			String name;
			void eat() {}       // κΈ°λŠ₯
			void sleep() {}
			void smile() {}
}

 


클래슀

  • 객체λ₯Ό λ§Œλ“œλŠ” 섀계도 (ν…œν”Œλ¦Ώ)
  • 객체가 κ°–κ³  μžˆλŠ” 데이터와 객체에 ν–‰ν•  수 μžˆλŠ” λ™μž‘μ΄ 무엇인지 κ·œμ •
클래슀 λͺ…λͺ… κ·œμΉ™
  • ν•˜λ‚˜ μ΄μƒμ˜ 문자둜 이루어져야 됨
  • 첫 κΈ€μžμ—λŠ” μˆ«μžκ°€ 올 수 μ—†λ‹€
  • νŠΉμˆ˜λ¬ΈμžλŠ” $, _ 이외 μ‚¬μš© λΆˆκ°€λŠ₯
  • μžλ°” μ˜ˆμ•½μ–΄λŠ” 클래슀 λͺ…μœΌλ‘œ μ‚¬μš©ν•  수 μ—†μŒ
  • 보편적인 클래슀 λͺ…은 첫 κΈ€μžλŠ” λŒ€λ¬Έμž λ‚˜λ¨Έμ§€λŠ” μ†Œλ¬Έμž
ex) public Class Car {    }

 

클래슀의 ꡬ쑰
public class 클래슀λͺ… {
//ν•„λ“œ μ •μ˜: 객체의 속성을 λ‚˜νƒ€λƒ„
	μžλ£Œν˜• ν•„λ“œ1;
	μžλ£Œν˜• ν•„λ“œ2;

//λ©”μ†Œλ“œ μ •μ˜: 객체의 λ™μž‘μ„ λ‚˜νƒ€λƒ„
	λ°˜ν™˜ν˜• λ©”μ†Œλ“œ1();
	λ°˜ν™˜ν˜• λ©”μ†Œλ“œ2();
}

 

객체의 생성과 객체 μ΄ˆκΈ°ν™”

new ν‚€μ›Œλ“œλ₯Ό μ΄μš©ν•˜μ—¬ μ§„ν–‰ ex) Car car = new car( );

 

// Tv 클래슀 생성 (main ν•¨μˆ˜ 없이 λ§Œλ“ λ‹€)
package Day02;

public class Tv {
	//객체의 속성 κ°’
	String company = "Samsung";
	int prise = 100000;
	int size = 47;
	int weight = 2000;
	
	//객체의 λ™μž‘
	void turnOn() {
		System.out.println("전원을 μΌ λ‹€.");
	}
	void turnOff() {
		System.out.println("전원을 λˆλ‹€.");
	}
	
	void changeChannel() {
		System.out.println("채널을 λ³€κ²½ν•œλ‹€.");
	}
	
	void changeVolume() {
		System.out.println("λ³Όλ₯¨μ„ μ‘°μ ˆν•œλ‹€.");
	
}
}
// Tv 클래슀 생성 ν›„ 생성
package Day02;

public class _06_useOftv {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// 1. 객체의 생성과 μ΄ˆκΈ°ν™”
		Tv tv = new Tv();
		
		//μƒμ„±λœ 객체의 μ†μ„±μ΄λ‚˜ λ©”μ†Œλ“œμ— μ ‘κ·Όν•  λ•ŒλŠ” -> 객체 λͺ…. 
		// 2. 객체 속성 κ°’ μ‚¬μš©
		System.out.println("Tv의 μ œμ‘°μ‚¬λŠ” " + tv.company + "μž…λ‹ˆλ‹€");
		System.out.println("Tv의 가격은 " + tv.prise + "μž…λ‹ˆλ‹€");
		System.out.println("Tv의 ν¬κΈ°λŠ” " + tv.size + "μž…λ‹ˆλ‹€");
		System.out.println("Tv의 λ¬΄κ²ŒλŠ” " + tv.weight + "μž…λ‹ˆλ‹€");
		
		// 3. 객체 λ©”μ†Œλ“œ(λ™μž‘) μ‹€ν–‰
		tv.turnOn();
		tv.changeChannel();
		tv.changeVolume();
		tv.turnOff();
	}

}

 

객체의 속성 (ν•„λ“œ)
  • ν˜„μž¬ 객체의 μƒνƒœ 값을 μ €μž₯ν•˜λŠ” λ³€μˆ˜, λ°°μ—΄, 객체
  • μ†μ„±μ˜ μ‚¬μš© → 객체 λͺ….속성 λͺ… (μ ‘κ·Όν•΄μ„œ μ‚¬μš©)

 

객체의 μƒμ„±μž λ©”μ†Œλ“œ
  • μƒμ„±μž λ©”μ†Œλ“œλŠ” 객체λ₯Ό 생성할 λ•Œ μ΄ˆκΈ°ν™”ν•΄μ£ΌλŠ” λ©”μ†Œλ“œ
    • Car car = new Car( );
  • μΈμŠ€ν„΄μŠ€ μƒμ„±μ‹œ μˆ˜ν–‰ν•  μž‘μ—…μ— μ‚¬μš©
  • κΈ°λ³Έ μƒμ„±μž(λ§€κ°œλ³€μˆ˜κ°€ μ—†λŠ” μƒμ„±μž) λ©”μ†Œλ“œμ˜ ν˜•νƒœ
  • κΈ°λ³Έ μƒμ„±μž λ©”μ†Œλ“œλŠ” 처음 클래슀λ₯Ό λ§Œλ“€λ©΄ μƒλž΅λ˜μ–΄ 있음
  • κΈ°λ³Έ μƒμ„±μž λ©”μ†Œλ“œμ˜ μ‚¬μš©
    • κΈ°λ³Έ μƒμ„±μž: λ§€κ°œλ³€μˆ˜κ°€ μ—†λŠ” μƒμ„±μž
    • 객체λ₯Ό 생성할 λ•Œ new ν‚€μ›Œλ“œ 뒀에 ν•¨κ»˜ 호좜
    • 이름이 클래슀 이름과 κ°™μ•„μ•Ό ν•œλ‹€
    • 리턴값이 μ—†λ‹€ (void μ•ˆλΆ™μž„)
    • λͺ¨λ“  ν΄λž˜μŠ€λŠ” λ°˜λ“œμ‹œ ν•œ 개 μ΄μƒμ˜ μƒμ„±μžλ₯Ό κ°€μ Έμ•Ό 함

 

μ‚¬μš©μž μ •μ˜ μƒμ„±μž λ©”μ†Œλ“œ
public 클래슀λͺ…(인자 κ°’1, 인자 κ°’2...) {
	속성 κ°’1 = 인자 κ°’1;
	속성 κ°’2 = 인자 κ°’2;
} 

// μ‚¬μš©μž μ •μ˜ μƒμ„±μž λ©”μ†Œλ“œ
// 전달받은 인자 κ°’μœΌλ‘œ 속성 값을 μ΄ˆκΈ°ν™”ν•  수 μžˆλ‹€
	public Tv(String com, int pri) {
		company = com;
		prise = pri;
		System.out.println("μ‚¬μš©μž μ •μ˜ μƒμ„±μž 호좜");

	}
// λ§€κ°œλ³€μˆ˜κ°€ μžˆλŠ” μƒμ„±μž
Tv tv = new Tv("Apple", 5000000); 
// com -> Apple    pri -> 5000000 둜 값이 변경됨

 

μ˜€λ²„λ‘œλ”©

기쑴에 μ—†λŠ” μƒˆλ‘œμš΄ λ©”μ†Œλ“œλ₯Ό μ •μ˜ν•˜λŠ” 것 (new)

LIST

'#1 Language πŸ‘„ > 1-4 JAVA' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[JAVA] λ©”μ†Œλ“œ  (0) 2022.11.06
[JAVA] this μƒμ„±μž, μ°Έμ‘° λ³€μˆ˜ this  (0) 2022.11.06
[JAVA] μ—΄κ±° νƒ€μž…(Enum)  (0) 2022.11.06
[JAVA] λ°°μ—΄ (Array)  (0) 2022.11.06
[JAVA] 반볡문  (0) 2022.07.21