오버로딩
오버로딩(Overloading) vs 오버라이딩(Overriding)
오버로딩과 오버라이딩은 객체지향프로그래밍의 특징 중 다형성에 포함되는 개념이다. 📌 오버로딩(Overloading) 오버로딩은 같은 이름을 가진 메서드를 여러 개 두는 것을 말한다. 메서드의 타입, 매개변수의 타입, 매개변수의 개수 등으로 다양한 종류를 생성할 수 있고 컴파일 중에 발생하는 정적 다형성이다. // 오버로딩 예제(Kotlin) class Person { fun eat(a: String) { println("I eat$a") } fun eat(a: String, b: String) { println("I eat $a and $b") } } 오버로딩은 이처럼 같은 역할을 하는 함수를 하나의 이름으로 사용할 수 있다는 장점이 있다. 내가 음식 한개를 먹었던, 두개를 먹었던, 내가 먹은 음식을 전..
객체 지향 프로그래밍(OOP, Object-Oriented Programming)
세상 모든 것이 객체 객체란 보고 만질 수 있는 것, 지성적으로 이해할 수 있는 것, 생각이나 행동이 추구하는 바를 말한다. 다시 말해서 객체는 우리 주변에서 쉽게 볼 수 있는 핸드폰, 노트북, 리모컨, TV 등 모든 것이 될 수 있다. 그리고 이들은 자신만의 특성과 행동으로 다른 객체들과 상호작용하고 있다. 예를 들면, 리모컨은 TV를 작동시키기 위한 다양한 버튼이 있다는 특성(state, attribute)이 있고, 리모컨의 버튼을 누르면 TV가 작동하는 행동(behavior)이 일어난다. 객체 지향 프로그래밍에서는 리모컨의 특성과 행동을 변수와 메서드로 정의한 것을 클래스라고 부르며, 이 클래스에서 정의한 것을 바탕으로 실제 생산된 리모컨을 인스턴스(객체)라고 부른다. 객체 지향 프로그래밍(Obje..