Ex69 ~ Ex72
์ ๋ค๋ฆญ(Generic)
- ๋ค๋ฃฐ ๊ฐ์ฒด์ ํ์ ์ ๋ฏธ๋ฆฌ ๋ช ํด์์ค์ผ๋ก์จ ๋ฒ๊ฑฐ๋ก์ด ํ๋ณํ์ ์ค์ฌ์ค๋ค.
์ ๋ค๋ฆญ ํด๋์ค์ ์ ์ธ
class Box<T> { //์ ๋ค๋ฆญ ํ์
T๋ฅผ ์ ์ธ
T item;
void setItem(T item) { this.item = item; }
T getItem() { return item; }
}
- Box<T>์์ T๋ฅผ ํ์ ๋ณ์(type variable)์ด๋ผ๊ณ ํ๋ค.
์์
๋๋ณด๊ธฐ
์ ๋ค๋ฆญ์ ํ๋ณํ ์ํด๋ ๋จ
WrapperObject n2 = new WrapperObject(20);
System.out.println(n2.getData());
System.out.println((int)n2.getData() * 2);
System.out.println(n2.toString());
System.out.println();
Wrapper<Integer> n3 = new Wrapper<Integer>(30);
System.out.println(n3.getData());
System.out.println(n3.getData() * 2);
System.out.println(n3.toString());
System.out.println();
WrapperObject s2 = new WrapperObject("์๋ฌด๊ฐ");
System.out.println(s2.getData());
System.out.println(((String)s2.getData()).length()); //ํ๋ณํํ๊ณ ๊ดํธ๋ก ํ๋ฒ ๋ ๊ฐ์ธ์ผ๋จ
System.out.println(s2.toString());
System.out.println();
Wrapper<String> s3 = new Wrapper<String>("์ดํด๋ฆฝ์ค");
System.out.println(s3.getData());
System.out.println(s3.getData().length());
System.out.println(s3.toString());
System.out.println();
class WrapperObject {
private Object data;
public WrapperObject(Object data) {
this.setData(data);
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
@Override
public String toString() {
return "data=" + data;
}
}
class Wrapper<T> {
private T data;
public Wrapper(T data) {
this.setData(data);
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
@Override
public String toString() {
return "data=" + data;
}
}
ํฅ์๋ for๋ฌธ, Enhanced for statement
- foreach๋ฌธ, for in๋ฌธ
- ์งํฉ์ ๊ฐ์ง๊ณ ๋ฃจํ๋ฅผ ๋๋ฆด๋ ์ฌ์ฉ
String[] list = { "๊ฐ์์ง", "๊ณ ์์ด", "๋ณ์๋ฆฌ", "์ค๋ณ์ด", "์ก์์ง" };
for (int i=0; i<list.length; i++) {
System.out.print(list[i] + "\t");
}
System.out.println();
for (int i=0; i<10; i++) {
System.out.print(i + "\t");
}
System.out.println();
//๋ฐฐ์ด์ ์์๋ฅผ ์์ฐจ์ ์ผ๋ก ํ์ํ๋ for๋ฌธ
//- ๋ฌด์กฐ๊ฑด ์ฒซ๋ฒ์จฐ๋ฐฉ~๋ง์ง๋ง๋ฐฉ๊น์ง ์์๋๋ก ๋ชจ๋ ๋ค ๊ฐ์ ธ์ค๋ ๊ฒ ๋ง๊ณ ๋ ๋ชปํจ
for (String name : list) {
System.out.printf(name + "\t");
}
System.out.println();
์์ธ์ฒ๋ฆฌ (Exception Handling)
try-catch๋ฌธ
์์ธ ๋ฏธ๋ฃจ๊ธฐ
- throws Exception
- ์์ธ๋ฅผ ๊ฐ์ง๊ณ ์๋ ์ฝ๋์์ ์ง์ ์์ธ ์ฒ๋ฆฌ๋ฅผ ํ์ง ์๊ณ , ์์ธ ์ฒ๋ฆฌ๋ฅผ ์ด ๋ฉ์๋๋ฅผ ํธ์ถํ๊ณณ์ ๋ ๋๊ธฐ๊ฒ ๋ค.
์ฌ๋ฌ๊ฐ์ ์๋ฌ ํ๋๋ก ๋ฌถ์์์์. ์๋ฌ ์ ๊น์ง ์ถ๋ ฅ
try {
System.out.println(111);
int num = 0;
System.out.println(100 / num); // throw new ArithmeticException() ์ผ๊ตฌ๊ณต
System.out.println(222);
int[] nums = { 10, 20, 30 };
System.out.println(nums[0]); //throw new ArrayIndexOutOfBoundException()
System.out.println(333);
Calendar now = null;
System.out.println(now.get(Calendar.HOUR_OF_DAY)); // throw new NullPointException()
System.out.println(444);
} catch (ArithmeticException e) {
System.out.println("0์ผ๋ก ๋๋๊ธฐ");
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("๋ฐฉ๋ฒํธ ํ๋ฆผ");
} catch (NullPointerException e) {
System.out.println("๋์ฐธ์กฐ");
} catch (Exception e) { //๋๋จธ์ง ๋ชจ๋ ์์ธ(catch์ ๊ฐ์ฅ ๋ง์ง๋ง์ ์จ์ผ๋จ)
System.out.println("์์ธ ์ฒ๋ฆฌ");
}
'ํ๋ก๊ทธ๋๋ฐ ๊ณต๋ถ > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[18์ผ์ฐจ] HashMap, HashSet (0) | 2023.03.05 |
---|---|
[17์ผ์ฐจ] ์ปฌ๋ ์ - ArrayList, Stack, Queue (0) | 2023.03.04 |
[16์ผ์ฐจ] ์ถ์ ํด๋์ค(abstract class), ์์, ์ด๊ฑฐํ(enumeration) (0) | 2023.03.04 |
[15์ผ์ฐจ] ์ธํฐํ์ด์ค(interface) (0) | 2023.03.02 |
[15์ผ์ฐจ] ์ฐธ์กฐํ ํ๋ณํ(Casting), instanceof ์ฐ์ฐ์ (0) | 2023.02.21 |