API - Object, Wrapper, Timer, DecimalFormat

JKยท2022๋…„ 12์›” 27์ผ
0

JAVA

๋ชฉ๋ก ๋ณด๊ธฐ
23/28
post-thumbnail

๐ŸŽˆObject

1. Objectํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ๋“ค

  • public String toString() : ๊ฐ์ฒด์˜ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜
  • public boolean equals(Object obj)
  • public int hashCode() : ์ž๋ฐ”์—์„œ ๊ฐ์ฒด๋ฅผ ์‹๋ณ„ํ•˜๋Š” ์ •์ˆ˜ ๊ฐ’์ธ ํ•ด์‹œ ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜
    (๋‹ค๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ&๊ฒ€์ƒ‰ํ•˜๋Š” ํ•ด์‹ฑ ๊ธฐ๋ฒ•์— ์‚ฌ์šฉ๋œ๋‹ค.)
  • protected Object Clone() : ๊ฐ์ฒด๋ฅผ ๋ณต์‚ฌํ•˜๋Š” ๋ฉ”์†Œ๋“œ
  • public Class getClass() : ๊ฐ์ฒด์˜ ํด๋ž˜์Šค ์ด๋ฆ„์„ Classํ˜•์œผ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค

2. toString()

  • ๊ฐ์ฒด์˜ ์ •๋ณด๋ฅผ ๋ฌธ์ž์—ด๋กœ ์ œ๊ณตํ•  ๋ชฉ์ ์œผ๋กœ ์ •์˜๋œ ๋ฉ”์†Œ๋“œ

EX. Friend

  • private ๋ฐ์ดํ„ฐ ์„ ์–ธ
  • toString()์œผ๋กœ ์ด๋ฆ„ ์ „ํ™”๋ฒˆํ˜ธ ์ƒ์ผ ์ฃผ์†Œ ์ถœ๋ ฅ๊ฐ’ ์„ ์–ธ
package com.lec.ex4_object;

public class Friend {
	private String name;
	private String tel;
	private String birth; // ๋…„๋„ ๋นผ๊ณ  ์›” ์ผ ๋งŒ ์ €์žฅ
	private String address;

	public Friend() {}
	public Friend(String name, String tel, String birth, String address) {
		this.name = name;
		this.tel = tel;
		this.birth = birth;
		this.address = address;
	}
    @Override
    public String toString() {
    	return "[์ด๋ฆ„]"+name + "[์ „ํ™”๋ฒˆํ˜ธ]"+tel +"[์ƒ์ผ]"+birth + "[์ฃผ์†Œ]"+address;
    }
    
	public String getName() {
		return name;
	}
	public String getTel() {
		return tel;
	}
	public String getAddress() {
		return address;
	}
	public String getBirth() {
		return birth;
	}
}

FriendMain

  • ๋ฐ์ดํ„ฐ ์ž…๋ ฅ
  • for๋ฌธ+toString()์œผ๋กœ ๋ฐ์ดํ„ฐ ์ถœ๋ ฅ
package com.lec.ex4_object;

public class Ex01_FriendMain {
	public static void main(String[] args) {
		Friend[] friends = { new Friend("ํ™๊ธธ๋™", "010-9999-9999", "12-14", "์„œ์šธ ์„œ๋Œ€๋ฌธ"),
				new Friend("๊น€๊ธธ๋™", "010-9999-3333", "12-26", "์ˆ˜์› ์˜ํ†ต"),
				new Friend("๊น€์ˆ˜ํ™˜", "010-9999-1111", "02-17", "์„œ์šธ ์šฉ์‚ฐ"),
	 			new Friend("๊ฑฐ๋ถ์ด", "010-6666-6666", "03-03", "์ธ์ฒœ ์†ก๋„") };
		for(Friend friend : friends) {
			System.out.println(friend.toString());   //friend class
			
		}
	}
}

๊ฒฐ๊ณผ

