yeony._.
πŸ’μ½©λΆ€πŸ’
yeony._.
전체 방문자
였늘
μ–΄μ œ
  • λΆ„λ₯˜ 전체보기 (99)
    • πŸ’»Programming (91)
      • β˜•οΈJava (19)
      • πŸ’½Oracle (21)
      • πŸ‘©‍🎨HTML&CSS (12)
      • 🎨 μ‹€μŠ΅ (4)
      • πŸƒ‍♀️JavaScript (25)
      • JSP (8)
      • πŸƒSpring (0)
      • πŸ₯§python (0)
      • API (0)
      • 😈Git (1)
    • 🀫Private (0)
      • -- (0)
      • + (0)
      • S (0)
      • P (0)
      • B (0)
    • 😎Project (4)
      • πŸ—“οΈwbs ν”„λ‘œμ νŠΈ (3)

λΈ”λ‘œκ·Έ 메뉴

  • ν™ˆ
  • νƒœκ·Έ
  • λ°©λͺ…둝

곡지사항

인기 κΈ€

νƒœκ·Έ

  • HTML #CSS #HTML이미지 #HTML이미지에글씨 #HTML이미지에이미지

졜근 λŒ“κΈ€

졜근 κΈ€

ν‹°μŠ€ν† λ¦¬

hELLO Β· Designed By μ •μƒμš°.
yeony._.

πŸ’μ½©λΆ€πŸ’

[JAVA]객체지ν–₯_좔상 클래슀
πŸ’»Programming/β˜•οΈJava

[JAVA]객체지ν–₯_좔상 클래슀

2022. 7. 26. 21:23

좔상 클래슀의 κ°œλ…κ³Ό 좔상 클래슀λ₯Ό μ‚¬μš©ν•˜μ—¬ μ •λ ¬ μ•Œκ³ λ¦¬μ¦˜ κ΅¬ν˜„πŸ€“

01. 좔상 클래슀

1. 좔상(abstract) λ©”μ†Œλ“œ 

μž¬μ •μ˜ν•  κ²ƒμœΌλ‘œ μ˜ˆμƒλ˜λŠ” λ©”μ†Œλ“œμ— λŒ€ν•΄ λ©”λͺ¨λ¦¬ λ‚­λΉ„ 없이 미리 호좜 κ³„νšμ„ μ„Έμ›Œλ‘κΈ° μœ„ν•΄ μž‘μ„±

ν•˜λ‚˜ μ΄μƒμ˜ 좔상 λ©”μ†Œλ“œλ₯Ό κ°€μ§€κ³  μžˆλŠ” ν΄λž˜μŠ€κ°€ 좔상 클래슀 

 

2. 좔상(abstract) 클래슀

μ‰½κ²Œ 말해 λ©”μ†Œλ“œ μ΄λ¦„λ§Œ λ§Œλ“€μ–΄λ†“κ³ , 아무것도 μ—†λŠ” 클래슀 (껍데기만 쑴재)

μ„ μ–ΈO, μ •μ˜X

 

νŠΉμ§•

final ν΄λž˜μŠ€λŠ” μžμ‹μ„ 갖을 수 μ—†μœΌλ―€λ‘œ λΆˆκ°€

좔상 λ©”μ†Œλ“œκ°€ 없어도 좔상 ν΄λž˜μŠ€κ°€ 될 수 μžˆμœΌλ‚˜, 좔상 λ©”μ†Œλ“œκ°€ μ—†λŠ” 좔상 ν΄λž˜μŠ€λŠ” 객체λ₯Ό μƒμ„±ν•˜λŠ” 것이 λΆˆκ°€λŠ₯함 

좔상 ν΄λž˜μŠ€λŠ” 객체λ₯Ό λ§Œλ“€ 수 μ—†μŒ 

 

➑ λŒ€ν‘œμ  좔상 클래슀: Number, Calendar λ“± 

 

 

02. 좔상 클래슀 

좔상 클래슀λ₯Ό μ‚¬μš©ν•˜μ—¬ μ •λ ¬ μ•Œκ³ λ¦¬μ¦˜ κ΅¬ν˜„ν•˜κΈ°βœŒοΈ

데이터 μ •λ ¬λ˜μ§€ μ•Šμ€ 데이터
κΈ°λŠ₯  λ°μ΄ν„°μ˜ κ°œμˆ˜λ₯Ό ν™•μΈν•˜λŠ” λ©”μ†Œλ“œ, ν¬κΈ°λ₯Ό λΉ„κ΅ν•˜λŠ” λ©”μ†Œλ“œ, λ‘ λ³€μˆ˜μ˜ λ‚΄μš©μ„ λ°”κΎΈλŠ” λ©”μ†Œλ“œ, μ •λ ¬ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜ 

➑ 선택, μ‚½μž…, 버블, 퀡 μ •λ ¬ λ“± λ‹€μ–‘ν•œ μ •λ ¬ μ•Œκ³ λ¦¬μ¦˜μ˜ κ΅¬ν˜„ 방법은 'μ •λ ¬ μ•Œκ³ λ¦¬μ¦˜' μ™Έμ—λŠ” 동일

상속을 μ΄μš©ν•  λ•Œ, λͺ¨λ“  λ©”μ†Œλ“œλ₯Ό 상속 λ°›λŠ”λ‹€λ©΄?

