
객체 지향 프로그래밍 (Object-Oriented Programming)
OOP : 객체(Object)들을 사용하여 프로그램을 구성하는 방식클래스를 통해 틀을 정의해두고, 여러 객체를 만들어 효율적인 방식.
클래스를 상속받아 기능을 확장할 수 있어 코드를 재사용할 수 있음.
클래스를 통해 만든 객체들이 각각 독립적으로 등장하므로, 특정 객체를 수정해도 부작용이 생길 가능성 낮음.
class Idol {
String name;
List<String> members;
Idol(this.name, this.members);
void introduceName() {
print("안녕하세요, $name입니다.");
}
void introduceMembers() {
print("$name는 $members 이렇게 ${members.length}명의 멤버가 함께 활동하고 있습니다.");
}
}
void main() {
Idol blackpink = Idol("블랙핑크", ["로제", "지수", "제니", "리사"]);
print(blackpink.name); // 블랙핑크
print(blackpink.members); // [로제, 지수, 제니, 리사]
blackpink.introduceName(); // 안녕하세요, 블랙핑크입니다.
blackpink.introduceMembers(); // 블랙핑크는 [로제, 지수, 제니, 리사] 이렇게 4명의 멤버가 함께 활동하고 있습니다.
Idol ive = Idol("아이브", ["안유진", "가을", "레이", "장원영", "리즈", "이서"]);
print(ive.name); // 아이브
print(ive.members); // [안유진, 가을, 레이, 장원영, 리즈, 이서]
ive.introduceName(); // 안녕하세요, 아이브입니다.
ive.introduceMembers(); // 아이브는 [안유진, 가을, 레이, 장원영, 리즈, 이서] 이렇게 6명의 멤버가 함께 활동하고 있습니다.
}실습
vehicle을 부모 클래스로 만들고 Car 자식 클래스가 상속받도록 해보세요.vehicle은 브랜드 brand 속성과 “OO(브랜드명) 차량이 시동을 겁니다.”를 출력하는 start() 메서드를 가지고, Car는 “OO(브랜드명) 자동차가 빵빵 경적을 울립니다.”를 출력하는 honk() 메서드를 추가로 가집니다. Car 객체를 생성해서 상속받은 메서드와 고유 메서드를 모두 사용해보세요.class Vehicle {
String brand;
Vehicle(this.brand);
void start() {
print("$brand 차량이 시동을 겁니다.");
}
}
class Car extends Vehicle {
Car(String brand) : super(brand);
void honk() {
print("$brand 자동차가 빵빵 경적을 울립니다.");
}
}
void main() {
Car car = Car("BMW");
car.start(); // BMW 차량이 시동을 겁니다.
car.honk(); // BMW 자동차가 빵빵 경적을 울립니다.
}Share article