1. μλ° ν΄λμ€λ?
μλ°λ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ° μΈμ΄λ‘μ¨, ν΄λμ€(class)λΌλ κ°λ μ κΈ°λ°μΌλ‘ νλ‘κ·Έλ¨μ ꡬμ±ν©λλ€. ν΄λμ€λ, κ°μ²΄λ€μ μ§ν©μ΄λ©°, κ°μ²΄λ μμ±κ³Ό λμμ κ°λ μ€μ²΄μ λλ€. μλ°μμ ν΄λμ€λ νλ‘κ·Έλ¨μ ꡬ쑰λ₯Ό λνλ΄λ μ²μ¬μ§(blueprint)μ΄λΌ ν μ μμ΅λλ€. ν΄λμ€λ₯Ό μ μνκ³ κ°μ²΄λ₯Ό μμ±ν¨μΌλ‘μ¨, νλ‘κ·Έλ¨μμ νμν λ°μ΄ν°μ λ©μλλ₯Ό μΊ‘μννμ¬ μ¬μ©ν μ μκ²λ©λλ€. μλ°μμλ ν΄λμ€λ₯Ό μ¬μ©νμ¬ μ½λλ₯Ό ꡬ쑰ννκ³ , μ¬μ¬μ©μ±κ³Ό μ μ§λ³΄μμ±μ λμΌ μ μμ΅λλ€.
ν΄λμ€λ₯Ό μ¬μ©νκΈ° μν΄μλ μ μΈ, μμ±, κ·Έλ¦¬κ³ μ¬μ©νλ κ³Όμ μ κ±°μ³μΌ ν©λλ€. μ΄μ μμΈν μμλ³΄κ² μ΅λλ€.
2. μλ° ν΄λμ€μ μ μΈ λ°©λ²
μλ° ν΄λμ€λ₯Ό μ μΈνλ €λ©΄ λ€μκ³Ό κ°μ ꡬ문μ μ¬μ©ν©λλ€:
[μ κ·Ό μ μ΄μ] class ν΄λμ€λͺ
{
// λ©€λ² λ³μ μ μΈ
// μμ±μ μ μΈ
// λ©μλ μ μΈ
}
μμ ꡬ문μμ νμ νλͺ©μ ν΄λμ€λͺ μ λλ€. ν΄λμ€λͺ μ λλ¬Έμλ‘ μμνλ μΉ΄λ© μΌμ΄μ€(CamelCase) μ¬μ© κ·μΉμ λ°λ¦ λλ€. ν΄λμ€ μμλ λ©€λ² λ³μ, μμ±μ, λ©μλ λ±μ μΆκ°ν μ μμ΅λλ€.
μλ₯Ό λ€μ΄, "Person"μ΄λΌλ ν΄λμ€λ₯Ό μ μΈν΄λ³΄κ² μ΅λλ€:
class Person {
// λ©€λ² λ³μ μ μΈ
String name;
int age;
// μμ±μ μ μΈ
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// λ©μλ μ μΈ
public void printInfo() {
System.out.println("μ΄λ¦: " + name);
System.out.println("λμ΄: " + age);
}
}
μμ μμμμλ "Person"μ΄λΌλ ν΄λμ€λ₯Ό μ μΈνκ³ , λ©€λ² λ³μλ‘ μ΄λ¦κ³Ό λμ΄λ₯Ό μ μνμμ΅λλ€. μμ±μλ₯Ό ν΅ν΄ κ°μ²΄λ₯Ό μ΄κΈ°ννκ³ , printInfo()λΌλ λ©μλλ₯Ό μΆκ°νμ¬ κ°μ²΄μ μ 보λ₯Ό μΆλ ₯ν μ μλλ‘ νμμ΅λλ€.
ν΄λμ€λ₯Ό μ μΈν νμλ ν΄λΉ ν΄λμ€λ₯Ό μ¬μ©νμ¬ κ°μ²΄λ₯Ό μμ±νκ³ , λ©μλλ₯Ό νΈμΆν μ μμ΅λλ€. λ€μ λ¨λ½μμ μλ° ν΄λμ€μ μμ±κ³Ό μ¬μ©μ λν΄ μμλ³΄κ² μ΅λλ€.
3. μλ° ν΄λμ€μ μμ±κ³Ό μ¬μ©
μλ° ν΄λμ€λ₯Ό μ¬μ©νκΈ° μν΄μλ ν΄λμ€λ₯Ό κ°μ²΄λ‘ μμ±ν΄μΌ ν©λλ€. ν΄λμ€μ κ°μ²΄λ₯Ό μμ±νλ €λ©΄ new
ν€μλμ ν¨κ» μμ±μλ₯Ό νΈμΆν΄μΌ ν©λλ€. μ΄νμλ μμ±λ κ°μ²΄λ₯Ό ν΅ν΄ ν΄λμ€μ λ©€λ² λ³μλ λ©μλμ μ κ·Όν μ μμ΅λλ€.
μλ₯Ό λ€μ΄, μμ μ μΈν "Person" ν΄λμ€μ κ°μ²΄λ₯Ό μμ±νκ³ μ¬μ©νλ λ°©λ²μ μ΄ν΄λ³΄κ² μ΅λλ€:
public class Main {
public static void main(String[] args) {
// Person κ°μ²΄ μμ±
Person person1 = new Person("Alice", 25);
Person person2 = new Person("Bob", 30);
// λ©€λ² λ³μ μ¬μ©
person1.name = "Carol";
person2.age = 35;
// λ©μλ νΈμΆ
person1.printInfo();
person2.printInfo();
}
}
μμ μμμμλ "Person" ν΄λμ€μ κ°μ²΄ person1
κ³Ό person2
λ₯Ό μμ±νμμ΅λλ€. μμ±μλ₯Ό νΈμΆνλ©΄μ μ΄λ¦κ³Ό λμ΄λ₯Ό μ λ¬νμ¬ κ°μ²΄λ₯Ό μ΄κΈ°ννμμ΅λλ€.
κ°μ²΄ μμ± νμλ κ°μ²΄μ λ©€λ² λ³μλ₯Ό μ¬μ©ν μ μμ΅λλ€. μμ μμμμλ person1
μ μ΄λ¦μ λ³κ²½νκ³ , person2
μ λμ΄λ₯Ό λ³κ²½νμμ΅λλ€.
λν, κ°μ²΄μ λ©μλλ₯Ό νΈμΆν μλ μμ΅λλ€. μμ μμμμλ printInfo()
λΌλ λ©μλλ₯Ό νΈμΆνμ¬ person1
κ³Ό person2
μ μ 보λ₯Ό μΆλ ₯νμμ΅λλ€.
ν΄λμ€λ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ ν΅μ¬ κ°λ μ΄κΈ° λλ¬Έμ, ν΄λμ€μ κ°μ²΄ μμ±, κ·Έλ¦¬κ³ λ©€λ² λ³μμ λ©μλμ μ¬μ©μ λν΄μ λͺ νν μ΄ν΄ν΄μΌ ν©λλ€. ν΄λμ€λ₯Ό μ μΈνκ³ κ°μ²΄λ₯Ό μμ±νμ¬ μ¬μ©νλ λ°©λ²μ μμ§νλ©΄, μλ° μΈμ΄λ₯Ό μ νμ©ν μ μκ² λ©λλ€.
4. μλ° ν΄λμ€ μμ μ£Όμ 1
μλ° ν΄λμ€μ νμ© μμ λ₯Ό μ΄ν΄λ³΄κ² μ΅λλ€. μ΄ μμ λ νμ μ 보λ₯Ό κ΄λ¦¬νλ ν΄λμ€λ₯Ό λ§λ€κ³ , ν΄λΉ ν΄λμ€λ₯Ό νμ©νμ¬ νμ κ°μ²΄λ₯Ό μμ±νκ³ μ 보λ₯Ό μΆλ ₯νλ μμ μ λλ€.
μ°μ , "Student"λΌλ ν΄λμ€λ₯Ό μ μΈνμ¬ νμμ μ΄λ¦κ³Ό νλ² μ 보λ₯Ό μ μ₯ν μ μλλ‘ νκ² μ΅λλ€:
class Student {
String name;
int studentID;
public Student(String name, int studentID) {
this.name = name;
this.studentID = studentID;
}
public void printInfo() {
System.out.println("μ΄λ¦: " + name);
System.out.println("νλ²: " + studentID);
}
}
λ€μμΌλ‘, "Main" ν΄λμ€λ₯Ό μμ±νμ¬ νμ κ°μ²΄λ₯Ό μμ±νκ³ μ 보λ₯Ό μΆλ ₯νλ μμ λ₯Ό μμ±ν΄λ³΄κ² μ΅λλ€:
public class Main {
public static void main(String[] args) {
// Student κ°μ²΄ μμ±
Student student1 = new Student("Alice", 20210001);
Student student2 = new Student("Bob", 20210002);
// μ 보 μΆλ ₯
student1.printInfo();
student2.printInfo();
}
}
μμ μμμμλ "Student" ν΄λμ€λ₯Ό μ¬μ©νμ¬ student1
κ³Ό student2
λΌλ νμ κ°μ²΄λ₯Ό μμ±νμμ΅λλ€. μμ±μλ₯Ό νΈμΆνλ©΄μ μ΄λ¦κ³Ό νλ² μ 보λ₯Ό μ λ¬νμ¬ κ°μ²΄λ₯Ό μ΄κΈ°ννμμ΅λλ€.
κ°μ²΄ μμ± νμλ printInfo()
λ©μλλ₯Ό νΈμΆνμ¬ νμ μ 보λ₯Ό μΆλ ₯νμμ΅λλ€.
μ΄ μμ λ₯Ό ν΅ν΄ μλ° ν΄λμ€λ₯Ό ν¨κ³Όμ μΌλ‘ νμ©νμ¬ κ°μ²΄λ₯Ό μμ±νκ³ μ 보λ₯Ό κ΄λ¦¬νλ λ°©λ²μ μ΅ν μ μμ΅λλ€. κ°μ²΄λ₯Ό μμ±νμ¬ νμν μ 보λ₯Ό μ μ₯νκ³ , μ μλ λ©μλλ₯Ό νμ©νμ¬ νμν μμ μ μνν μ μλ μλ° ν΄λμ€μ νμ©λ²μ λν΄ μ΄ν΄νκ² λμμ κ²μ λλ€.
5. μλ° ν΄λμ€ μμ μ£Όμ 2
μλ° ν΄λμ€μ λ λ€λ₯Έ μμ λ₯Ό μ΄ν΄λ³΄κ² μ΅λλ€. μ΄λ² μμ λ μ§μ μ 보λ₯Ό κ΄λ¦¬νλ ν΄λμ€λ₯Ό λ§λ€κ³ , ν΄λΉ ν΄λμ€λ₯Ό νμ©νμ¬ μ§μ κ°μ²΄λ₯Ό μμ±νκ³ μ 보λ₯Ό μΆλ ₯νλ μμ μ λλ€.
λ¨Όμ , "Employee"λΌλ ν΄λμ€λ₯Ό μ μΈνμ¬ μ§μμ μ΄λ¦, μ§κΈ, μ°λ΄ μ 보λ₯Ό μ μ₯ν μ μλλ‘ νκ² μ΅λλ€:
class Employee {
String name;
String position;
int salary;
public Employee(String name, String position, int salary) {
this.name = name;
this.position = position;
this.salary = salary;
}
public void printInfo() {
System.out.println("μ΄λ¦: " + name);
System.out.println("μ§κΈ: " + position);
System.out.println("μ°λ΄: " + salary);
}
}
κ·Έ λ€μμΌλ‘, "Main" ν΄λμ€λ₯Ό μμ±νμ¬ μ§μ κ°μ²΄λ₯Ό μμ±νκ³ μ 보λ₯Ό μΆλ ₯νλ μμ λ₯Ό μμ±ν΄λ³΄κ² μ΅λλ€:
public class Main {
public static void main(String[] args) {
// Employee κ°μ²΄ μμ±
Employee employee1 = new Employee("Alice", "맀λμ ", 50000000);
Employee employee2 = new Employee("Bob", "μ¬μ", 30000000);
// μ 보 μΆλ ₯
employee1.printInfo();
employee2.printInfo();
}
}
μμ μμμμλ "Employee" ν΄λμ€λ₯Ό μ¬μ©νμ¬ employee1
κ³Ό employee2
λΌλ μ§μ κ°μ²΄λ₯Ό μμ±νμμ΅λλ€. μμ±μλ₯Ό νΈμΆνλ©΄μ μ΄λ¦, μ§κΈ, μ°λ΄ μ 보λ₯Ό μ λ¬νμ¬ κ°μ²΄λ₯Ό μ΄κΈ°ννμμ΅λλ€.
κ°μ²΄ μμ± νμλ printInfo()
λ©μλλ₯Ό νΈμΆνμ¬ μ§μ μ 보λ₯Ό μΆλ ₯νμμ΅λλ€.
μ΄ μμ λ₯Ό ν΅ν΄μλ μλ° ν΄λμ€λ₯Ό ν¨κ³Όμ μΌλ‘ νμ©νμ¬ κ°μ²΄λ₯Ό μμ±νκ³ μ 보λ₯Ό κ΄λ¦¬νλ λ°©λ²μ μ΅ν μ μμ΅λλ€. ν΄λμ€λ₯Ό μ μΈνκ³ κ°μ²΄λ₯Ό μμ±νλ κ³Όμ μμ μμ±μ 맀κ°λ³μλ₯Ό νμ©νμ¬ κ°μ²΄λ₯Ό μ΄κΈ°ννκ³ , μ 보λ₯Ό μΆλ ₯νλ λ©μλλ₯Ό νΈμΆνμ¬ νμν μμ μ μνν μ μλ μλ° ν΄λμ€μ νμ©λ²μ λν΄ μ΄ν΄νκ² λμμ κ²μ λλ€.
λκΈ