์ด ๊ธ์ ์ํ์ฝ๋ฉ์ 'Java' ๊ฐ์ข๋ฅผ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค.
์ด๊ธฐํ
์ด๋ค ์ผ์ ์์ํ๊ธฐ ์ ์ ์ค๋นํ๊ฒ ๋๋๋ฐ, ์ด๋ฅผ ์ด๊ธฐํ๋ผ๊ณ ํฉ๋๋ค. ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ๋ ์ด๊ธฐํ์ ํด๋นํ๋ ๊ธฐ๋ฅ์ด ์ ๊ณต๋๋๋ฐ ์ด๋ฅผ ์์ฑ์ (constructor)๋ผ๊ณ ํฉ๋๋ค. ์์ ์ดํด๋ดค๋ ๊ณ์ฐ๊ธฐ ์์ ๋ฅผ ๋ค์ ๋ด ์๋ค.
Calculator c1 = new Calculator();
c1.setOprands(10, 20);
c1.sum();
c1.avg();
๋ฉ์๋ setOperands์ ๊ฐ์ผ๋ก 10๊ณผ 20์ ์ง์ ํ์ต๋๋ค. ์ด๋ ๊ฐ์ฒด ๋ด๋ถ์์ ์ธ์คํด์ค ๋ณ์ left๊ณผ right์ ๊ฐ์ผ๋ก ์ค์ ๋์ด ์ ์ง๋ฉ๋๋ค. ํ์ง๋ง ์๋์ ๊ฐ์ด ๋ฉ์๋ setOperands ํธ์ถํ๊ธฐ ์ ์ sum๊ณผ avg๋ฅผ ํธ์ถํ๋ค๋ฉด ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
Calculator c1 = new Calculator();
c1.sum();
c1.avg();
์ด๋ฌํ ์ ์ฐจ๋ฅผ ๊ธฐ์ตํด์ผ ํ๋ค๋ ๊ฒ์ ์ฌ์ฉ์ ์ ์ฅ์์ ๋ถํธํ ๋ฟ๋ง ์๋๋ผ ์๋ชป๋ ์ฌ์ฉ์ผ๋ก ์ค๋ฅ๊ฐ ๋ฐ์๋ ํ๋ฅ ์ด ๋์์ง๋๋ค.
์์ฑ์
๊ทธ๋์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ฐ๋ก ์์ฑ์(Constructor)์ ๋๋ค. ์๋์ ๊ฐ์ด ์ธ์คํด์ค ์์ฑ ์ left, right ๊ฐ์ ์ ๋ ฅํ๋๋ก ๊ฐ์ ํด๋ด ์๋ค.
Calculator c1 = new Calculator(10, 20);
c1.sum();
c1.avg();
์ด๋ฅผ ์ํด์ ์ฝ๋๋ฅผ ์๋์ ๊ฐ์ด ๋ณ๊ฒฝํด๋ด ์๋ค.
package org.opentutorials.javatutorials.constructor;
class Calculator {
int left, right;
public Calculator(int left, int right) {
this.left = left;
this.right = right;
}
public void sum() {
System.out.println(this.left + this.right);
}
public void avg() {
System.out.println((this.left + this.right) / 2);
}
}
public class CalculatorDemo1 {
public static void main(String[] args) {
Calculator c1 = new Calculator(10, 20);
c1.sum();
c1.avg();
Calculator c2 = new Calculator(20, 40);
c2.sum();
c2.avg();
}
}
public Calculator(int left, int right) {
this.left = left;
this.right = right;
}
์ ๋ถ๋ถ์ด ๋ฐ๋ก ์์ฑ์์ ๋๋ค. ์์ฑ์๋ ์ด๋ฆ์ฒ๋ผ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ํธ์ถ๋ฉ๋๋ค.
Calculator c1 = new Calculator(10, 20);
์์ฑ์ ๋๋ถ์ Calculator ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ํ์ํ ์์ ์ธ left์ right์ ๊ฐ์ ์ค์ ํ๋ ๊ณผ์ ์ ๊ฐ์ฒด ์์ฑ ๊ณผ์ ์์ ๊ฐ์ ํ ์ ์๊ฒ ๋์์ต๋๋ค!
์์ฑ์์ ํน์ง
1. ๊ฐ์ ๋ฐํํ์ง ์์ต๋๋ค. / ์์ฑ์๋ ์ธ์คํด์ค๋ฅผ ์์ฑํด์ฃผ๋ ์ญํ ์ ํ๋ ํน์ํ ๋ฉ์๋ ์ ๋๋ค.
2. ์์ฑ์์ ์ด๋ฆ์ ํด๋์ค์ ์ด๋ฆ๊ณผ ๋์ผํฉ๋๋ค. / ์๋ฐ์์ ํด๋์ค์ ์ด๋ฆ๊ณผ ๋์ผํ ๋ฉ์๋๋ ์์ฑ์๋ก ์ฌ์ฉํ๊ธฐ๋ก ์ฝ์๋์ด ์์ต๋๋ค.
'Programming > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] overloading ์ด๋? ์ค๋ฒ๋ก๋ฉ ๋ป (0) | 2022.11.01 |
---|---|
[Java] overriding ์ค๋ฒ๋ผ์ด๋ฉ์ด๋? (0) | 2022.10.25 |
[Java] ์์๊ณผ ์์ฑ์ (0) | 2022.10.25 |
[Java] ์์ (0) | 2022.10.24 |