-
JAVA ์๋ฐ ๊ฐ์ฒด, ํด๋์ค, ๋ฉ์๋, ์์ฑ์JAVA 2020. 8. 2. 21:15
๐ฏ ์๋ฐ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ๊ฐ๋ ๊ณผ ํด๋์ค, ๋ฉ์๋, ์์ฑ์๋ฅผ ์์๋ณธ๋ค.
๐ ๋ชฉ์ฐจ
๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
ํด๋์ค
๋ฉ์๋
์์ฑ์
๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
`๊ฐ์ฒด`๋ ๋ชจ๋ ์ฌ๋ฌผ์ ์๋ฏธํ๋ค. ์ง๊ธ ๋ด ์์ ์๋ ํธ๋ํฐ, ์ปดํจํฐ, ์ฑ , ์ฌ๋์ด ๋ชจ๋ ๊ฐ์ฒด์ด๋ค.
ํ์ค์ธ๊ณ์์ ์ถ์ถํ ๊ฐ์ฒด๋ฅผ ์๋ฐ์ ๊ฐ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ํํํ๋ ๊ฐ๋ฐ๋ฐฉ๋ฒ์
๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
์ด๋ผ๊ณ ํ๋ค.๊ฐ์ฒด๋ชจ๋ธ๋ง์ ํตํด ํ์ค์ธ๊ณ์์ ์ถ์ถํ ๊ฐ์ฒด๋ฅผ ์๋ฐ ์ธ์ด๋ก ํ๋ก๊ทธ๋๋ฐํ๊ธฐ ์ํด์ ํด๋์ค ํํ๋ก ์ค๊ณํ๋ค. ๊ฐ์ฒด์ ์์ฑ์ ํด๋์ค์ ์ธ์คํด์ค ๋ณ์๋ก ํํํ๊ณ , ๊ฐ์ฒด์ ๋์์ ํด๋์ค์ ๋ฉ์๋๋ก ํํํ๋ค.
์ค๊ณ๋ ํด๋์ค๋ฅผ ๊ตฌํ๋จ๊ณ์์ ์ฌ์ฉํ๊ธฐ ์ํด ๊ฐ์ฒด ์์ฑ์ด ํ์ํ๋ค. ํด๋์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๋ ๊ฐ์ฒด์์ฑ ์์ ์
์ธ์คํด์คํ
๋ผ๊ณ ํ๋ฉฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ ๊ฐ์ฒด๋ฅผ ์ธ์คํด์ค๋ผ๊ณ ํ๋ค. ๊ฐ์ฒด์ ์ธ์คํด์ค๋ ๊ฐ์ ์ฉ์ด๋ค.ํด๋์ค
์ง์ ์ class ํด๋์ค๋ช { ์ธ์คํด์ค๋ณ์ // ๋ฐ๋์ new๋ก ์ด๋ค ๋ฉ์๋ ์์ฑ์ }
์ง์ ์
ํน์ ๋ชฉ์ ์ ์ํด ์ฌ์ฉํ๋ ํค์๋์ด๋ฉฐ ์ผ๋ฐ ์ง์ ์(static, final, abstract)์ ์ ๊ทผ ์ง์ ์(public, private, default, protected)๋ก ๋๋๋ค. ์๋ตํ ๊ฒฝ์ฐ default๊ฐ ๋๋ฉฐ ์ผ๋ฐ์ ์ผ๋ก ํด๋์ค๋ public ์ ๊ทผ์ง์ ์๋ฅผ ๋ถ์ธ๋ค. ์ผ๋ฐ ์ง์ ์์ ์ ๊ทผ ์ง์ ์๋ ๊ฐ์ด ์ฌ์ฉ๊ฐ๋ฅํ๋ค.
ํด๋์ค๋ช
์๋ฏธ์๊ณ ๊ฐ๋จํ ๋ช ์ฌํ ์ด๋ฆ์ ์ฌ์ฉํ๋ค. ์ฒซ๊ธ์๋ ๋๋ฌธ์๋ก ์ง์ ํ๋ค.
Student
Orange
์ธ์คํด์ค ๋ณ์
ํด๋์ค์ ๊ตฌ์ฑ์์์ธ ์์ฑ๊ฐ์ ์ ์ฅํ๋ ์ฉ๋์ด๋ค. ๋ณ์๋ช ์ ์๋ฏธ์๋ ๋ช ์ฌํ์ผ๋ก ์๋ฌธ์๋ก ์์ฑํ๋ค. ์ธ์คํด์ค ๋ณ์๋ ๋ก์ปฌ ๋ณ์์ ๋ค๋ฅด๊ฒ ์์ฑ ํ ์ด๊ธฐํํ ํ์์์ด ์๋์ผ๋ก ๋ฐ์ดํฐํ์ ๊ธฐ๋ณธ๊ฐ์ด ์ค์ ๋๋ค.
๋ฉ์๋
์๋ฐ๋ ํจ์๋ฅผ ๋ฉ์๋๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๋ฉ์๋๋ ๊ฐ์ฒด์ ๋์๊ณผ ๊ธฐ๋ฅ์ ๋ด๋นํ๋ค. ์ธ์คํด์ค ๋ณ์์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์์ ๋ฐ ์กฐํํ ์ ์๋ค. ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์ ๋ฐ๋์ ํด๋์ค ๊ฐ์ฒด ์์ฑ ํ ๋ฉ์๋๋ฅผ ํธ์ถํด์ผ ํ๋ค.
๋ฉ์๋ ์์ฑ๊ณผ ์ฌ์ฉ
public class method_test { public void a_Method() { System.out.println("a_Method()ํธ์ถ_1"); System.out.println("a_Method()ํธ์ถ_2"); System.out.println("a_Method()ํธ์ถ_3"); }// class ์ ์ธ. ๋ฉค๋ฒ๋ฉ์๋(ํจ์) new ์ฌ์ฉ ์์ฑ public static void main(String[] args) { System.out.println("main์์=========="); method_test test = new method_test(); //๊ฐ์ฒด ์์ฑ test.a_Method(); //ํจ์ํธ์ถ System.out.println("main์ข ๋ฃ========="); } }
ํด๋์ค ๋จ์ public / ํธ์ถํ ๊ณณ์ผ๋ก ๋์๊ฐ ๊ฐ์ ๋ฆฌํดํ์ / ํจ์์ด๋ฆ(๋ฐ์ ์ธ์๊ฐ)์ ์์ฑํด ๋ฉ์๋๋ฅผ ๋ง๋ ๋ค. ์์ ๋ฉ์๋ ์ ์๋ฅผ ํด์ํด๋ณด๋ฉด ์๋ฌด๋์๋ ์ ๊ทผ๊ฐ๋ฅํ/ ์ํ๋ง ํ๊ณ ๋๋ ค์ฃผ๋ ๊ฐ์ด ์๋ / ํจ์์ด๋ฆ() ์ด๋ผ๋ ์๋ฏธ์ด๋ค.
void
๋ ๋ฆฌํดํ์ ์ด๋ฉฐ ํจ์์ ๋๋ ค์ฃผ๋ ๊ฐ์ด ์์ ๋ ๋ช ์ํ๋ค. ํจ์์ ๋๋ ค์ค ๊ฐ์ด ์๋ ๊ฒฝ์ฐ์ ๋ฐ์ดํฐํ์ ์ ๋ช ์ํด์ผ ํ๋ค. ์ด๋ ๊ฒ ํด๋์ค ๋จ์ ์ ์ธ๋ ๋ฉค๋ฒ๋ฉ์๋๋ฅผ ์คํํ๊ธฐ ์ํด์ main๋ฉ์๋ ์์์ ๊ฐ์ฒด์์ฑ์ ํด์ผํ๋ค.๋ชจ๋ํ
ํจ์๋ ํ๋์ ๊ธฐ๋ฅ๋ง ํ๋์ ์ด๋ฆ์ผ๋ก ๋ง๋๋ ๊ฒ ์ข๋ค. ๊ทธ๋์ ์์ผ๋ก๋ ๋ฉ์๋๋ฅผ ๋ค ๋ถ๋ฆฌํด์ ํ์ํ ๋ฉ์๋๋ฅผ main์์ ๋ถ๋ฌ๋ค ์ธ ๊ฒ์ด๋ค. ์ด๊ฒ์ ๋ชจ๋ํ๋ผ๊ณ ํ๋ค. ์ฝ๋๊ฐ 1๋ง์ค ์์ ๋ ์ด๊ฑธ ์ ๋ถ ํ๋์ ํ์ผ์ ๋ชฐ์๋ฃ์ผ๋ฉด ์ฌ์ฉํ๊ธฐ ๋ถํธํด์ง๋ค. ๋ฐ๋ผ์ ํ๋ก๊ทธ๋จ์ ์์ ํ๋ก๊ทธ๋จ์ผ๋ก ์ชผ๊ฐ๋ ๋ชจ๋ํ๋ฅผ ํตํด ์ฝ๋๋ฅผ ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์๊ณ , ์์ฃผ ์ฌ์ฉํ๋ ๋ฉ์๋๋ ๊ณ์ ์ฌํ์ฉํ ์ ์๋ค. ํ๋ํ๋ ์ชผ๊ฐ์ง ํ์ผ์
๋ชจ๋
์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.๋ชจ๋ํ1. ํ์ ๊ฐ์ฒด ์์ฑ๊ณผ ์ฌ์ฉ
public class Student { String name; int age; String address; }
ํ์๋ค์ ๋ชจ๋ธ๋งํด์ ํด๋์ค๋ฅผ ๋ง๋ค์ด๋ณธ๋ค. ํ์ ๊ฐ์ฒด์ ์์ฑ์ผ๋ก ์ด๋ฆ, ๋์ด, ์ฃผ์๋ฅผ ์ถ์ถํ๋ค. ์ด ์์ฑ ์ ๋ณด๋ค์ด ์ธ์คํด์ค ๋ณ์์ด๋ค. ์ด์ ์ด๋ ๊ฒ ์ ์๋ ํด๋์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ๊ฐ์ฒด์์ฑ์ด ํ์ํ๋ค.
public class TestStudent { public static void main(String[] args) { Student stu1 = new Student(); Student stu2 = new Student(); Student stu3 = new Student(); stu1.name = "ํ๊ธธ๋"; stu1.age = 20; stu1.address = "์์ธ"; stu2.name = "์ด์์ "; stu2.age = 44; stu2.address = "๋ถ์ฐ"; stu3.name = "์ ๊ด์"; stu3.age = 19; stu3.address = "๊ฒฝ๊ธฐ"; System.out.println(stu1.name); System.out.println(stu1.age); System.out.println(stu1.address); System.out.println(stu2.name); System.out.println(stu2.age); System.out.println(stu2.address); System.out.println(stu3.name); System.out.println(stu3.age); System.out.println(stu3.address); } }
main๋ฉ์๋๋ง์ ์ฌ์ฉํ๊ธฐ ์ํ ํ ์คํธ ํด๋์ค๋ฅผ ์๋ก ๋ง๋ ๋ค. ๋จผ์ ๋ฉ์ธ ํจ์ ์์ Student ํด๋์ค์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ , Student ํด๋์ค์ ์ธ์คํด์ค ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ์์น๊ฐ์ ์ ์ฅํ๋ ์ฐธ์กฐ๋ณ์๋ช ์ stu1๋ก ์ง์ด์ค๋ค. ์ด ์ฐธ์กฐ๋ณ์ ๋ค์
.(dot)
์ ์ ์ฐ์ผ๋ฉด ์ ์ชฝ ํด๋์ค์์ ๋ด๊ฐ ์ฐธ์กฐํด์ ์ฌ์ฉํ ์ ์๋ ์ธ์คํด์ค๋ณ์์ ๋ฉ์๋๋ฅผ ๋ณด์ฌ์ค๋ค. ๊ทธ ๋ค์ ๋ชจ๋ ์ธ์คํด์ค ๋ณ์์ ์ ๊ทผํด ์ํ๋ ๋ฐ์ดํฐ๊ฐ์ ๋ฃ์ด์ฃผ๊ณ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํด๋ณธ๋ค.private ์ ๊ทผ์ ์ด์
public์ผ๋ก ์ ์๋ ๋ฉค๋ฒ๋ณ์๋ ์ธ๋ถ์์ ์ ๊ทผ์ด ๊ฐ๋ฅํ ๋ฐ๋ฉด, private์ ์ธ๋ถ์์ ํด๋์ค ๋ด๋ถ์ ๋ฉค๋ฒ๋ณ์๋ ๋ฉ์๋์ ์ ๊ทผํ์ง ๋ชปํ๊ฒ ๊ฐ์ถฐ์ ธ ์๋ ์ํ๋ก ํด๋์ค ๋ด์์๋ง ์ฌ์ฉํ ์ ์๋ค. ๋ฐ๋ผ์ ์ธ๋ถ์์ ํ์ํ ๊ฒฝ์ฐ ์ด ๋ฉค๋ฒ๋ณ์๋ค์ ๋ํ public ๋ฉ์๋๋ฅผ ๋ง๋ค์ด์ ์ ๊ทผํด์ผ ํ๋ค.
public class Student { private String name; private int age; private String address; public void setName(String name) { this.name = name; }//๋ฉค๋ฒ๋ณ์ name ๊ฐ ์ค์ ํจ์ public String getName() { return name; }//๋ฉค๋ฒ๋ณ์ name๊ฐ์ ํ์ํ ๊ณณ์ผ๋ก ๋ณด๋ด์ฃผ๋ ํจ์ }
๋ฉ์๋๋ ๋ฐ๋์ main์์ ํธ์ถ(caller method)๋์ด์ผ ์ํ(worker method)๋๋ ๋ฐฉ์์ด๋ค. ์ํ์๋ ๋๊ฐ์ง ์ญํ ์ด ์๋ค.
set๋ณ์๋ช ()
set๋ฉ์๋๋ ์ธ์คํด์ค ๋ณ์์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์์ ํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋๋ค. caller๋ฉ์๋๊ฐ ์ธ์์ ๋ฐ์ดํฐ๋ฅผ ๋ด์์ ์ ๋ฌํ๋ฉด set๋ฉ์๋๊ฐ ํ๋ผ๋ฏธํฐ๋ก ์ ๋ฌ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ธ์คํด์ค ๋ณ์์ ์ ์ฅํ๊ณ ํจ์์คํ์ด ๋๋๋ค. ๋ฐ๋ผ์ ๋ค์ caller๋ก ๋ฐํํ๋ ๊ฒฐ๊ณผ๊ฐ ์์ผ๋ฏ๋ก return ํค์๋๋ ์๋ต๋์์ผ๋ฉฐ ์ด ๊ฒฝ์ฐ์ ๋ฉ์๋์ ๋ฆฌํดํ์ ์ void๋ก ์ ์ํด์ผ ํ๋ค.get๋ณ์๋ช ()
get๋ฉ์๋๋ ์ธ์คํด์ค ๋ณ์์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํ๋ค. caller๋ฉ์๋์์ ์ ๋ฌ๋ฐ๋ ๊ฐ์ด ์๊ธฐ ๋๋ฌธ์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ธ ํ์ ์๋ค. ๋ฐ์ดํฐ ์กฐํ ํ ์คํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๊ธฐ ์ํด return ๋ณ์๊ฐ์ ๋ช ์ํ๊ณ , ๋ฉ์๋ ๋ฆฌํดํ์ ์ ๋ฐํ๊ฐ์ ๋ฐ์ดํฐํ์ ์ผ๋ก ์ง์ ํ๋ค. ๋ณ์๋ช ์ ์ฒซ๊ธ์๋ camel ํ๊ธฐ ๊ท์น์ ๋ฐ๋ผ ๋๋ฌธ์๋ก ์์ฑํ๋ค.setName
getAge
์์ ์ ํด๋์ค์ ์๋ ์ธ์คํด์ค ๋ณ์๋ฅผ ์ฌ์ฉํ ๋ this ํค์๋๋ฅผ ์ฌ์ฉํ๋ค.
this.name
์ Student์ ์ธ์คํด์ค๋ณ์์ธ name์ ๊ฐ๋ฆฌํค๋ฉฐthis.name=name;
์ ๊ทธ๊ฒ์ set๋ฉ์๋ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ ๊ฐ์ผ๋ก ์ค์ ํ๋ค๋ ์๋ฏธ๋ค.public class Student { private String name; private int age; private String address; public void setName(String name) { this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void setAddress(String address) { this.address = address; } public String getAddress() { return address; } }
public class TestStudent { public static void main(String[] args) { Student stu1 = new Student(); stu1.setName("ํ๊ธธ๋"); stu1.setAge(20); stu1.setAddress("์์ธ"); System.out.println(stu1.getName()); System.out.println(stu1.getAge()); System.out.println(stu1.getAddress()); } }
Student ํด๋์ค์ age, address ๋ฉค๋ฒ๋ณ์์ ์ ๊ทผํ ์ ์๋ get, set ๋ฉ์๋๋ฅผ ์ถ๊ฐ๋ก ๋ง๋ค๊ณ TestStudent ํด๋์ค์ main๋ฉ์๋์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค. Student ํด๋์ค๋ฅผ ์ฐธ์กฐํ๋ ๋ณ์ stu1์ setter ๋ฉ์๋๋ฅผ ํธ์ถํ๊ณ ํ๋ผ๋ฏธํฐ์ ๋ฐ์ดํฐ๊ฐ์ ์ ์ด์ ์ ์ชฝ์ผ๋ก ์ ๋ฌํ๋ค. ์ ๋ฌํด์ ๋ณด๋ผ ๋ฟ ๋ฆฌํด๋ฐ๋ ๊ฐ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ set์ผ๋ก ์ ์ฅํ ๊ฐ์ ํ๋ฆฐํธํ๊ธฐ ์ํด getter ๋ฉ์๋๋ฅผ ํธ์ถํด์ ์ ์ฅ๋ ๊ฐ์ ๋ฆฌํด ๋ฐ๊ณ ๋ชจ๋ ์คํ์ด ์ข ๋ฃ๋๋ค.
๋ชจ๋ํ2. Book ๊ฐ์ฒด ์์ฑ๊ณผ ์ฌ์ฉ
public class Book { private String name; private int price; public void setName(String name) { this.name = name; } public String getName() { return name; } public void setPrice(int price) { this.price = price; } public int getPrice() { return price; } }
private ์ธ์คํด์ค ๋ณ์ name๊ณผ price๋ฅผ ๋ง๋ค์ด์ค๋ค. ๊ทธ๋ฆฌ๊ณ private์ ์ ๊ทผํ ์ ์๋๋ก setter์ getter ๋ฉ์๋๋ฅผ ๋ง๋ ๋ค.
public class TestBook { public static void main(String[] args) { // TODO Auto-generated method stub Book book1 = new Book(); Book book2 = new Book(); book1.setName("1984"); book1.setPrice(8000); book2.setName("ํ๊ธธ๋์ "); book2.setPrice(4000); System.out.println(book1.getName()); System.out.println(book1.getPrice()); System.out.println(book2.getName()); System.out.println(book2.getPrice()); } }
๋ฉ์ธํจ์ ์์ Book ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ set ํธ์ถ ๋ฉ์๋๋ก ๋ฐ์ดํฐ๊ฐ์ ์ ์ก, get ํธ์ถ ๋ฉ์๋๋ก ์ ์ฅํ ๋ฐ์ดํฐ๊ฐ์ ๋ฐ๋๋ค.
getter and setter ์๋์ ๋ ฅ ํด
get set ๋ฉ์๋๋ฅผ ์ผ์ผ์ด ๋ง๋ค๊ธฐ ๊ท์ฐฎ์ ๋ ์ดํด๋ฆฝ์ค ๊ฐ๋ฐํด์ ์ฌ์ฉํ๋ฉด ์๋์ผ๋ก ๋ฉ์๋๋ฅผ ์์ฑํด์ค๋ค.
์์ฑ์
์ธ์คํด์ค ๋ณ์์ ๋ฐ์ดํฐ๋ฅผ ์ฒ์์ผ๋ก ์ ์ฅํ๋ ์ญํ ์ ํ๋ค. ๊ฐ์ฒด๋ฅผ ๋ง๋ค ๋๋ง๋ค ์ด๊ธฐ๊ฐ์ ๋ด๊ฐ ์ํ๋๋๋ก ์ค์ ํ ์ ์๋ค. ๋ฉ์๋์ฒ๋ผ ํธ์ถ ํ์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ๋ฆฌํดํ์ ์ด ์๊ณ ํด๋์ค๋ช ์ผ๋ก ์ด๋ฆ์ ์ง์ ํด์ผ ํ๋ค. ์์ฑ์๋ฅผ ์๋ฌด๊ฒ๋ ๋ง๋ค์ง ์์ ๊ฒฝ์ฐ ๋ณด์ด์ง ์์ง๋ง ์๋์ ์ผ๋ก default ๊ธฐ๋ณธ์์ฑ์๊ฐ ์์ฑ๋๋ค. ํ์ง๋ง ์์ฑ์๋ฅผ ํ๋๋ผ๋ ๋ง๋ค์์ ๋ ๊ธฐ๋ณธ์์ฑ์๋ ์๋์ผ๋ก ์คํ๋์ง ์๋๋ค.
public class Student { private String name; private int age; private String address; public Student() { //์ ๊ทผ์ ํ์, ๋ฆฌํดํ์ ์์, ํด๋์ค์ด๋ฆ() System.out.println("Student ์์ฑ์ ํธ์ถ"); name="ํ๊ธธ๋"; age=10; address="๊ฐ๋จ๊ตฌ"; } }
๊ฐ์ฒด ์์ฑ
ํด๋์คํ ๋ณ์๋ช = new ํด๋์คํ(ํ๋ผ๋ฏธํฐ);
ํด๋์ค๋ฅผ ๋ง๋ ํ ๋ฐ๋์ ๊ฐ์ฒด์์ฑ์ ํด์ผ ํด๋์ค๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ๊ฐ์ฒด์์ฑ์ new ํค์๋๋ฅผ ์ฌ์ฉํด ์์ฑ์๋ฅผ ํธ์ถํ๋ ์์ ์ด๋ค. ์ฌ๊ธฐ์ new ๋ท๋ถ๋ถ์ด ์์ฑ์๋ฅผ ํธ์ถํ๋ ์ฝ๋์ด๋ค. ํ๋ผ๋ฏธํฐ์ ๊ฐ์ ๋ฃ์ ๊ฒฝ์ฐ ์์ฑ์๋ก ๋์ด๊ฐ์ ์ด๊ธฐ๊ฐ์ ๋ฐ๊ฟ์ค๋ค. ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฃ์ง ์์ ๊ฒฝ์ฐ์ ๊ธฐ๋ณธ๊ฐ์ด ๋ค์ด๊ฐ๋ ๊ธฐ๋ณธ์์ฑ์๋ฅผ ํธ์ถํ๋ค. ์์ฑ์ ํธ์ถ ํ ํด๋์ค์ ๋ฉค๋ฒ์ ์ ๊ทผํ ์ ์๋ ์์น๊ฐ์ ์ฐธ์กฐ๋ณ์์ ์ ์ฅํ๋ค. ์ด ์ฐธ์กฐ๋ณ์์ .(dot)์ ๋ถ์ฌ์ ๋ฉค๋ฒ์ ์ ๊ทผํ ์ ์๋ค.
public Student() {} // ๊ธฐ๋ณธ ์์ฑ์๋ฅผ ๋ช ์์ ์ผ๋ก ๊ผญ ๊ธฐ์ฌํ ๊ฒ public Student(String name, int age, String address) { System.out.println("Student ์์ฑ์ ํธ์ถ"); this.name = name; this.age = age; this.address = address; }
ํด๋์ค์ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐ๋ ์์ฑ์๋ฅผ ๋ง๋ค๊ณ main ํจ์ ์์์ ๊ฐ์ฒด ์์ฑ ์ ์ธ์๋ฅผ ์ ์ด์ฃผ์ง ์์ ๋ํดํธ ์์ฑ์๋ฅผ ํธ์ถํ ๊ฒฝ์ฐ ์ปดํ์ผ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. ์์ฑ์์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ ์ผ๋ฉด ์๋ ๋ํดํธ ์์ฑ์๋ ์ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฐ๋ผ์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์์ฑ์ ๋ํ ๋ฐ๋ก ๋ช ์ํด์ผ ํ๋ค.
public class Constructor { private String name; private int age; private String address; public Constructor() { } public Constructor(String name, int age, String address) { System.out.println("Constructor ์์ฑ์ ํธ์ถ"); this.name = name; this.age = age; this.address = address; } public void setName(String name) { this.name = name; } public String getName() { return name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }
public class Constructor_Test { public static void main(String[] args) { Constructor cons = new Constructor("ํ๊ธธ๋", 20, "๊ฐ๋จ๊ตฌ"); Constructor cons2 = new Constructor(); System.out.println(cons.getName()); System.out.println(cons.getAge()); System.out.println(cons.getAddress()); System.out.println(cons2.getName()); System.out.println(cons2.getAge()); System.out.println(cons2.getAddress()); } }
์ธ์๋ฅผ ๊ฐ์ง ์์ฑ์๋ฅผ ํธ์ถํ cons๋ (ํ๊ธธ๋, 100, ๊ฐ๋จ๊ตฌ)๋ฅผ ์ถ๋ ฅํ์ผ๋ฉฐ, ๊ธฐ๋ณธ ์์ฑ์๋ฅผ ํธ์ถํ cons2๋ ๊ฐ ๋ฐ์ดํฐํ์ ์ ๊ธฐ๋ณธ๊ฐ์ธ (null, 0, null)์ ์ถ๋ ฅํ๋ค.
๋ชจ๋ํ3. Student์ Bookํด๋์ค 4๊ฐ์ ๋ชจ๋ ์ฐ๊ฒฐ
public class Book { private String title; private int price; public Book() {} public void setTitle(String title) { this.title = title; } public String getTitle() { return title; } public void setPrice(int price) { this.price = price; } public int getPrice() { return price; } }
public class BookTest { public static void main(String[] args) { Book book1 = new Book(); Book book2 = new Book(); book1.setTitle("1984"); book1.setPrice(1000); book2.setTitle("์ค๋ง๊ณผ ํธ๊ฒฌ"); book2.setPrice(2000); System.out.println(book1.getTitle()); System.out.println(book1.getPrice()); System.out.println(book2.getTitle()); System.out.println(book2.getPrice()); } }
Book ๊ฐ์ฒด๋ ๊ธฐ๋ณธ์์ฑ์๋ก ์์ฑํ๊ณ setter์ getter ๋ฉ์๋๋ก ๋ฉค๋ฒ๋ณ์๋ฅผ ํ๋ฆฐํธํ๋ค.
public class Student { private String name; private int age; private String address; private Book writtenBook; // Book ํด๋์ค ์ถ๊ฐ public Student() {} public Student(String name, int age, String address) { this.name = name; this.age = age; this.address = address; } public void setWrittenBook(Book writtenBook) { this.writtenBook = writtenBook; } public Book getWrittenBook() { return writtenBook; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }
public class StudentTest { public static void main(String[] args) { Student stu1 = new Student("ํ๊ธธ๋", 100, "๊ฐ๋จ๊ตฌ"); Book book1 = new Book(); book1.setTitle("ํด๋ฆฌํฌํฐ"); book1.setPrice(3000); stu1.setWrittenBook(book1); System.out.println(stu1.getName()); System.out.println(stu1.getAge()); System.out.println(stu1.getAddress()); System.out.println(book1.getTitle()); System.out.println(book1.getPrice()); } }
StudentTest ๋ฉ์ธ๋ฉ์๋์ Book ํด๋์ค์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค. ์ฐธ์กฐ๋ณ์ book1์ setํจ์์ getํจ์๋ฅผ ํธ์ถํด์ ์ธ์์ title๊ณผ price ๊ฐ์ ์ง์ ํด์ Book ํด๋์ค๋ก ๋ณด๋ธ๋ค. Student ํด๋์ค์ ์๋ ๊ธฐ๋ณธ์์ฑ์๋ก ์์ฑ๋ writtenBook ๋ฉค๋ฒ๋ณ์์๋ book1์ ์ ์ฅํ ๊ฐ์ ์ฐธ์กฐํ ์ ์๊ฒ ์ฐธ์กฐ๋ณ์๋ฅผ ์ธ์๋ก ๋ณด๋ธ๋ค.
stu1์ ๋ฉค๋ฒ๋ณ์๋ ์ฝ๊ฒ ํธ์ถ์ด ๊ฐ๋ฅํ์ง๋ง stu1.getWrittenBook์ ์ฃผ์๊ฐ์ ๋ฐํํ๋ค. book1์ set ์ธ์๋ก ๋ณด๋์ผ๋๊น Book ํด๋์ค๋ฅผ ์ฐธ์กฐํด์ผ ํ๋ค. ๋ฐ๋ผ์ book1์ get ํจ์๋ฅผ ํธ์ถํ๋ฉด ์์์ ์ง์ ํ (ํด๋ฆฌํฌํฐ, 3000) ๊ฐ์ ํ๋ฆฐํธํ ์ ์๋ค.
๐ NEXT : ์๋ฐ ํด๋์ค ๋ชจ๋ํ ์ฐ์ตํ๊ธฐ
๋ฐ์ํ'JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JAVA ์๋ฐ ์ค๋ฒ๋ก๋ฉ, this, final, static, varags (0) 2020.08.04 JAVA ์๋ฐ ํด๋์ค ๋ชจ๋ํ ์ฐ์ตํ๊ธฐ (0) 2020.08.03 JAVA ์๋ฐ ๋ฐฐ์ด (0) 2020.07.31 JAVA ์๋ฐ ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ๋ณต๋ฌธ (0) 2020.07.30 JAVA ์๋ฐ ์ฐ์ฐ์ 6๊ฐ์ง Operator (0) 2020.07.29