Flutter 찍먹하기 시리즈 - 2

헤이즐·2023년 10월 25일
0

이 글은 골든래빗 《코드팩토리의 플러터 프로그래밍》의 2장 객체지향프로그래밍의 써머리입니다

스태틱

  • static을 사용할 시 모든 속성은 클래스 자체에 귀속된다.
class Counter{
	static int i=0; // static 키워드를 이용한 변수 선언

	Counter(){
		i++;
		print(i++);
	}
}

void main() {
Counter count1 = Counter();
Counter count2 = Counter();
Counter count3 = Counter();
]
  • 생성자에서 static 값을 지정하지 못하며 인스턴스끼리 공유해야하는 정보에 지정해야한다.

정적 메서드

  • static 키워드를 사용하여 클레스의 메서드를 정적으로 선언 가능
  • 해당 정적 메서드는 클래스의 이름으로 호출되며 클래스의 인스턴스를 생성하지 않고도 사용 가능하다
class MathUtils {
  static int add(int a, int b) {
    return a + b;
  }
}

void main() {
  int result = MathUtils.add(3, 5);
  print(result); // 8
}

정적 변수

  • 클래스 내부에 static 키워드를 사용하여 정적 변수를 선언
  • 클래스의 모든 인스턴스에서 공유되며 객체를 생성하지 않고도 접근 가능
class Counter {
  static int count = 0;

  void increment() {
    count++;
  }
}

void main() {
  Counter c1 = Counter();
  Counter c2 = Counter();

  c1.increment();
  c2.increment();

  print(Counter.count); // 2
}

상수 변수

  • static const를 사용하여 클래스 내에서 상수 변수를 정의
  • 해당 상수는 변경 불가능하며 클래스 인스턴스와 관계없이 동일한 값을 가진다
class Constants {
  static const int maxItems = 10;
}

void main() {
  print(Constants.maxItems); // 10
}

캐스케이드 연산자

  • 인스턴스에서 해당 인스턴스의 속성 혹은 멤버 함수를 연속해서 사용하는 기호
  • .. 를 이용해서 사용
var paint = Paint()
  ..color = Colors.black
  ..strokeCap = StrokeCap.round
  ..strokeWidth = 5.0;
  • 객체의 메서드를 연속적으로 호출하거나 객체의 속성을 연속적으로 설정할 때 편리하게 사용
class Circle {
  double radius = 0.0;

  void calculateArea() {
    print('Area: ${3.14 * radius * radius}');
  }
}

void main() {
  Circle circle = Circle()
    ..radius = 5.0
    ..calculateArea(); // Area: 78.5
}
  • 메서드 호출과 속성 설정을 함께 사용하여 복잡한 작업을 수행 가능하다
profile
개발자를 꿈꾸며 하루하루 고군분투 중!

0개의 댓글