본문 바로가기

Flutter/Dart Language

[플러터 Flutter] 매개변수(Parameter), 인스턴스변수(InstanceVariable), 전역변수(GlobalVariable), 지역변수(LocalVariable)

매개변수 (Parameter)

 

// ()소괄호 안이 비어있음. player함수는 parameter가 없음.

void player() {
  String name = "name";
}
// ()소괄호 내부가 parameter.

void player(String name) {
  print(name);
}

매개변수는 함수나 생성자에서 사용되며, 호출 시 전달된 값을 받기 위한 변수입니다.
말 그대로 함수 내에서 변수가 바뀔 시 값이 바뀐다 생각하면 됩니다.

ex) y = 1000x

 


 

인스턴스 변수 (Instance Variable)

 

인스턴스 변수는 클래스의 속성입니다.
이 변수들은 클래스의 인스턴스(객체)에 속하며, 각 인스턴스마다 별도로 유지됩니다.
인스턴스 변수를 통해 객체의 상태를 저장하고 관리할 수 있습니다.

class Player {
  String name; // 인스턴스 변수
  String item; // 인스턴스 변수
  int level = 1; // 인스턴스 변수
  int xp = 0; // 인스턴스 변수
}

여기까지 보면 Properties와 굉장히 유사합니다.
사실 인스턴스변수 = 프로퍼티 라고봐도 무방합니다. 아주 약소한 차이가 있는데

Instance Variable:

  • 클래스 내부에 선언된 변수.
  • 각 인스턴스마다 독립적으로 값을 가짐.

Property

  • 객체의 속성이나 특성을 나타내는 더 넓은 개념.
  • 인스턴스 변수를 포함하지만, getter와 setter 메서드도 포함될 수 있음.

Properties라는 용어가 getter/setter를 포함하는 좀 더 포괄적인 개념입니다.


 

전역 변수 (Global variable)

 

전역 변수는 프로그램 전체에서 접근할 수 있는 변수입니다.
일반적으로 함수나 클래스 외부에서 정의되며, 프로그램이 종료될 때까지 유지됩니다.

// 전역 변수
int globalVar = 10;

void main() {
  print(globalVar); // 출력: 10
  modifyGlobalVar();
  print(globalVar); // 출력: 20
}

void modifyGlobalVar() {
  // 전역 변수에 접근하여 수정
  globalVar = 20;
}
  • 범위(Scope) : 프로그램 전체에서 접근 가능.
  • 생명 주기(Lifetime) : 프로그램이 시작될 때 생성되고, 프로그램이 종료될 때까지 존재.
  • 위치(Location) : 클래스나 함수 외부에 정의.
  • 사용처 : 여러 함수나 클래스에서 공통적으로 사용해야 하는 데이터.

 


 

지역 변수 (Local Variable)

 

지역 변수는 특정 코드블록, 함수, 메서드 내에서만 접근할 수 있는 변수입니다.
해당 블록이 실행될 때 생성되고, 블록이 종료되면 소멸됩니다.

void main() {
  // 지역 변수
  int localVar = 5;
  print(localVar); // 출력: 5

  modifyLocalVar();
  // print(localVar); // 에러: localVar는 modifyLocalVar에서 선언된 변수로, main 함수에서 접근 불가
}

void modifyLocalVar() {
  // 지역 변수
  int localVar = 10;
  print(localVar); // 출력: 10
}
  • 범위(Scope) : 변수가 선언된 블록 내부에서만 접근 가능.
  • 생명 주기(Lifetime) : 변수가 선언된 블록이 실행될 때 생성되고, 블록이 종료되면 소멸.
  • 위치(Location) : 함수, 메서드, 또는 코드 블록 내부에 정의.
  • 사용처 : 특정 함수나 메서드 내부에서만 사용되는 데이터.