[์ด๋ฆ„]ํ™๊ธธ๋™[์ „ํ™”๋ฒˆํ˜ธ]010-9999-9999[์ƒ์ผ]12-14[์ฃผ์†Œ]์„œ์šธ ์„œ๋Œ€๋ฌธ
[์ด๋ฆ„]๊น€๊ธธ๋™[์ „ํ™”๋ฒˆํ˜ธ]010-9999-3333[์ƒ์ผ]12-26[์ฃผ์†Œ]์ˆ˜์› ์˜ํ†ต
[์ด๋ฆ„]๊น€์ˆ˜ํ™˜[์ „ํ™”๋ฒˆํ˜ธ]010-9999-1111[์ƒ์ผ]02-17[์ฃผ์†Œ]์„œ์šธ ์šฉ์‚ฐ
[์ด๋ฆ„]๊ฑฐ๋ถ์ด[์ „ํ™”๋ฒˆํ˜ธ]010-6666-6666[์ƒ์ผ]03-03[์ฃผ์†Œ]์ธ์ฒœ ์†ก๋„

3. equals()๋ฅผ Override

  • A.equals(B) = A์™€ B๋Š” ๊ฐ™์€ ์ฃผ์†Œ
  • A == B = A์™€ B๋Š” ๋‹ค๋ฅธ ์ฃผ์†Œ

Person

package com.lec.ex4_object;
// - ์—†์ด ์ˆซ์ž๋กœ๋งŒ ๋ฐ›๊ธฐ
public class Person {
	private long juminNo;

	public Person() {}

	public Person(long juminNo) {
		this.juminNo = juminNo;
	}
	@Override
	public String toString() {
		return "์ฃผ๋ฏผ๋ฒˆํ˜ธ๋Š” " + juminNo;
	}
	@Override
	public boolean equals(Object obj) {
		//this์˜ ์ฃผ๋ฏผ๋ฒˆํ˜ธ์™€ obj์˜ ์ฃผ๋ฏผ๋ฒˆํ˜ธ๊ฐ€ ๊ฐ™์€์ง€ ๋‹ค๋ฅธ์ง€ ์—ฌ๋ถ€๋ฅผ return
//		return (this == obj);  //p1.equals(p2)    p1=this, p2=obj
		if(obj!=null && obj instanceof Person) {
			return juminNo == ((Person)obj).juminNo;
		} else {
			return false;
		}
	}
}

PersonMain

package com.lec.ex4_object;

public class Ex02_PersonMain {
	public static void main(String[] args) {
		Person p1 = new Person(9812121044222L);
		Person p2 = new Person(9812121044222L);
		Person p3 = null;
		Friend f = new Friend();
		System.out.println(p1.equals(p2)? "p1๊ณผ p2๋Š” ๊ฐ™๋‹ค" : "p1๊ณผ p2๋Š” ๋‹ค๋ฅด๋‹ค");
		System.out.println(p1==p2 ? "p1๊ณผ p2๋Š” ๊ฐ™์€ ์ฃผ์†Œ ์ฐธ์กฐ" : "p1๊ณผ p2๋Š” ๋‹ค๋ฅธ ์ฃผ์†Œ ์ฐธ์กฐ");
		System.out.println(p1.equals(p3)? "p1๊ณผ p3๋Š” ๊ฐ™๋‹ค" : "p1๊ณผ p3๋Š” ๋‹ค๋ฅด๋‹ค");
		System.out.println(p1.equals(f) ? "p1๊ณผ f๋Š” ๊ฐ™๋‹ค" : "p1๊ณผ f๋Š” ๋‹ค๋ฅด๋‹ค");
	}
}

๊ฒฐ๊ณผ

p1๊ณผ p2๋Š” ๊ฐ™๋‹ค
p1๊ณผ p2๋Š” ๋‹ค๋ฅธ ์ฃผ์†Œ ์ฐธ์กฐ
p1๊ณผ p3๋Š” ๋‹ค๋ฅด๋‹ค
p1๊ณผ f๋Š” ๋‹ค๋ฅด๋‹ค

