๐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ํจํด. ์ซ์ ์๋ฆฌ์ : #(์์ผ๋ฉด ์ถ๋ ฅ ์์ผ๋ฉด ์ถ๋ ฅ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