31일차 과제 - rlatkddbs99/Flutter GitHub Wiki

  1. private

자바를 공부하면서 배운 접근 지정자로는 private, public, protected, default가 있었다. 누가 클래스의 멤버 각각에 외부에서 접근할 수 있는 범위를 지정할 수 있는 것이다. 하지만 다트의 접근 지정자는 두 가지가 있다. public, private인데 private 접근 지정자는 자바와 다르게 클래스 범위가 아니라 라이브러리(자바의 패키지) 가 지정 범위가 된다. 또한 자바에서는 아무런 지정이 없으면 default로 접근 지정자가 선택 되지만, dart에서는 아무런 키워드가 없을 경우 public으로 선택된다. dart에서 private로 접근 지정자를 설정 하고 싶으면 해당 변수나 메소드 앞에 _ 을 붙이게 되면 private로 접근지정가 설정된다.

클래스의 변수는 static으로 선언되어 있다 가정하면 클래스를 인스턴스화 할 필요가 없다. 이때 private 생성자를 적절하게 사용해줄 수 있다. private 생성자를 적지 않는다고 클래스가 인스턴스화 되는 것은 아니다. 다만 해당 클래스의 역할을 명시적으로 나타내주고 개발 과정 중 실수를 줄일 수 있는 이점이 분명히 있다. 출처 : https://velog.io/@vkdl370528/Dart-Private-Contructor%EC%97%90-%EA%B4%80%ED%95%98%EC%97%AC

  1. extends, super, this

상속을 받았다면, 부모가 가지고 있는 모든것들을 내가 가진채로 사용할 수 있으며, 새롭게 선언하여 사용하면 this라는 키워드를 사용하여 표현이 가능하다. 상속받았다는 기준하에, super는 부모클래스를 뜻하고 this는 자기자신(자식클래스)을 지칭한다. 앞에 super를 지정하지 않으면 기본적으로 부모로 부터 상속 받은 값을 따라가지만, 자식클래스에 재정의 되어있다면 자식클래스의 값을 가지고 사용

  1. get.parameters, get.arguments

parameters : 매개변수 -> 함수와 메서드 입력 변수(Variable) 명 arguments : 전달인자, 인자 -> 함수와 메서드의 입력 값(Value)

parameter 예시

 var  data = {
      "email" : "[email protected]",
      "message" : "hi!"
   };
  Get.toNamed(YourRouteName.name, parameters: data);

이렇게 페이지 라우팅을 할 때 변수(정보)를 가지고 넘어가서 사용가능 var params = Get.parameters; // 변수에 가지고 온 정보 저장 Text('$params') //출력

argument 예시

//방법1
 Get.toNamed('/next', arguments: 'Hello');

//방법2 맵 방식을 보냅니다. 
Get.toNamed('/next', arguments: {'name': '제로', 'age': '31'});

//방법3. custom하게 만든 객체도 보냅니다.
Get.toNamed('/next', arguments: User(name: '제로', age: 35));

전달되는 argument를 화면에 출력

// 방법1: 전달받은 argument를 변수에 담습니다. 
var arg = Get.arguments;

// 방법 2: 전달받은 argument를 바로 ui 화면에 표시합니다.
Text('${Get.arguments}'),

// 방법3: 여러 arguments가 담겨있는 경우 아래처럼 화면에 표시합니다. 
Text('이름 : ${Get.arguments['name']}  나이 : ${Get.arguments['age']}'),

//방법 3: 여러 arguments가 담겨있는 경우 아래처럼 화면에 표시합니다.2 
Text('이름 : ${(Get.arguments as User).name}  나이 : ${(Get.arguments as User).age}'),

출처 : https://kimiszero.tistory.com/98