4. hashCode

package com.lec.ex4_object;

public class Ex04_hashCode {
	public static void main(String[] args) {
		String str1 = "Hello";
		String str2 = new String("Hello");  //์ƒˆ๋กœ์šด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ƒ์„ฑ
		if(str1 == str2) {
			System.out.println("์ฃผ์†Œ๊ฐ€ ๊ฐ™์Œ(๊ฐ™์€ ๊ณณ์„ ์ฐธ์กฐํ•œ๋‹ค)");
		} else {
			System.out.println("์ฃผ์†Œ๊ฐ€ ๋‹ค๋ฆ„(๋‹ค๋ฅธ ๊ณณ์„ ์ฐธ์กฐํ•œ๋‹ค)");
		}
		Card card = new Card('โ™ ', 2);
		System.out.println(card.hashCode());
		System.out.println(str1.hashCode());
		System.out.println(str2.hashCode());
	}
}
  • ๊ฒฐ๊ณผ
์ฃผ์†Œ๊ฐ€ ๋‹ค๋ฆ„(๋‹ค๋ฅธ ๊ณณ์„ ์ฐธ์กฐํ•œ๋‹ค)	// ๊ฐ™์€ Hello์—ฌ๋„ new String์„ ํ•˜๋ฉด ์ฃผ์†Œ๊ฐ€ ๋‹ค๋ฆ„
366712642
69609650	// Hello ๋ผ๋Š” hashcode๋Š” ๊ฐ™์Œ
69609650

5. clone

  • ๊ฐ์ฒด ์ž์‹ ์„ ๋ณต์ œํ•ด์„œ ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฉ”์†Œ๋“œ
  • Cloneable ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋งŒ ๋ณต์ œ ๊ฐ€๋Šฅ
  • Object ํด๋ž˜์Šค์— ์ •์˜๋œ clone()์€ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์˜ ๊ฐ’๋งŒ ๋ณต์ œ
  • ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๊ฐ€ ์ฐธ์กฐํ˜•์ผ ๋•Œ ์ฐธ์กฐํ•˜๋Š” ๊ฐ์ฒด๋„ ๋ณต์ œ๋˜๊ฒŒ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•ด์•ผ ํ•จ.
//๊ฐ™์€ ํŒจํ‚ค์ง€ ๋‚ด์— clone ์ด ์žˆ๊ธฐ์— ์‚ฌ์šฉ ๊ฐ€๋Šฅ
package com.lec.ex4_object;

public class Ex05_RectangleMainClone {
	public static void main(String[] args) throws CloneNotSupportedException {
		Rectangle r1 = new Rectangle(); // r1 : w=0, h=0, color=๊ฒ€์ •
		r1.setHeight(5);
		r1.setWidth(10); // w=10, h=5, color=๊ฒ€์ •
		Rectangle r2 =  (Rectangle) r1.clone(); // ์ฃผ์†Œ ๋ณต์‚ฌ 
		if (r1.equals(r2)) {		//๊ฐ™์€ ๋‚ด์šฉ์˜ ์‚ฌ๊ฐํ˜• ๊ฐ์ฒด
			System.out.println("๊ฐ™์€ ๋‚ด์šฉ์˜ ์‚ฌ๊ฐํ˜• ๊ฐ์ฒด(๋ณต์ œ์ธ์ง€ ๋ณต์‚ฌ์ธ์ง€?)");
		} else {
			System.out.println("๋‹ค๋ฅธ ๋‚ด์šฉ์˜ ์‚ฌ๊ฐํ˜• ๊ฐ์ฒด");
		}
		if (r1 == r2) {		// ๋‹ค๋ฅธ ์ฃผ์†Œ
			System.out.println("๋ณต์ œํ•œ๊ฒŒ ์•„๋‹ˆ๊ณ  ๋ณต์‚ฌ");
		} else {
			System.out.println("๋‹ค๋ฅธ ์ฃผ์†Œ");
		}
		if (r1 != r2 && r1.equals(r2)) {   //cloneํ•˜์˜€์œผ๋‹ˆ ๋ณต์ œ ์„ฑ๊ณต
			System.out.println("๋ณต์ œ ์„ฑ๊ณต");
		} else {
			System.out.println("๋ณต์ œ ์‹คํŒจ");
		}
	}
}

