
๋ณ์ ์ด๋ฆ๋ง ๋ฐ๊พธ๊ณ ๋๋จธ์ง ์ ๋ ฅ๊ฐ์ด ๊ฐ์ ๋ ๋จ์ ๋ฐ๋ณต๋๋ ์ฝ๋๋ค์ด ๋ง๋ค => ๋ฐฐ์ด์ ์ด์ฉํด์ ๋ณ์ ์ด๋ฆ๋ง ๋ฐ๊พธ๊ณ ๋๋จธ์ง ์ค๋ณต๋ ์ฝ๋๋ฅผ์ ๋ง๋ค์ => ํ ๊ฐ์ ๋ฐ์ดํฐ ์์ ์ ๋ณด๋ค์ ์ฌ๋ฌ๊ฐ์ ๋ฐฐ์ด์ ์์๊ฐ์ผ๋ก ๋ถ์ฐ๋๋ค => ์ฝ๋ ์์ ์์ ์ค์๋ฅผ ์ ๋ฐํ๋ค => ํด๋์ค๋ฅผ ๋ง๋ค์ด์ ํ ๊ฐ์ ๋ฐ์ดํฐ ์์ ์ ๋ณด๊ฐ๋ค์ ๊ด๋ฆฌํ์ => 'ํด๋์ค'์ ํ์!!
ํด๋์ค = ํ ๊ฐ์ ๋ฌถ์ ๋ฐ์ดํฐ = ์ฌ์ฉ์ ์ ์ ํ์ = ์ค๊ณ๋ = ๋ถ์ด๋นต ํ
๋ณ์ ๋๋ ํ๋ = ํด๋์ค์ ์ ์๋ ๋ณ์(๊ฐ๋ณ ๋ฐ์ดํฐ)
ํด๋์ค๋ฅผ ์ฌ์ฉํด ์ค์ ๋ฉ๋ชจ๋ฆฌ์ ๋ง๋ค์ด์ง ์ค์ฒด = ๊ฐ์ฒด, ์ธ์คํด์ค = ๋ถ์ด๋นต
package javaBasicLecture.array;
public class ClassStart {
public static void main(String[] args) {
String student1Name = "ํ์ 1";
int student1Age = 15;
int student1Grade = 90;
String student2Name = "ํ์ 2";
int student2Age = 16;
int student2Grade = 80;
String student3Name = "ํ์ 3";
int student3Age = 17;
int student3Grade = 80;
System.out.println("์ด๋ฆ : " + student1Name + "๋์ด: " + student1Age + "์ฑ๊ฒฉ : " + student1Grade );
System.out.println("์ด๋ฆ : " +student2Name + "๋์ด: " + student2Age + "์ฑ๊ฒฉ : " + student2Grade );
System.out.println("์ด๋ฆ : " + student3Name + "๋์ด: " + student3Age + "์ฑ๊ฒฉ : " + student3Grade );
}
}
์์ ์ถ๋ ฅ๊ฐ ์ ๋ ฅ์ ๋ณ์ ์ด๋ฆ๋ง ๋ค๋ฅด๊ณ ๋๋จธ์ง ๋ชจ๋ ๊ฒ๋ค์ด ๊ฐ์ ๊ฐ์ด๊ธฐ ๋๋ฌธ์ ์ด๋ ๊ฒ ๊ฐ๊ฐ ์ถ๋ ฅ๊ฐ์ ์ ๋ ฅํ๋๊ฑด ๋นํจ์จ์ ์ด์ด๋ค.
๊ทธ๋์ ์ฐ๋ฆฌ๋ '๋ฐฐ์ด'์ ์ด์ฉํ์ฌ ์ค๋ณต๋ ์ฝ๋๋ฅผ ์ค์ฌ์ค๋ค.
๋ฐฐ์ด ํ์ฉ
public static void main(String[] args) {
String[] studentNames = {"ํ์1", "ํ์2"};
int[] studentAges = {15, 16};
int[] studentGrade = {90, 80};
for (int i = 0; i < studentNames.length; i++){
System.out.println("์ด๋ฆ : " + studentNames[i] + "๋์ด: " + studentAges[i] + "์ฑ๊ฒฉ : " + studentGrade[i]);
}
}
ํ์ง๋ง, ํ๊ณ๊ฐ ์๋ค. ์ฝ๋ ๋ณ๊ฒฝ ์ต์ํ์๋ ์ฑ๊ณตํ์ผ๋.
ํ๋ช ์ ํ์ ๋ฐ์ดํฐ๊ฐ 3๊ฐ์ ๋ฐฐ์ด์ ๋๋์ด์ ธ ์๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ ๋ ๋งค์ฐ ์กฐ์ฌํด์ ์์ ํด์ผ ํ๋ค.
ํ๋ช ์ ํ์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ ๋ 3๊ฐ์ ๋ฐฐ์ด์ ๋ชจ๋ ๊ฑด๋ค์ฌ์ ๋ฐฐ์ด ์์๋ฅผ ์ ํํ๊ฒ ๋ณด๊ณ ์์ ํด์ผ ํด์ ๋ฒ๊ทธ๋ฅผ ์ ๋ฐํ ํ๊ฒฝ์ด ์กฐ์ฑ๋๊ธฐ ์ฝ๋ค.
ํ ํ์์ ๋ฐ์ดํฐ๋ฅผ ํ๊บผ๋ฒ์ ๊ด๋ฆฌํ ์ ์๋๋ก ๋ณ๊ฒฝํ์!
ํ ํ์ ๋ฐ์ดํฐ์ ์ด๋ฆ, ๋์ด ์ฑ์ ์ ํ๊บผ๋ฒ์ ๊ด๋ฆฌ๊ฐ ๋ชฉ์ !
๊ทธ๋์ 'ํด๋์ค'๋ฅผ ๋์ ํ๋ ๊ฒ์ด๋ค.
public class Student {
String name;
int age;
int grade;
}
class ํค์๋๋ฅผ ์ฌ์ฉํด์ ํ์์ ์ ์ํ๋ค. ๋ด๋ถ์ ๊ด๋ฆฌํ ํญ๋ชฉ(์ด๋ฆ, ๋์ด, ์ฑ์ )์ ๋ฃ์ด์ค๋ค.
์๋ฐ์์ ํด๋์ค์ ์ ์๋ ๋ณ์๋ค์ ๋ฉค๋ฒ ๋ณ์(Member Variable) ๋๋ ํ๋(Field)๋ผ๊ณ ๋ถ๋ฅธ๋ค.
• ๋ฉค๋ฒ ๋ณ์(Member Variable)๋ ๋ง ๊ทธ๋๋ก ํน์ ํด๋์ค์ ์์๋ “๋ฉค๋ฒ”์ด๊ธฐ ๋๋ฌธ์ ๋ถ์ฌ์ง ์ด๋ฆ์ด๋ค. ์ฆ, ํด๋์ค์ ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์ญํ ์ ํ๋ค.
• ํ๋(Field)๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์์ ๊ณผ ๊ฐ์ ๊ณณ์์ ๋ฐ์ดํฐ๋ฅผ ๋ด๊ณ ์๋ ํญ๋ชฉ์ ์๋ฏธํ๋ ์ ํต์ ์ธ ์ฉ์ด์์ ์ ๋ํ๋ค. ์๋ฐ์์๋ ํด๋์ค์ ์ํ ๋ฐ์ดํฐ ํญ๋ชฉ์ ํ๋๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก, ์๋ฐ์์๋ ๋ฉค๋ฒ ๋ณ์์ ํ๋๊ฐ ๊ฐ์ ๋ป์ผ๋ก ์ฌ์ฉ๋๋ฉฐ, ๋ ๋ค ํด๋์ค์ ์ํ ๋ณ์๋ฅผ ์๋ฏธํฉ๋๋ค.
ํด๋์ค ๋ด๋ถ์ ์ ์๋์ด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฑฐ๋ ๋ค๋ฃฐ ๋ ์ฌ์ฉ๋๋ ๋ณ์๋ผ๊ณ ์ดํดํ๋ฉด ๋๋ค.
ํด๋์ค๋ ๋๋ฌธ์๋ก ์์ํ๊ณ ๋ํ ํ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ค.
public class ClassStart3 {
public static void main(String[] args) {
Student student1;
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;
System.out.println("์ด๋ฆ: " + student1.name + " ๋์ด: " + student1.age + " ์ฑ์ : " + student1.grade);
System.out.println("์ด๋ฆ: " + student2.name + " ๋์ด: " + student2.age + " ์ฑ์ : " + student2.grade);
}
}
ํด๋์ค์ ์ฌ์ฉ์ ์ ์ ํ์ ์ ๋ํด ๊ฐ๋จํ ์ค๋ช ํ์๋ฉด,
ํ์ ์ด๋ ๋ฐ์ดํฐ์ ์ข ๋ฅ๋ ํํ๋ฅผ ๋ํ๋ด๋ ๊ฒ์ ๋งํ๋ค.
์๋ฅผ ๋ค์ด, int๋ ์ ์๋ฅผ ๋ด๋ ํ์ ์ด๊ณ , String์ ๋ฌธ์๋ฅผ ๋ด๋ ํ์ ์ด๋ค.
๊ทธ๋ ๋ค๋ฉด, ํ์(Student)์ด๋ผ๋ ํ์ ๋ ๋ง๋ค ์ ์์๊น?
ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฅํ๋ค.
์ฆ, int, String์ฒ๋ผ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ์๋ก์ด ํ์ ์ ์ง์ ์ ์ํ ์ ์๋ค๋ ๋ป์ด๋ค.
์ด๋ ๊ฒ ์ฌ์ฉ์๊ฐ ์ง์ ์ ์ํ ํ์ ์ ์ฌ์ฉ์ ์ ์ ํ์ ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
์ฌ์ฉ์ ์ ์ ํ์ ์ ๋ง๋ค๊ธฐ ์ํด์๋ ์ค๊ณ๋๊ฐ ํ์ํ๋ค.
์ฌ๊ธฐ์ ์ค๊ณ๋๊ฐ ๋ฐ๋ก ํด๋์ค์ด๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ์ค๊ณ๋๋ฅผ ์ฌ์ฉํด ์ค์ ๋ฉ๋ชจ๋ฆฌ์ ๋ง๋ค์ด์ง ์ค์ฒด๋ฅผ ๊ฐ์ฒด(Object) ๋๋ ์ธ์คํด์ค(Instance)๋ผ๊ณ ํ๋ค.
์ฝ๊ฒ ๋น์ ํ๋ฉด:
• ํด๋์ค๋ ๋ถ์ด๋นต ํ ๊ฐ์ ์ค๊ณ๋์ด๋ค.
• ๊ฐ์ฒด๋ ์ธ์คํด์ค๋ ์ด ํ๋ก ์ฐ์ด๋ธ ๋ถ์ด๋นต์ด๋ค.
์ฆ, ํด๋์ค๋ ์ค๊ณ๋์ด๊ณ , ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ค์ ์์ฑ๋ ๊ฒ์ด ๊ฐ์ฒด ๋๋ ์ธ์คํด์ค์ด๋ค.
์์: ๋ณ์ ์ ์ธ
Student student1; // Student ๋ณ์ ์ ์ธ
์ ์ฝ๋๋ฅผ ํตํด, Student๋ผ๋ ํ์ ์ ๋ณ์๋ฅผ ์ ์ธํ ์ ์๋ค.
• int๋ ์ ์๋ฅผ ๋ด๊ณ , String์ ๋ฌธ์๋ฅผ ๋ด๋ ๊ฒ์ฒ๋ผ,
Student ํ์ ์ ๋ณ์๋ Student ํ์ ์ ๊ฐ์ฒด(์ธ์คํด์ค)๋ฅผ ๋ด์ ์ ์๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก, ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์๊ฐ ์ํ๋ ๋ฐ์ดํฐ ํ์ ์ ์์ ๋กญ๊ฒ ์ค๊ณํ๊ณ , ์ ์ํ ์ ์๋ค.
Student์ ๊ฐ์ ์ฌ์ฉ์ ์ ์ ํ์ ์ ๋ง๋ค์ด ํ๋ก๊ทธ๋จ์ ๋ค์ํ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๋ค๋ฃฐ ์ ์๋ค.
์ด ๊ฐ๋ ์ ๋ฐ์ค์ ๋ด์ฉ๋ฌผ๋ก ๋น์ ๋ฅผ ํตํด ๋ ์ฝ๊ฒ ์ดํดํ์.
๋ฐ์ค(ํ์ ) : ์ฐ๋ฆฌ๊ฐ ์ด๋ค ๋ฌผ๊ฑด์ ๋ด๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ฐ์ค์ฒ๋ผ, ํ์ ์ ๋ด์ ์ ์๋ ๋ด์ฉ๋ฌผ์ ์ข ๋ฅ๋ฅผ ์ ํด์ค๋ค.
์ ์๋ฅผ ๋ด๋ ๋ฐ์ค๋ int์ด๊ณ , ๊ธ์๋ฅผ ๋ด๋ ๋ฐ์ค๋ String์ด๋ค.
์ด์ ์๋ก์ด ํ์(Student)์ด๋ผ๋ ํน๋ณํ ๋ฌผ๊ฑด์ ๋ด๋ ๋ฐ์ค๊ฐ ํ์ํ ๊ฒ์ด๋ค. ์ด ๋ฐ์ค๋ฅผ Student ํ์ ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๋ด์ฉ๋ฌผ(๊ฐ์ฒด) : Student๋ผ๋ ๋ฐ์ค์๋ ํ์์ ์ ๋ณด(์ด๋ฆ, ๋์ด, ํ๋ )๊ฐ ๋ด๊ธด ํน๋ณํ ๋ด์ฉ๋ฌผ๋ง ๋ฃ์ ์ ์๋ค.
aํ์์ด๋ผ๋ ์ ๋ณด๋ฅผ ๋ด๊ณ ์ถ์ผ๋ฉด Student ํ์ ์ ๋ฐ์ค๋ฅผ ๋ง๋ค์ด์ผ ํ๋ค. ์ด๋ ๊ฒ ํ๋ฉด Student๋ฐ์ค์๋ ํ์ ์ ๋ณด๋ง ๋ด์ ์ ์๋๊ฒ์ด๋ค.
๊ฐ์ฒด ์์ฑ
student1 = new Student(); // Student ์ธ์คํด์ค ์์ฑ
๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋จผ์ ์ค๊ณ๋(ํด๋์ค)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ์ฒด(์ธ์คํด์ค)๋ฅผ ์์ฑํด์ผ ํ๋ค.
• new Student():
• new๋ “์๋ก ์์ฑํ๋ค”๋ ์๋ฏธ์ด๋ค.
• new Student()๋ Student ํด๋์ค ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ผ๋ ๋ป์ด๋ค.
• ์ด ์์ ์ ํตํด ๋ฉ๋ชจ๋ฆฌ์ ์ค์ Student ๊ฐ์ฒด(์ธ์คํด์ค)๊ฐ ๋ง๋ค์ด์ง๋๋ค.
• ๊ฐ์ฒด ์์ฑ ๋ฐฉ๋ฒ: new ํด๋์ค๋ช ()
• ๋ง์ง๋ง์ ()๋ฅผ ๋ฐ๋์ ์ถ๊ฐํด์ผ ํ๋ค.
์๋ฅผ ๋ค์ด, Student ํด๋์ค๊ฐ String name, int age, int grade๋ผ๋ ๋ฉค๋ฒ ๋ณ์๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ฉด,
๊ฐ์ฒด ์์ฑ ์ ์ด ๋ณ์๋ค์ ์ฌ์ฉํ๋๋ฐ ํ์ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ๋ ํจ๊ป ํ๋ณด๋๋ค.
์ฐธ์กฐ๊ฐ ๋ณด๊ด
student1 = x001; // Student ์ธ์คํด์ค ์ฐธ์กฐ๊ฐ ๋ณด๊ด
• ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ฉด ์๋ฐ๋ ๋ฉ๋ชจ๋ฆฌ ์ด๋๊ฐ์ ์์ฑ๋ ๊ฐ์ฒด์ ์ ๊ทผํ ์ ์๋ ์ฐธ์กฐ๊ฐ(์ฃผ์)์ ๋ฐํํ๋ค.
• ์๋ฅผ ๋ค์ด, ์ ์ฝ๋์์ x001์ ์ฐธ์กฐ๊ฐ(์ฃผ์)์ ์๋ฏธํ๋ค.
• new ํค์๋๋ฅผ ํตํด ์์ฑ๋ ๊ฐ์ฒด์ ์ฐธ์กฐ๊ฐ์ ์์ ์ ์ธํ ๋ณ์(Student student1)์ ์ ์ฅ๋๋ค.
• Student student1์ ์ด์ ๋ฉ๋ชจ๋ฆฌ์ ์์ฑ๋ Student ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ ์ฐธ์กฐ๊ฐ์ ๊ฐ์ง๊ณ ์๋ค.
• ์ด ์ฐธ์กฐ๊ฐ์ ํตํด student1 ๋ณ์๋ฅผ ์ฌ์ฉํด ๊ฐ์ฒด์ ์ ๊ทผํ ์ ์๋ค.
๊ฐ์ฒด์ ๊ฐ ๋์
๊ฐ์ฒด๊ฐ ์์ฑ๋๋ฉด ๊ทธ ์์ ๋ฉค๋ฒ ๋ณ์(name, age, grade)์ ๊ฐ์ ๋์ ํ ์ ์๋ค.
1. ๊ฐ์ฒด์ ์ ๊ทผ:
• .(์ ) ํค์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
• ์๋ฅผ ๋ค์ด, student1.name์ student1 ๋ณ์๊ฐ ๊ฐ๋ฆฌํค๋ ๊ฐ์ฒด์ name ๋ณ์์ ์ ๊ทผํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
๊ฐ ๋์ ์์:
student1.name = "John"; // name ๋ณ์์ ๊ฐ ๋์
student1.age = 20; // age ๋ณ์์ ๊ฐ ๋์
student1.grade = 3; // grade ๋ณ์์ ๊ฐ ๋์
์ฌ๊ธฐ์ . ํค์๋๋ student1 ๋ณ์๊ฐ ๊ฐ์ง๊ณ ์๋ ์ฐธ์กฐ๊ฐ(x001)์ ์ฝ์ด ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๊ฐ์ฒด์ ์ ๊ทผํฉ๋๋ค.
์ ์ฒด ํ๋ฆ ์์:
// 1. ๋ณ์ ์ ์ธ
Student student1;
// 2. ๊ฐ์ฒด ์์ฑ
student1 = new Student(); // Student ๊ฐ์ฒด ์์ฑ ๋ฐ ์ฐธ์กฐ๊ฐ ์ ์ฅ
// 3. ๊ฐ์ฒด์ ๊ฐ ๋์
student1.name = "John"; // ๋ฉค๋ฒ ๋ณ์ name์ ๊ฐ ๋์
student1.age = 20; // ๋ฉค๋ฒ ๋ณ์ age์ ๊ฐ ๋์
student1.grade = 3; // ๋ฉค๋ฒ ๋ณ์ grade์ ๊ฐ ๋์
์ด๋ ๊ฒ, ์๋ฐ์์๋ ํด๋์ค๋ฅผ ์ค๊ณ๋๋ก ์ฌ์ฉํด ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ , ๋ณ์์ ์ฐธ์กฐ๊ฐ์ ์ ์ฅํด ๊ฐ์ฒด์ ์ ๊ทผ ๋ฐ ๊ฐ์ ๋์ ํ ์ ์๋ค.
์์๋ฅผ ๊ฐ๋จํ ํ์ด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค
student1.name = "ํ์1" //1. student1 ๊ฐ์ฒด์ name ๋ฉค๋ฒ ๋ณ์์ ๊ฐ ๋์
x001.name = "ํ์1" //2. ๋ณ์์ ์๋ ์ฐธ์กฐ๊ฐ์ ํตํด ์ค์ ๊ฐ์ฒด์ ์ ๊ทผ, ํด๋น ๊ฐ์ฒด์ name ๋ฉค๋ฒ ๋ณ์์ ๊ฐ ๋์