ë°ìí
oop > Method.java
oop > MehtodApp.java
ð1. íŽëì€ ë§ë€êž°
1) íŽëì€(Class)ë?
- ê°ì²Žë¥Œ ë§ë€êž° ìí ìë£í (ì°žì¡°í)
- íŽëì€ë¥Œ ë§ë€ìŽìŒ ê°ì²Žë¥Œ ìì±í ì ìì
- ê°ì²Ž(object) ëì ìžì€íŽì€(instance)ë¡ íí ê°ë¥
- íì€ìžê³ì ì¡Žì¬íë ì¬ë¬Œ ëë êŽë ì íŽëì€ëŒë ìë£íìŒë¡ íííì¬ ê°ì²Žë¡ 구í
- íŽëì€ = ì€ê³ë (ë©ëªšëŠ¬ë ì°šì§íì§ë§ ì€ì²Žë ìë€!)
- íŽëì€ë¡ ë§ë ê°ì²Ž = ìžì€íŽì€ = ê°ì²Ž . . 몚ë ê°ì ë§
- íëì íŽëì€ë¡ ê°ì²Žë¥Œ ì¬ë¬ê° ë§ë€ ì ìì
- íŽëì€ : íì€ìžê³ìì íë¡ê·žëšìŒë¡ ì°ìŽêž° ìí ìë£í
- ê°ì²Ž : íë¡ê·žëšìì ì°ìŽë íì€ìžê³ì ëììŽ ëš
- íŽëì€ë ê°ì²Žë¥Œ ë§ë€êž° ìí í, êž°ê³, ì¥ì¹ ,ì€ê³ë ìŽë€
- íŽëì€ = ìë£í!!!
2) íŽëì€ ì ìž íì (íë, ìì±ì, ë©ìë)
//=> íëìë íë¡ê·žëš ì€íì íìí ê°ì ì ì¥íê³ , ë©ìëë¡ íëê°ì ì¬ì©íì¬ ìíë êž°ë¥ì ì ê³µ
[public] class íŽëì€ëª
{
//ðíë(Field) : ëìì ìì±ì íííì¬ ìì±ê°ì ì ì¥íêž° ìíŽ ì ìžë ë³ì ( = ë©€ë²ë³ì)
//ðìì±ì(Constructor) : ê°ì²Ž ìì±ì 목ì ìŒë¡ ì ìžë ë©ìë
//ðë©ìë(Method) : ëìì íì륌 ëª
ë ¹ì 몚ììŒë¡ íííêž° ìíŽ ì ìžë íšì ( = ë©€ë²íšì)
}
ðíë(Field) : íìí ê°ì ì ì¥íŽë
- ëìì ìì±ì íííì¬ ìì±ê°ì ì ì¥íêž° ìíŽ ì ìžë ë³ì ( = ë©€ë²ë³ì)
- ì§ìë³ìê° ìëêž° ë묞ì ìŒë°ì ìž ì§ìë³ìì ë¹êµíêž° ìíŽ ë©€ë²ë³ìëŒê³ ë ë¶ëŠ
- íëë ì§ìë³ìì ë¬ëŠ¬ ìì±ìì ë©ìë ì 첎ìì ì¬ì©ëë©° ìë©žëì§ ìë í ê°ì²Žì íšê» ì¡Žì¬
- ìì±, íë, ë©€ë²ë³ì
- ê°ì²Ž(ìì€íŽì€) ìì± ì íëë íšê» ìì±ëë©°, ìì±ë ê°ì²Žì íëê°ìë Ʞ볞ê°ìŽ ìë ìŽêž°íëš
- ìŽêž°ê°ìŽ ì ì¥ëì§ ìì íëë ê°ì²Ž ìì± ì ìëìŒë¡ Ʞ볞 ìŽêž°ê°ìŽ ë€ìŽê°
- êž°ë³žê° : ì«ìí:0 , ë ŒëŠ¬í:false , ì°žì¡°í:null
- íëì íìí ê°ì ì ì¥íì¬ ë©ìëë¡ íëê°ì ì¬ì©íì¬ ìíë êž°ë¥ì ì ê³µ
- íëì 목ì ) ê° ì ì¥!
- ë©ìëìì ì¬ì©í ê°ë€ì ì ì¥íêž° ìíŽ ë§ëë ê²
- íëë Ʞ볞ì ìŒë¡ 몚ë ë©ìëìì ì¬ì©ê°ë¥!! (ê³µíµì ì¬ì©)
- íëë ì ë§ë€ê¹?? ê·žê²ì 몚ë íì(ë©ìë)륌 구ííêž° ìí ê²
íìê° ìŒìŽëë©Ž íëì ìí¥ì ì€ ì ìì !! ( íì ↔ ë©ìë )
ðìì±ì(Constructor)
- ê°ì²Ž ìì±ì 목ì ìŒë¡ ì ìžë ë©ìë
- ìŽë í êž°ë¥ì ì ê³µíŽì£Œë ê²ìŽ ìë ê°ì²Ž ìì±ì 목ì ìŒë¡ íš!
- ìì±ì ìëµê°ë¥ - ìëµíë©Ž 컎íìŒë¬ê° Ʞ볞ìì±ì륌 ìë ì¶ê°íŽì€
- ìì±ìê° ììŒë©Ž ì !ë! ê°ì²Ž ë§ë€ ì ìì
- ìì±ì륌 ë§ë€ì§ ììŒë©Ž ì첎ì ìŒë¡ Ʞ볞ìì±ì륌 ë§ë€ìŽ ìžìíŽì€
ðë©ìë(Method)
- ë©ìëë¡ íëê°ì ì¬ì©íŽ ìíë êž°ë¥ ì ê³µ
- ëìì íì륌 ëª ë ¹ì 몚ììŒë¡ íííêž° ìíŽ ì ìžë íšì ( = ë©€ë²íšì)
- íšìë?
- ê°(ë°ìŽí°)ì ì²ëŠ¬íë ëª ë ¹ë€ì 몚ì
- ëš, ì ì¶ë ¥ëª ë ¹ ìì± ìíš!!!!!
- íŽëì€ìì ê°ì¥ ì€ìí ê²ì ë©ìë!!
- ì ì€ìíŽ? ë©ìë ìì ëª ë ¹ë€ìŽ ë€ìŽìêž°ë묞
- ë€ìí ë©ìëë€ì íµíŽ ìíë ê°ì²Žìì êž°ë¥ì 구íí ì ìì
- ë©ìëê° ìë íŽëì€ë ì¡Žì¬ ê°ì¹ê° ìì!!!
3) íŽëì€ ìì± ì 죌ìì¬í
- íŽëì€íìŒ(Car.java)곌 íë¡ê·žëšíìŒ(CarApp.java)ì ë¶ëŠ¬ìì±íêž°
- ìŒë°ì ìŒë¡ ìì€íìŒ íëë¹ íŽëì€íìŒ íëë§ ë§ëë ê²ìŽ ì¢ì
- ìëë íëì ìì€íìŒì íŽëì€íìŒê³Œ íë¡ê·žëš íìŒ í꺌ë²ì ìì± ê°ë¥ íëì ìì€íìŒì ì¬ë¬ê°ì íŽëì€ íìŒ ìì± ê°ë¥
- íì§ë§ ì°žì¡°í íŽëì€ì ì€íí íŽëì€ë¥Œ ë°ë¡ ë§ë€ìŽìŒ ëì€ì ë°°í¬ê° ê°ë¥íë¯ë¡ ìŽ ëì ë¶ëŠ¬íŽì ìì±íëë¡ íì
ð2. ê°ì²Ž ë§ë€êž°
1) ê°ì²Ž ìì± íì
íŽëì€ëª
ì°žì¡°ë³ì = new íŽëì€ëª
();
//íŽëì€ëª
: íŽëì€ë¥Œ ë§ëë ê°ì²Žì ìë£í ìì±
//ì°žì¡°ë³ì : ì°žì¡°ë³ì ìë³ì ìì±
- STEP1. new ì°ì°ìë¡ íŽëì€ëª
();ì ê°ì§ íŽëì€ì ìì±ì ížì¶
- ìì±ìì ìŽëŠ = íŽëì€ ìŽëŠ ìŽêž° ë묞ì new íŽëì€ëª ()ìŒë¡ ížì¶íš
- ìì±ìê° ížì¶ëšìŒë¡ì ê°ì²Žë¥Œ ìì±í ì ìë€.
- ìŠ, ìì±ì륌 ì못 ížì¶íë©Ž ê°ì²Žê° ìì±ëì§ ìì!! 죌ì!!!!!!!
- 몚ë íŽëì€ë ìì±ìê° ë°ëì ì¡Žì¬íë©°, ìì±ì륌 íë ìŽì ê°ì§ ì ìì
- ë§ìœ, íŽëì€ ëŽë¶ì ìì±ì ì ìžì ìëµíë€ë©Ž 컎íìŒë¬ê° Ʞ볞ìì±ì륌 ë°ìŽížìœëì ìëìŒë¡ ì¶ê°íš
- STEP2. ìì±ì륌 ì ížì¶íë€ë©Ž íë©ëªšëŠ¬ì ê°ì²Žê° ë§ë€ìŽì§ ê²ì
- íì ìŽëŠìŽ ìêž° ë묞ì ê°ì²Žì 죌ì륌 ëŽì ì ìë ì°žì¡°ë³ì êŒ ë§ë€êž°
- ìŠ, ì°žì¡°ë³ìë¡ ê°ì²Žì 죌ì ì ì¥
- STEP3. ì°žì¡°ë³ìì ì ì¥ë ê°ì²Žë .ì°ì°ìë¡ ì ê·Œíì¬ íë ëë ë©ìë륌 ì¬ì©íŽ íë¡ê·žëš ìì±
ð3. ë©ìë ë§ë€êž°
1) ë©ìë (Method)ë?
- íë륌 ì¬ì©íì¬ íìí êž°ë¥ì ì ê³µíêž° ìí ëª ë ¹ë€ì 몚ì
2) ë©ìë ì ìž íì
ìë£í ë©ìëëª
(ìë£í ë³ìëª
, ìë£í ë³ìëª
, ...){
//ëª
ë ¹;
//ëª
ë ¹;
//...
}
//ð¥ë©ìë ì ëª
ë ¹ë¬ž ìì± ì 죌ìì¬í!
//=> ë©ìë ì ëª
ë ¹ì ê°(ë°ìŽí°)ì ì²ëŠ¬íë ëª
ë ¹ë€ë§ ìì±í ê²
//=> ì€ì ë©ìë ì ëª
ë ¹ë€ì ìí ì ë°ìŽí°ë¥Œ ì²ëŠ¬íì¬, ë°íê°ìŽ ìë€ë©Ž 결곌ê°ì ìë €ì€
//=> ê°ì ì
ì¶ë ¥ íë ëª
ë ¹ë€ì ìì ex. System.out.println(); ë±ë±
//=> ì ììšì? íë¡ê·žëšë§ë€ ì
ì¶ë ¥íë ë°©ë²ìŽ ë€ë¥Žë¯ë¡ ì
ì¶ë ¥ ëª
ë ¹ë¬žì ìì±íë©Ž ìëŒ!!
//=> íŽëì€ë ë
늜ì ìŽìŽìŒíš
//=> ê·žëìŒ ì
ì¶ë ¥ìŽ ìë¡ ë€ë¥ž ë€ìí íë¡ê·žëšë€ ììì ì¬ì©ìŽ ê°ë¥í ê²!!
//=> ex. ì¹íë¡ê·žëë°, ê²ìíë¡ê·žëë° ..
//=> ì°žê³ ë¡ **ì¹íë¡ê·žëšììì ì
ì¶ë ¥**ì ëžëŒì°ì !!!!!
ð ë°íí(ReturnType)
- ë©ìë륌 ížì¶íì¬ ì»ì ì ìë 결곌ê°ì ìë£í
- 결곌í(ResultType)ìŽëŒê³ ë ë¶ëŠ
- ë°íí ìì )
//int ìë£íì ë°ííë ë©ìë
int ë©ìëëª
(ìë£í ë³ìëª
, ìë£í ë³ìëª
, ...){
//ê°ì ê³ì°íë ëª
ë ¹;
//ë°ìŽí°ë¥Œ ì²ëŠ¬íë ëª
ë ¹;
//íëê°ì ê°ì žë€ê° ìž ìë ìì...
}
//결곌ê°ì ìë£íì [Ʞ볞í - int, double..] [ì°žì¡°í-String ...] 몚ë ë€ ê°ë¥
- void : 묎ë°íí
- ë©ìë륌 ížì¶íì¬ ì»ì ì ìë 결곌ê°ìŽ ìë ê²œì° ì¬ì©íë ìë£í
- ëª ë ¹ë§ ì€ííê³ ëëë ë°íê° ììŽ ëëë ë©ìëë voidìë£í ì¬ì©íš
ð 맀ê°ë³ì(Parameter = Argument)
- ë©ìëì ëª ë ¹ì ì€ííêž° ìíŽ ë©ìë륌 ížì¶ ì ê°ì ì ë¬ë°ì ì ì¥íêž° ìí ë³ì
ð íëì¬ì©
- íë륌 ìŽì©íì¬ ë©ìë ììì ì¬ì©í ì ìì , 묎조걎 맀ê°ë³ì륌 íµíŽ ê°ìŽ ì ë¬ëë ê²ì ìë!!
ð return í€ìë (ì ìŽë¬ž)
- ìí 1) ë©ìë ì¢
ë£
- 조걎ììŽ ë§ì¡±í ë ë©ìë륌 ê°ì ë¡ ì¢ ë£í ì ìì
- ë°íê°ìŽ ììŽë return묞ì ë§ëë©Ž ê·ž ìŠì ë©ìë ì¢ ë£
- ë°ë³µë¬žì breakì ê°ì ìí
//íì)
//조걎ìì ê²°ê³Œê° ì°žìž ê²œì° ë©ìë ì¢
ë£ - ë°íí) void
if(조걎ì) return;
- ìí 2) ë©ìë ì¢ ë£ ì ëìì ê°ì ë°ííì¬ ë©ìë륌 ížì¶í ëª ë ¹ìê² ì ê³µ
//íì)
//ë©ìëì ë°íí곌 ë°íëë ëìì ìë£íìŽ ë°ëì ëìŒíŽìŒíš
return ëì;
ð ë©ìë ížì¶(Method Invoke) íì
- ë©ìë륌 ížì¶íŽìŒ ë©ìëì ëª ë ¹ì ì€ííì¬ êž°ë¥ì ì ê³µë°ì ì ìì
ê°ì²Ž.ë©ìëëª
(ê°, ê°, ...);
- ê°ì²Žê° ì ì¥ë ì°žì¡°ë³ì륌 ìŽì©íì¬ ë©ìëì ì ê·ŒíŽ ë©ìë ížì¶
- ë©ìë ížì¶ì ëìŽë ê°ìŽ 맀ê°ë³ìì ì°šë¡ëë¡ ì ë¬ëìŽ ì ì¥
- 맀ê°ë³ìì ê°ìŽ ì ìì ìŒë¡ ì ë¬ëì§ ìì ê²œì° ë©ìë ížì¶ ë¶ê°ë¥
- ê°ì²Ž ììŽë ížì¶ì ê°ë¥í ë¶ë¶ë ìì§ë§, Ʞ볞ì ìŒë¡ ê°ì²Ž 뚌ì ìì± í ë©ìë륌 ížì¶ í ì ìì
3) ë©ìë ížì¶ ì ì€ë ëì ìí
- íë¡ê·žëšì ììì íëì© íëŠëë¡ ìœë€ê° ë©ìë륌 ë§ëë©Ž ì€ë ëê° ê·ž ë©ìë륌 ê°ê³ ìë ê³³ì ê°ì ëª ë ¹ì íëì© ì€ííŽì£Œê³ ê°ì ê°ì§ê³ ë€ì ëëììŽ
- ð ë©ìë륌 ížì¶íë€
- ð©ì€ë ë( íë¡ê·žëš íëŠ)ê° íë¡ê·žëšì ììì íëì© íëŠëë¡ ìœë€ê° ë©ìë륌 ë§ëë©Ž →
- ì€ë ëê° ê·ž ê°ì²Žì ë©ìë륌 ê°ê³ ìë ê³³ìŒë¡ ìŽëíŽ ëª ë ¹ì íëì© ì€ííŽì£Œê³ →
- ë©ìëê° ì¢ ë£ëë©Ž ë°íê° ë§ì ê°ì§ê³ ë€ì ëëìì íë¡ê·žëšì ì€ííš
- ð©ì€ë ë: ì€ë ëë ì°žì¡°ë³ìê° ì°žì¡°íë ê°ì²Žì ë©ìëë¡ ìŽëíŽ ëª ë ¹ì ì€ííê³ , ë©ìëê° ì¢ ë£ëë©Ž ë€ì ëëìì ë€ì ìœë ì€ííŽì€
4) ê¿í
ð¯ìŽíŽëŠœì€ > Project > build Automatically
- íë¡ì íž ëŽ íŽëì€ë€ëŒëŠ¬ë ìë¡ ì°žì¡°ê° ê°ë¥í êž°ë¥!
- ìë¡ ê°ì žë€ ìž ì ìê³ , ëŒìŽëžë¬ëŠ¬ë ê°ì žë€ ìž ì ìì
ð¯package ëª ì íìí ë
//íë¡ì íž ëŽ ê°ì íší€ì§ì ìë íŽëì€ë€ì
Method method = new Method(); //ëŒê³ ìì±ê°ë¥íì§ë§,
//íë¡ì íž ëŽ ë€ë¥ž íší€ì§ì ìë íŽëì€ë€ì
oop.Method method = new Method(); //ëŒê³ ìì±íŽìŒíš
ð¯ë©ìë ížì¶ ì errorë©ìžì§ê° ëšë ìŽì : 맀ê°ë³ìì ê°ì ì ìì ìŒë¡ ì ë¬íŽìŒë§ ë©ìëì ëª
ë ¹ìŽ ì€íëš
- 맀ê°ë³ìì ì ë¬ ìžìê°ì ìë£íìŽ ìŒì¹íëê°? íëš
- ì ë¬íë ìžìì ê°¯ìê° ìŒì¹íëê°? íëš
ð¯API 묞ì ì€ ë§€ê°ë³ìì (object...args) ëŒê³ ì°ì¬ìë€ë©Ž? 0ê° ìŽìì 맀ê°ë³ì ê°ì ì ë¬íë©Ž ëš
5) Method.java
package A_oop;
//ì°žì¡°ê° ëª©ì ìž íŽëì€ - ê°ì²Ž ìì±ì ìí íŽëì€
public class Method {
//1.
//ë°íê°ìŽ ìë ë©ìë - void
void displayOne() { System.out.println("### Method íŽëì€ì displayOne() ë©ìë ížì¶ ###"); }
void displayTwo() { System.out.println("### Method íŽëì€ì displayTwo() ë©ìë ížì¶ ###"); }
void printOne() {
int tot=0;
for(int i=1;i<=100;i++) { tot+=i; }
System.out.println("1~100 ë²ìì ì ìë€ì í©ê³ = "+ tot);
}
//ë©ìë ížì¶ì 맀ê°ë³ìì ê°ìŽ ì ìì ìŒë¡ ì ë¬ëìŽ ì ì¥ëìŒë§ ë©ìëì ëª
ë ¹ ì€í
// => 맀ê°ë³ìì ê°ìŽ ì ì¥ëì§ ìì ê²œì° ë©ìë ížì¶ ë¶ê°ë¥ - ìë¬ ë°ì
void printTwo(int num) {
//맀ê°ë³ìì ì ì¥ë ê°ì ëí ê²ìŠ - ì íšì±ê²ì¬ (ì°ë êž°ê°ìŽë©Ž ë©ìëì¢
ë£)
if(num<0) {//ë¹ì ìì ìž ê°ìŽ 맀ê°ë³ìì ì ì¥ë 겜ì°
System.out.println("[ìë¬]맀ê°ë³ìì 0ë³Žë€ í° ì ìê°ìŽ ì ì¥ëìŽìŒ ë©ëë€.");
return;//ë©ìë ì¢
ë£
}
int tot=0;
for(int i=1;i<=num;i++) {
tot+=i;
}
System.out.println("1~"+num+" ë²ìì ì ìë€ì í©ê³ = "+ tot);
}
void printThree(int num1, int num2) {
/*
if(num1>num2) {//ë¹ì ìì ìž ê°ìŽ 맀ê°ë³ìì ì ì¥ë 겜ì°
System.out.println("[ìë¬]첫ë²ì§ž ì ë¬ê°ìŽ ëë²ì§ž ì ë¬ê°ë³Žë€ ìììŒ ë©ëë€.");
return;//ë©ìë ì¢
ë£
}
*/
//맀ê°ë³ìì ì ì¥ë ê°ì ëí ê²ìŠ - (ì°ë êž°ê°ìŽë©Ž ê° ë°ê¿ì£Œêž°)
if(num1>num2) {
int temp=num1;
num1=num2;
num2=temp;
}
int tot=0;
for(int i=num1;i<=num2;i++) {
tot+=i;
}
System.out.println(num1+"~"+num2+" ë²ìì ì ìë€ì í©ê³ = "+ tot);
}
//2.
//ë°íê°ìŽ ìë ë©ìë
int returnTot(int num1, int num2) {
if(num1>num2) {
int temp=num1;
num1=num2;
num2=temp;
}
int tot=0;
for(int i=num1;i<=num2;i++) {
tot+=i;
}
//ë³ìì ì ì¥ë ê°ì ë©ìë ì¢
ë£íë©° ë°í
// => ë°íëë ê°ì ìë£í곌 ë©ìë ë°ííìŽ ë°ëì ëìŒ
return tot;
}
//맀ê°ë³ìë¡ ì ìê°ì ì ë¬ë°ì íìì ì§ì륌 구ë¶íì¬ ë°ííë ë©ìë - false ë°í : íì, true ë°í : ì§ì
boolean isOddEven(int num) {
if(num%2!=0) {
return false;
} else {
return true;
}
}
//3.
//ë°°ìŽì ë°ííë ë©ìë
//ë°©ë²1.
int[] returnArray() {
//찞조죌ìë¡ ë°°ìŽê°ì²Ž ìì± í ë°í
int[] array = {10, 20, 30, 40, 50};
return array; //ë©ëªšëŠ¬ 죌ì ë°í (=ë°°ìŽ ë°í)
//ë©ëªšëŠ¬ì£Œì ìë€ = ë°°ìŽ ì°žì¡°í ì ìë€ = ë°°ìŽì ììê°ë€ìŽ ë°íëë€
}
//ë°©ë²2.
int[] returnArray() {
//ë©ìë ëŽ ì°žì¡°ì£Œì륌 ì¬ì©í ê² ìëë©Ž 찞조죌ìë¡ ë°°ìŽê°ì²Ž ì ê·Œí íì ìì
//ë€ì곌 ê°ìŽ ìì±íŽ ë°ííë©Ž ëš
return new int[] {10,20,30,40,50};
}
//ë°íê°ìŽ ë°°ìŽìŽ ìë error
/*
int[] returnArray() {
return {10,20,30,40,50}; //error
}
*/
//4.
//맀ê°ë³ìì ìë£íì ë°ë¥ž ë©ìë
//3ê°ì 맀ê°ë³ìì ì ìê°ì ì ë¬ë°ì í©ê³ë¥Œ ê³ì°íì¬ ë°ííë ë©ìë
int sumOne(int num1, int num2, int num3) {
return num1+num2+num3;
}
//ë°°ìŽì ì ë¬ë°ì ë°°ìŽì 몚ë ììê°ë€ì í©ê³ë¥Œ ê³ì°íì¬ ë°ííë ë©ìë
int sumTwo(int[] array) {
int tot=0;
for(int num:array) {
tot+=num;
}
return tot;
}
//맀ê°ë³ì ìëµ êž°íž(...)륌 ì¬ì©íì¬ ë§€ê°ë³ì륌 ì ìží ê²œì° ê°ì 0ê° ìŽì ì ë¬ë°ì ì ì¥ ê°ë¥
// => 맀ê°ë³ìë¡ ê°ë€ì ì ë¬ë°ì ëŽë¶ì ìŒë¡ ë°°ìŽì ìì±íì¬ ììê°ìŒë¡ ì ì¥
int sumThree(int...array) {
int tot=0;
for(int num:array) {
tot+=num;
}
return tot;
}
}
6) MethodApp.java
package A_oop;
//ì€íìŽ ëª©ì ìž íŽëì€ => main ë©ìëê° ì ìžë íŽëì€ - íë¡ê·žëš
public class MethodApp {
public static void main(String[] args) {
//1.
//íŽëì€ë¡ ê°ì²Žë¥Œ ìì±íì¬ ê°ì²Žì ë©ëªšëŠ¬ 죌ì륌 ì°žì¡°ë³ìì ì ì¥
Method method=new Method();
// => ê°ì íší€ì§ì íŽëì€ë íší€ì§ ííììŽ íŽëì€ë§ ì¬ì©íì¬ ì ê·Œ ê°ë¥
//oop.Method method = new Method();
// => ì°žì¡°ë³ì륌 ì¬ì©íì¬ ê°ì²Žì íë ëë ë©ìë ì ê·Œ
//ì°žì¡°ë³ìì ì ì¥ë ê°ì ì¶ë ¥í ê²œì° "ìë£í@ë©ëªšëŠ¬ì£Œì" íììŒë¡ ì ê³µë ê²°ê³Œê° ì¶ë ¥
System.out.println("method = "+method); //method = oop.Method@5aaa6d82
//2.
//ë©ìë ížì¶ : ë©ìë륌 ížì¶íë©Ž íë¡ê·žëš íëŠ(ì€ë ë)ìŽ ê°ì²Žì ë©ìëë¡ ìŽëíì¬ ë©ìëì ëª
ë ¹ì ì€ííê³ ë©ìëê° ì¢
ë£ëë©Ž ë€ì ëëìì ë€ì ëª
ë ¹ ì€í
method.displayOne(); //### Method íŽëì€ì displayOne() ë©ìë ížì¶ ###
method.displayTwo(); //### Method íŽëì€ì displayOne() ë©ìë ížì¶ ###
method.displayOne(); //### Method íŽëì€ì displayTwo() ë©ìë ížì¶ ###
method.printOne(); //1 ~ 100 ë²ìì ì ìë€ì í©ê³ = 5050
method.printOne(); //1 ~ 100 ë²ìì ì ìë€ì í©ê³ = 5050
//method.printTwo(); //error: 맀ê°ë³ìê° ììŽì
//method.printTwo(10,20); //error :ìžìê°¯ìê° ë¬ëŒì
//method.printTwo(10.5,20.1); //error :ìë£íìŽ ë¬ëŒì
method.printTwo(1200); //1 ~ 1200 ë²ìì ì ìë€ì í©ê³ = 720600
method.printTwo(30); //1 ~ 30 ë²ìì ì ìë€ì í©ê³ = 465
method.printTwo(-30); //ì íšì±ê²ìŠìœë ìì± ì ) 1 ~ -30 ë²ìì ì ìë€ì í©ê³ = 0
//ì íšì±ê²ìŠìœë ìì± í) [ìë¬] 맀ê°ë³ìì 0ë³Žë€ í° ì ìê°ìŽ ì ì¥ëìŽìŒ í©ëë€.
//ë©ìë륌 ížì¶í ë ì
ë ¥ê°ìŽ ì íší ê°ìŒë¡ ë°íìŽ ëëì§ ë°ì žë³Žê³ ,
//ì íšì±ì ê²ìŠí ì ìëë¡ ë©ìë ëŽë¶ì ìœëê° ìì±ëìŽììŽìŒ íë€.
//ð¥ë³Žíµì ì
ë ¥í ê°ìŽ ì íšê°ìŽ ìëëŒë©Ž ì¶ë ¥ ìëê³ , ìë¬ë©ìžì§ê° ëšëë¡ ë§ë ë€.
//ë©ìë ížì¶ì ëìŽë ê°ìŽ 맀ê°ë³ìì ì°šë¡ëë¡ ì ë¬ëìŽ ì ì¥
method.printThree(25, 75); //25~75 ë²ìì ì ìë€ì í©ê³ = 2550
method.printThree(12, 96); //12~96 ë²ìì ì ìë€ì í©ê³ = 4590
method.printThree(77, 45); //45~77 ë²ìì ì ìë€ì í©ê³ = 2013
//3.
//ë©ìë륌 ížì¶íì¬ ë°íëë 결곌ê°ì ë³ìì ì ì¥
// => ë©ìë ëª
ë ¹ì ëí 결곌ê°ì ì§ìì ìŒë¡ ì¬ì©í ê²œì° ë³ìì ì ì¥
// => ížì¶ ë©ìëê° ì¢
ë£ëë©Ž ë°íê°ì ë³ìì ì ì¥íš
// => [ë°íê° ìë£í = ë©ìëì ë³íí = ì ì¥í ë³ìì ìë£í] ë°ëì ëìŒíŽìŒíŽíš
int tot=method.returnTot(34, 86);
//ì
ë ¥ê³Œ ì¶ë ¥ ëª
ë ¹ì íë¡ê·žëšìì ìì±
// => ë©ìëììë ê°ì ëí ê³ì°ë§ íê³ ì
ë ¥ê³Œ ì¶ë ¥ì 믞ìì± - íë¡ê·žëšì ëí ë
ëŠœì± í볎
System.out.println("í©ê³(ë©ìë ížì¶ì ë°í 결곌ê°) = "+tot); //í©ê³(ë©ìë ížì¶ì ë°í 결곌ê°) = 3180
//ë°íê°ì ìŒìì ìŒë¡ ì¬ì©í ê²œì° ë³ìì 믞ì ì¥
System.out.println("í©ê³ = "+method.returnTot(40,80)); //í©ê³ = 2460
//4.
boolean result=method.isOddEven(10);
if(result) {
System.out.println("맀ê°ë³ìì ì ë¬ë ê°ì [ì§ì]ì
ëë€.");
} else {
System.out.println("맀ê°ë³ìì ì ë¬ë ê°ì [íì]ì
ëë€.");
}
//맀ê°ë³ìì ì ë¬ë ê°ì [ì§ì]ì
ëë€.
//if 구묞ì 조걎ì ëì ë
ŒëŠ¬ê°ì ë°ííë ë©ìë륌 ížì¶íì¬ ëª
ë ¹ ì í ì€í
if(method.isOddEven(11)) {
System.out.println("맀ê°ë³ìì ì ë¬ë ê°ì [ì§ì]ì
ëë€.");
} else {
System.out.println("맀ê°ë³ìì ì ë¬ë ê°ì [íì]ì
ëë€.");
}
//맀ê°ë³ìì ì ë¬ë ê°ì [íì]ì
ëë€.
//ë©ìë ížì¶ì ë°íëë ë°°ìŽì ë©ëªšëŠ¬ 죌ì륌 ì°žì¡°ë³ìì ì ì¥ - ë°°ìŽì ìì ì°žì¡° ê°ë¥
int[] array=method.returnArray();
for(int num:array) {
System.out.print(num+" ");
}
System.out.println(); //10 20 30 40 50
System.out.println("í©ê³ = "+method.sumOne(10, 20, 30)); //í©ê³ = 60
//맀ê°ë³ìì ê°ìŽ ì ìì ìŒë¡ ì ë¬ëì§ ìì ê²œì° ë©ìë ížì¶ì ëí ìë¬ ë°ì
//System.out.println("í©ê³ = "+method.sumOne()); //error
//System.out.println("í©ê³ = "+method.sumOne(10, 20)); //error
//System.out.println("í©ê³ = "+method.sumOne(10, 20, 30, 40)); //error
//ë°°ìŽì íµì§žë¡ ì ë¬íêž° ë묞ì 0ê°ë¥Œ ì ë¬íŽë errorê° ìëë€.
//ìŠ, ëªê°ë¥Œ ì ë¬íë ìêŽìë€
//ëšì ì ë©ìë륌 ížì¶íë ê²ìŽ ë묎 ë¶ížíë€ã
ë ì¢ì ë°©ë²ìŽ ìë?
//System.out.println("í©ê³ = "+method.sumTwo({10,20,30})); //error
System.out.println("í©ê³ = "+method.sumTwo(new int[]{10, 20, 30})); //í©ê³ = 60
System.out.println("í©ê³ = "+method.sumTwo(new int[]{})); //í©ê³ = 0
System.out.println("í©ê³ = "+method.sumTwo(new int[]{10, 20})); //í©ê³ = 30
System.out.println("í©ê³ = "+method.sumTwo(new int[]{10, 20, 30, 40})); //í©ê³ = 100
//ëªê°ì ê°ì ì ë¬íë ì€ë¥ëì§ ìëë€.
//ìŠ, ì ë¬í 맀ê°ë³ìì ê°ì 몚륌 ë ì¬ì©íì!!!
System.out.println("í©ê³ = "+method.sumThree(10, 20, 30));//í©ê³ = 60
System.out.println("í©ê³ = "+method.sumThree());//í©ê³ = 0
System.out.println("í©ê³ = "+method.sumThree(10, 20));//í©ê³ = 30
System.out.println("í©ê³ = "+method.sumThree(10, 20, 30, 40));//í©ê³ = 100
}
}
7) ð¥ íë ìì± ì 죌ìì¬í
- vs ë©ìëë ê²ìŠêµ¬íìŒë¡ ì못ë 결곌 ë°ì ì ì¢ ë£ìí¬ ì ìì
- íì§ë§ íëë ê°ì²Žë¡ ì ê·ŒíŽì íëê°ì ë°ë¡ ë³ê²œí ì ìêž° ë묞ì, íëì ì못ë ë°ìŽí°ê° ì ì¥ë ì ìì
- ë°ëŒì íëì ì§ì ì ìž ì ê·Œí ì ìëë¡ íë ê²ìŽ 맀ì°ì€ì
- ë©ìë ì첎ì 묞ì ê° ììŽë íëë묞ì ì°ë êž°ê°ìŽ ëì¬ìë ìì
- ê°ì²Žê° íëì ì§ì ì ê·Œíì§ ìê³ , ë°ëì ë©ìë륌 íµíŽì ì ê·Œí ì ìëë¡ ë§ë€êž°
ð [STEP1] íë(Field)ì "ìëí ì²ëŠ¬" - ì ê·Œì§ì ì privateìŽì©
- ììŒë¡ ì°ëŠ¬ê° íë¡ê·žëšì ë§ë€ ë ëë€ìì íë륌 ìëí ì²ëŠ¬ í ìì
- ìëí ì²ëŠ¬(Data Hiding)ë? ì ê·Œ ì§ì ì륌 ðprivateë¡ ì€ì íŽ ê°ì²Žê° íëì ì§ì ì ê·Œíì§ ëª»íëë¡ íë륌 ìšê²šëë ê²
- ð¥ 죌ìì¬í)ìì€í
íëë ìëí ì ìžë íëì§ë§, ìžë¶ìì ì ê·Œíì§ ëª»íê² ëŽë¶ììë§ ì¬ì©íë ê°ë€ì
ìŠ, Getter & Setter(ë°ìŽí°ì ê·Œë©ìë) ì¬ì© ëª»íš - ìì
//Car.java
public class Car {
//Field (private = ì§ì ê°ë³ê²œ 못íŽ!)
private String modelName;
private boolean engineStatus;
private int currentSpeed;
//Method (public = ì묎ë ë€ ë€ìŽì!)
public void startEngine() { }
public void stopEngine() { }
public void speedUp(int speed) {}
public void speedDown(int speed) {}
public void speedZero() { }
}
ð [STEP2] íëì "캡ìíìì "
- 캡ìíìì
ìŽë?
- ì믞1) ííìì 캡ìí
- íí ëìì ìì±(íë)곌 íì(ë©ìë)ë¡ ë¬¶ìŽ íŽëì€ë¡ ì ìžíë ê²
- ì믞2) ìëí
- íë륌 ìëí ì²ëŠ¬íì¬ ë³Žížíì¬ ì¬ì©ëëë¡ ì€ì íë ìì ( â )
- ìëí ì²ëŠ¬ë íë륌 ìíŽ íëê°ì ë³ê²œíë Getterë©ìëì íëê°ì ë°ííë Setterë©ìë륌 ì ìžíë ê²
- í¹í íë(ë°ìŽí°ì ì¥)ë ìžë¶ ì ê·ŒìŒë¡ë¶í° 볎ížëìŽìŒ íš
- ì믞1) ííìì 캡ìí
8) ð¥ë©ìë ìì± ì 죌ìì¬í
- ë©ìëì ì못ë 결곌륌 죌멎 ì€íìŽ ìëëë¡ ì€ê³ íë ê²ìŽ ì€ì
- ì¬ë¬ê°ì§ ê²ìŠì íµíŽ ë©ìëê° ì ì²ëŠ¬ë ì ìëë¡ ë§ë€ìŽì€ìŒíš
- ì ìì ìž CRUDí ì ìëë¡ ê²ìŠ êŒ íŽì£Œêž°
- ë©ìëì ì못ë 결곌륌 죌멎 ì€íìŽ ìëëë¡ ì€ê³
- ììŒë¡ ìœì
, ìì , ë³ê²œ, ê²ì ì²ëŠ¬íë ë©ìë ë§ìŽ ë§ë€ ê²ì!
- if (ì못ëìì ë ) → ë°ìŽí° ì²ëŠ¬íêž° or ë©ìëìì ëê°êž°
- [ê³ êžíë¡ê·žëš] if (ì못ëìì ë) → ììžë¥Œ ìŒë¶ë¬ ë°ììíŽ → ììžì²ëŠ¬ë¥Œ íµíŽ ìë¬ë©ìžì§ ì¶ë ¥íê² ë§ë€êž°
9) ë°ìŽí° ì ê·Œ ë©ìë ( Getter & Setter ë©ìë)
Getter
- íŽëì€ ìžë¶ìì íëê°ì ì¬ì©í ì ìëë¡ ë°ííë ë©ìë
- ëš, ìëí ì ìžë íëì ìë£íìŽ booleanìž ê²œì° get ëì is륌 ì¬ì©íì¬ ë©ìë ìì±
public ë°íí getíëëª
() { return íëëª
; }
setter
- 맀ê°ë³ìë¡ ê°ì ì ë¬ë°ì íëê°ì ë³ê²œíë ë©ìë
- íìíë€ë©Ž 맀ê°ë³ìì ì ë¬ë ê°ì ëí ê²ìŠë ê°ë¥íš
public void setíëëª
(ìë£í 맀ê°ë³ì) { íëëª
=맀ê°ë³ì; }
- setterë©ìëì ë€ìŽê°ë íëëª ì this êŒ ë¶ìŽêž°
- this ì랥ìŽë©Ž? ì€ë¥ëš
- 맀ê°ë³ìì ë€ìŽìš ê°ì ë€ì 맀ê°ë³ìì ì ì¥ë êŒŽìŽ ëš.
- ì€ì ë¡ Setterë©ìëì ê°ìŽ ì ë¬ë ë 맀ê°ë³ììŽëŠìŽ ëžë¡ ëŽì ìë€ë©Ž 몚ë 맀ê°ë³ìë¡ ìžìíš.
- ë©ëªšëŠ¬ì 구조륌 귞늌ìŒë¡ ê·žë € thisì ëíŽ ìŽíŽíêž°
- Getter & Setter ë©ìëë ìëížì¶ëêž° ìíŽ êŒ íìì ë§ê² ìì±íêž°
ð4. íŽëì€ì ì ê·Œì§ì ì ì€ì íêž°
- íŽëì€ë¥Œ ì ìží ë íë ëë ë©ìëì ì ê·Œì§ì ì륌 ì ìžíì¬ ì ê·Œ ê°ë¥ ì 묎 ì€ì
ðì ê·Œì§ì ì(Access Modifier)
- íŽëì€, íë, ìì±ì, ë©ìë륌 ì ìží ë ì ê·Œ ì 묎륌 ì§ì íêž° ìí í€ìë
- ìžë¶ìì ì ê·Œí ì ìë ë 벚
- ì ê·Œ í€ìë(keyword)
ð priavte - ê°ì íŽëì€ ëŽë¶ììë§ ì ê·Œ ê°ë¥
- (íŽëì€ ìžë¶ììë ì ë ì ê·Œ ë¶ê°ë¥)
- íëì ë©ìëì ì¬ì© ê°ë¥í ì ê·Œì íì - ìëí
- ê°ì¥ ì íì ìž ì ê·Œ ì§ì ì , ë ê·žë¥ ì¬êž°ì 못ë€ìŽì!!!!
- [ìŒë°ì ìŒë¡] íë ì ìž ì íë륌 ìëíì²ëŠ¬(Data Hiding)í ë ì¬ì©íš
- ì? íëì ì못ë ê°ì ì§ì ì ì¥íë©Ž ë©ìë륌 ì묎늬 ì ì ìžíŽë ì못ë 결곌ê°ìŽ ëì€ë¯ë¡ ê°ì²Žë¡ íëì ì§ì ì ìž ì ê·Œíë ê²ì ì°šëšíêž° ìíŽ
- ìŒë°ì ìŒë¡ Getter&Setter ë©ìëë¡ ê° ì€ì í ì ìëë¡ ë§ëŠ
ð public - 몚ë íší€ì§ ì ê·Œ ê°ë¥
- íŽëì€ ,íë , ë©ìëì ì¬ì© ê°ë¥í ì ê·Œì íì
- 몚ë íší€ì§ì íŽëì€ìì ì ê·Œ ê°ë¥
- ê°ì¥ ë²ì©ì ìž ì ê·Œ ì§ì ì
- [ìŒë°ì ìŒë¡] ë©ìë ì ìž ì ì¬ì©
- íë¡ê·žëš ìì±ì íìí 몚ë íŽëì€ìì ì ê·Œí ì ìëë¡ ì¬ì©
- ë§ìœ publicì ì°ì§ ììŒë©Ž ë€ë¥ž íší€ì§ìì ë©ìëì¬ì© 못íš
- ë¬Œë¡ íë륌 publicìŒë¡ ë§ëë ê²œì° ìꞎ íì§ë§ ë§ì§ë ìì
- í¹ë³í 겜ì°ë [íë - public] [ë©ìë- private]ë¡ë ì¬ì©íš
ðprotected - ê°ìíší€ì§ ë° ììíŽëì€ë§ ì ê·Œ ê°ë¥
- íë , ë©ìëì ì¬ì© ê°ë¥í ì ê·Œì íì
- ê°ì íší€ì§ì íŽëì€ìì ì ê·Œ ê°ë¥íëë¡ ì€ì
- ë€ë¥ž íší€ì§ì íŽëì€ìì ì ê·Œí ê²œì° ìë¬ ë°ìëì§ë§, ììì ì¬ì©íë©Ž ì ê·Œ ê°ë¥
ð package(default) - ê°ì íší€ì§ëŒëŠ¬ë§ ì ê·Œ ê°ë¥
- íŽëì€ , íë , ë©ìë ì ì¬ì© ê°ë¥í ì ê·Œì íì
- ë€ë¥žíší€ì§ ëŽ ììë°ì íŽëì€ì¬ë ì ë ì ê·Œ ë¶ê°ë¥!!!!
ð 5. ìì í íŽëì€ë¥Œ ë§ë€êž° ìŽë €ìŽ ì¶ìí(Abstract)ì 캡ìí(Encapsulation)
- ì¶ìí륌 íµíŽ ì¢ ë ê²¬ê³ íê² ë§ëë ìì ìŽ ìº¡ìíìŽë€.
- ìŽ ë(ì¶ìíì 캡ìí)ì ìŽì©íì¬ íŽëì€ë¥Œ ë§ë€ìŽ ëŽë ê²ìŽ ìë ì ììŽë€.
- íì§ë§ íì ììë ì¶ìíì 캡ìí륌 íµíŽ ìì í ííì íŽëì€ë¥Œ ì°ë 겜ì°ê° ëë¬Œê³ ížë²ì ì°ë 겜ì°ê° ë§ë€.
- ëŽê° ìíë ëìì íëì íŽëì€ ëŽì ì¶ìí & 캡ìíë¡ ì íííŽì£Œë ê²ìŽ ìì¹ìŽì§ë§, ì€ì ë¡ë ì¬ë¬ê°ì íŽëì€ë¡ ëëìŽ ìì±íë 겜ì°ê° ë ë§ë€.
- ìŠ, ì¶ìíì 캡ìí륌 ì ì©íŽì ìì í íë¡ê·žëšì ë§ëë ìŒì ìŽë €ìŽ ìŒìŽë€.
ë°ìí
'java > oop' 칎í ê³ ëŠ¬ì ë€ë¥ž êž
[oop] 6. this í€ìëì ê°ë (0) | 2024.04.16 |
---|---|
[oop] 5. ìì±ì(Constructor)ì ê°ë (0) | 2024.04.15 |
[oop] 4. ë©ìë ì€ë²ë¡ë(Method Overload) (0) | 2024.04.15 |
[oop] 3. ìëì°š íŽëì€ë¡ ë§ë ìëì°š ì¶ë ¥ íë¡ê·žëš (0) | 2024.04.14 |
[oop] 1. oop(object oriented program)ì êž°ìŽ (0) | 2024.04.13 |