6. getClass

  • ๊ฐ์ฒด๊ฐ€ ์†ํ•˜๋Š” ํด๋ž˜์Šค์˜ ์ •๋ณด(์ด๋ฆ„)๋ฅผ ๋ฆฌํ„ด

7. getSuperclass

  • ์Šˆํผํด๋ž˜์Šค์˜ ์ •๋ณด๋ฅผ ๋ฆฌํ„ด

๐ŸŽˆWrapper

  • Wrapper ํด๋ž˜์Šค๋Š” Integer, Double, Long ๋“ฑ์ด ์žˆ๋‹ค
  • ๊ธฐ์ดˆ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ฒด๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜

    ex1.

 public class Ex01 {
	public static void main(String[] args) {
		int i = 10;
		Integer iObj = new Integer(10);  //์ž๋™ ๊ฐ์ฒด ์ƒ์„ฑ
		int sum =i + iObj;  // i + iObj 
		System.out.println("ํ•ฉ์€ " + sum);
		System.out.println(iObj.equals(10));
	}
}
  • ๊ฒฐ๊ณผ
ํ•ฉ์€ 20
true

ex2.

package com.lec.ex6_wrapper;

public class Ex03 {
	public static void main(String[] args) {
		System.out.println("์ŠคํŠธ๋ง์„ ์ •์ˆ˜๋กœ ๋ฐ”๊พธ๋Š” ํ•จ์ˆ˜ : Integer.ParseInt(๋ฌธ์ž์—ด)");
		int i = Integer.parseInt("10");
		System.out.println(i);
		System.out.println("์ •์ˆ˜๋ฅผ ์ŠคํŠธ๋ง์œผ๋กœ ๋ฐ”๊พธ๋Š” ํ•จ์ˆ˜ : String.valueOf(์ •์ˆ˜)");
		String monthStr = String.valueOf(12);
		monthStr = ""+12;
		System.out.println(monthStr);
	}
}
  • ๊ฒฐ๊ณผ
์ŠคํŠธ๋ง์„ ์ •์ˆ˜๋กœ ๋ฐ”๊พธ๋Š” ํ•จ์ˆ˜ : Integer.ParseInt(๋ฌธ์ž์—ด)
10
์ •์ˆ˜๋ฅผ ์ŠคํŠธ๋ง์œผ๋กœ ๋ฐ”๊พธ๋Š” ํ•จ์ˆ˜ : String.valueOf(์ •์ˆ˜)
12

๐ŸŽˆTimer

TimerTaskEx1

package com.lec.ex7_timer;

import java.util.TimerTask;

public class TimerTaskEx1 extends TimerTask {

	@Override
	public void run() { //์ž‘์—…์ •์˜
		// TODO Auto-generated method stub
		System.out.println("์ž‘์—…1 : 2์ดˆ ํ›„์— ํ•œ ๋ฒˆ ์ˆ˜ํ–‰๋  ์˜ˆ์ •์ธ Timer Task โ˜… โ˜… โ˜…");
	}
}

TimerTaskEx2

package com.lec.ex7_timer;

import java.util.TimerTask;

public class TimerTaskEx2 extends TimerTask {

	@Override
	public void run() {
		// TODO Auto-generated method stub
		System.out.println(" ~ ~ ~์ž‘์—…2 : 1์ดˆ ํ›„ 0.5์ดˆ๋งˆ๋‹ค ์‹คํ–‰๋  ์˜ˆ์ •์ธ TimerTask");
	}
}

TimerTaskMain

package com.lec.ex7_timer;

import java.util.Timer;
import java.util.TimerTask;

