πŸš₯μžλ°” 기초 κ°œλ…

Dev_An_StudentΒ·2024λ…„ 10μ›” 30일
0

Java

λͺ©λ‘ 보기
5/5

이번 ν¬μŠ€νŒ…μ—μ„œλŠ” μžλ°” 기초 κ°œλ…μ— λŒ€ν•΄ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.




1. 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°(OOP)


μžλ°”λŠ” 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μž…λ‹ˆλ‹€.
객체지ν–₯의 핡심 κ°œλ…μ€ 객체(Object)와 클래슀(Class)둜 λ‚˜λˆŒ 수 μžˆμŠ΅λ‹ˆλ‹€.

  • 객체(Object): κ°μ²΄λŠ” μ‹€μ„Έκ³„μ˜ 사물을 μ½”λ“œλ‘œ ν‘œν˜„ν•œ κ²ƒμž…λ‹ˆλ‹€.
    • 예λ₯Ό λ“€μ–΄, μžλ™μ°¨, μ‚¬λžŒ, 동물 등이 객체가 될 수 μžˆμŠ΅λ‹ˆλ‹€.
  • 클래슀(Class): ν΄λž˜μŠ€λŠ” 객체의 섀계도 역할을 ν•©λ‹ˆλ‹€.
    • 예λ₯Ό λ“€μ–΄, 'μžλ™μ°¨'λΌλŠ” 클래슀λ₯Ό λ§Œλ“€κ³ , 이λ₯Ό 톡해 λ‹€μ–‘ν•œ μžλ™μ°¨ 객체λ₯Ό λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

2. 상속(Inheritance)


상속은 μžλ°”μ—μ„œ ν•œ ν΄λž˜μŠ€κ°€ λ‹€λ₯Έ 클래슀의 속성과 λ©”μ„œλ“œλ₯Ό λ¬Όλ €λ°›μ•„ μž¬μ‚¬μš©ν•  수 있게 ν•˜λŠ” κΈ°λŠ₯μž…λ‹ˆλ‹€.

상속을 톡해 μ½”λ“œμ˜ μž¬μ‚¬μš©μ„±μ„ 높이고, 클래슀 κ°„μ˜ 계측 ꡬ쑰λ₯Ό ν˜•μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • μƒμœ„ 클래슀(λΆ€λͺ¨ 클래슀): λ‹€λ₯Έ ν΄λž˜μŠ€μ— μ˜ν•΄ μƒμ†λ˜λŠ” 클래슀.

  • ν•˜μœ„ 클래슀(μžμ‹ 클래슀): μƒμœ„ 클래슀λ₯Ό 상속받아 κΈ°λŠ₯을 ν™•μž₯ν•˜κ±°λ‚˜ λ³€κ²½ν•  수 μžˆλŠ” 클래슀.

상속을 μ‚¬μš©ν•  λ•Œ μžμ‹ ν΄λž˜μŠ€λŠ” extend ν‚€μ›Œλ“œλ₯Ό 톡해 λΆ€λͺ¨ 클래슀λ₯Ό μƒμ†λ°›μŠ΅λ‹ˆλ‹€.

class Animal {
	void eat() {
		System.out.println("Eating...");
	}
}

class Dog extends Animal {
	void bark() {
    	System.out.println("Barking...");
    }
}

public class Main {
	public static void main(String[] args) {
    	Dog dog = new Dog();
        dog.eat();  // λΆ€λͺ¨ 클래슀의 λ©”μ„œλ“œλ₯Ό 호좜
        dog.bark(); // μžμ‹ 클래슀의 λ©”μ„œλ“œλ₯Ό 호좜
    }
}

μœ„μ˜ μ˜ˆμ‹œμ—μ„œ Dog ν΄λž˜μŠ€λŠ” Animal 클래슀λ₯Ό 상속받아 eat() λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


3. μ ‘κ·Ό μ œμ–΄μž(Access Modifier)


