**μ»΄ν¨ν° κ΄λ ¨ μ νμ ν맀νλ μ¬μ΄λμμ μ¬λ¬κ°μ§ μν (Item)μ λν μ 보λ₯Ό νμνλ €κ³ νλ€.
μνμλ λ§μ°μ€, λ©λͺ¨λ¦¬, μ΄μ΄μ , νλΈλ λ±μ΄ μμΌλ©°, μ νλͺ , κ°κ²©, μ μ‘°μ¬, μ μ‘°μΌ λ±μ λͺ¨λ μνμ 곡ν΅μ μΈ μμ±μ΄λ€. λ§μ°μ€μ κ²½μ°μλ λ²νΌμ κ°―μλ₯Ό 보μ¬μ£Όκ³ μνμ¬, λ©λͺ¨λ¦¬λ λ©λͺ¨λ¦¬ μ¬μ΄μ¦λ₯Ό, μ΄μ΄μ μ μ μ κΈΈμ΄λ₯Ό, νλΈλ μ νλ©΄μ λλΉμ λν μ 보λ₯Ό μΆκ°μ μΌλ‘ 보μ¬μ£Όλ €κ³ νλ€. μμμ±, λ€νμ±, μλμ±μμ¬μ©νμ¬ κΈ°λ₯μ μμ±νκ³ ν μ€νΈν΄λ³΄λΌ
λ€μν μ νμ μ 보λ₯Ό λ°°μ΄μ μ μ₯νμ¬ λͺ©λ‘μ νμνλ κΈ°λ₯μ μμ±ν΄λ³΄μμ€
Main ν΄λμ€ μ½λ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
import com.ezen.javaoop.*;
public class InheritanceMain
{
public static void main(String[] args)
{
Item[] it = new Item[4];
it[0] = new mouse("μΌλ³΄λ§μ°μ€", 30000, "μ¬λ³΄","22λ
5μ9μΌ",3);
it[1] = new memory("κ°λ©λͺ¨λ¦¬", 230000, "μΌμ","22λ
10μ17μΌ",16);
it[2] = new earset("μμ΄μ΄μ΄μ
", 80000, "μμ΄λ¦¬λ³΄","21λ
8μ7μΌ",150);
it[3] = new tablet("μμ΄ν¨λ", 600000, "μ ν", "21λ
11μ2μΌ",12);
System.out.printf("%s\t\t%s\t\t%s\t\t%s\t\t%s\n",
"μ΄λ¦","κ°κ²©","μ μ‘°μ¬","μ μ‘°μΌ","λΉκ³ ");
for(int i = 0; i<it.length;i++) {
System.out.print(it[i]);
}
}
}
|
cs |
λΆλͺ¨ ν΄λμ€ Item ν΄λμ€ μ½λ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
public class Item
{
private String name;
private int price;
private String producer;
private String date;
public Item() {}
public Item(String name, int price, String producer,String date) {
this.setName(name);
this.setPrice(price);
this.setProducer(producer);
this.setDate(date);
}
@Override
public String toString() {
String line = String.format("%s\t\t%d\t\t%s\t\t%s",name, price, producer,date );
return line;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public String getProducer() {
return producer;
}
public void setProducer(String producer) {
this.producer = producer;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
}
|
cs |
μμ ν΄λμ€ mouse ν΄λμ€ μ½λ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
public class mouse extends Item {
private int btn;
public mouse() {}
public mouse(String name, int price, String producer,String date, int btn) {
super(name, price, producer, date);
this.setBtn(btn);
}
public int getBtn() {
return btn;
}
public void setBtn(int btn) {
this.btn = btn;
}
@Override
public String toString() {
String st = String.format("\t%d(%s)\n", btn,"λ²νΌμ");
return super.toString()+ st;
}
}
|
cs |
μμ ν΄λμ€ memory ν΄λμ€ μ½λ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
public class memory extends Item {
private int size;
public memory() {}
public memory(String name, int price, String producer,String date, int size) {
super(name, price, producer, date);
this.setSize(size);
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
@Override
public String toString() {
String st = String.format("\t%d(%s)\n", size,"λ©λͺ¨λ¦¬ν¬κΈ°");
return super.toString()+ st;
}
}
|
cs |
μμ ν΄λμ€ earset ν΄λμ€ μ½λ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
public class earset extends Item {
private int length;
public earset() {}
public earset(String name, int price, String producer,String date, int length) {
super(name, price, producer, date);
this.setLength(length);
}
public int getLength() {
return length;
}
public void setLength(int length) {
this.length = length;
}
@Override
public String toString() {
String st = String.format("\t%d(%s)\n", length,"μ€κΈΈμ΄");
return super.toString()+ st;
}
}
|
cs |
μμ ν΄λμ€ tablet ν΄λμ€ μ½λ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
public class tablet extends Item {
private int area;
public tablet() {}
public tablet(String name, int price, String producer,String date, int area) {
super(name, price, producer, date);
this.setArea(area);
}
public int getArea() {
return area;
}
public void setArea(int area) {
this.area = area;
}
@Override
public String toString() {
String st = String.format("\t%d(%s)\n", area,"λλΉ");
return super.toString()+ st;
}
}
|
cs |
μ½μ κ°:

abstract : λ°λ μλ λ©μλμ κΌ λ£μ΄ μ€μΌνλ€. μΆμλ©μλ
ν΄λμ€λ₯Ό μ μΈ ν΄λκ³ λ new μ°μ°μλ₯Ό μ¬μ©νμ§ λͺ»νλ€. κ°μ²΄λ₯Ό μμ±νμ§ λͺ»νλ€.
μΆμ λ©μλλ₯Ό μμ λ°μλ€λ©΄ μμ ν΄λμ€μμλ λ°λμ μ€λ²λΌμ΄λ ν΄μ λ°λλ₯Ό μμ± μ§μ΄μΌνλ€.
κ°μ²΄λ₯Ό λ§λ€λ €κ³ ν΄λμ€λ₯Ό μλ§λ€μλ μλ€ κ·Έμ μμλ§ μμΌμ€ λͺ©μ μΌλ‘λ§ λ§λλ κ²½μ°λ μλ€.
new Item[ ]; λ°°μ΄κ°μ²΄ μμ±μ λ©λͺ¨λ¦¬ λ°μμ μ λ³΄κ° λ‘λλλκ² μλλΌ μ°Έμ‘°λ₯Ό λ΄μ λ°°μ΄λ§ μμ±νλ―λ‘ κ°λ₯νλ€.(κ°μ²΄ μμ±μ΄ μλ) λ§μ°μ€ λ©λͺ¨λ¦¬ μ΄μ΄μ λ± κ°κΈ° λ€λ₯Έ μλ£νμ κ°μ²΄λ₯Ό νλ²μ 루ν λλ €μ£ΌκΈ° μν΄μ μμ΄ν λ°°μ΄μ μ΄μ©νλ€.
μΈν°νμ΄μ€(Interface)
ν΄λμ€, μΈν°νμ΄μ€, μΆμν΄λμ€ μ°¨μ΄
ν΄λμ€μ μμ ν λ©μλλ§ μλ€.
μΆμν΄λμ€μ μΆμλ©μλκ° 1κ° μ΄μ μλ ν΄λμ€λ€
μΈν°νμ΄μ€λ μΆμλκ° ν¨μ¬ λλ€. μΆμλ©μλλ‘λ§ λμ΄μλ€. abstractλ λ¨μ΄λ₯Ό μμ¨λ λλ€.
λ©μλ νκ° μ§λ¦¬ μΈν°νμ΄μ€λ ν¨μν μΈν°νμ΄μ€λΌκ³ λΆλ₯Έλ€.
extend μμν λ μ
implements μΈν°νμ΄μ€ μΈ λ μ¬μ©
μμ)
Main ν΄λμ€ μ½λ
1
2
3
4
5
6
7
8
9
10
11
|
public class InterfaceMain
{
public static void main(String[] args)
{
CharacterSample ch = new CharacterSample();
ch.fire();
Fireable f = (Fireable)ch;
f.fire();
}
}
|
cs |
μΈν°νμ΄μ€ μ½λ
1
2
3
4
5
|
public interface Fireable
{
void fire();
}
|
cs |
CharacterSample ν΄λμ€ μ½λ
1
2
3
4
5
6
7
8
|
public class CharacterSample implements Fireable
{
@Override
public void fire() {
System.out.println("λ°μ¬ κΈ°λ₯ μλ");
}
}
|
cs |
μ½μ κ°:
λ°μ¬ κΈ°λ₯ μλ
λ°μ¬ κΈ°λ₯ μλ
ν΄λμ€ λͺ μμ > implements Fireable < μ΄ λ§μ λΆμ¬ Fireable μΈν°νμ΄μ€λ₯Ό μ°Έκ³ νλ€λ κ±Έ μ μ μλ€.
λ΄λΆ ν΄λμ€ (Inner class)
μΈμ€ν΄μ€ λ©€λ²μ κ°μ λ°©λ²μΌλ‘ μΈμ€ν΄μ€λ₯Ό μμ±ν΄μΌ νλ€.
Call by Value
μ½μ κ°:
sub 50
main 100
λ§μ½ score μμ²΄κ° λ°λμ΄ λ€μ΄κ°λ€λ©΄ main scoreλ 50μΌλ‘ κ°μ΄ λ°λμμ κ²μ΄λ€. νμ§λ§ changeScore(score); μ¬κΈ°μ scoreλ λ³μ κ·Έμμ²΄κ° μλλΌ λ³μμμ μλ κ°λ§μ 볡μ¬νμ¬ μ€κ²μ΄λ€. μ¦ 100 κ°λ§ λ€μ΄κ°μ νλΌλ―Έν°λ₯Ό κ°λ λ€μ λ©μλλ‘ κ°λ€.
Call by Reference
μ½μ κ°:
sub,[2, 4, 6, 8]
main,[2, 4, 6, 8]
CμΈμ΄μμ Call by address
λ³Έν¨μμ μλ λ°μ΄ν°λ₯Ό νμ ν¨μμμ μ‘°μνκ³ μΆμ λ μ°Έμ‘° νμ μΌλ‘ 보λ΄μΌμ§λ§ κ°λ₯νλ€
numμλ 4κ°μ§ μμλ₯Ό κ°λ λ°°μ΄μ μ°Έμ‘° κ°μ μ μ₯νκ³ μκΈ° λλ¬Έμ μ΄κ²μ 보λ΄κ² λλ€.
**call by value , call by reference
λ³Έ λ©μλμ μλ μ μμ κ°μ νμ λ©μλμμ λ³κ²½νλ €κ³ νλ€.
μ½μ κ°:
main,150
μμΈμ²λ¦¬
νλ‘κ·Έλ¨μ΄ κ°λ°μμ μλλλ‘ λμ§ μκ³ μ€λ₯κ° μκΈ°λ©΄ λΉμ μ μ’ λ£κ° λλ€.
μμ)
μ«μλ§ λ£μ΄μΌνλλ° μνλ²³ hλ₯Ό λ£μΌλ λΉμ μ μ’ λ£κ° λμλ€.
try ~catch λ¬Έμ μ¨μ μμΈλ₯Ό μ²λ¦¬ν΄μ€ μ μλ€. InputMismatchExceptionλ₯Ό μν¬νΈ ν΄μ£Όκ³ μμΈμ²λ¦¬κ° λλ©΄ λ©μλμ μ’ λ£λ₯Ό μν¬ μ μλ returnμ μ¨μ€λ€. μ€λ₯κ° λμ¨ μν©μλ νλ‘κ·Έλ¨μ΄ λΉμ μμ μΌλ‘ μ’ λ£λμ§ μκ³
**ν€λ³΄λμμ λκ°μ μ«μλ₯Ό μ λ ₯νλ€.
첫λ²μ§Έ μλ‘ λλ²μ§Έ μλ₯Ό λλμ νμ¬ κ·Έ κ²°κ³Όμμ νλ©΄μ νμν΄ λ³΄μΈμ
λ§μ½ 첫λ²μ§Έ μκ° 0μΌ κ²½μ° μ΄λ€ νμμ΄ λ°μνλ©° μ΄λ»κ² μ²λ¦¬ν΄μΌ ν κ²μΈμ§ μ½λλ‘ μμ±νλΌ
μ μ½λμμ μμΈκ° λ°μνλ€λ©΄ μ΄μ©μμκ² λ€μ λ μλ₯Ό μ λ ₯νλλ‘ μλ΄νκ³ , μ μμ μΌλ‘ λμ¬λ κΉμ§ λ°λ³΅νλ€.
'Java programming' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
(22.10.20)Java νλ‘κ·Έλλ° ArrayListλ₯Ό νμ©ν CRUD (0) | 2022.10.20 |
---|---|
(22.10.19)Java νλ‘κ·Έλλ°: μμΈμ²λ¦¬ Exception 컬λ μ Collection (0) | 2022.10.19 |
(22.10.17)Java νλ‘κ·Έλλ° κ°μ²΄μ§ν₯ μΈμ΄μ μμ (0) | 2022.10.18 |
(22.10.14)κ°μ²΄μ§ν₯ μΈμ΄μ Override μ Overload (1) | 2022.10.14 |
(22.10.13)ν΄λμ€ μ μΈκ³Ό κ°μ²΄μ§ν₯ μΈμ΄ μ€μ΅ (1) | 2022.10.13 |
λκΈ