public class TimerTestMain {
	public static void main(String[] args) throws InterruptedException {
		System.out.println("์‹œ์ž‘");
		Timer timer = new Timer(true);  //timer ๊ฐ์ฒด ๋งŒ๋“ค๊ธฐ, ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ ์‹œ timer๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผ X 
		//true๋ฅผ ์•ˆ ๋„ฃ์œผ๋ฉด ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ ์‹œ timer๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผ
		TimerTask task1 = new TimerTaskEx1();  //2์ดˆ ํ›„ ํ•œ ๋ฒˆ ์‹คํ–‰
		TimerTask task2 = new TimerTaskEx2();
		timer.schedule(task1, 2000);  //2000์€ ๋ฐ€๋ฆฌ์„ธ์ปจ (2์ดˆ) 2์ดˆ ํ›„ ํ•œ๋ฒˆ task1.run() ์ˆ˜ํ–‰
		timer.schedule(task2, 1000, 500);  //1์ดˆํ›„์— 0.5์ดˆ๋งˆ๋‹ค task2.run()์ˆ˜ํ–‰
		Thread.sleep(11000);  //11์ดˆ ํ›„์— ๋ณต๊ท€
		System.out.println("๋");
	}
}

๊ฒฐ๊ณผ

์‹œ์ž‘
 ~ ~ ~์ž‘์—…2 : 1์ดˆ ํ›„ 0.5์ดˆ๋งˆ๋‹ค ์‹คํ–‰๋  ์˜ˆ์ •์ธ TimerTask
 ~ ~ ~์ž‘์—…2 : 1์ดˆ ํ›„ 0.5์ดˆ๋งˆ๋‹ค ์‹คํ–‰๋  ์˜ˆ์ •์ธ TimerTask
์ž‘์—…1 : 2์ดˆ ํ›„์— ํ•œ ๋ฒˆ ์ˆ˜ํ–‰๋  ์˜ˆ์ •์ธ Timer Task โ˜… โ˜… โ˜…
 ~ ~ ~์ž‘์—…2 : 1์ดˆ ํ›„ 0.5์ดˆ๋งˆ๋‹ค ์‹คํ–‰๋  ์˜ˆ์ •์ธ TimerTask
 ~ ~ ~์ž‘์—…2 : 1์ดˆ ํ›„ 0.5์ดˆ๋งˆ๋‹ค ์‹คํ–‰๋  ์˜ˆ์ •์ธ TimerTask
 ~ ~ ~์ž‘์—…2 : 1์ดˆ ํ›„ 0.5์ดˆ๋งˆ๋‹ค ์‹คํ–‰๋  ์˜ˆ์ •์ธ TimerTask
 ~ ~ ~์ž‘์—…2 : 1์ดˆ ํ›„ 0.5์ดˆ๋งˆ๋‹ค ์‹คํ–‰๋  ์˜ˆ์ •์ธ TimerTask
 ~ ~ ~์ž‘์—…2 : 1์ดˆ ํ›„ 0.5์ดˆ๋งˆ๋‹ค ์‹คํ–‰๋  ์˜ˆ์ •์ธ TimerTask
 ~ ~ ~์ž‘์—…2 : 1์ดˆ ํ›„ 0.5์ดˆ๋งˆ๋‹ค ์‹คํ–‰๋  ์˜ˆ์ •์ธ TimerTask
 ~ ~ ~์ž‘์—…2 : 1์ดˆ ํ›„ 0.5์ดˆ๋งˆ๋‹ค ์‹คํ–‰๋  ์˜ˆ์ •์ธ TimerTask
 ~ ~ ~์ž‘์—…2 : 1์ดˆ ํ›„ 0.5์ดˆ๋งˆ๋‹ค ์‹คํ–‰๋  ์˜ˆ์ •์ธ TimerTask
 ~ ~ ~์ž‘์—…2 : 1์ดˆ ํ›„ 0.5์ดˆ๋งˆ๋‹ค ์‹คํ–‰๋  ์˜ˆ์ •์ธ TimerTask
 ~ ~ ~์ž‘์—…2 : 1์ดˆ ํ›„ 0.5์ดˆ๋งˆ๋‹ค ์‹คํ–‰๋  ์˜ˆ์ •์ธ TimerTask
 ~ ~ ~์ž‘์—…2 : 1์ดˆ ํ›„ 0.5์ดˆ๋งˆ๋‹ค ์‹คํ–‰๋  ์˜ˆ์ •์ธ TimerTask
 ~ ~ ~์ž‘์—…2 : 1์ดˆ ํ›„ 0.5์ดˆ๋งˆ๋‹ค ์‹คํ–‰๋  ์˜ˆ์ •์ธ TimerTask
 ~ ~ ~์ž‘์—…2 : 1์ดˆ ํ›„ 0.5์ดˆ๋งˆ๋‹ค ์‹คํ–‰๋  ์˜ˆ์ •์ธ TimerTask
 ~ ~ ~์ž‘์—…2 : 1์ดˆ ํ›„ 0.5์ดˆ๋งˆ๋‹ค ์‹คํ–‰๋  ์˜ˆ์ •์ธ TimerTask
 ~ ~ ~์ž‘์—…2 : 1์ดˆ ํ›„ 0.5์ดˆ๋งˆ๋‹ค ์‹คํ–‰๋  ์˜ˆ์ •์ธ TimerTask
 ~ ~ ~์ž‘์—…2 : 1์ดˆ ํ›„ 0.5์ดˆ๋งˆ๋‹ค ์‹คํ–‰๋  ์˜ˆ์ •์ธ TimerTask
 ~ ~ ~์ž‘์—…2 : 1์ดˆ ํ›„ 0.5์ดˆ๋งˆ๋‹ค ์‹คํ–‰๋  ์˜ˆ์ •์ธ TimerTask
 ~ ~ ~์ž‘์—…2 : 1์ดˆ ํ›„ 0.5์ดˆ๋งˆ๋‹ค ์‹คํ–‰๋  ์˜ˆ์ •์ธ TimerTask