μžλ°”μ—λŠ” μ ‘κ·Ό μ œμ–΄μž(Access Modifier)κ°€ μžˆμ–΄μ„œ 클래슀, λ©”μ„œλ“œ, λ³€μˆ˜μ˜ μ ‘κ·Ό λ²”μœ„λ₯Ό μ œν•œν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • public: λͺ¨λ“  ν΄λž˜μŠ€μ—μ„œ μ ‘κ·Ό κ°€λŠ₯ν•©λ‹ˆλ‹€.

  • protected: 같은 νŒ¨ν‚€μ§€μ— μžˆλŠ” ν΄λž˜μŠ€λ‚˜ μžμ‹ ν΄λž˜μŠ€μ—μ„œ μ ‘κ·Όν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • defauilt: 아무 μ ‘κ·Ό μ œμ–΄μžλ„ 뢙이지 μ•ŠμœΌλ©΄ default μ ‘κ·Ό μ œμ–΄μžκ°€ μ μš©λ˜μ–΄, 같은 νŒ¨ν‚€μ§€ λ‚΄μ—μ„œ μ ‘κ·Ό κ°€λŠ₯ν•©λ‹ˆλ‹€.

  • private: ν•΄λ‹Ή 클래슀 λ‚΄μ—μ„œλ§Œ 작근 κ°€λŠ₯ν•©λ‹ˆλ‹€.

class Person {
	public String name;      // λͺ¨λ“  ν΄λž˜μŠ€μ—μ„œ μ ‘κ·Ό κ°€λŠ₯
    private int age;         // Person 클래슀 λ‚΄μ—μ„œλ§Œ μ ‘κ·Ό κ°€λŠ₯
    protected String gender; // 같은 νŒ¨ν‚€μ§€λ‚˜ 상속 κ΄€κ³„μ—μ„œ μ ‘κ·Ό κ°€λŠ₯
    
    public void setAge(int age) {
    	this.age = age;
    }
}

name은 public이기 λ•Œλ¬Έμ— μ–΄λ””μ„œλ“  접근이 κ°€λŠ₯ν•˜μ§€λ§Œ, ageλŠ” privateμ΄λ―€λ‘œ Person클래슀 μ™ΈλΆ€μ—μ„œ 직접 μ ‘κ·Όν•  수 μ—†μŠ΅λ‹ˆλ‹€.


4. Static ν‚€μ›Œλ“œ


static ν‚€μ›Œλ“œλŠ” νŠΉμ • ν•„λ“œλ‚˜ λ©”μ„œλ“œλ₯Ό ν•΄λ‹Ή 클래슀 μžμ²΄μ— κ·€μ†μ‹œμΌœ μ€λ‹ˆλ‹€.

  • static λ³€μˆ˜: 객체가 μ•„λ‹ˆλΌ ν΄λž˜μŠ€μ— μ’…μ†λ©λ‹ˆλ‹€.
    • 같은 클래슀둜 λ§Œλ“  λͺ¨λ“  객체가 이 λ³€μˆ˜λ₯Ό κ³΅μœ ν•©λ‹ˆλ‹€.
  • static λ©”μ„œλ“œ: 객체λ₯Ό μƒμ„±ν•˜μ§€ μ•Šκ³  클래슀λͺ…μœΌλ‘œ 직접 ν˜ΈμΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€.
class MathUtil {
	public static int square(int x) {
    	return x * x;
    }
}

public class Main {
	public static void main(String[] args) {
    	int result = MathUtil.square(5);  // 객체 생성 없이 호좜
        System.out.println(resu;t);  // 25 좜λ ₯
    }
}

μ—¬κΈ°μ„œ square λ©”μ„œλ“œλŠ” staticμ΄λ―€λ‘œ MathUtil 클래슀λͺ…μœΌλ‘œ λ°”λ‘œ 접근이 κ°€λŠ₯ν•©λ‹ˆλ‹€.


5. 메인 ν•¨μˆ˜(Main Method)


μžλ°” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ 싀행될 λ–„ κ°€μž₯ λ¨Όμ € ν˜ΈμΆœλ˜λŠ” ν•¨μˆ˜κ°€ main ν•¨μˆ˜μž…λ‹ˆλ‹€.

μžλ°” ν”„λ‘œκ·Έλž¨μ˜ μ§„μž…μ (Entry Point) 역할을 ν•˜λ©°, public static void main(String[] args) ν˜•νƒœλ‘œ μ •μ˜λ©λ‹ˆλ‹€.