각 μ •λ ¬λ§ˆλ‹€ μ •λ ¬ μ•Œκ³ λ¦¬μ¦˜μ΄ λ‹€λ₯΄λ―€λ‘œ, λͺ¨λ“  μ •λ ¬ μ•Œκ³ λ¦¬μ¦˜μ€ ν•„μš”κ°€ μ—†μ–΄ λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•  ν•„μš”X

 

λ°˜λ“œμ‹œ ν•„μš”ν•œ λ©”μ†Œλ“œλŠ” λ§Œλ“€μ–΄μ£Όκ³ , 'μ •λ ¬ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜λ§ŒνΌμ€ ν•„μš”ν•˜κΈ΄ ν•œλ°, λ„ˆλ„€κ°€ λ§Œλ“€μ–΄!' λΌλŠ” 의미둜 μ΄λ¦„λ§Œ μ •μ˜ν•΄μ€Œ 

μžμ‹ 클래슀(각 μ •λ ¬ μ•Œκ³ λ¦¬μ¦˜)은 ν•„μš”ν•œ 것(반볡적인 것)만 κ°€μ Έλ‹€ μ“°κ³  좔상 클래슀둜 μ„ μ–Έλœ(μ •λ ¬ μ•Œκ³ λ¦¬μ¦˜)만 직접 κ΅¬ν˜„ν•  수 있음

 

package ch08.unit5;

public class Ex01_abstract {
	public static void main(String[] args) {

		int[] num = new int[] { 35, 8, 54, 19, 62, 52 };
		// SortINt ss = new SortInt(); // 컴파일 였λ₯˜. abstract ν΄λž˜μŠ€λŠ” 객체 생성 λΆˆκ°€
		// 좔상 ν΄λž˜μŠ€λŠ” λ°˜λ“œμ‹œ ν•˜μœ„ ν΄λž˜μŠ€κ°€ μ‘΄μž¬ν•˜κ³ , ν•˜μœ„ 클래슀λ₯Ό ν†΅ν•΄μ„œλ§Œ 객체 생성 κ°€λŠ₯

		SortInt select = new SelectionSort(); // μ—… μΊμŠ€νŒ…
		SortInt bubble = new BubbleSort(); // μ—… μΊμŠ€νŒ…

		// μ •λ ¬ μ „ 데이터
		System.out.print("Source Data: ");
		print(num);

		select.sort(num);
		// bubble.sort(num);

		// μ •λ ¬ ν›„ 데이터
		System.out.print("Sort Data: ");
		print(num);

	}

	private static void print(int[] value) {
		for (int i = 0; i < value.length; i++) {
			System.out.print(value[i] + " ");
		}
		System.out.println();

	}
}

abstract class SortInt {
	private int[] value;

	// 좔상 λ©”μ†Œλ“œ
	protected abstract void sorting();

	public void sort(int[] value) {
		this.value = value;

		sorting();
	}

	// λ°°μ—΄μ˜ 길이
	// finalλ©”μ†Œλ“œ: ν•˜μœ„ ν΄λž˜μŠ€μ—μ„œ μž¬μ •μ˜ λΆˆκ°€
	protected final int length() {
		int n = -1;
		if (value != null)
			n = value.length;

		return n;

	}

	// λ°°μ—΄ μš”μ†Œ 비ꡐ
	protected final int compare(int i, int j) {
		return value[i] - value[j];

	}

	// λ°°μ—΄μ˜ 두 μš”μ†Œ κ°’ μ„œλ‘œ λ°”κΎΈκΈ°
	protected final void swap(int i, int j) {
		int t = value[i];
		value[i] = value[j];
		value[j] = t;

	}

}

class SelectionSort extends SortInt {
	@Override
	protected void sorting() {
		for (int i = 0; i < length() - 1; i++) {
			for (int j = i + 1; j < length(); j++) {
				if (compare(i, j) > 0) {
					swap(i, j);
				}
			}
		}

	}

}

class BubbleSort extends SortInt {
	@Override
	protected void sorting() {
		boolean flag = true;
		for (int i = 1; flag; i++) {
			flag = false;
			for (int j = 0; j < length() - i; j++) {
				if (compare(j, j + 1) > 0) {
					swap(j, j + 1);
					flag = true;
				}
			}
		}
	}

}

 

'πŸ’»Programming > β˜•οΈJava' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[JAVA] DAO와 VO μ •μ˜μ™€ μ‚¬μš©λ²•  (0) 2022.07.31
[JAVA] μ—΄κ±°ν˜• νƒ€μž…  (0) 2022.07.27
[JAVA] 객체지ν–₯_μΈν„°νŽ˜μ΄μŠ€  (0) 2022.07.26
[JAVA]객체지ν–₯_상속과 κ΄€λ ¨ν•œ μš©μ–΄(2)  (0) 2022.07.25
[JAVA] 객체지ν–₯_상속  (0) 2022.07.25
    'πŸ’»Programming/β˜•οΈJava' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • [JAVA] μ—΄κ±°ν˜• νƒ€μž…
    • [JAVA] 객체지ν–₯_μΈν„°νŽ˜μ΄μŠ€
    • [JAVA]객체지ν–₯_상속과 κ΄€λ ¨ν•œ μš©μ–΄(2)
    • [JAVA] 객체지ν–₯_상속
    yeony._.
    yeony._.
    힘 μ„Έμ§€λŠ” μ•Œμ•½πŸ’ŠπŸ’ŠπŸ’Š

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”