데이터 혹은 기능이 정의되어 있으며 프로그램상에서 다룰 수 있는 것을 의미한다.
객체(Object)의 데이터와 기능이 정의되어 있는 설계도
효율적인 프로그래밍을 위해서이다.
공통적인 코드를 여러번 반복해서 사용해야할 경우, 이렇게 클래스를 만들어서 활용한다면 훨씬 더 간결하고 효율적인 프로그래밍을 할 수 있다.
object 객체를 생성하려면 설계도인 클래스가 필요하기 때문이다.
객체는 데이터의 정의나 기능이 들어있어 프로그램에서 사용할 수 있는 것이고 이를 만들기 위해서는 객체의 데이터나 기능이 정의되어있는 설계도인 클래스가 필요하다.
구성요소

클래스의 인스턴스를 만들고 인스턴스 뒤에 .을 붙이면 클래스의 데이터를 사용할 수 있다

//다음의 함수가 실행될 수 있도록 Class Person을 작성하시오
void main() {
var person = Person('John Doe', 30);
person.printInfo();
var person2 = Person('seungHun', 26);
person2.printInfo();
}
class Person{
String? name;
int? age;
Person(this.name, this.age);
void printInfo(){
print('name : $name , age : $age');
}
}