์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- Absolute
- AGI
- ai
- AI agents
- AI engineer
- AI researcher
- ajax
- algorithm
- Algorithms
- aliases
- Array ๊ฐ์ฒด
- ASI
- bayes' theorem
- Bit
- Blur
- BOM
- bootstrap
- canva
- challenges
- ChatGPT
- Today
- In Total
A Joyful AI Research Journey๐ณ๐
[31] 230210 Java Ch. 6 ํด๋์ค: 2. ํ๋, 3. ์์ฑ์, 4. ๋ฉ์๋ [K-๋์งํธ ํธ๋ ์ด๋ 31์ผ] ๋ณธ๋ฌธ
[31] 230210 Java Ch. 6 ํด๋์ค: 2. ํ๋, 3. ์์ฑ์, 4. ๋ฉ์๋ [K-๋์งํธ ํธ๋ ์ด๋ 31์ผ]
yjyuwisely 2023. 2. 10. 12:50230210 Fri 31th class
Ch. 6 ํด๋์ค
์ง๋: p. 248 ~ (๊ต์ฌ: ํผ์ ๊ณต๋ถํ๋ ์๋ฐ, ์ ์: ์ ์ฉ๊ถ)
์ค๋ ๋ฐฐ์ด ๊ฒ ์ค ๊ธฐ์ตํ ๊ฒ์ ์ ๋ฆฌํ๋ค.
Ch. 6 ํด๋์ค
์ฑ ์ ๋ชฉ์ฐจ
06-1 ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ
06-2 ํ๋
06-3 ์์ฑ์
06-4 ๋ฉ์๋
06-5 ์ธ์คํด์ค ๋ฉค๋ฒ์ ์ ์ ๋ฉค๋ฒ
06-6 ํจํค์ง์ ์ ๊ทผ ์ ํ์
6.2 ํ๋(Field) p. 224
ํ๋: ๊ฐ์ฒด์ ๋ฐ์ดํฐ(๋ฉค๋ฒ ๋ณ์)๊ฐ ์ ์ฅ๋๋ ๊ณณ. ์์ฑ์์ ๋ฉ์๋ ์ ์ฒด์์ ์ฌ์ฉ๋๋ฉฐ ๊ฐ์ฒด๊ฐ ์๋ฉธ๋์ง ์๋ ํ ๊ฐ์ฒด์ ํจ๊ป ์กด์ฌํ๋ค.
ํ๋๋ ๊ฐ์ฒด์ ๊ณ ์ ๋ฐ์ดํฐ, ๊ฐ์ฒด๊ฐ ๊ฐ์ ธ์ผ ํ ๋ถํ, ๊ฐ์ฒด์ ํ์ฌ ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ณณ์ด๋ค.
public class Car{
//ํ๋(์ ์ญ๋ณ์)
//์๋๋ ๊ธฐ๋ณธ ํ์
์ด๋ค.
//์ ์ํ์ฌ(ํ๋, ์ผ์ฑ, ๊ธฐ์)
String company;
//๋ชจ๋ธ(SONATA, K5, SM)
String model;
//์๊น(WHITE, BLACK, GRAY)
String color
//์ต๊ณ ์๋(200)
int maxSpeed;
//ํ์ฌ ์๋(60)
int speed;
//์์ง ํ์ ์(1200RPM)
int rmp;
//์๋๋ ์ฐธ์กฐ ํ์
์ด๋ค.
//๋ถํ
Body body;
//์์ง
Engine engine;
//ํ์ด์ด
Tire tire;
//์์ฑ์
//๋ฉ์๋
}
6.2.1 ํ๋ ์ ์ธ
ํด๋์ค ์ค๊ดํธ {} ๋ธ๋ก ์ด๋์๋ ์ ์ธํ๋, ์์ฑ์์ ๋ฉ์๋ ๋ด๋ถ์์๋ ์ ์ธํ ์ ์๋ค.
ํ๋, ์ ์ญ๋ณ์๋ ์ด๊ธฐ๊ฐ์ ์ ์ ์ด๋ ๋๋ค. (์ง์ญ ๋ณ์๋ ์ด๊ธฐ๊ฐ ๋ฃ์ด์ผ ํ๋ค.)
๋ถ๋ฅ | ํ์ | ์ด๊ธฐ๊ฐ | |
๊ธฐ๋ณธ ํ์ | ์ ์ ํ์ | byte | 0 |
char | \u0000 (๋น ๊ณต๋ฐฑ) | ||
short | 0 | ||
int | 0 | ||
long | 0L | ||
์ค์ ํ์ | float | 0.0F | |
double | 0.0 | ||
๋ ผ๋ฆฌ ํ์ | boolean | false | |
์ฐธ์กฐ ํ์ | ๋ฐฐ์ด | null | |
ํด๋์ค(String ํฌํจ) | null | ||
์ธํฐํ์ด์ค | null |
6.2.2 ํ๋ ์ฌ์ฉ
ํ๋๋ฅผ ์ฌ์ฉํ๋ค = ํ๋๊ฐ์ ์ฝ๊ณ ๋ณ๊ฒฝํ๋ ์์
ํด๋์ค ๋ด๋ถ์ ์์ฑ์๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ๋จ์ํ ํ๋ ์ด๋ฆ์ผ๋ก ์ฝ๊ณ ๋ณ๊ฒฝํ๋ฉด ๋์ง๋ง,
ํด๋์ค ์ธ๋ถ์์ ์ฌ์ฉํ ๊ฒฝ์ฐ์๋ ์ฐ์ ์ ์ผ๋ก ํด๋์ค๋ก๋ถํฐ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ค ํ๋๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
Car myCar = new Car();
myCar ๋ณ์๊ฐ Car ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๊ฒ ๋๋ฉด ๋ํธ(.) ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด์ speed ํ๋์ ์ ๊ทผํ ์ ์๋ค.
๋ํธ(.) ์ฐ์ฐ์๋ ๊ฐ์ฒด ์ ๊ทผ ์ฐ์ฐ์๋ก ๊ฐ์ฒด๊ฐ ๊ฐ์ง๊ณ ์๋ ํ๋๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๊ณ ์ ํ ๋ ์ฌ์ฉ๋๋ค.
์์ ) Car ํด๋์ค ํ๋ ์ ์ธ Car.java
public class Car {
//ํ๋
//์ ์กฐํ์ฌ
String company = "ํ๋์๋์ฐจ";
//๋ชจ๋ธ
String model = "๊ทธ๋์ ";
//์ฐจ์ ์๊น
String color = "๊ฒ์ ";
//์ต๋ ์๋๊ฐ
int maxSpeed = 350;
//ํ์ฌ ์๋
int speed; //์์ ๋ค๋ฅด๊ฒ ์ด๊ธฐ๊ฐ์ด ์๋ค.
}
์ธ๋ถ ํด๋์ค์์ Car ํ๋๊ฐ ์ฝ๊ธฐ์ ๋ณ๊ฒฝ
//main๋ฉ์๋๊ฐ ์๋ ํด๋์ค์์ ๊ฐ์ฒด ์์ฑ
public class CarExample {
public static void main(String[] args) {
//new๋ผ๋ ํค์๋๋ก [ํธ์ถ]ํ๋ค.
//Carํด๋์ค์์ ์์ฑ๋ ์๋ก์ด ์ฃผ์(new)๋ฅผ mycar๋ณ์์ ์ ์ฅํ๋ค.
// int a = 10
Car mycar = new Car();
//Carํด๋์ค์ ์๋ ํ๋๊ฐ ๊ฐ์ ธ์ค๊ธฐ
System.out.println("์ ์ํ์ฌ : " + mycar.company);
System.out.println("๋ชจ๋ธ๋ช
: " + mycar.company);
System.out.println("์๊น : " + mycar.company);
System.out.println("์ต๊ณ ์๋ : " + mycar.company);
System.out.println("ํ์ฌ์๋ : " + mycar.company);
}
}
์์ 2) ํ๋ ์๋ ์ด๊ธฐํ
public class FieldInitValue {
//ํ๋
byte byteField;//ํ์
์ด byte๋ฉด, ๊ธฐ๋ณธ๊ฐ์ 0
short shortField; //ํ์
์ด short์ด๋ฉด, ๊ธฐ๋ณธ๊ฐ์ 0
int intField; //ํ์
์ด int์ด๋ฉด, ๊ธฐ๋ณธ๊ฐ์ 0
long longField; //ํ์
์ด long์ด๋ฉด, ๊ธฐ๋ณธ๊ฐ์ 0
boolean booleanField; //ํ์
์ด boolean๋ฉด, ๊ธฐ๋ณธ๊ฐ์ false
char charField; //ํ์
์ด char์ด๋ฉด, ๊ธฐ๋ณธ๊ฐ์ ๋น ๊ณต๋ฐฑ
float floatField; //ํ์
์ด float๋ฉด, ๊ธฐ๋ณธ๊ฐ์ 0.0
double doubleField; //ํ์
์ด double์ด๋ฉด, ๊ธฐ๋ณธ๊ฐ์ 0.0
int[] arrField; //ํ์
์ด ๋ฐฐ์ดํ์
์ด๋ฉด, ๊ธฐ๋ณธ๊ฐ์ null
String referenceField; //ํ์
์ด String์ด๋ฉด, ๊ธฐ๋ณธ๊ฐ์ null
}
ํ๋๊ฐ ์ถ๋ ฅ
FieldInitValue fiv = new FieldInitValue();
public class FieldInitValueExample {
public static void main(String[] args) {
FieldInitValue fiv = new FieldInitValue();
System.out.println("byteField: " + fiv.byteField);
System.out.println("shortField: " + fiv.shortField);
System.out.println("intField: " + fiv.intField);
System.out.println("longField: " + fiv.byteField);
System.out.println("booleanField: " + fiv.booleanField);
System.out.println("charField: " + fiv.charField);
System.out.println("floatField: " + fiv.floatField);
System.out.println("doubleField: " + fiv.doubleField);
System.out.println("arrField: " + fiv.arrField);
System.out.println("referenceField: " + fiv.referenceField);
}
}
๊ฒฐ๊ณผ)
byteField: 0
shortField: 0
intField: 0
longField: 0
booleanField: false
charField:
floatField: 0.0
doubleField: 0.0
arrField: null
referenceField: null
๋ง๋ฌด๋ฆฌ
2๊ฐ์ง ํค์๋๋ก ๋๋ด๋ ํต์ฌ ํฌ์ธํธ
1) ํ๋ ์ ์ธ: ํด๋์ค ์ค๊ดํธ {} ๋ธ๋ก ์ด๋์๋ ์ ์ธํ๋, ์์ฑ์์ ๋ฉ์๋ ๋ด๋ถ์์๋ ์ ์ธํ ์ ์๋ค.
2) ํ๋ ์ฌ์ฉ: ํด๋์ค ๋ด๋ถ์ ์์ฑ์์ ๋ฉ์๋์์ ๋ฐ๋ก ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋, ํด๋์ค ์ธ๋ถ์์ ์ฌ์ฉํ ๊ฒฝ์ฐ์๋ ๋ฐ๋์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ์ฐธ์กฐ ๋ณ์๋ฅผ ํตํด ์ฌ์ฉํด์ผ ํ๋ค.
Q2
์ฝ๋)
public class Member {
//์ด๋ฆ("์ ์๋ฐ")
String name;
//์์ด๋("abcd")
String id;
//ํจ์ค์๋("abcd1234!!")
String password;
//๋์ด(30)
int age;
}
Q3
์ฝ๋) Member member = new Member();
public class MemberExample {
public static void main(String[] args) {
//Member ํด๋์ค ๊ฐ์ฒด ์์ฑ
Member member = new Member();
member.name = "์ตํ์";//name ํ๋๊ฐ ๋ณ๊ฒฝ
member.age = 23;//age ํ๋๊ฐ ๋ณ๊ฒฝ
}
}
6.3 ์์ฑ์ p. 232
์์ฑ์: new ํค์๋๋ก ํด๋์ค๋ก๋ถํฐ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ํธ์ถ๋์ด ๊ฐ์ฒด์ ์ด๊ธฐํ๋ฅผ ๋ด๋นํ๋ค.
(๊ฐ์ฒด ์์ฑ: Car mycar = new Car();)
๊ฐ์ฒด ์ด๊ธฐํ:
ํ๋๋ฅผ ์ด๊ธฐํํ๊ฑฐ๋ ์์ฑ์ ๋ด๋ถ์์ ํ๋๊ฐ์ ์ด๊ธฐํํ ์ ์์ผ๋ฉฐ,
๋ฉ์๋๋ฅผ ํธ์ถํด์ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ ์ค๋น๋ฅผ ํ๋ ๊ฒ์ด๋ค.
์๋ฐ์์๋ ๊ฐ์ฒด์ ์์ฑ๊ณผ ๋์์ ์ธ์คํด์ค ๋ณ์๋ฅผ ์ํ๋ ๊ฐ์ผ๋ก ์ด๊ธฐํํ ์ ์๋ ์์ฑ์(constructor)๋ผ๋ ๋ฉ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
์๋ฐ์์ ์์ฑ์(constructor)์ ์ด๋ฆ์ ํด๋น ํด๋์ค์ ์ด๋ฆ๊ณผ ๊ฐ์์ผ ํฉ๋๋ค.
์ฆ, Car ํด๋์ค์ ์์ฑ์์ ์ด๋ฆ์ Car๊ฐ ๋ฉ๋๋ค.
์ด๋ฌํ ์์ฑ์๋ ๋ค์๊ณผ ๊ฐ์ ํน์ง์ ๊ฐ์ง๋๋ค.
1. ์์ฑ์๋ ๋ฐํ๊ฐ์ด ์์ง๋ง, ๋ฐํ ํ์ ์ voidํ์ผ๋ก ์ ์ธํ์ง ์์ต๋๋ค.
2. ์์ฑ์๋ ์ด๊ธฐํ๋ฅผ ์ํ ๋ฐ์ดํฐ๋ฅผ ์ธ์๋ก ์ ๋ฌ๋ฐ์ ์ ์์ต๋๋ค.
3. ๊ฐ์ฒด๋ฅผ ์ด๊ธฐํํ๋ ๋ฐฉ๋ฒ์ด ์ฌ๋ฌ ๊ฐ ์กด์ฌํ ๊ฒฝ์ฐ์๋ ํ๋์ ํด๋์ค๊ฐ ์ฌ๋ฌ ๊ฐ์ ์์ฑ์๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค.
์ฆ, ์์ฑ์๋ ํ๋์ ๋ฉ์๋์ด๋ฏ๋ก, ๋ฉ์๋ ์ค๋ฒ๋ก๋ฉ์ด ๊ฐ๋ฅํ๋ค๋ ์๋ฏธ์ ๋๋ค.
์ฐธ๊ณ : http://www.tcpschool.com/java/java_methodConstructor_constructor
6.3.1 ๊ธฐ๋ณธ ์์ฑ์
๋ชจ๋ ํด๋์ค๋ ์์ฑ์๊ฐ ๋ฐ๋์ ์กด์ฌํ๋ฉฐ, ์์ฑ์๋ฅผ ํ๋ ์ด์ ๊ฐ์ง ์ ์๋ค.
์ฐ๋ฆฌ๊ฐ ํด๋์ค ๋ด๋ถ์ ์์ฑ์ ์ ์ธ์ ์๋ตํ๋ค๋ฉด ํด๋์ค ์ ์ธ ์ ์ปดํ์ผ๋ฌ์ ์ํด ์๋์ผ๋ก ์ถ๊ฐ๋๋ ์์ฑ์์ด๋ค. (์์ฑ์๋ฅผ ์๋ตํ๋ฉด ๊ธฐ๋ณธ ์์ฑ์๋ฅผ ์๋์ผ๋ก ์ถ๊ฐํ๋ค.) ์ธ๊ธ ์ ํ๋ฉด ๊ธฐ๋ณธ ์์ฑ์๋ฅผ ์ด๋ค.
ํด๋์ค๊ฐ public class๋ก ์ ์ธ๋๋ฉด ๊ธฐ๋ณธ ์์ฑ์์์๋ public์ด ๋ถ์ง๋ง,
ํด๋์ค๊ฐ public ์์ด class๋ก๋ง ์ ์ธ๋๋ฉด ๊ธฐ๋ณธ ์์ฑ์์๋ public์ด ๋ถ์ง ์๋๋ค.
ํด๋์ค์ ์์ฑ์๋ฅผ ์ ์ธํ์ง ์์๋ new ์ฐ์ฐ์ ๋ค์ ๊ธฐ๋ณธ ์์ฑ์๋ฅผ ํธ์ถํด์ ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์๋ค.
Car myCar = new Car();
Car(): ๊ธฐ๋ณธ ์์ฑ์
javascript์ ๊ฒฝ์ฐ
ํจ์ ์ ์ธ
function add1(){}
function add2(a,b){}
ํจ์ ํธ์ถ
add1(); //()์ด๋๊น ()๋ฅผ ํธ์ถํ๋ค.
add2(10,20); //(a,b)์ด๋๊น (10,20)์ ํธ์ถํ๋ค.
6.3.2 ์์ฑ์ ์ ์ธ
ํด๋์ค๋ก๋ถํฐ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ํธ์ถ๋๋ ์์ฑ์๋ฅผ ๋ช
์์ ์ผ๋ก ์ ์ธํ ์ ์๋ค.
์์ฑ์๋ฅผ ์ ์ธํ๋ฉด ๊ธฐ๋ณธ ์์ฑ์๋ ์์ฑ๋์ง ์๋๋ค.
1. ํด๋์ค์ด๋ฆ() { ... } // ๋งค๊ฐ๋ณ์๊ฐ ์๋ ์์ฑ์ ์ ์ธ
2. ํด๋์ค์ด๋ฆ(์ธ์1, ์ธ์2, ...) { ... } // ๋งค๊ฐ๋ณ์๊ฐ ์๋ ์์ฑ์ ์ ์ธ
public class Car {
//๊ธฐ๋ณธ ์์ฑ์
//[public] ํด๋์ค๋ช
(){}
//Car(){}
//๊ธฐ๋ณธ ์์ฑ์๊ฐ ์๋ ์์ฑ์๋ฅผ ์ ์ธ
//ํด๋์ค๋ช
(ํ์
๋งค๊ฐ๋ณ์๋ช
, ํ์
๋งค๊ฐ๋ณ์๋ช
...){}
Car(String color, int cc){
}
}
public class CarExample {
public static void main(String[] args) {
//new๋ผ๋ ํค์๋๋ก [ํธ์ถ]ํ๋ค.
//Carํด๋์ค์์ ์์ฑ๋ ์๋ก์ด ์ฃผ์(new)๋ฅผ mycar๋ณ์์ ์ ์ฅํ๋ค.
// int a = 10
Car mycar = new Car("๊ฒ์ ",3000);
//Car mycar = new Car();(x): ๊ธฐ๋ณธ ์์ฑ์ X
}
}
6.3.3 ํ๋ ์ด๊ธฐํ p. 235
ํด๋์ค๋ก๋ถํฐ ๊ฐ์ฒด๊ฐ ์์ฑ๋ ๋ ํ๋๋ ๊ธฐ๋ณธ ์ด๊ธฐ๊ฐ์ผ๋ก ์๋ ์ค์ ๋๋ค.
๋ง์ฝ ๋ค๋ฅธ ๊ฐ์ผ๋ก ์ด๊ธฐํํ๊ณ ์ถ๋ค๋ฉด 1) ํ๋๋ฅผ ์ ์ธํ ๋ ์ด๊ธฐ๊ฐ์ ์ฃผ๋ ๋ฐฉ๋ฒ๊ณผ 2) ์์ฑ์์๊ฒ ์ด๊ธฐ๊ฐ์ ์ฃผ๋ ๋ฐฉ๋ฒ์ด ์๋ค. 1)์ ๊ฒฝ์ฐ ๋์ผํ ํด๋์ค๋ก๋ถํฐ ์์ฑ๋๋ ๊ฐ์ฒด๋ค์ ๋ชจ๋ ๊ฐ์ ๊ฐ์ ๊ฐ์ง๋ค.
์์ ) ์์ฑ์์์ ํ๋ ์ด๊ธฐํ
'this.ํ๋'๋ this๋ผ๋ ์ฐธ์กฐ ๋ณ์๋ก ํ๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋์ผํ๋ค.
public class Korean {
//ํ๋
//๊ตญ๊ฐ
String nation = "๋ํ๋ฏผ๊ตญ"; //๋ํ๋ฏผ๊ตญ์ผ๋ก nationํ๋์ ์ด๊ธฐํ
//์ด๊ธฐํ(x) -> ๋งค๊ฐ๋ณ์๊ฐ ์๋ ์์ฑ์์ ์ํด์ "๋ฐ์๋ฐ"๋ผ๋ ๋ฌธ์์ด์ด name ํ๋์ ์ด๊ธฐํ
String name;
//์ด๊ธฐํ(x) -> ๋งค๊ฐ๋ณ์๊ฐ ์๋ ์์ฑ์์ ์ํด์ "011225-1234567"๋ผ๋ ๋ฌธ์์ด์ด ssn ํ๋์ ์ด๊ธฐํ
String ssn;
//์๋ ์ถ๊ฐ: ์๋์ชฝ์ ๋งค๊ฐ๋ณ์๊ฐ ์๋ ์์ฑ์์ ์ํด์
//์๋ ์ถ๊ฐ๋ ๊ธฐ๋ณธ์์ฑ์๋ ์์ด์ง๋ค.
//Korean()
//์์ฑ์
Korean(String name, String ssn){
this.name = name;
this.ssn = ssn;
}
}
6.3.4 ์์ฑ์ ์ค๋ฒ๋ก๋ฉ (Overloading) p. 238
์ธ๋ถ์์ ์ ๊ณต๋๋ ๋ค์ํ ๋ฐ์ดํฐ๋ค์ ์ด์ฉํด์ ๊ฐ์ฒด๋ฅผ ์ด๊ธฐํํ๋ ค๋ฉด ์์ฑ์๋ ๋ค์ํ๋ ํ์๊ฐ ์๋ค.
์ค๋ฒ๋ก๋ฉ: ๋งค๊ฐ ๋ณ์๋ฅผ ๋ฌ๋ฆฌํ๋ ์์ฑ์๋ฅผ ์ฌ๋ฌ ๊ฐ ์ ์ธํ๋ ๊ฒ์ ๋งํ๋ค.
์ค๋ฒ๋ก๋ฉ์ ์กฐ๊ฑด
- ๋ฉ์๋์ ์ด๋ฆ์ด ๊ฐ๋ค.
- ๋งค๊ฐ ๋ณ์์ ํ์
์ด ๋ค๋ฅด๋ค.
- ๋งค๊ฐ ๋ณ์์ ๊ฐ์๊ฐ ๋ค๋ฅด๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฒฝ์ฐ)
//๋ฉ์๋ ์ ์ธ
//์ ์+์ ์
int add(int a, int b){
int result = a + b;
return result;
}
//์ ์+์ค์
double add2(int a, double b){
double result = a + b;
return result;
}
//์ค์+์ ์
double add3(double a, int b){
double result = a + b;
return result;
}
//์ค์+์ค์
double add4(double a, double b){
double result = a + b;
return result;
}
//๋ฉ์๋ ํธ์ถ
add1(1,2);
add2(1,2.5);
add3(1.5,2);
add4(1.5,2.5);
์๋ฐ์ ๊ฒฝ์ฐ)
//๋ฉ์๋ ํธ์ถ
add(1,2);
add(1,2.5);
add(1.5,2);
add(1.5,2.5);
์์ ) ์์ฑ์์ ์ค๋ฒ๋ก๋ฉ p. 239
public class Car {
//ํ๋
//์ ์กฐํ์ฌ
String company = "ํ๋์๋์ฐจ";
//๋ชจ๋ธ
String model; //= "๊ทธ๋์ ";
//์ฐจ์ ์๊น
String color; //= "๊ฒ์ ";
//์ต๋ ์๋๊ฐ
int maxSpeed; //= 350;
//์์ฑ์ ์ ์ธ
Car(){//๋งค๊ฐ ๋ณ์๊ฐ ์๋ ์์ฑ์ - ๊ธฐ๋ณธ ์์ฑ์
}
Car(String model){//๋งค๊ฐ ๋ณ์๊ฐ 1๊ฐ์ธ ์์ฑ์
this.model = model;
}
Car(String model, String color){//๋งค๊ฐ ๋ณ์๊ฐ 2๊ฐ์ธ ์์ฑ์ - ๋งค๊ฐ ๋ณ์๋ ํ์
์ด ๊ฐ์(String, String)
this.model = model;
this.color = color;
}
Car(String model, int speed){//๋งค๊ฐ ๋ณ์๊ฐ 2๊ฐ์ธ ์์ฑ์ - ๋งค๊ฐ ๋ณ์๋ ํ์
์ด ๋ค๋ฆ(String, int)
this.model = model;
this.speed = speed;
}
Car(String model, String color, int maxSpeed){//๋งค๊ฐ ๋ณ์๊ฐ 2๊ฐ์ธ ์์ฑ์
this.model = model;
this.color = color;
this.maxSpeed = maxSpeed;
}
}
์์ ) ๊ฐ์ฒด ์์ฑ ์ ์์ฑ์ ์ ํ
public class CarExample {
public static void main(String[] args) {
//new๋ผ๋ ํค์๋๋ก [ํธ์ถ]ํ๋ค.
//Carํด๋์ค์์ ์์ฑ๋ ์๋ก์ด ์ฃผ์(new)๋ฅผ mycar๋ณ์์ ์ ์ฅํ๋ค.
// int a = 10
//Car mycar = new Car("๊ฒ์ ",3000);
//Car mycar = new Car();(x): ๊ธฐ๋ณธ ์์ฑ์ X
//Carํด๋์ค์ ์๋ ํ๋๊ฐ ๊ฐ์ ธ์ค๊ธฐ
//System.out.println("์ ์ํ์ฌ : " + mycar.company);
//System.out.println("๋ชจ๋ธ๋ช
: " + mycar.company);
//System.out.println("์๊น : " + mycar.company);
//System.out.println("์ต๊ณ ์๋ : " + mycar.company);
//System.out.println("ํ์ฌ์๋ : " + mycar.company);
//Carํด๋์ค์์ ์์ฑ๋ ์๋ก์ด ์ฃผ์(new)๋ฅผ mycar๋ณ์์ ์ ์ฅํ๋ค.
// ๋งค๊ฐ ๋ณ์๊ฐ ์๋ ์์ฑ์ ํธ์ถ - ๊ธฐ๋ณธ ์์ฑ์ ํธ์ถ
Car car1 = new Car();
System.out.println(car1.company);
System.out.println();
Car car2 = new Car("์๊ฐ์ฉ");
System.out.println(car2.company);
System.out.println(car2.model);
System.out.println();
Car car3 = new Car("์๊ฐ์ฉ", "๋นจ๊ฐ");
System.out.println(car3.company);
System.out.println(car3.model);
System.out.println(car3.color);
System.out.println();
Car car31 = new Car("์๊ฐ์ฉ", 200);
System.out.println(car31.company);
System.out.println(car31.model);
System.out.println(car31.speed);
Car car4 = new Car("์๊ฐ์ฉ", "๋นจ๊ฐ", 200);
System.out.println(car4.company);
System.out.println(car4.model);
System.out.println(car3.color);
System.out.println(car4.maxSpeed);
}
}
6.3.5 ๋ค๋ฅธ ์์ฑ์ ํธ์ถ: this() p. 241
this = ๋
this(): ๊ฐ์ฒด ์์ ์ ๋ ๋ค๋ฅธ ์์ฑ์๋ฅผ ํธ์ถํ ๋ ์ฌ์ฉํ๋ค.
์์ฑ์ ์ค๋ฒ๋ก๋ฉ์ด ๋ง์์ง ๊ฒฝ์ฐ ์์ฑ์ ๊ฐ์ ์ค๋ณต๋ ์ฝ๋๊ฐ ๋ฐ์ํ ์ ์๋ค. ์ด ๊ฒฝ์ฐ ํ๋ ์ด๊ธฐํ ๋ด์ฉ์ ํ ์์ฑ์์๊ฒ๋ง ์ง์ค์ ์ผ๋ก ์์ฑํ๊ณ ๋๋จธ์ง ์์ฑ์๋ ์ด๊ธฐํ ๋ด์ฉ์ ๊ฐ์ง๊ณ ์๋ ์์ฑ์๋ฅผ ํธ์ถํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๊ฐ์ ํ ์ ์๋ค.
this()๋ ์์ ์ด ๋ค๋ฅธ ์์ฑ์๋ฅผ ํธ์ถํ๋ ์ฝ๋๋ก ๋ฐ๋์ ์์ฑ์์ ์ฒซ ์ค์์๋ง ํ์ฉ๋๋ค. this() ๋ค์์๋ ์ถ๊ฐ์ ์ธ ์คํ๋ฌธ๋ค์ด ์ฌ ์ ์๋ค.
this() ๋ฉ์๋๋ ์์ฑ์ ๋ด๋ถ์์๋ง ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ๊ฐ์ ํด๋์ค์ ๋ค๋ฅธ ์์ฑ์๋ฅผ ํธ์ถํ ๋ ์ฌ์ฉํฉ๋๋ค.
this() ๋ฉ์๋์ ์ธ์๋ฅผ ์ ๋ฌํ๋ฉด, ์์ฑ์ ์ค์์ ๋ฉ์๋ ์๊ทธ๋์ฒ(๋ฉ์๋ ์ด๋ฆ๊ณผ ๋งค๊ฐ๋ณ์ ๋ฆฌ์คํธ์ ์กฐํฉ)๊ฐ ์ผ์นํ๋ ๋ค๋ฅธ ์์ฑ์๋ฅผ ์ฐพ์ ํธ์ถํด ์ค๋๋ค.
์์ 1) ๋ค๋ฅธ ์์ฑ์๋ฅผ ํธ์ถํด์ ์ค๋ณต ์ฝ๋ ์ค์ด๊ธฐ
public class Car {
//ํ๋
//์ ์กฐํ์ฌ
String company = "ํ๋์๋์ฐจ";
//๋ชจ๋ธ
String model; //= "๊ทธ๋์ ";
//์ฐจ์ ์๊น
String color; //= "๊ฒ์ ";
//์ต๋ ์๋๊ฐ
int maxSpeed; //= 350;
//ํ์ฌ ์๋
int speed; //์์ ๋ค๋ฅด๊ฒ ์ด๊ธฐ๊ฐ์ด ์๋ค.
//์์ฑ์ ์ ์ธ
Car(){//๋งค๊ฐ ๋ณ์๊ฐ ์๋ ์์ฑ์ - ๊ธฐ๋ณธ ์์ฑ์
}
Car(String model){//๋งค๊ฐ ๋ณ์๊ฐ 1๊ฐ์ธ ์์ฑ์
//this.model = model;
this(model,"์์",250);
}
Car(String model, String color){//๋งค๊ฐ ๋ณ์๊ฐ 2๊ฐ์ธ ์์ฑ์ - ๋งค๊ฐ ๋ณ์๋ ํ์
์ด ๊ฐ์(String, String)
this.model = model;
this.color = color;
}
Car(String model, int speed){//๋งค๊ฐ ๋ณ์๊ฐ 2๊ฐ์ธ ์์ฑ์ - ๋งค๊ฐ ๋ณ์๋ ํ์
์ด ๋ค๋ฆ(String, int)
this.model = model;
this.speed = speed;
}
Car(String model, String color, int maxSpeed){//๋งค๊ฐ ๋ณ์๊ฐ 2๊ฐ์ธ ์์ฑ์
this.model = model;
this.color = color;
this.maxSpeed = maxSpeed;
}
}
๋ง๋ฌด๋ฆฌ
6๊ฐ์ง ํค์๋๋ก ๋๋ด๋ ํต์ฌ ํฌ์ธํธ
1) ๊ธฐ๋ณธ ์์ฑ์: ํด๋์ค ์ ์ธ ์ ์ปดํ์ผ๋ฌ์ ์ํด ์๋์ผ๋ก ์ถ๊ฐ๋๋ ์์ฑ์์ด๋ค.
2) ์์ฑ์ ์ ์ธ: ํด๋์ค๋ก๋ถํฐ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ํธ์ถ๋๋ ์์ฑ์๋ฅผ ๋ช
์์ ์ผ๋ก ์ ์ธํ ์ ์๋ค.
์์ฑ์๋ฅผ ์ ์ธํ๋ฉด ๊ธฐ๋ณธ ์์ฑ์๋ ์์ฑ๋์ง ์๋๋ค.
3) ๋งค๊ฐ ๋ณ์: ์์ฑ์ ํธ์ถ ์ ๊ฐ์ ์ ๋ฌ๋ฐ๊ธฐ ์ํด ์ ์ธ๋๋ ๋ณ์๋ฅผ ๋งํ๋ค.
4) ๊ฐ์ฒด ์ด๊ธฐํ: ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ์ค๋นํ๋ ๊ณผ์ ์ผ๋ก
ํ๋๋ฅผ ์ ์ธํ ๋ ์ด๊ธฐํํ๊ฑฐ๋ ์์ฑ์ ๋ด๋ถ์์ ํ๋๊ฐ์ ์ด๊ธฐํํ ์ ์์ผ๋ฉฐ,
๋ฉ์๋๋ฅผ ํธ์ถํ๋ ๋ด์ฉ์ผ๋ก ๊ตฌ์ฑ๋๋ค.
5) ์ค๋ฒ๋ก๋ฉ: ๋งค๊ฐ ๋ณ์๋ฅผ ๋ฌ๋ฆฌํ๋ ์์ฑ์๋ฅผ ์ฌ๋ฌ ๊ฐ ์ ์ธํ๋ ๊ฒ์ ๋งํ๋ค.
6) this(): ๊ฐ์ฒด ์์ ์ ๋ ๋ค๋ฅธ ์์ฑ์๋ฅผ ํธ์ถํ ๋ ์ฌ์ฉํ๋ค.
6.4 ๋ฉ์๋ p. 247
๋ฉ์๋๋ ๊ฐ์ฒด์ ๋์์ ํด๋นํ๋ ์ค๊ดํธ {} ๋ธ๋ก์ด๋ค. ์ค๊ดํธ ๋ธ๋ก ์ด๋ฆ์ด ๋ฉ์๋ ์ด๋ฆ์ด๋ฉฐ, ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด ์ค๊ดํธ ๋ธ๋ก์ ์๋ ๋ชจ๋ ์ฝ๋๋ค์ด ์ผ๊ด์ ์ผ๋ก ์คํ๋๋ค.
6.4.1 ๋ฉ์๋ ์ ์ธ
๋ฉ์๋ ์ ์ธ์ ์ ์ธ๋ถ์ ์คํ ๋ธ๋ก์ผ๋ก ๊ตฌ์ฑ๋๋ค.
๋ฆฌํดํ์
๋ฉ์๋ ์ด๋ฆ ([๋งค๊ฐ๋ณ์์ ์ธ, ...]_{
์คํํ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ณณ //๋ฉ์๋ ์คํ ๋ธ๋ก
}
๋ฉ์๋ ์ ์ธ๋ถ (method signature): ๋ฆฌํด ํ์
, ๋ฉ์๋ ์ด๋ฆ, ๋งค๊ฐ ๋ณ์ ์ ์ธ
- ๋ฆฌํด ํ์
: ๋ฉ์๋๊ฐ ๋ฆฌํดํ๋ ๊ฒฐ๊ณผ ํ์
ํ์
- ๋ฉ์๋ ์ด๋ฆ
- ๋งค๊ฐ๋ณ์์ ์ธ: ๋ฉ์๋๊ฐ ์คํํ ๋ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ธฐ ์ํ ๋ณ์
๋ฉ์๋ ์คํ ๋ธ๋ก: ์คํํ ์ฝ๋๋ฅผ ์์ฑํ๋ค.
์์)
public class Calculator {
//ํ๋
//์์ฑ์
//๋ฉ์๋
void powerOn() {
System.out.println("์ ์์ ์ผญ๋๋ค.");
}
int plus(int x, int y) {
int result = x + y;
return result;
}
double divide(int x, int y) {
double result = (double)x / (double)y;
return result;
}
void powerOff() {
System.out.println("์ ์์ ๋๋๋ค.");
}
}
1) ๋ฆฌํด ํ์
๋ฆฌํด ํ์
= ๋ฆฌํด๊ฐ์ ํ์
๋ฆฌํด๊ฐ = ๋ฉ์๋๋ฅผ ์คํํ ํ์ ๊ฒฐ๊ด๊ฐ
๋ฉ์๋์ ๋ฆฌํด๊ฐ์ด ์์ ๊ฒฝ์ฐ ๋ฆฌํด ํ์
์ด ์ ์ธ๋ถ์ ๋ช
์๋์ด์ผ ํ๋ค.
๋ฆฌํด๊ฐ์ด ์๋๋ ์๋๋์ ๋ฐ๋ผ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ๋ฐฉ๋ฒ์ด ๋ค๋ฅด๋ค.
powerOn(); // ๋ฆฌํด๊ฐ์ด ์๊ธฐ ๋๋ฌธ์ ๋ณ์์ ์ ์ฅํ ๋ด์ฉ์ด ์๋ค.
double result = divide(10, 20); //๋ฆฌํด๊ฐ์ ๋ฐ๊ธฐ ์ํด ๋ฆฌํด ํ์
์ธ double ํ์
์ผ๋ก ์ ์ธ๋์ด์ผ ํ๋ค.
int result = divide(10, 20); //์ปดํ์ผ ์๋ฌ
๋ฆฌํด๊ฐ์ ๋ฐ๊ธฐ ์ํด ๋ฆฌํด ํ์
์ธ double ํ์
์ผ๋ก ์ ์ธ๋์ด์ผ ํ๋ค.
๋ง์ฝ result ๋ณ์๋ฅผ int ํ์
์ผ๋ก ์ ์ธํ๊ฒ ๋๋ฉด double ๊ฐ์ ์ ์ฅํ ์ ์๊ธฐ ๋๋ฌธ์ ์ปดํ์ผ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
๋ฆฌํด๊ฐ์ด ์ค์ํ์ง ์๊ณ ๋ฉ์๋ ์คํ์ด ์ค์ํ ๊ฒฝ์ฐ ๋ณ์๋ฅผ ์ ์ธํ์ง ์๊ณ ๋ฉ์๋๋ฅผ ํธ์ถํ ์๋ ์๋ค.
divide(10, 20);
2) ๋ฉ์๋ ์ด๋ฆ
- ์ซ์๋ก ์์ํ๋ฉด ์ ๋๊ณ , $, _๋ฅผ ์ ์ธํ ํน์ ๋ฌธ์ ์ฌ์ฉ X
- ๊ด๋ก์ ์ผ๋ก ๋ฉ์๋ ์ด๋ฆ์ ์๋ฌธ์๋ก ์์ฑํ๋ค.
- ์๋ก ๋ค๋ฅธ ๋จ์ด๊ฐ ํผํฉ๋ ์ด๋ฆ์ด๋ผ๋ฉด ๋ค์ด์ด ์ค๋ ๋จ์ด์ ์ฒซ ๊ธ์๋ ๋๋ฌธ์๋ก ์์ฑํ๋ค.
์ ์์ฑ๋ ๋ฉ์๋ ์ด๋ฆ์ ์์ (๋ฉ์๋๊ฐ ์ด๋ค ๊ธฐ๋ฅ์ ์ํํ๋์ง ์ฝ๊ฒ ์ ์ ์๋ค. :))
void run(){...}
void startEngine(){...}
String getName(){...}
int[] getScores(){...}
3) ๋งค๊ฐ ๋ณ์ ์ ์ธ p. 250
๋งค๊ฐ ๋ณ์๋ ๋ฉ์๋๊ฐ ์คํํ ๋ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ธ๋ถ๋ก๋ถํฐ ๋ฐ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.
๋งค๊ฐ ๋ณ์๊ฐ ํ์ํ ๊ฒฝ์ฐ๋ ์๊ณ , ํ์ ์๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
๋งค๊ฐ๊ฐ์ ๋ฐ๋์ ๋งค๊ฐ ๋ณ์์ ํ์
์ ๋ถํฉ๋๋ ๊ฐ์ด์ด์ผ ํ๋ค.
void: ๋ฆฌํด๊ฐ์ด ์๋ ๋ฉ์๋๋ ๋ฆฌํด ํ์
์ผ๋ก void๋ฅผ ๊ธฐ์ ํด์ผ ํ๋ค.
์์ ) ๋ฉ์๋ ์ ์ธ
public class Calculator {
//ํ๋
//์์ฑ์
//๋ฉ์๋
void powerOn() {
System.out.println("์ ์์ ์ผญ๋๋ค.");
}
int plus(int x, int y) {
int result = x + y;
return result;
}
double divide(int x, int y) {
double result = (double)x / (double)y;
return result;
}
void powerOff() {
System.out.println("์ ์์ ๋๋๋ค.");
}
}
์์ ) ๋ฉ์๋ ํธ์ถ
public class CalculatorExample {
public static void main(String[] args) {
Calculator myCalc = new Calculator();
//Calculator ํด๋์ค์ powerOn ๋ฉ์๋ ํธ์ถ
myCalc.powerOn();
//Calculator ํด๋์ค์ plus ๋ฉ์๋ ํธ์ถ
int result1 = myCalc.plus(5, 6);
System.out.println(result1);
byte x = 10;
byte y = 4;
//Calculator ํด๋์ค์ divide ๋ฉ์๋ ํธ์ถ
double result2 = myCalc.divide(x, y);
System.out.print(result2);
//Calculator ํด๋์ค์ powerOff ๋ฉ์๋ ํธ์ถ
myCalc.powerOff();
}
}
4) ๋งค๊ฐ ๋ณ์์ ๊ฐ์๋ฅผ ๋ชจ๋ฅผ ๊ฒฝ์ฐ
ex) ์ฌ๋ฌ ๊ฐ์ ์๋ฅผ ๋ชจ๋ ํฉ์ฐํ๋ ๋ฉ์๋๋ฅผ ์ ์ธ
ํด๊ฒฐ์ฑ
์ ๋งค๊ฐ ๋ณ์๋ฅผ ๋ฐฐ์ด ํ์
์ผ๋ก ์ ์ธํ๋ ๊ฒ์ด๋ค.
int sum1(int[] values){}
//sum1() ๋ฉ์๋๋ฅผ ํธ์ถํ ๋ ๋ฐฐ์ด์ ๋๊ฒจ์ค์ผ๋ก์จ ๋ฐฐ์ด์ ํญ๋ชฉ ๊ฐ๋ค์ ๋ชจ๋ ์ ๋ฌํ ์ ์๋ค.
//๋ฐฐ์ด์ ํญ๋ชฉ ์๋ ํธ์ถํ ๋ ๊ฒฐ์ ๋๋ค.
int[] values = {1, 2, 3};
int result = sum1(values);
int result = sum1(new int[] {1, 2, 3, 4, 5});
๋งค๊ฐ ๋ณ์๋ฅผ ๋ฐฐ์ด ํ์
์ผ๋ก ์ ์ธํ๋ฉด ๋ฉ์๋๋ฅผ ํธ์ถํ๊ธฐ ์ ์ ๋ฐฐ์ด์ ์์ฑํด์ผ ํ๋ ๋ถํธํ ์ ์ด ์๋ค.
๊ทธ๋์ ๋ฐฐ์ด์ ์์ฑํ์ง ์๊ณ ๊ฐ์ ๋ชฉ๋ก๋ง ๋๊ฒจ์ฃผ๋ ๋ฐฉ๋ฒ๋ ์๋ค.
sum2() ๋ฉ์๋์ ๋งค๊ฐ ๋ณ์๋ฅผ ...๋ฅผ ์ฌ์ฉํด์ ์ ์ธํ๊ฒ ๋๋ฉด ๋ฉ์๋ ํธ์ถ ์ ๋๊ฒจ์ค ๊ฐ์ ์์ ๋ฐ๋ผ ์๋์ผ๋ก ๋ฐฐ์ด์ด ์์ฑ๋๊ณ ๋งค๊ฐ๊ฐ์ผ๋ก ์ฌ์ฉ๋๋ค.
int sum2(int ... values){}
//...๋ก ์ ์ธ๋ ๋งค๊ฐ ๋ณ์์ ๊ฐ์ ๋ฉ์๋ ํธ์ถ ์ ์ผํ๋ก ๋์ดํด์ฃผ๋ฉด ๋๋ค.
int result = sum2(1, 2, 3);
int result = sum2(1, 2, 3, 4, 5);
//๋ค์๊ณผ ๊ฐ์ด ๋ฐฐ์ด์ ์ง์ ๋งค๊ฐ๊ฐ์ผ๋ก ์ฌ์ฉํด๋ ์ข๋ค.
int[] values = {1, 2, 3};
int result = sum2(values);
int result = sum2(new int[]{1, 2, 3, 4, 5});
์์ 1) ๋งค๊ฐ ๋ณ์์ ๊ฐ์๋ฅผ ๋ชจ๋ฅผ ๊ฒฝ์ฐ
๋ฉ์๋์ ์คํ๋ฌธ์ด ์์ ํ ์ผ์นํ๋ค. ์ ์ธ ๋ฐฉ๋ฒ๋ง ๋ค๋ฅผ ๋ฟ์ด์ง ๋งค๊ฐ ๋ณ์์ ํ์
์ด ๋ฐฐ์ด์ด๋ฏ๋ก ์ฒ๋ฆฌ ๋ด์ฉ์ด ๊ฐ๋ค.
public class Computer {
//๋ฉ์๋ ์ ์ธ ์ ๋งค๊ฐ๋ณ์์ ๊ฐ์๋ฅผ ๋ชจ๋ฅผ ๋
//1. ๋งค๊ฐ ๋ณ์์ ๋ฐฐ์ด ์ ์ธ
int sum1(int[] values) {
int sum = 0;
for(int i=0; i<values.length; i++) {
sum += values[i];
}
return sum;
}
//2. ...
int sum2(int ... values) {
int sum = 0;
for(int i=0; i<values.length; i++) {
sum += values[i];
}
return sum;
}
}
์์ 2) ๋งค๊ฐ ๋ณ์์ ๊ฐ์๋ฅผ ๋ชจ๋ฅผ ๊ฒฝ์ฐ
public class ComputerExample {
public static void main(String[] args) {
Computer myCom = new Computer();
int[] values1 = {1, 2, 3};
int result1 = myCom.sum1(values1);
System.out.println("result1: "+result1);
int result2 = myCom.sum1(new int[] {1, 2, 3, 4, 5});
System.out.println("result2: "+result2);
int result3 = myCom.sum2(1, 2, 3);
System.out.println("result3: "+result3);
int result4 = myCom.sum2(1, 2, 3, 4, 5);
System.out.println("result4: "+result4);
}
}
6.4.2 ๋ฆฌํด(return)๋ฌธ p. 254
1) ๋ฆฌํด๊ฐ์ด ์๋ ๋ฉ์๋
return ๋ฆฌํด๊ฐ;
return๋ฌธ ์ดํ์ ์คํ๋ฌธ์ ๊ฒฐ์ฝ ์คํ๋์ง ์๋๋ค.
2) ๋ฆฌํด๊ฐ์ด ์๋ ๋ฉ์๋: void p. 255
๋ฆฌํด๊ฐ์ด ์๋ ๋ฉ์๋๋ ๋ฆฌํด ํ์
์ผ๋ก void๋ฅผ ์ฌ์ฉํ๋ค.
void๋ก ์ ์ธ๋ ๋ฉ์๋์์๋ return๋ฌธ์ ์ฌ์ฉํ ์ ์๋ค. ๋ฆฌํด๊ฐ์ ์ง์ ํ๋ ๊ฒ์ด ์๋๋ผ
๋ฉ์๋ ์คํ์ ๊ฐ์ ๋ก ์ข
๋ฃ์ํค๋ ์ญํ ์ด๋ค.
return;
return (null): null๋ก returnํ๋ค.
submit์ ํ์ง ๋ชปํ๊ณ null์ ๋ฐํํ๋ค. ํด๋น return ์๋๋ฅผ ์ ๋ถ ์คํํ์ง ์๊ณ return ์ค์์ ํด๋์ค๋ฅผ ๋๋ด๋ฒ๋ฆฐ๋ค.
return true: submit ํ๊ธฐ ์ ์ ํจ์์์ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ํ๊ณ ํต๊ณผ๊ฐ ๋๋ฉด true(=submit true)๋ก ๋ฆฌํดํ๋ค๋ ๋ป์ด๋ค.
return false: ๊ฐ์ด ๋ค์ด๊ฐ ์์ง ์์ผ๋ฉด submit์ ํ์ง ์๊ณ fasle๋ก ๋ฆฌํดํ๋ค๋ ๋ป(return null๊ณผ ์์ฃผ ์กฐ๊ธ ์ฐจ์ด๊ฐ ์๋ค.)์ด๋ค.
์ฐธ๊ณ : https://diaryofgreen.tistory.com/80
์์ 1) return๋ฌธ
public class Car {
//ํ๋
int gas;
//์์ฑ์
//๋ฉ์๋
void setGas(int gas) {
this.gas = gas; //๋ฆฌํด๊ฐ์ด ์๋ ๋ฉ์๋๋ก ๋งค๊ฐ๊ฐ์ ๋ฐ์์ gas ํ๋๊ฐ์ ๋ณ๊ฒฝ
}
//๋ฆฌํด๊ฐ์ด boolean์ธ ๋ฉ์๋๋ก gasํ๋๊ฐ์ด 0์ด๋ฉด false๋ฅผ, 0์ด ์๋๋ฉด true๋ฅผ ๋ฆฌํด
boolean isLeftGas() {
if(gas == 0) {
System.out.println("gas๊ฐ ์์ต๋๋ค.");
return false; //false๋ฅผ ๋ฆฌํด
}
System.out.println("gas๊ฐ ์์ต๋๋ค.");
return true; //true๋ฅผ ๋ฆฌํด
}
//๋ฆฌํด๊ฐ์ด ์๋ ๋ฉ์๋๋ก gas ํ๋๊ฐ์ด 0์ด๋ฉด return๋ฌธ์ผ๋ก ๋ฉ์๋๋ฅผ ๊ฐ์ ์ข
๋ฃ
void run() {
while(true) {
if(gas > 0) {
System.out.println("๋ฌ๋ฆฝ๋๋ค.(gas์๋:" + gas + ")");
gas -= 1;
}else {
System.out.println("๋ฉ์ถฅ๋๋ค.(gas์๋:" + gas + ")");
return;
}
}
}
}
์์ 2) return๋ฌธ
public class CarExample {
public static void main(String[] args) {
Car myCar = new Car();
//Car์ setGas ๋ฉ์๋ ํธ์ถ
myCar.setGas(5);
//isLeftGas๋ฉ์๋ ํธ์ถ
boolean gasState = myCar.isLeftGas();
if(gasState){
System.out.println("์ถ๋ฐํฉ๋๋ค.");
myCar.run(); //Car์ run() ๋ฉ์๋ ํธ์ถ
}
//Car์ isLeftGas() ๋ฉ์๋ ํธ์ถ
if(myCar.isLeftGas()) {
System.out.println("gas๋ฅผ ์ฃผ์
ํ ํ์๊ฐ ์์ต๋๋ค.");
}else {
System.out.println("gas๋ฅผ ์ฃผ์
ํ์ธ์.");
}
}
}
๊ฒฐ๊ณผ)
gas๊ฐ ์์ต๋๋ค.
์ถ๋ฐํฉ๋๋ค.
๋ฌ๋ฆฝ๋๋ค.(gas์๋:5)
๋ฌ๋ฆฝ๋๋ค.(gas์๋:4)
๋ฌ๋ฆฝ๋๋ค.(gas์๋:3)
๋ฌ๋ฆฝ๋๋ค.(gas์๋:2)
๋ฌ๋ฆฝ๋๋ค.(gas์๋:1)
๋ฉ์ถฅ๋๋ค.(gas์๋:0)
gas๊ฐ ์์ต๋๋ค.
gas๋ฅผ ์ฃผ์
ํ์ธ์.
6.4.3 ๋ฉ์๋ ํธ์ถ p. 258
๋ฉ์๋๋ ํด๋์ค ๋ด, ์ธ๋ถ์ ํธ์ถ์ ์ํด ์คํ๋๋ค.
- ํด๋์ค ๋ด๋ถ: ๋จ์ํ ๋ฉ์๋ ์ด๋ฆ์ผ๋ก ํธ์ถ
- ํด๋์ค ์ธ๋ถ: ํด๋์ค๋ก๋ถํฐ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ค ์ฐธ์กฐ ๋ณ์๋ฅผ ์ด์ฉํด์ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ค. (๊ฐ์ฒด๊ฐ ์กด์ฌํด์ผ ๋ฉ์๋๋ ์กด์ฌํ๋ฏ๋ก)
//์ธ๋ถ
void ์ธ๋ถ๋ฉ์๋(){
Car car = new Car();
car.run();
car.stop();
car.sound();
}
1) ๊ฐ์ฒด ๋ด๋ถ์์ ํธ์ถ
๋ฉ์๋๋ฅผ ์คํํ๋ ค๋ฉด '๋ฉ์๋ ์ด๋ฆ(๋งค๊ฐ๊ฐ, ...)' ํํ๋ก ํธ์ถํด์ผ ํ๋ค.
์์ ) ํด๋์ค ๋ด๋ถ์์ ๋ฉ์๋ ํธ์ถ
public class Calculator {
//๋ฉ์๋ ์ ์ธ
//๋ฆฌํดํ์
๋ฉ์๋๋ช
([ํ์
๋งค๊ฐ๋ณ์])
int plus(int x, int y) {
int result = x + y;
return result;
}
double avg(int x, int y) {
double sum = plus(x, y);//plus๋ฉ์๋ ํธ์ถ
double result = sum / 2;
return result;
}
void execute() {
double result = avg(7, 10);//avg๋ฉ์๋ ํธ์ถ
println("์คํ๊ฒฐ๊ณผ: " + result);//println๋ฉ์๋ ํธ์ถ
}
void println(String message) {
System.out.println(message);
}
}
์์ ) Calculator์ execute() ์คํ
public class CalculatorExample {
public static void main(String[] args) {
Calculator myCalc = new Calculator();
//Calculator ํด๋์ค์ powerOn ๋ฉ์๋ ํธ์ถ
myCalc.powerOn();
//Calculator ํด๋์ค์ plus ๋ฉ์๋ ํธ์ถ
int result1 = myCalc.plus(5, 6);
System.out.println(result1);
byte x = 10;
byte y = 4;
//Calculator ํด๋์ค์ divide ๋ฉ์๋ ํธ์ถ
double result2 = myCalc.divide(x, y);
System.out.print(result2);
//Calculator ํด๋์ค์ powerOff ๋ฉ์๋ ํธ์ถ
myCalc.powerOff();
}
}
2) ๊ฐ์ฒด ์ธ๋ถ์์ ํธ์ถ
์ธ๋ถ ํด๋์ค์์ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ค๋ฉด ํด๋์ค๋ก๋ถํฐ ๊ฐ์ฒด๋ฅผ ์์ฑํด์ผ ํ๋ค.
๋ฉ์๋๋ ๊ฐ์ฒด์ ์์๋ ๋ฉค๋ฒ์ด๋ฏ๋ก ๊ฐ์ฒด๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉด ๋ฉ์๋๋ ์กด์ฌํ์ง ์๊ธฐ ๋๋ฌธ์ด๋ค.
ํด๋์ค ์ฐธ์กฐ ๋ณ์ = new ํด๋์ค(๋งค๊ฐ๊ฐ, ...);
๋ํธ ์ฐ์ฐ์๋ ๊ฐ์ฒด ์ ๊ทผ ์ฐ์ฐ์๋ก ๊ฐ์ฒด๊ฐ ๊ฐ์ง๊ณ ์๋ ํ๋๋ ๋ฉ์๋์ ์ ๊ทผํ ๋ ์ฌ์ฉ๋๋ค.
์ฐธ์กฐ๋ณ์.๋ฉ์๋(๋งค๊ฐ๊ฐ, ...); //๋ฆฌํด๊ฐ์ด ์๊ฑฐ๋, ์์ด๋ ๋ฆฌํด๊ฐ์ ๋ฐ์ง ์์ ๊ฒฝ์ฐ
ํ์
๋ณ์ = ์ฐธ์กฐ๋ณ์.๋ฉ์๋(๋งค๊ฐ๊ฐ, ...); //๋ฆฌํด๊ฐ์ด ์๊ณ , ๋ฆฌํด๊ฐ์ ๋ฐ๊ณ ์ถ์ ๊ฒฝ์ฐ
์์ 1) ํด๋์ค ์ธ๋ถ์์ ๋ฉ์๋ ํธ์ถ
public class Car2 {
//ํ๋
int speed;
//์์ฑ์
//๋ฉ์๋
int getSpeed() {
return speed;
}
void keyTurnOn() {
System.out.println("ํค๋ฅผ ๋๋ฆฝ๋๋ค.");
}
void run() {
for(int i=0; i<=50; i+=10) {
speed = i;
System.out.println("๋ฌ๋ฆฝ๋๋ค.(์์: "+speed+"km/h)");
}
}
}
์์ 2) ํด๋์ค ์ธ๋ถ์์ ๋ฉ์๋ ํธ์ถ
public class Car2Example {
public static void main(String[] args) {
//๋ฉ์๋ ํธ์ถ
Car2 myCar = new Car2();
myCar.keyTurnOn();
myCar.run();
int speed = myCar.getSpeed();
System.out.println("ํ์ฌ ์๋: "+speed+"km/h");
}
}
๊ฒฐ๊ณผ)
ํค๋ฅผ ๋๋ฆฝ๋๋ค.
๋ฌ๋ฆฝ๋๋ค.(์์: 0km/h)
๋ฌ๋ฆฝ๋๋ค.(์์: 10km/h)
๋ฌ๋ฆฝ๋๋ค.(์์: 20km/h)
๋ฌ๋ฆฝ๋๋ค.(์์: 30km/h)
๋ฌ๋ฆฝ๋๋ค.(์์: 40km/h)
๋ฌ๋ฆฝ๋๋ค.(์์: 50km/h)
ํ์ฌ ์๋: 50km/h
6.4.4 ๋ฉ์๋ ์ค๋ฒ๋ก๋ฉ (Overloading) p. 263
๋ฉ์๋ ์ค๋ฒ๋ก๋ฉ: ํด๋์ค ๋ด์ ๊ฐ์ ์ด๋ฆ์ ๋ฉ์๋๋ฅผ ์ฌ๋ฌ ๊ฐ ์ ์ธํ๋ ๊ฒ
์ค๋ฒ๋ก๋ฉ: ๋ง์ด ์ฃ๋ ๊ฒ
ํ๋์ ๋ฉ์๋ ์ด๋ฆ์ผ๋ก ์ฌ๋ฌ ๊ธฐ๋ฅ์ ๋ด๋นํ๋ค.
์กฐ๊ฑด: ๋งค๊ฐ ๋ณ์์ ํ์
, ๊ฐ์, ์์ ์ค ํ๋๊ฐ ๋ฌ๋ผ์ผ ํ๋ค.
๋ฉ์๋ ์ค๋ฒ๋ก๋ฉ์ด ํ์ํ ์ด์ ๋ ๋งค๊ฐ๊ฐ์ ๋ค์ํ๊ฒ ๋ฐ์ ์ฒ๋ฆฌํ ์ ์๋๋ก ํ๊ธฐ ์ํด์์ด๋ค.
๋งค๊ฐ ๋ณ์ ํ์
์ด ์ผ์นํ์ง ์์ ๊ฒฝ์ฐ ์๋ ํ์
๋ณํ์ด ๊ฐ๋ฅํ์ง ๊ฒ์ฌํ๋ค.
๋งค๊ฐ ๋ณ์์ ํ์
, ๊ฐ์, ์์๊ฐ ๋๊ฐ์ ๊ฒฝ์ฐ ๋งค๊ฐ ๋ณ์ ์ด๋ฆ์ด ๋ค๋ฅด๋ค๊ณ ํด์ ๋ฉ์๋ ์ค๋ฒ๋ก๋ฉ์ด๋ผ๊ณ ํ์ง ์๋๋ค.
๋ฉ์๋ ์ค๋ฒ๋ก๋ฉ์ ๊ฐ์ฅ ๋ํ์ ์ธ ์๋ System.out.println() ๋ฉ์๋์ด๋ค. ํธ์ถํ ๋ ์ฃผ์ด์ง ๋งค๊ฐ๊ฐ์ ํ์
์ ๋ฐ๋ผ์ ๋ค์๊ณผ ๊ฐ์ด ์ค๋ฒ๋ก๋ฉ๋ println() ๋ฉ์๋ ์ค ํ๋๋ฅผ ํธ์ถํ๋ค.
void println(){...}
void println(boolean x){...}
void println(char x){...}
void println(char[] x){...}
void println(double x){...}
void println(float x){...}
void println(long x){...}
void println(Object x){...}
void println(String x){...}
์์ 1) ๋ฉ์๋ ์ค๋ฒ๋ก๋ฉ
์ด๋ค ๋ฉ์๋๊ฐ ํธ์ถ๋ ๊ฒ์ธ์ง๋ ๋งค๊ฐ๊ฐ์ ๋ณ์์ ๋ฌ๋ ค์๋ค.
public class Calculator {
//์ ์ฌ๊ฐํ์ ๋์ด
double areaRectangle(double width) {
return width * width;
}
//์ง์ฌ๊ฐํ์ ๋์ด
double areaRectangle(double width, double height) {
return width * height;
}
//์์ ๋์ด
double areaRectangle(int r) {
return r * r * Math.PI;
}
}
์์ 2) ๋ฉ์๋ ์ค๋ฒ๋ก๋ฉ
public class CalculatorExample {
public static void main(String[] args) {
Calculator myCalcu = new Calculator();
//์ ์ฌ๊ฐํ์ ๋์ด ๊ตฌํ๊ธฐ
double result1 = myCalcu.areaRectangle(10);
//์ง์ฌ๊ฐํ์ ๋์ด ๊ตฌํ๊ธฐ
double result2 = myCalcu.areaRectangle(10, 20);
//์์ ๋์ด ๊ตฌํ๊ธฐ
double result3 = myCalcu.areaRectangle(10);
//๊ฒฐ๊ณผ ์ถ๋ ฅ
System.out.println("์ ์ฌ๊ฐํ ๋์ด=" + result1);
System.out.println("์ ์ฌ๊ฐํ ๋์ด=" + result2);
System.out.println("์์ ๋์ด=" + result3);
}
}
๋ง๋ฌด๋ฆฌ p. 267
6๊ฐ์ง ํค์๋๋ก ๋๋ด๋ ํต์ฌ ํฌ์ธํธ
1) ์ ์ธ๋ถ: ๋ฉ์๋ ์ ์ธ๋ถ๋ ๋ฆฌํด ํ์
, ๋ฉ์๋ ์ด๋ฆ, ๋งค๊ฐ ๋ณ์ ์ ์ธ ๋ถ๋ถ์ ๋งํ๋ค.
2) void: ๋ฆฌํด๊ฐ์ด ์๋ ๋ฉ์๋๋ ๋ฆฌํด ํ์
์ผ๋ก void๋ฅผ ๊ธฐ์ ํด์ผ ํ๋ค.
3) ๋งค๊ฐ ๋ณ์: ๋ฉ์๋ ํธ์ถ ์ ์ ๊ณต๋๋ ๋งค๊ฐ๊ฐ์ ๋ฉ์๋ ์ ์ธ๋ถ์ ๋งค๊ฐ ๋ณ์์ ์ฐจ๋ก๋๋ก ๋์
๋์ด, ๋ฉ์๋ ๋ธ๋ก ์คํ ์ ์ด์ฉ๋๋ค.
4) ๋ฆฌํด๋ฌธ: ๋ฉ์๋ ์ ์ธ๋ถ์ ๋ฆฌํด ํ์
์ด ์๋ค๋ฉด ๋ฆฌํด๊ฐ์ ์ง์ ํ๊ธฐ ์ํด return๋ฌธ์ด ๋ฐ๋์ ์์ด์ผ ํ๋ค. ๋ฆฌํด ํ์
์ด void๋ผ๋ฉด return๋ฌธ์ ํ์ ์์ง๋ง, ๋ฉ์๋ ์คํ ์ข
๋ฃ๋ฅผ ์ํด ์ฌ์ฉํ ์ ์๋ค.
5) ํธ์ถ: ๋ฉ์๋๋ฅผ ์คํํ๋ ค๋ฉด '๋ฉ์๋ ์ด๋ฆ(๋งค๊ฐ๊ฐ, ...)' ํํ๋ก ํธ์ถํด์ผ ํ๋ค.
6) ์ค๋ฒ๋ก๋ฉ: ํด๋์ค ๋ด์ ๊ฐ์ ์ด๋ฆ์ ๋ฉ์๋๋ฅผ ์ฌ๋ฌ ๊ฐ ์ ์ธํ๋ ๊ฒ
์กฐ๊ฑด์ ๋งค๊ฐ ๋ณ์์ ํ์
, ๊ฐ์, ์์ ์ค ํ๋๊ฐ ๋ฌ๋ผ์ผ ํ๋ค.
Q3
์์ ) MemberService.java
public class MemberService {
//์์ฑ
//MemberService ํด๋์ค
//login ๋ฉ์๋ ์ ์ธ
//id, password ์ ๊ณต
boolean login(String id, String password) {
//id = "hong", password = "12345" true ๋ฆฌํด
if(id.equals("hong")&&password.equals("12345")) {
return true;
}else { //๊ทธ ์ธ false ๋ฆฌํด
return false;
}
}
//logout ๋ฉ์๋ ์ ์ธ
//id ์ ๊ณต
void logout(String id) {//"๋ก๊ทธ์์ ๋์์ต๋๋ค." ์ถ๋ ฅ
System.out.println("๋ก๊ทธ์์ ๋์์ต๋๋ค.");
}
}
์์ ) MemberServiceExample.java
public class MemberServiceExample {
public static void main(String[] args) {
MemberService memberService = new MemberService();
boolean result = memberService.login("hong", "12345");
if(result) {
System.out.println("๋ก๊ทธ์ธ ๋์์ต๋๋ค.");
memberService.logout("hong");
}else {
System.out.println("id ๋๋ password๊ฐ ์ฌ๋ฐ๋ฅด์ง ์์ต๋๋ค.");
}
}
}
๊ฒฐ๊ณผ)
๋ก๊ทธ์ธ ๋์์ต๋๋ค.
๋ก๊ทธ์์ ๋์์ต๋๋ค.
Q4)
์์ ) Printer.java
public class Printer {
//์์ฑ ์์น
static void println(int value) {
System.out.println(value);
}
static void println(boolean value) {
System.out.println(value);
}
static void println(double value) {
System.out.println(value);
}
static void println(String value) {
System.out.println(value);
}
}
์์ ) PrinterExample.java
public class PrinterExample {
public static void main(String[] args) {
Printer printer = new Printer();
printer.println(10);
printer.println(true);
printer.println(5.7);
printer.println("ํ๊ธธ๋");
}
}
๊ฒฐ๊ณผ)
10
true
5.7
ํ๊ธธ๋