๋

๐ŸŽˆDecimalFormat

  • DecimalFormatํŒจํ„ด. ์ˆซ์ž ์ž๋ฆฌ์ˆ˜ : #(์žˆ์œผ๋ฉด ์ถœ๋ ฅ ์—†์œผ๋ฉด ์ถœ๋ ฅx), 0(๋ฐ˜๋“œ์‹œ ์ถœ๋ ฅ)
package com.lec.ex8_decimal;

import java.text.DecimalFormat;

public class Ex01 {
	public static void main(String[] args) {
		double number = 1234567.8787;
		DecimalFormat df = new DecimalFormat("########.####"); // 1234567.8787 ์žˆ๋Š” ์ˆซ์ž๋งŒ ์ถœ๋ ฅ
		System.out.println("########.####" + df.format(number));
		DecimalFormat df2 = new DecimalFormat("00000000.00000"); 
        // 01234567.87870 ์—†๋Š” ์ž๋ฆฌ๋„ 0์œผ๋กœ ์ถœ๋ ฅ
		System.out.println("00000000.00000" + df2.format(number));
		DecimalFormat df3 = new DecimalFormat("0,000.00"); 
		System.out.println("0.000.00" + df3.format(number));
		DecimalFormat df4 = new DecimalFormat("##.##%");       //%์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผ
		System.out.println("##.##% : " + df4.format(0.78457));
		DecimalFormat df5 = new DecimalFormat("#.####E0");  //E๋’ค์—๋Š” 0๋งŒ ๊ฐ€๋Šฅ
		System.out.println("#.####E0 : " + df5.format(number));
	}
}
  • ๊ฒฐ๊ณผ
########.####1234567.8787
00000000.0000001234567.87870
0.000.001,234,567.88
##.##% : 78.46%
#.####E0 : 1.2346E6
profile
์”จ์•— ๊ฐœ๋ฐœ์ž

0๊ฐœ์˜ ๋Œ“๊ธ€