Flutter/Flutter로 웹툰 앱 만들기

[노마드코더: Flutter 로 웹툰 앱 만들기] #2.5 Classes Recap

유호야 2022. 11. 28. 04:26
반응형

 

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

class Player {
  String name;
  Player({required this.name});
  //this.name에 들어오는 인자가 name으로 들어갈 것이다
  // name = this.name
}

void main() {
  var nico = Player(name: 'Yu');

  runApp(App());
}

class App extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: Scaffold(
      appBar: AppBar(
        centerTitle: true,
        elevation: 1,
        title: Text('Hello Flutter@@@@!'),
      ),
      body: Center(
        child: Text('Hello world!'),
      ),
    ));
  }
}

생성자에 입력하는 this.name에 들어오는 인자가 name으로 들어갈 것이다
즉 name = this.name

String? name;

Player가 name이 있을 수도 있고 없을 수도 있다는 뜻

즉 이렇게 작성해도 name을 정의하지 않은 것에 대해서 오류가 뜨지 않는다.

물음표를 붙이지 않았을 때는 
name이 정의되지 않아서 에러가 뜬다. 


Text() 에 마우스를 올리면 아래와 같은 화면이 뜨는데 

즉 String 타입의 data는 필수로 요구되지만, 나머지는 그렇지 않다는 것을 
? 타입 옆의 물음표들로 확인할 수 있다. 

마우스를 올리면 위와 같은 정보들로 위젯을 더 많이 이해할 수 있다.

import 'package:flutter/material.dart';

class Player {
  String? name;
  Player();
  //this.name에 들어오는 인자가 name으로 들어갈 것이다
  // name = this.name
}

void main() {
  var nico = Player();

  runApp(App());
}

class App extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: Scaffold(
      appBar: AppBar(
        centerTitle: true,
        elevation: 1,
        title: Text('Hello Flutter@@@@!'),
      ),
      body: Center(
        child: Text('Hello world!'),
      ),
    ));
  }
}

 

다음 시간에는 아래 어플과 같은 UI를 만들어보는 연습을 할 예정이다!

기대만점!

반응형