public class Main {
	public static void main(String[] args) {
    	System.out.println("Hello, World!");
    }
}
  • public: λͺ¨λ“  κ³³μ—μ„œ μ ‘κ·Ό κ°€λŠ₯ν•˜λ„λ‘ ν•©λ‹ˆλ‹€.

  • static: main λ©”μ„œλ“œλ₯Ό μ‹€ν–‰ν•  λ•Œ 객체λ₯Ό μƒμ„±ν•˜μ§€ μ•Šκ³  클래슀λͺ…μœΌλ‘œ 직접 ν˜ΈμΆœν•  수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€.

  • void: λ°˜ν™˜κ°’μ΄ μ—†μŠ΅λ‹ˆλ‹€.

  • String[] args: λͺ…λ Ήμ€„μ—μ„œ 인수λ₯Ό 받을 수 μžˆλŠ” λ°°μ—΄μž…λ‹ˆλ‹€.


6. λ©”μ„œλ“œ ꡬ쑰


μžλ°”μ—μ„œ λ©”μ„œλ“œλŠ” νŠΉμ • κΈ°λŠ₯을 μˆ˜ν–‰ν•˜λŠ” μ½”λ“œ λΈ”λ‘μž…λ‹ˆλ‹€.
λ©”μ„œλ“œμ˜ κ΅¬μ‘°λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

μ ‘κ·Όμ œμ–΄μž λ°˜ν™˜νƒ€μž… λ©”μ„œλ“œλͺ…(λ§€κ°œλ³€μˆ˜) {
	// λ©”μ„œλ“œ λ‚΄μš©
}
  • μ ‘κ·Όμ œμ–΄μž: λ©”μ„œλ“œμ˜ μ ‘κ·Ό λ²”μœ„λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.

  • λ°˜ν™˜νƒ€μž…: λ©”μ„œλ“œκ°€ λ°˜ν™˜ν•  κ°’μ˜ νƒ€μž…μ„ μ§€μ •ν•©λ‹ˆλ‹€.

    • λ°˜ν™˜κ°’μ΄ μ—†λ‹€λ©΄ voidλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.
  • λ©”μ„œλ“œλͺ…: λ©”μ„œλ“œμ˜ μ΄λ¦„μž…λ‹ˆλ‹€.

  • λ§€κ°œλ³€μˆ˜: λ©”μ„œλ“œκ°€ 호좜될 λ•Œ μ „λ‹¬λ°›λŠ” μΈμžλ“€μž…λ‹ˆλ‹€.

public int add(int a, int b) {
	return a + b;
}

add λ©”μ„œλ“œλŠ” public μ ‘κ·Ό μ œμ–΄μžμ™€ int λ°˜ν™˜ νƒ€μž…μ„ κ°€μ§‘λ‹ˆλ‹€.


7. ν‚€μ›Œλ“œ


μžλ°”μ—λŠ” 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ„ ν•  λ•Œ μ‚¬μš©ν•˜λŠ” μ€‘μš”ν•œ ν‚€μ›Œλ“œκ°€ 있으며, 객체와 클래슀의 상속을 μ΄ν•΄ν•˜λŠ” 데 도움을 μ€λ‹ˆλ‹€.

this ν‚€μ›Œλ“œ

this ν‚€μ›Œλ“œλŠ” ν˜„μž¬ 객체λ₯Ό μ°Έμ‘°ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€.
일반적으둜, μΈμŠ€ν„΄μŠ€ λ³€μˆ˜μ™€ λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•  λ•Œ thisλ₯Ό μ‚¬μš©ν•˜μ—¬ ν˜„μž¬ 객체의 λ©€λ²„μž„μ„ λͺ…ν™•νžˆ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ£Όμš” μš©λ„

  • μΈμŠ€ν„΄μŠ€ λ³€μˆ˜μ™€ λ§€κ°œλ³€μˆ˜ ꡬ뢄: μƒμ„±μžλ‚˜ λ©”μ„œλ“œμ—μ„œ μΈμŠ€ν„΄μŠ€ λ³€μˆ˜μ™€ λ§€κ°œλ³€μˆ˜ 이름이 같을 λ•Œ κ΅¬λΆ„ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€.

  • λ‹€λ₯Έ μƒμ„±μž 호좜: 클래슀 λ‚΄λΆ€μ˜ λ‹€λ₯Έ μƒμ„±μžλ₯Ό ν˜ΈμΆœν•  λ•Œ this()λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

class Person {
    private String name;
    private int age;

    // μƒμ„±μž
    public Person(String name, int age) {
        this.name = name;  // thisλ₯Ό μ‚¬μš©ν•˜μ—¬ μΈμŠ€ν„΄μŠ€ λ³€μˆ˜μ™€ λ§€κ°œλ³€μˆ˜ ꡬ뢄
        this.age = age;
    }

