์๋ฐ(JAVA)๋ ๊ฐ์ฒด ์งํฅ ์ธ์ด๋ก์, ํด๋์ค์ ๊ฐ์ฒด๋ก ์ด๋ฃจ์ด์ ธ์๋ค.
๊ทธ๋ฌ๋ฏ๋ก ํด๋์ค์ ๊ฐ์ฒด, ์ธ์คํด์ค๋ ์๋ฐ์์ ๋งค์ฐ๋งค์ฐ ์ค์ํ ๊ฐ๋ ์ด๋ค.!
๋จผ์ ํด๋์ค์ ๋ํด ์ ๋ฆฌํ๋ฉด ์ด๋ ๋ค.
ํด๋์ค (Class)
ํด๋์ค๋
- ์ฌ๋ฌ ๋ณ์๋ค์ ํ๋์ ํด๋์ค๋ก ๋ฌถ์ด ์ฌ์ฉํ ์ ์๋ค๋ ํน์ง์ ๊ฐ์ง๋ค.
- ๋ฉ์ธํจ์๊ฐ ์ฐ์ด๋ ํด๋์ค ์ธ์ ํด๋์ค ํ์ผ์ ์๋ก ๋ง๋ค์ด ์ฌ์ฉํ๋ค.
์๋๋ MovieReview๋ผ๋ ์ด๋ฆ์ ํด๋์ค ์ ์ธ ์์๋ค.
package class1;
public class MovieReview
{
String title;
String review;
}
MovieReview ํด๋์ค๋ฅผ ์ ์ํ์ฌ, ๋ด๋ถ์ ์ ๋ชฉ(title)๊ณผ ๋ฆฌ๋ทฐ๋ฅผ String์ผ๋ก ์ ์ํ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ด๋ ๊ฒ ํด๋์ค๋ฅผ ์ ์ํ๋ค๋ฉด, ๋ฉ์ธํจ์์์ ์ด๋ป๊ฒ ์ฌ์ฉํ ๊น?
์๋์ ์์ ์ฝ๋๋ฅผ ํตํด ์ดํด๋ณด์.
- ์ ์ธํ ํด๋์ค๋ '์ฌ์ฉ์ ์ ์ํ์ ' ์ผ๋ก์ ๋ฐ์ดํฐ ํ์ ์ ๋ฐ๋ผ int ํ, String ํ์ ์ ์ธํ๋ ๊ฒ๊ณผ ๊ฐ์ด ํ์ ์ผ๋ก ์ฌ์ฉ๋๋ค.
ex) MovieReview[] reviews = new MovieReview[2];
- MovieReview๋ผ๋ ํ์ ์ ๋ฐฐ์ด์ ๋ง๋ค์์ผ๋ฉฐ, ๊ฐ๊ฐ MoviewReviewํ์ ์ ๋ฐ์ดํฐ movie1, movie2๋ฅผ ์ ์ธํ ์ ์๋ค.
ex) MovieReview movie1= new MovieReview();
- ๊ฐ๊ฐ์ ๋ฐ์ดํฐ์๋ ์ (.)์ ์ฐ๊ณ ํด๋์ค ์์์ ์ ์ธํด์คฌ๋ ๋ณ์๋ค์ ๊ฐ๊ฐ ์ ์ธํด์ค ์ ์๋ค.
ex) movie1.title , movie2.title ๋ฑ
์๋ ์ฝ๋์์๋ MovieReview ํ์ ์ผ๋ก ์ ์ธํ๋ reviews[2]๋ผ๋ ๋ฐฐ์ด์
๊ฐ๊ฐ reviews[0]= movie1์ , reviews[1]=movie2๋ฅผ ๋์ ํ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ด๊ฑด ๋ง์ง๋ง์ for๋ฌธ์ผ๋ก ์ฝ๊ฒ ์ถ๋ ฅํ๊ธฐ ์ํด ๋์ ํด์ค ๊ฒ!
package class1;
public class Example2
{
public static void main(String[] args)
{
MovieReview[] reviews= new MovieReview[2];
MovieReview movie1=new MovieReview();
movie1.title="์ธ์
์
";
movie1.review="์ธ์์ ๋ฌดํ ๋ฃจํ";
reviews[0]=movie1;
MovieReview movie2 = new MovieReview();
movie2.title="์ด๋ฐ์ ํ์";
movie2.review="์ธ์ ์๊ฐ ์ํ!";
reviews[1]=movie2;
for(int i=0; i<2; i++)
{
MovieReview s= reviews[i];
System.out.println("์ํ์ ๋ชฉ:"+s.title+" ๋ฆฌ๋ทฐ:"+s.review);
}
}
}
ํด๋์ค๋ ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ๋ฉ์ธํจ์ ์์์ ์ฌ์ฉํ ์ ์๋ค.
๋ฐ๋ณต๋๋ ํ๋์ ํฐ ํ ์์ ์ธ์ธํ ๋ณ์๋ค์ ๋ชจ๋ ๋ด์ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.!
ํด๋์ค๋ '์ค๊ณ๋'์ ๊ฐ๋ค.
๊ฐ์ฒด์ ์ธ์คํด์ค
๊ฐ์ฒด์ ์ธ์คํด์ค(Instance)๋ ํด๋์ค๋ฅผ ์ฌ์ฉํด์ '์ค์ ๋ฉ๋ชจ๋ฆฌ์ ๋ง๋ค์ด์ง ์ค์ฒด'๋ฅผ ๋งํ๋ค.
์๋ฅผ ๋ค์ด์
Student student1;
student1 = new Student ();
์์ ์ฝ๋์์
new Student() ๋ Studentํด๋์ค ๊ธฐ๋ฐ์ผ๋ก, ์๋ก์ด '๊ฐ์ฒด'๋ฅผ ์์ฑํ๋ผ๋ ์๋ฏธ๋ค.
์ค์ ๋ฉ๋ชจ๋ฆฌ์ Student ๊ฐ์ฒด(์ธ์คํด์ค)๋ฅผ ์์ฑํ๋ค.
- ๊ฐ์ฒด ์์ฑ: new ํด๋์ค๋ช ()
๊ฐ์ฒด์ ์ธ์คํด์ค์ ์ฐจ์ด์ !
student1์ Student ํด๋์ค์ '์ธ์คํด์ค'์ด๋ค.
์ธ์คํด์ค์ ๊ฐ์ฒด๋ ๊ฐ์ ์๋ฏธ๋ก ์ฐ์ด์ง๋ง,
'์ธ์คํด์ค'๋ ๊ฐ์ฒด๋ณด๋ค 'ํด๋์ค์์ ๊ด๊ณ'์ ์ด์ ์ ๋๋ค.
ํน์ ํด๋์ค์์ ๊ด๊ณ๋ฅผ ๋ํ๋ผ ๋ ์ด๋ ํ ํด๋์ค์ ์ธ์คํด์ค๋ผ๊ณ ๋งํ๊ธฐ ๋๋ฌธ์ด๋ค.
์ฆ ๋ชจ๋ ์ธ์คํด์ค๋ '๊ฐ์ฒด'์ง๋ง, ์ธ์คํด์ค๋ผ๋ ๊ฒ์ ํน์ ํด๋์ค์์๋ถํฐ ๊ฐ์ฒด๊ฐ ์์ฑ๋์์์ ๊ฐ์กฐํ ๋ ์ฌ์ฉํ๋ค.
์๋ฐ์์ '๋์ '์ ํญ์ ๋ณ์์์์ ๊ฐ์ '๋ณต์ฌ'ํด์ ์ ๋ฌํ๋ค!
๋ง์ฝ ์๋์ ๊ฐ์ ํด๋์ค์ ์ฝ๋๊ฐ ์์๋,
์ค์ ๋ก ์ธ์คํด์ค๊ฐ ์ด๋ป๊ฒ ์์ฑ๋๋์ง, '์ฐธ์กฐ๊ฐ(์ฃผ์๊ฐ)'์ ๋ณ์์ ์ด๋ป๊ฒ ์ ์ฅํ๊ณ ์๋์ง์ ๋ํด ์ ๋ฆฌํด๋ณด๋ฉด ์ด๋ ๋ค.
package class1;
public class Student
{
String name;
int age;
int grade;
}
์์ ๊ฐ์ด Student๋ผ๋ ํด๋์ค๋ฅผ ์ ์ธํ๊ณ ,
๋ฉ์ธํจ์์์ ์๋์ ๊ฐ์ด ๊ฐ๊ฐ์ ํด๋์ค ๋ณ์์ ๊ฐ์ ๋์ ํ๋ ๊ฒฝ์ฐ,
package class1;
public class ClassStart3
{
public static void main(String[] args)
{
Student student1 =new Student();
student1.name ="ํ์1";
student1.age=15;
student1.grade=90;
Student student2= new Student();
student2.name="ํ์2";
student2.age=16;
student2.grade=80;
Student[] students = new Student[2];
students[0]=student1;
students[1]=student2;
for(int i=0; i<students.length; i++)
{
System.out.println("์ด๋ฆ:"+students[i].name+" ๋์ด:"+students[i].age+ " ์ฑ์ :"+students[i].grade);
}
}
}
students[2] ๋ฐฐ์ด ์์ ์ ์ฅ๋ student1, student2์๋ ์ฐธ์กฐ๊ฐ์ด ๋ณด๊ด๋์ด ์๋ค.
์ด ์ฐธ์กฐ๊ฐ์ ๋ฐฐ์ด์ ์ ์ฅ๋๋ค. (=student1, student2์ ๋ณด๊ด๋ ์ฐธ์กฐ๊ฐ์ ์ฝ๊ณ '๋ณต์ฌ'ํด์ ๋ฐฐ์ด์ ๋์ ํ๋ค!)
๊ทธ๋ฆผ์ผ๋ก ๋ํ๋ด๋ณด๋ฉด ์ด๋ ๋ค.
์ด๋ฐ์์ผ๋ก ์ฐธ์กฐ๊ฐ์ ๋ณต์ฌ๋์ด ์ ๋ฌ๋๋ค.
๋ณ์์๋ ์ธ์คํด์ค ์์ฒด๊ฐ ๋ค์ด์๋ ๊ฒ์ด ์๋๋ค!
์ธ์คํด์ค์ ์์น๋ฅผ ๊ฐ๋ฆฌํค๋ ์ฐธ์กฐ๊ฐ์ด ๋ค์ด์์ ๋ฟ์ด๋ค!
๋ฐ๋ผ์ ๋์ ( `=` )์์ ์ธ์คํด์ค๊ฐ ๋ณต์ฌ๋๋ ๊ฒ์ด ์๋๋ผ ์ฐธ์กฐ๊ฐ๋ง ๋ณต์ฌ๋๋ค.
ํ๋ฆฐ ๋ถ๋ถ์ด๋ ์ด์ํ ๋ถ๋ถ์ด ์์ผ๋ฉด ๋๊ธ๋ก ์ง์ ํด์ฃผ์ธ์!
๊ฐ์ฌํฉ๋๋ค :)
'๐ป > JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JAVA] ์์ฑ์์ this. (1) | 2024.08.10 |
---|---|
[JAVA] ๊ธฐ๋ณธํ๊ณผ ์ฐธ์กฐํ | ๋ฉ์๋ ํธ์ถ | ๋ฐ์ดํฐ ํ์ (1) | 2024.07.30 |
[JAVA] ๋ฉ์๋(Method), ๋งค๊ฐ๋ณ์(Parameter), ๋ฉ์๋ ์ค๋ฒ๋ก๋ฉ (0) | 2024.07.15 |
[JAVA] ๋ฐฐ์ด ์ ์ธ๊ณผ ์์ฑ, 2์ฐจ์๋ฐฐ์ด +์ฐธ์กฐํ,๊ธฐ๋ณธํ (1) | 2024.07.15 |
[JAVA] Scanner ์ด์ฉํด ์ ๋ ฅ ๋ฐ๊ธฐ (2) | 2024.07.14 |