
Java: java.lang.Object
๊ด๋ จ ๋ฌธ์
- http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html
- http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
Object ํด๋์ค๋ ๋ชจ๋ ํด๋์ค์ ์์๊ณ์ธต๋ ์ ๊ฐ์ฅ ์์ ์์นํ๋ ์กฐ์ํด๋์ค๋ค. ์๋ฐ ์ปดํ์ผ๋ฌ๋ ์๋ฌด๊ฒ๋ ์์ํ์ง ์๋ ํด๋์ค๋ฅผ ์ปดํ์ผ ํ ๋ ์๋์ผ๋ก Object ํด๋์ค๋ฅผ ์์๋ฐ๋๋ก ํ๋ค.
Object ํด๋์ค๋ ์์ ํ ๋ณ์(=๋ฉค๋ฒ๋ณ์)๊ฐ ์๊ณ 11๊ฐ์ ๋ฉ์๋๋ง ์กด์ฌํ๋ค.
์ฃผ์ ๋ฉ์๋
clone()
๊ฐ์ฒด ์์ ์ ๋ณต์ฌ๋ณธ์ ๋ฆฌํดํ๋ค. ์ด ๋ฉ์๋๋ ๋ณ์์ ๊ฐ์ ๋จ์ ๋ณต์ฌํ๊ธฐ ๋๋ฌธ์ ์ฐธ์กฐ๊ฐ์ ์์ ํ ๊ฐ์ฒด๋ฅผ ๋ณต์ฌํ ๋๋ ์ฃผ์ํด์ ์ฌ์ฉํด์ผ ํ๋ค. ๋ํ ์ด ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ๋ฐ๋์ Cloneable ์ธํฐํ์ด์ค๋ฅผ implements ํด์ผํ๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด CloneNotSupportedException์ด ๋ฐ์ํ๋ค.
public class LogicTest {
public static void main(String... args) throws CloneNotSupportedException {
Doppelganger c = new Doppelganger();
System.out.println(c.getAa()); // 1234
c.setAa("asdasd");
Doppelganger cc = (Doppelganger) c.clone();
System.out.println(cc.getAa()); // asdasd
}
}
class Doppelganger implements Cloneable {
private String aa = "1234";
public String getAa() {
return aa;
}
public void setAa(String aa) {
this.aa = aa;
}
@Override
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
equals( Object obj )
๊ฐ์ฒด ์์ ๊ณผ obj๊ฐ ๊ฐ์ ๊ฐ์ฒด์ธ์ง ๋ถ๋ฆฌ์ธ๊ฐ์ผ๋ก ๋ฆฌํด. ์ฐธ์กฐ๊ฐ์ ๋น๊ตํ๋ฏ๋ก ๋๋ฑ๋น๊ต ์ฐ์ฐ์==
์ ๊ฒฐ๊ณผ๊ฐ ๊ฐ๋ค.
String์ equals()
๋ String ํด๋์ค์์ ์ค๋ฒ๋ผ์ด๋ ๋ ๋ฉ์๋๋ก ๊ฐ์ฒด๊ฐ ๊ฐ๋ ๋ฌธ์์ด ๊ฐ์ ๋น๊ตํ๋ ๋ฐ๋ฉด ์ด ๋ฉ์๋๋ ๊ฐ์ฒด ์์ ์ ์ฐธ์กฐ๊ฐ๊ณผ ์ ๋ฌ์ธ์๋ก ๋ฐ๋ ๊ฐ์ฒด์ ์ฐธ์กฐ๊ฐ์ ๋น๊ตํ๋ ์ฐจ์ด๊ฐ ์๋ค.
equals์ ์ค์ ์ฝ๋
public boolean equals(Object obj) {
return (this == obj);
}
toString()
ํด๋์ค๋ช
+ @
+ ํด์์ฝ๋๋ฅผ 16์ง์๋ก ๋ณํํด ๋ฆฌํดํ๋ค.
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
notify(), notifyAll()
์ด ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ๋๊ธฐ์ค์ ์ฐ๋ ๋๋ฅผ ํ๋ ํน์ ๋ชจ๋ ์ฌ๊ฐํ๋ค.
finalize()
์ด ๊ฐ์ฒด์ ๋ํ ์ฐธ์กฐ๊ฐ ๋ ์ด์ ์๋ค๊ณ ํ๋จ๋ ๋(์ฆ, ์๋ฉธ๋ ๋) ๊ฐ๋น์ง ์ปฌ๋ ํฐ์ ์ํด ์๋์ผ๋ก ํธ์ถ๋๋ ๋ฉ์๋
getClass()
Class ์ธ์คํด์ค๋ฅผ ๋ฆฌํดํ๋ค. ์ด ์ธ์คํด์ค๋ ๊ฐ์ฒด ์์ ์ ํด๋์ค ์ ๋ณด๋ฅผ ๊ฐ๋๋ค.
hashCode()
๊ฐ์ฒด ์์ ์ ํด์์ฝ๋ ๋ฆฌํด
wait( [long timeout] [, int nanos] )
์ฐ๋ ๋๋ฅผ ์ง์ ๋ ์๊ฐ๋์ ๊ธฐ๋ค๋ฆฌ๊ฒ ํ๋ค. timeout์ 10^-3์ด, nanos๋ 10^-9์ด๋ฅผ ์๋ฏธํ๋ค. ์ ๋ฌ์ธ์๊ฐ ์์ผ๋ฉด notify(), notifyAll()์ ํธ์ถํ ๋๊น์ง ๋๊ธฐํ๋ค.