    public void display() {
        System.out.println("Name: " + this.name); // thisλ₯Ό 톡해 μΈμŠ€ν„΄μŠ€ λ³€μˆ˜ μ°Έμ‘°
        System.out.println("Age: " + this.age);
    }
}

μ—¬κΈ°μ„œ this.name = name;μ—μ„œ this.name은 μΈμŠ€ν„΄μŠ€ λ³€μˆ˜ name을 가리킀고, name은 μƒμ„±μžμ˜ λ§€κ°œλ³€μˆ˜ μž…λ‹ˆλ‹€.

μƒμ„±μž 호좜

class Person {
    private String name;
    private int age;

    public Person() {
        this("Unknown", 0);  // λ‹€λ₯Έ μƒμ„±μž 호좜
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

μœ„ μ˜ˆμ œμ—μ„œ this("Unknown", 0);은 인수λ₯Ό λ°›μ•„μ„œ ν˜ΈμΆœν•˜λŠ” λ‹€λ₯Έ μƒμ„±μžλ₯Ό κ°€λ¦¬ν‚΅λ‹ˆλ‹€.

이λ₯Ό 톡해 μƒμ„±μž μ½”λ“œμ˜ 쀑볡을 쀄일 수 μžˆμŠ΅λ‹ˆλ‹€.

super ν‚€μ›Œλ“œ

super ν‚€μ›Œλ“œλŠ” λΆ€λͺ¨(μƒμœ„) 클래슀λ₯Ό μ°Έμ‘°ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€.
주둜 상속 κ΄€κ³„μ—μ„œ μžμ‹ ν΄λž˜μŠ€κ°€ λΆ€λͺ¨ 클래슀의 멀버에 μ ‘κ·Όν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.

μ£Όμš” μš©λ„

  • λΆ€λͺ¨ 클래슀의 μƒμ„±μž 호좜: μžμ‹ 클래슀의 μƒμ„±μžμ—μ„œ λΆ€λͺ¨ 클래슀의 μƒμ„±μžλ₯Ό λͺ…μ‹œμ μœΌλ‘œ ν˜ΈμΆœν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.

  • λΆ€λͺ¨ 클래슀의 λ©”μ„œλ“œμ™€ λ³€μˆ˜ μ ‘κ·Ό: λΆ€λͺ¨ 클래슀의 λ©”μ„œλ“œλ‚˜ λ³€μˆ˜λ₯Ό μ‚¬μš©ν•  λ•Œ μžμ‹ ν΄λž˜μŠ€μ—μ„œ superλ₯Ό μ‚¬μš©ν•΄ μ ‘κ·Όν•  수 μžˆμŠ΅λ‹ˆλ‹€.

class Animal {
    String color = "Black";

    public Animal() {
        System.out.println("Animal created");
    }

    void sound() {
        System.out.println("Animal sound");
    }
}

class Dog extends Animal {
    String color = "Brown";

    public Dog() {
        super();  // λΆ€λͺ¨ 클래슀의 μƒμ„±μž 호좜
        System.out.println("Dog created");
    }

    void displayColor() {
        System.out.println("Dog color: " + color);       // μžμ‹ 클래슀의 color
        System.out.println("Animal color: " + super.color); // λΆ€λͺ¨ 클래슀의 color
    }

    @Override
    void sound() {
        super.sound();  // λΆ€λͺ¨ 클래슀의 sound λ©”μ„œλ“œ 호좜
        System.out.println("Dog barking");  // μžμ‹ 클래슀의 μΆ”κ°€ κΈ°λŠ₯
    }
}

public class Main {
    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.displayColor();
        dog.sound();
    }
}
Animal created
Dog created
Dog color: Brown
Animal color: Black
Animal sound
Dog barking
  • super()λŠ” μžμ‹ 클래슀의 μƒμ„±μžμ— λΆ€λͺ¨ 클래슀의 μƒμ„±μžλ₯Ό ν˜ΈμΆœν•©λ‹ˆλ‹€.

  • super.colorλŠ” λΆ€λͺ¨ 클래슀의 color λ³€μˆ˜λ₯Ό μ°Έμ‘°ν•©λ‹ˆλ‹€.

