안녕하시와요?
오늘은 클래스에 대해서 소개를 해보려고 합니다..!
요즘 소소하게 앱도 만들어보고 있는데
클래스가 정말 정말 정말 많이 나와요...
그래서 복습도 할겸 클래스에 대해서 정리해보려고 합니다!

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ(제 속마음이 들리시나요)
오늘도 화이팅 해봅시당~!!
어느날... 성은 지.. 이름은 피티에게 물었다...
"클래스가 뭐야?"
그는 잠시 머뭇거리더니 답했다...
클래스는 프로그래밍에서 설계도라고 생각하면 돼
아하...!
클래스는 같은 성질과 행동을 가진 객체를 만들기 위한 설계도이구나...!
그리고 나는 물었다..
그럼 객체는 뭐야..?
클래스는 집의 설계도..객체는 실제로 지어진 집이야...
아하 그렇구나...너...정말 똑똑하다...
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
여러분 저 미친거 아니예요...정말뤀ㅋㅋㅋㅋㅋㅋㅋㅋㅋ
그냥 설명하면 지루하니까 해봤어요...ㅎ
그치만 이해가 되셨죠???
클래스(Class)
: 객체 지향 프로그래밍의 핵심 개념이자 기본 단위, 객체의 구조와 동작을 정의하는 툴
쉽게 말해서, 객체들이 공통적으로 가지는 속성과 행동들을 정의하는 곳이라고 생각하면 됩니다!
형태
class [클래스 이름] { … }
class Person {
String name;
int age;
Person(this.name, this.age);
void introduce() {
print('안녕 ? 나는 $age살 $name !');
}
}
클래스의 구성: 속성과 메서드
속성: 클래스 안에서 작업을 수행할 때 사용하는 데이터
종류
1. 인스턴스 변수: 객체에 속해 있는 변수
class Person {
String name = '강미래';
int age = 25;
}
특징
1) this를 통해 접근 가능!
- 클래스 내부에서 현재 객체를 참조할 때 사용
- 객체를 가리키는 키워드
- 사용처
- 클래스에서 클래스 안의 속성이나 메서드를 사용할 때
- 클래스에서 인스턴트 변수와 메서드에 속한 변수를 구분할 때
- this는 최대한 덜 쓰는 것이 좋음!
2) 클래스의 모든 곳에서 접근 가능!
class Person {
String name = '정유남';
int age = 26;
void introduce() {
print('안녕 ? 나는 $age살 $name !');
}
}
3) 객체가 존재하는 동안 계속 메모리 상에 존재(메모리 상에 존재하는 기간을 생명 주기라고 함!)
4) 동일한 클래스로 생성한 객체들이어도 각 객체들은 값을 공유하지 않고, 개별적인 값을 가짐
- 객체를 통해서 매개변수의 값을 바꾸는 것을 막으려면 final로 선언!
2. 지역 변수(로컬 변수): 특정 코드 블록 안에 선언된 변수
특징
1) 변수가 선언된 코드 블록 안에서만 사용 가능
class Person {
String name = '강미래';
void sayName() {
String nameSentence = '내 이름은 $name !';
print(nameSentence);
}
void sayNameAgain() {
print(nameSentence); // 오류 발생
}
}
2) 변수가 선언된 코드 블록의 실행이 끝나면 메모리 상에서 사라짐
3. 정적 변수(클래스 변수): 객체에 종속되지 않고, 클래스 자체에 속하는 변수
class Circle {
static double pi = 3.14159;
}
static이 붙은 변수는 정적 변수
특징
1) 클래스 이름을 통해 접근
2) 객체를 통해 접근 불가능-> 객체에 종속된게 아니기 때문!
3) this를 통해 접근 불가능
4) 객체마다 개별적인 값을 갖지 않고, 모든 객체가 서로 값을 공유
총 비교분석!
| 구분 | 인스턴스 변수 | 정적 변수 | 지역 변수 |
| 소속 | 객체 | 클래스 | 함수 |
| 선언 위치 | 클래스 안, 메서드 밖 | 클래스 안+static | 함수/메서드 안 |
| 접근 방법 | 객체.변수 | 클래스.변수 | 변수명 |
메서드는 다음 시간에...총총
'플러터 앱 개발' 카테고리의 다른 글
| Chapter 11. 객체 지향 프로그래밍과 Dart C - 객체 지향과 상속 (1) | 2026.01.12 |
|---|---|
| Chapter 10. 객체 지향 프로그래밍과 Dart B - 클래스와 메서드 (1) | 2026.01.08 |
| Chapter 8. 함수형 프로그래밍 B - 형변환 함수, 고차 함수 (0) | 2026.01.06 |
| [코드 뜯어보기] 쇼핑몰 앱 만들기 A (1) | 2025.12.30 |
| Chapter 7. 함수형 프로그래밍 A - 함수형 프로그래밍 소개 (0) | 2025.12.30 |