์๋ฐ์์ ์ ๊ณตํ๋ API(Application Programming Interface)๋ ํ๋ก๊ทธ๋จ์์ ๊ฐ๋ฐ์ ์์ฃผ ์ฌ์ฉ๋๋ ํด๋์ค ๋ฐ ์ธํฐํ์ด์ค์ ๋ชจ์์ ๋งํ๋ค.
API ๋ํ๋จผํธ๋ HTML ํ์ด์ง์ ์์ฑ์ด ๋์ด์๋ค. -> ํ์ด์ง
1. Object Class
: ํด๋์ค๋ฅผ ์ ์ธํ๊ฒ ๋๋ฉด extends ํค์๋๋ก ๋ค๋ฅธ ํด๋์ค๋ฅผ ์์ํ์ง ์์๋ ์๋์ผ๋ก java.lang.Object ํด๋์ค๋ฅผ ์์ ๋ฐ๋๋ค.
๋ฐ๋ผ์ ๋ชจ๋ ์๋ฐ์ ํด๋์ค๋ Object ํด๋์ค์ ์์์ด๊ฑฐ๋ ์์ ํด๋์ค๋ค.
โ ๊ฐ์ฒด ๋น๊ต (equals())
: ๊ฐ์ฒด๋ฅผ ๋น๊ตํ ๋ ์ฌ์ฉ๋๊ณ , ๊ฐ์ ๊ฐ์ฒด๊ฑด ๋ค๋ฅธ ๊ฐ์ฒด๊ฑด ์๊ด ์์ด ๊ฐ์ฒด๊ฐ ์ ์ฅํ๊ณ ์๋ ๋ฐ์ดํฐ๊ฐ ๋์ผํ์ง ํ์ธํ๋ค.
equals()๋ ๋น๊ต์ฐ์ฐ์ ==์ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํดํ๋ค.
๋ ๊ฐ์ฒด๊ฐ ๋์ผํ ๊ฐ์ฒด๋ฉด true, ๊ทธ๋ ์ง ์์ผ๋ฉด false๋ฅผ ๋ฆฌํดํ๋ค.
public boolean equals(Object obj){}
๋ง์ฝ String ๊ฐ์ฒด๊ฐ ์๋ค๋ฉด, equals()์ ๋ฉ์๋๋ฅผ ํตํด ๋ฒ์ง๋ฅผ ๋น๊ตํ๋ ๊ฒ์ด ์๋, String ๊ฐ์ฒด ๋ด๋ถ์ ๋ฌธ์์ด์ ๋น๊ตํ๋ค.
equals()์ ๋ฉ์๋๋ฅผ ์ฌ์ ์ ํ ๋์๋ ๋งค๊ฐ๊ฐ(๋น๊ต๊ฐ์ฒด)๊ฐ ๊ธฐ์ค ๊ฐ์ฒด์ ๋์ผํ ํ์ ์ ๊ฐ์ฒด์ธ์ง ํ์ธํด์ผ ํ๋ค. (String ์ String์ผ๋ก)
// member class
public class Member {
private String id;
public Member(String id) {
this.id = id;
}
@Override
public boolean equals(Object object) {
if(object instanceof Member) {
Member member = (Member) object;
if(id.equals(member.id)) {
return true;
}
}return false;
}
}
//main class
public static void main(String[] args) {
Member member1 = new Member("์๋
");
Member member2 = new Member("ํด๋ ์คํํธ๋ผ");
Member member3 = new Member("์๋
");
if(member1.equals(member2)) {
System.out.println("1๊ณผ 2๋ ๊ฐ๋ค");
}else {
System.out.println("1๊ณผ 2๋ ๋ค๋ฅด๋ค");
}
if(member1.equals(member3)) {
System.out.println("1๊ณผ 3์ ๊ฐ๋ค.");
}else {
System.out.println("1๊ณผ 3์ ๋ค๋ฅด๋ค.");
}
}
โก ๊ฐ์ฒด ํด์์ฝ๋(hashCode())
: ๊ฐ์ฒด ์๋ณํ๋ ํ๋์ ์ ์ ๊ฐ
๊ฐ์ฒด ๋ฉ๋ชจ๋ฆฌ ๋ฒ์ง๋ฅผ ์ด์ฉํด์ ํด์์ฝ๋๋ฅผ ๋ง๋ค์ด ๋ฆฌํดํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ฒด๋ง๋ค ๋ค๋ฅธ ํด์์ฝ๋ ๊ฐ์ ๊ฐ์ง๊ณ ์๋ค.
hashCode method ๋ฅผ ์คํํด์ ๋ฆฌํด ๋ ํด์ ์ฝ๋ ๊ฐ์ด ๊ฐ์์ง ํ์ธํ๊ณ , ๋ค๋ฅด๋ฉด ๋ค๋ฅธ ๊ฐ์ฒด ๊ฐ๋ค๋ฉด equals() ๋ฉ์๋๋ก ๋ค์ ๋น๊ตํ๋ค. ๊ทธ ํ, equals์ return ๊ฐ์ด true ๋ฉด ๋๋ฑ ๊ฐ์ฒด, false๋ฉด ๋ค๋ฅธ ๊ฐ์ฒด์ด๋ค.
// key class
public class Key {
private int number;
public Key(int number) {
this.number = number;
}
@Override
public boolean equals(Object object) {
if(object instanceof Key) {
_475Key key = (Key) object;
if(this.number == key.number) {
// ๋ค๋ฅธ ํด์์ฝ๋์ ๊ฐ์ ๋ํ๋ด์ด ๋ฒ๋ฆผ -> hashCode๋ฅผ ์ค๋ฒ๋ผ์ด๋ฉ ํ์
return true;
}
} return false;
}
@Override
public int hashCode() {
return number;
}
}
// main class
public static void main(String[] args) {
HashMap<Key, String> hashmap = new HashMap<Key, String>();
hashmap.put(new Key(1), "ํ๊ธธ๋");
String value = hashmap.get(new Key(1));
System.out.println(value);
}
์ ์ฅํ ๋, new Key(1)์ ์ฝ์ ๋์ new Key(1)๋ ์๋ก ๋ค๋ฅธ ๊ฐ์ฒด์ง๋ง, HashMap์ hashCode()์ ๋ฆฌํด ๊ฐ์ด ๊ฐ๊ณ , equals()๊ฐ true ๊ฐ ๋๊ธฐ ๋๋ฌธ์ ๋๋ฑํ ๊ฐ์ฒด๋ก ํ๊ฐ ๋ฐ๋๋ค. (hashCode()๋ฅผ ์ฌ์ ์ ํ๋ ๊ฒ์ด ์ค์)
โข ๊ฐ์ฒด ๋ฌธ์ ์ ๋ณด(toString())
: ๊ฐ์ฒด์ ๋ฌธ์ ์ ๋ณด๋ฅผ ๋ฆฌํดํ๋ค. toString()์ 'ํด๋์ค์ด๋ฆ@16์ง์ํด์์ฝ๋'๋ก ๊ตฌ์ฑ๋ ๋ฌธ์ ์ ๋ณด๋ฅผ ๋ฆฌํดํ๋ค.
toString()์์ ๋ฆฌํด ๋ ๊ฐ๋ค์ ๋ณ ๊ฐ์ด์น๊ฐ ์๋ ์ ๋ณด์ด๋ฏ๋ก, ๋ฉ์๋๋ฅผ ์ฌ์ ์ํด์ ์ ์ตํ ์ ๋ณด๋ก ๋ณ๊ฒฝํด์ค ์์๋ค.
// string overriding class
public class ToStringClass {
private String company;
private String os;
public ToStringClass(String company, String os) {
this.company = company;
this.os = os;
}
@Override
public String toString() {
return company + "," + os;
}
}
// main class
public static void main(String[] args) {
ToStringClass example = new ToStringClass("๊ฐ๋๋ค", "๊ฐ๋๋ค OS");
String string = example.toString();
System.out.println(string); // ํด๋น ๊ฐ ๊ทธ๋๋ก ์ถ๋ ฅ
System.out.println(example); // toString ๊ฐ ๋ฐ์์ ์ถ๋ ฅ
}
System.out.println()์์ ๋งค๊ฐ ๊ฐ์ด ๊ธฐ๋ณธ ํ์ ์ผ๋ก ์ค ๊ฒฝ์ฐ์๋ ๊ทธ๋๋ก ์ถ๋ ฅํ์ง๋ง, ๋งค๊ฐ๊ฐ์ ๊ฐ์ฒด๋ก ์ค ๊ฒฝ์ฐ์๋ toString()์ ํธ์ถํ์ฌ ๋ฆฌํด ๊ฐ์ ๋ฐ์ ์ถ๋ ฅ๋ฐ๋๋ค.
2. System Class
: java.lang ํจํค์ง ๋ด๋ถ์ System Class๋ฅผ ์ด์ฉํ๋ฉด OS ์ผ๋ถ ๊ธฐ๋ฅ์ ์ด์ฉํ ์ ์๋ค.(ํ๋ก๊ทธ๋จ ์ข ๋ฃ, ํค๋ณด๋๋ก ๋ถํฐ ์ ๋ ฅ, ๋ชจ๋ํฐ๋ก ์ถ๋ ฅ, ํ์ฌ ์๊ฐ ์ฝ๊ธฐ ๋ฑ)
System ํด๋์ค์ ๋ชจ๋ ํ๋, ๋ฉ์๋๋ ์ ์ ํ๋์ ์ ์ ๋ฉ์๋๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
public static void main(String[] args) {
for(int a = 0; a< 10; a++) {
long time = System.nanoTime();
if(a==9) {
System.out.println("ํ๋ก๊ทธ๋จ ์ข
๋ฃ");
long lastTime = System.nanoTime();
System.out.print((lastTime-time)+ "๋๋
ธ ์ด ํ๋ก๊ทธ๋จ ์๊ฐ ์ฌ์ฉํ๋ค.");
System.exit(0); // 0 ์ ์ข
๋ฃ ์ํ ๊ฐ
}
}
}
- System.exit(): ํ๋ก๊ทธ๋จ ์ข ๋ฃ
- System.currentTimeMillis(), nanoTime()
: ์ปดํจํฐ์ ์๊ณ๋ก๋ถํฐ ํ์ฌ ์๊ฐ์ ์ฝ์ด์ ๋ฐ๋ฆฌ ์ธ์ปจ ๋จ์์ ๋๋ ธ ์ธ์ปจ ๋จ์๋ก long ๊ฐ์ ๋ฆฌํด
3. Class class
Class ๊ฐ์ฒด๋ฅผ ์ป๊ธฐ ์ํด์๋ 3๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค.
// ํด๋์ค๋ก๋ถํฐ ์ป๋ ๋ฐฉ๋ฒ
Class a = ํด๋์ค์ด๋ฆ.class
Class a = Clas.forName("ํจํค์ง,,,ํด๋์ค์ด๋ฆ")
// ๊ฐ์ฒด๋ก๋ถํฐ ์ป๋ ๋ฐฉ๋ฒ
Class a = ์ฐธ์กฐ๋ณ์.getClass();
์์๋ฅผ ๋ค์๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
public static void main(String[] args) {
// ์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ
Class clazz = Key.class;
// ๋ ๋ฒ์งธ ๋ฐฉ๋ฒ
// Class clazz = Class.forName("hongong_400_499.Key");
// ์ธ ๋ฒ์งธ ๋ฐฉ๋ฒ
// Key key = new Key(1);
// Class clazz = key.getClass();
System.out.println(clazz.getName());
System.out.println(clazz.getSimpleName());
System.out.println(clazz.getPackageName());
}
- ํด๋์ค ๊ฒฝ๋ก๋ฅผ ํ์ฉํด์ ๋ฆฌ์์ค ์ ๋ ๊ฒฝ๋ก ์ป๊ธฐ
: Class ๊ฐ์ฒด๋ ํด๋น ํด๋์ค์ ์ ๋ณด๋ฅผ ๊ฐ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ด ๊ฒฝ๋ก๋ฅผ ํ์ฉํด์ ๋ค๋ฅธ ๋ฆฌ์์ค ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ป์ ์ ์๋ค.
String photoPath1 = clazz.getResourse("photo.jpg").getPath();
String photoPath2 = clazz.getResourse("images.photo2.jpg").getPath();
[์ถ์ฒ] ํผ๊ณต์๋ฐ p 466 ~ p 484
'Programming Language > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Java 9์ผ์ฐจ ๊ณต๋ถ(Java API[Wrapper(ํฌ์ฅ) Class, Math Class]) (0) | 2022.02.26 |
---|---|
Java 9์ผ์ฐจ ๊ณต๋ถ(Java API[String Class]) (0) | 2022.02.26 |
Java 8์ผ์ฐจ ๊ณต๋ถ(์์ธ ํด๋์ค) (0) | 2022.02.24 |
Java 8์ผ์ฐจ ๊ณต๋ถ(์ต๋ช ์์ ๊ฐ์ฒด[class], ์ต๋ช ๊ตฌํ ๊ฐ์ฒด[interface]) (0) | 2022.02.24 |
Java 7์ผ์ฐจ ๊ณต๋ถ(์ค์ฒฉ ํด๋์ค, ์ค์ฒฉ ์ธํฐํ์ด์ค) (0) | 2022.02.23 |