  • super.sound()λŠ” μžμ‹ 클래슀의 sound λ©”μ„œλ“œμ—μ„œ λΆ€λͺ¨ 클래슀의 sound λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•˜μ—¬ ν™•μž₯된 κΈ°λŠ₯을 μΆ”κ°€ν•  수 있게 ν•©λ‹ˆλ‹€.


8. μΈμŠ€ν„΄μŠ€(Instance)


μΈμŠ€ν„΄μŠ€λŠ” ν΄λž˜μŠ€μ— κΈ°λ°˜ν•΄ λ©”λͺ¨λ¦¬μ— μ‹€μ œλ‘œ λ§Œλ“€μ–΄μ§„ 객체λ₯Ό λœ»ν•©λ‹ˆλ‹€.

μ‰½κ²Œ 말해, ν΄λž˜μŠ€λŠ” 섀계도(청사진)이고, μΈμŠ€ν„΄μŠ€λŠ” κ·Έ 섀계도λ₯Ό λ°”νƒ•μœΌλ‘œ λ§Œλ“€μ–΄μ§„ μ‹€μ œ μ œν’ˆ(객체)μž…λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄, Personμ΄λΌλŠ” 클래슀λ₯Ό μ •μ˜ν–ˆλ‹€κ³  ν•  λ•Œ, new Person() ꡬ문을 톡해 Person 클래슀의 μΈμŠ€ν„΄μŠ€λ₯Ό 생성할 수 μžˆμŠ΅λ‹ˆλ‹€.

class Person {
    String name;
}

public class Main {
    public static void main(String[] args) {
        Person person1 = new Person(); // Person 클래슀의 μΈμŠ€ν„΄μŠ€ 생성
        Person person2 = new Person(); // 또 λ‹€λ₯Έ μΈμŠ€ν„΄μŠ€ 생성
    }
}

μœ„ μ½”λ“œλ‘œ person1κ³Ό person2λŠ” Person 클래슀의 μΈμŠ€ν„΄μŠ€μž…λ‹ˆλ‹€.
각각 독립적인 κ°μ²΄λ‘œμ„œ λ©”λͺ¨λ¦¬μ— μ‘΄μž¬ν•˜κ²Œ λ©λ‹ˆλ‹€.


9. μΈμŠ€ν„΄μŠ€ λ³€μˆ˜(Instance Variable)


μΈμŠ€ν„΄μŠ€ λ³€μˆ˜λŠ” 각 μΈμŠ€ν„΄μŠ€μ— μ†ν•œ λ³€μˆ˜λ‘œ, 클래슀 내뢀에 μ„ μ–Έλ˜μ§€λ§Œ, μΈμŠ€ν„΄μŠ€κ°€ λ§Œλ“€μ–΄μ§ˆ λ•Œ λ©”λͺ¨λ¦¬μ— ν• λ‹Ήλ©λ‹ˆλ‹€. λ”°λΌμ„œ 각 μΈμŠ€ν„΄μŠ€λŠ” μ„œλ‘œ λ‹€λ₯Έ 값을 κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

class Person {
    String name; // μΈμŠ€ν„΄μŠ€ λ³€μˆ˜
    int age;     // μΈμŠ€ν„΄μŠ€ λ³€μˆ˜

    void displayInfo() {
        System.out.println("Name: " + name + ", Age: " + age);
    }
}

public class Main {
    public static void main(String[] args) {
        Person person1 = new Person();
        person1.name = "Alice";
        person1.age = 25;

        Person person2 = new Person();
        person2.name = "Bob";
        person2.age = 30;

        person1.displayInfo(); // Name: Alice, Age: 25
        person2.displayInfo(); // Name: Bob, Age: 30
    }
}

μ—¬κΈ°μ„œ nameκ³Ό ageλŠ” Person 클래슀의 μΈμŠ€ν„΄μŠ€ λ³€μˆ˜μž…λ‹ˆλ‹€.
person1κ³Ό person2 μΈμŠ€ν„΄μŠ€λŠ” 각기 λ‹€λ₯Έ 값을 κ°€μ§€κ²Œ λ©λ‹ˆλ‹€.

10. μƒμ„±μž(Constructor)


μƒμ„±μžλŠ” 클래슀의 μΈμŠ€ν„΄μŠ€κ°€ 생성될 λ•Œ ν˜ΈμΆœλ˜λŠ” νŠΉλ³„ν•œ λ©”μ„œλ“œμž…λ‹ˆλ‹€.
μƒμ„±μžμ˜ 이름은 클래슀 이름과 κ°™μ•„μ•Ό ν•˜λ©°, λ°˜ν™˜ νƒ€μž…μ΄ μ—†μŠ΅λ‹ˆλ‹€.
μƒμ„±μžλŠ” 객체 μ΄ˆκΈ°ν™”μ— 주둜 μ‚¬μš©λ©λ‹ˆλ‹€.

