2

손세은·2023년 10월 16일
0

Class에서 쓰기 좋은 키워드

1. Static 키워드

  • 내가 정의하는 Class 그 자체에 데이터를 넣어줄 때 사용한다.
  • 따라서, 해당 생성자로 여러 객체가 만들어져도 전부 똑같은 값을 가진다.
  • static 다음에 const, final, var 중 하나를 입력해준다.
  • 사용예시
    1. 페이지별 라우트를 넣고 관리해줄 때
    • 사용 전
   Get.toNamed('/login');
   class LoginPage extends StatelessWidget {
     const LoginPage({super.key});
    
     String route = '/login'

     
     Widget build(BuildContext context) {
     return Scaffold();
    }
  }
- 사용 후
   LoginPage.route
   //괄호를 열고 닫을 필요 없이 .route만 해도 페이지를 전달받을 수 있음. 
 class LoginPage extends StatelessWidget {
  const LoginPage({super.key});
  
  static const String route = '/login'

  
  Widget build(BuildContext context) {
    return Scaffold();
  }
}
  1. 정적 데이터를 보관하고 싶을 때
  • 페이지 라우트
    class AppRoutes{
      static const String login = LoginPage.Route;
      static const String main = MainPage.Route;
      static const String signup = SignUpPage.Route;
    }
     Get.toNamed(AppRoutes.LoginPage);
      Get.toNamed(AppRoutes.MainPage);
      Get.toNamed(AppRoutes.SignUpPage);
      //AppRoutes만 쳐도 뒤에 저절로 페이지 이름이 따라온다.
  • 백엔드 api
    class BackendApiRoutes{
       static const String readPosts = '/api/v1/posts';
       static const String readMemos = '/api/v1/memos';
    } 
  • 그리고 그 외에
    https://github.com/sergiandreplace/planets-flutter/blob/master/lib/Theme.dart

2. getter 키워드

  • 멤버 변수랑 똑같은데.. 멤버변수처럼 추가로 정의하고 싶을 때 사용
  • 멤버 변수를 따로 설정하지 않고도 원하는 데이터를 정의하고 싶을 때
  class Student{
    static const String SchoolName = '세은's school';
    String studenId;
    String name;
    
    Student(this.name, this.studenId);
    
    String get studentInfo => name + studenId;
    int get nameLength => name.length;
  }
 var stu1 = Student('Teddy', '010-010');
 print(stu1.studentInfo);
 print(stu1.nameLength);
  • 사용 예시
  1. GetxController에서 value를 쓰는게 불편했다면?
  class AppController extends GetxController{
    RxString myName = 'Teddy'.obs;    
    
    String get name => myName.value;
    int get nameLength => myName.length;
  }

3. setter 키워드

  • 함수랑 똑같은데.. 멤버 변수에 새로운 값을 넣고 싶을 때 사용
  • 멤버변수에 직접 접근하지 않고, 특별한 멤버변수명으로 값을 할당할 수 있는 능력을 만들고 싶을 때 사용
  • 직접적으로 특정 데이터에 접근하는 것보다, 한번 중간에 middleware가 등장하는 걸로 해서 데이터가 들어오면 검수를하고, 변수를 설정할 수 있게 해준다.
profile
힙스터 개발자가 될래요

0개의 댓글