Dart Private Value ํŒ๋งค ๐Ÿ’ซ ๐ŸŒŒ โœจ

2101 ๋‹จ์–ด privatevaluedartflutter
Dart'ta bir deฤŸerin private olduฤŸunu anlatmak iรงin baลŸฤฑna alt รงizgi '_' iลŸareti konulur. ์ฐธ๊ณ : _MyHomePageState isimlendirmesi alt รงizgi kullanฤฑlarak yapฤฑlmฤฑลŸtฤฑr ve bu, bu sฤฑnฤฑfฤฑn private olarak iลŸaretlendiฤŸini gรถsterir. Tรผm ifadeler(statements) private olabilir. Bu sฤฑnฤฑf gibi private olan bir รผst dรผzey deฤŸer yalnฤฑzca geรงerli dosyada bulunur. DeฤŸiลŸken veya fonksiyon gibi bir sฤฑnฤฑf รผyesi private olarak iลŸaretlenmiลŸse, yalnฤฑzca o sฤฑnฤฑfฤฑn iรงinde kullanฤฑlabilir.

AลŸaฤŸฤฑdaki class'ฤฑ dรผลŸรผnรผn:

class Cat {
    String name;
    String _color;

    void meow() => print("meow");

    void _pur() => print("prrrr");
}


๋‹ค์Œ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Cat nora = Cat();
nora.name = "Nora";     // Okay
nora._color = "Orange"; // Invalid!
nora.meow();            // Okay
nora._pur();            // Invalid!


Private olarak iลŸaretlenmiลŸ deฤŸiลŸken ya da fonksiyonlara tanฤฑmlandฤฑklarฤฑ class'ฤฑn dฤฑลŸฤฑndan eriลŸilemez.

Private deฤŸiลŸkenler ve sฤฑnฤฑf รผyeleri, class API'lerini daha okunabilir hale getirmek iรงin Dart'ta oldukรงa fazla kullanฤฑlฤฑr.

๊ทธ๋…€์˜ bir widget sฤฑnฤฑfฤฑnฤฑn bir build methodu olmasฤฑ gerekir. ์•™์นด

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    // ..
  }
}


๊ธฐ๋ณธ์ ์œผ๋กœ StatefulWidget์€ ๋นŒ๋“œ ๋ฐฉ๋ฒ•์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋…€์˜ ๋“€๋Ÿผ ๋นŒ๊ธฐ์‹œ olan(stateful) ์œ„์ ฏ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œ ๋ฐฉ๋ฒ•์„ ๋นŒ๋“œํ•˜๊ณ  ์ƒํƒœ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์‹ญ์‹œ์˜ค. StatefulWidget ๋ฐ State๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด, stateful ์œ„์ ฏ์€ ๋ถˆ๋ณ€ ์œ„์ ฏ(stateless widget' gibi)์ด๋ฉฐ, ์ƒํƒœ ๋น„์ €์žฅ ์œ„์ ฏ์€ Flutter ์œ„์ ฏ๊ณผ ๊ฐ™์€ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

MyHomePage๋Š” ์ƒํƒœ ๊ธฐ๋ฐ˜ ์œ„์ ฏ์„ ํฌํ•จํ•˜๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. Bu butona dokunduฤŸunuzda, _incrementCounter adlฤฑ bir method รงalฤฑลŸtฤฑrฤฑr:

void _incrementCounter() {
  setState(() {
    _counter++;
  });
}



๋ฆฌ์†Œ์Šค: Flutter in Action 3์žฅ

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