  • μƒμ„±μžλŠ” new ν‚€μ›Œλ“œλ₯Ό 톡해 객체λ₯Ό 생성할 λ•Œ μžλ™μœΌλ‘œ ν˜ΈμΆœλ©λ‹ˆλ‹€.

  • ν΄λž˜μŠ€μ— μƒμ„±μžλ₯Ό μ •μ˜ν•˜μ§€ μ•ŠμœΌλ©΄, μžλ°”λŠ” κΈ°λ³Έ μƒμ„±μž(λ§€κ°œλ³€μˆ˜κ°€ μ—†λŠ” μƒμ„±μž)λ₯Ό μžλ™μœΌλ‘œ μ œκ³΅ν•©λ‹ˆλ‹€.

class Person {
    String name;
    int age;

    // μƒμ„±μž
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    void displayInfo() {
        System.out.println("Name: " + name + ", Age: " + age);
    }
}

public class Main {
    public static void main(String[] args) {
        Person person1 = new Person("Alice", 25); // μƒμ„±μž 호좜
        person1.displayInfo(); // Name: Alice, Age: 25
    }
}

μœ„ μ½”λ“œμ—μ„œ Person(String name, int age)λŠ” μƒμ„±μžμž…λ‹ˆλ‹€. 객체λ₯Ό 생성할 λ•Œ nameκ³Ό age 값을 μ΄ˆκΈ°ν™”ν•  수 있게 ν•΄μ€λ‹ˆλ‹€.

11. μƒμ„±μžμ˜ λ§€κ°œλ³€μˆ˜(Constructor Parameters)


μƒμ„±μžμ˜ λ§€κ°œλ³€μˆ˜λŠ” μƒμ„±μžλ₯Ό ν˜ΈμΆœν•  λ•Œ 전달할 수 μžˆλŠ” 인수(parameter)μž…λ‹ˆλ‹€.
λ§€κ°œλ³€μˆ˜λ₯Ό 톡해 생성 μ‹œ 객체의 μΈμŠ€ν„΄μŠ€ λ³€μˆ˜λ₯Ό μ΄ˆκΈ°ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

class Person {
    String name;
    int age;

    // μƒμ„±μž
    public Person(String name, int age) { // λ§€κ°œλ³€μˆ˜ name, age
        this.name = name;
        this.age = age;
    }
}

public class Main {
    public static void main(String[] args) {
        Person person1 = new Person("Alice", 25); // "Alice", 25κ°€ λ§€κ°œλ³€μˆ˜λ‘œ 전달됨
        Person person2 = new Person("Bob", 30);   // "Bob", 30이 전달됨
    }
}

μœ„ μ½”λ“œμ—μ„œ Person(String name, int age)의 nameκ³Ό ageλŠ” μƒμ„±μžμ˜ λ§€κ°œλ³€μˆ˜μž…λ‹ˆλ‹€.

μƒμ„±μžλ₯Ό ν˜ΈμΆœν•  λ•Œ μ „λ‹¬λœ κ°’ "Alice", 25, "Bob", 30이 각각 nameκ³Ό age에 μ΄ˆκΈ°ν™”λ©λ‹ˆλ‹€.




🏁마무리

μ˜€λŠ˜μ€ μžλ°”μ˜ 기초 κ°œλ…μ— λŒ€ν•΄ μ•Œμ•„λ³΄μ•˜μŠ΅λ‹ˆλ‹€.
잘 μˆ™μ§€ν•˜μ—¬ μΆ”ν›„ μžλ°”λ₯Ό μ‚¬μš©ν•  λ•Œ 잘 ν™œμš©ν•˜μ‹œκΈ° λ°”λžλ‹ˆλ‹€.

κ°μ‚¬ν•©λ‹ˆλ‹€. 😌

profile
Enjoy Develog!

0개의 λŒ“κΈ€