24.10.14 Day62

최지원·2024년 10월 15일

클래스

using System;

namespace c__practice {
    class Cat {
        public string Name = null;

        public Cat(string name) {
            Name = name;
            Console.WriteLine("고양이 이름은 " + Name + "입니다.");
        }
    }

    class MainClass {
        public static void Main(string[] args) {
            Cat coco = new Cat("코코");
            Cat moly = new Cat("몰리");
        }
    }
}
  • Cat 클래스에 고양이 이름 정하기
  • 메인 클래스에서 인스턴스 변수를 만든 다음 인스턴스_변수명.Name에 고양이 이름 저장
  • 생성자는 인스턴스를 만들 때 자동으로 호출된다는 특징
  • 생성자에 매개변수로 string 자료형의 name 변수에 값 입력
  • Name과 name은 다른 변수
  • name변수로 입력받은 값을 Name에 저장하고 그 값을 출력하는 내용 생성자
  • 메인 클래스 : 매개변수의 입력값에 따라 생성자가 호출되며 출력

함수

  • 어떤 작업이나 계산을 수행하는 작은 프로그램의 한 부분
  • 특정 작업을 처리하기 위해 미리 만들어진 코드 덩어리
  • 코드를 깔끔하고 효율적으로 관리

매개변수

  • 함수나 메소드에 전달되는 값
  • 함수나 메소드는 어떤 일을 하도록 만들어지는 도구인데 그 도구가 제대로 작동하려면 어떤 정보를 제공해야할 때가 있어야 된다.
  • 제공되는 정보

인스턴스

  • 클래스라는 설계도를 바탕으로 실제로 만들어진 하나의 객체
  • 클래스 = 설계도, 인스턴스 = 설계도를 바탕으로 만들어진 실제 물건
  • 자동차 설계도 / 자동차
    ex)
class Car {
    public string color;
    public string model;

    public void Drive() {
        Console.WriteLine("이 " + color + " " + model + "가(이) 달립니다.");
    }
}
  • 자동차 설계도 : Car라는 클래스
  • 인스턴스 : 이 설계도를 바탕으로 실제로 만들어진 자동차
  • 인스턴스 생성
Car myCar = new Car(); // myCar는 Car 클래스의 인스턴스
myCar.color = "빨강";
myCar.model = "스포츠카";
myCar.Drive();

요약

- 매개 변수 : 함수나 메소드가 작업을 하기 위해 필요로 하는 정보
즉, 함수에게 전달하는 값
- 인스턴스 : 클래스라는 설계도를 바탕으로 실제로 만들어진 실제 객체
즉, 클래스도 만들 하나의 물건

오버로딩

  • 객체지향 프로그래밍에서 클래스가 가지는 특징의 하나
  • 클래스 내부에 이름이 같은 메서드를 여러 개 선언하여 필요에 맞게 사용
  • 햄버거를 만들 때 햄버거라는 큰 틀은 그대로 두고 어떤 식재료를 넣는지에 따라서 다른 햄버거가 되는 원리
using System;

class Cat {
    public string Name = null;
    public int Weight = 0;

    // 이름을 입력받는 생성자
    public Cat(string name) {
        Name = name;
        Console.WriteLine("고양이 이름은 " + Name + "입니다.");
    }

    // 이름, 몸무게를 입력받는 생성자
    public Cat(string name, int weight) {
        Name = name;
        Weight = weight;
        Console.WriteLine("고양이 이름은 " + Name + "이며, 몸무게는 " + Weight + "kg 입니다.");
    }
}

class Mainclass {
    public static void Main(string[] args) {
        Cat coco = new Cat("코코");
        Cat moly = new Cat("몰리", 3);
    }
}
  • 이름은 같지만 매개변수 개수가 다른 생성자 2개
  • 하나는 고양이 이름, 다른 하나는 이름과 몸무게 입력받기
  • 메서 오버로딩으로 구현하려면 이름은 같지만 매개변수의 개수나 자료형이 달라야한다.
  • 예제에서는 매개 변수의 개수를 다르게 적용해 오버로딩 구현

0개의 댓글