{"id":443,"date":"2020-04-20T09:00:24","date_gmt":"2020-04-20T00:00:24","guid":{"rendered":"http:\/\/mobilelab.khu.ac.kr\/?p=443"},"modified":"2020-04-04T22:07:24","modified_gmt":"2020-04-04T13:07:24","slug":"be-dart-programmer-14","status":"publish","type":"post","link":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/2020\/04\/20\/be-dart-programmer-14\/","title":{"rendered":"Dart Programmer \ub418\uae30 [14]"},"content":{"rendered":"\n<h4>&lt; Dart \uae30\ucd08\ubb38\ubc95 &#8211; Class \uc0ac\uc6a9\ud558\uae30 &gt;<\/h4>\n\n\n\n<p>\uba3c\uc800 \uc77c\ubc18\uc801\uc778 \uac1c\ub150\uc5d0 \ub300\ud574\uc11c \uc124\uba85\ud569\ub2c8\ub2e4. \uc81c\ud488\uc744 \uacf5\uc7a5\uc5d0\uc11c \ucd9c\ud558\ud558\uae30 \uc804\uc5d0, \uc124\uacc4\ub3c4(design document)\ub97c \ub9cc\ub4dc\ub294 \uc791\uc5c5\uc774 \uc788\uc2b5\ub2c8\ub2e4. \uc608\ub97c\ub4e4\uc5b4 \ubc18\ub3c4\uccb4 \uc124\uacc4\ub3c4\uac00 \ub9cc\ub4e4\uc5b4\uc9c0\uba74, \uc774\ub97c \ud1b5\ud574\uc11c \uc2e4\uc81c \ubc18\ub3c4\uccb4 \uc81c\ud488(product)\uc744 \uacf5\uc7a5\uc5d0\uc11c \ub9cc\ub4e4\uc5b4 \uc9c4\ub2e4\ub294 \uac83\uc744 \uc0dd\uac01\ud558\uba74 \ub429\ub2c8\ub2e4. \uc774\uc640 \uc720\uc0ac\ud558\uac8c, \uac1d\uccb4\uc9c0\ud5a5 \ud504\ub85c\uadf8\ub798\ubc0d(object oriented programming)\uc774\ub77c\ub294 \uac1c\ubc1c \uae30\ubc95\uc5d0\uc11c, \uc18c\ud504\ud2b8\uc6e8\uc5b4\uc5d0\uc11c \uc124\uacc4\ub3c4\uc640 \uac19\uc740 \uac1c\ub150\uc758 \uac83\uc744 \ud074\ub798\uc2a4(class)\ub77c\uace0 \ubd80\ub985\ub2c8\ub2e4. \uadf8\ub9ac\uace0 \uc81c\ud488\uc5d0 \ud574\ub2f9\ud558\ub294 \uac83\uc744 \uac1d\uccb4\/\uc624\ube0c\uc81d\ud2b8(object)\ub77c\uace0 \ubd80\ub985\ub2c8\ub2e4. \ubc18\ub3c4\uccb4\ub97c \uc608\ub97c \ub4e4\uc5c8\uc744\ub54c, \ubc18\ub3c4\uccb4\uc5d0\ub294 \uc800\uc7a5\ub418\ub294 \ub370\uc774\ud0c0\uac00 \uc874\uc7ac\ud569\ub2c8\ub2e4. \uadf8\ub9ac\uace0 \ub370\uc774\ud0c0\ub97c \uc77d\uace0 \uc4f0\ub294 \ud589\ub3d9\uacfc \uc9c0\uc6d0\ub41c\ub2e4\uba74 \uc758\ubbf8\uc788\ub294 \uae30\ub2a5\ub4e4\uc774 \ub3d9\uc791\ud569\ub2c8\ub2e4. \uc5ec\uae30\uc11c \ub370\uc774\ud0c0\ub97c \ub9d0 \uadf8\ub300\ub85c \ub370\uc774\ud0c0(data, properties)\ub77c\uace0 \ubd80\ub974\uace0, \uae30\ub2a5\uc740 \uba54\uc18c\ub4dc(methods, operators)\ub77c\uace0 \ubd80\ub985\ub2c8\ub2e4. \ud2b9\ubcc4\ud788 \ud074\ub798\uc2a4\/\uac1d\uccb4\uc548\uc5d0 \ud3ec\ud568\ub418\ub294 \ub370\uc774\ud0c0\ub294 \ud074\ub798\uc2a4\/\uac1d\uccb4\uc758 \uba64\ubc84 \ub370\uc774\ud0c0(member data)\ub77c\uace0 \ud558\uace0, \uae30\ub2a5\uc740 \uba64\ubc84 \uba54\uc18c\ub4dc(member method)\ub77c\uace0 \ubd80\ub985\ub2c8\ub2e4.<\/p>\n\n\n\n<h4>Object Oriented Programming using Dart<\/h4>\n\n\n\n<p>Dart\uc5d0\uc11c \ubaa8\ub4e0 \ub370\uc774\ud0c0 \ud0c0\uc785\uc740 \ud074\ub798\uc2a4\ub85c \ub9cc\ub4e4\uc5b4 \uc9d1\ub2c8\ub2e4. \uc9c0\uae08\uae4c\uc9c0 \uc54c\uc544\uc628 int, double, String, bool, dynamic, var, Object\uac00 \ubaa8\ub450 \ud074\ub798\uc2a4 \ud0c0\uc785\uc774\ub77c\uace0 \ubcf4\uba74 \ub429\ub2c8\ub2e4. \uadf8\ub9ac\uace0 int a;\ub85c \ud574\uc11c, \ud074\ub798\uc2a4 int \ud0c0\uc785\uc73c\ub85c \ub9cc\ub4e4\uc5b4\uc9c4 a \ubcc0\uc218\uac00 \uac1d\uccb4\uc785\ub2c8\ub2e4. \ub530\ub77c\uc11c int \uc124\uacc4\ub3c4\uc5d0\uc11c \uc2e4\uc81c int \uc81c\ud488\uc5d0 \ud574\ub2f9\ud558\ub294 a\ub97c \ub9cc\ub4e0 \uac81\ub2c8\ub2e4. \uc124\uacc4\ub3c4\uc5d0\uc11c \ub9cc\ub4e4\uc5b4\uc9c4 \uc81c\ud488\uc774 \uc2e4\uc81c \uc124\uce58 \ub418\uace0 \ub3d9\uc791\uc774 \ub418\ub294 \uac83\ucc98\ub7fc, \uac1d\uccb4 \ub4e4\uc740 \uac01\uac01 \uace0\uc720\uc758 \uac12\uc744 \uac00\uc9c0\uace0 \uc788\uc73c\uba70, \uac19\uc740 \uae30\ub2a5 \uc774\ub77c\ub3c4 \uac01\uc790\uac00 \uac00\uc9c0\uace0 \uc788\ub294 \uac12\uc5d0 \ub530\ub77c\uc11c \ub2e4\ub978 \uacb0\uacfc\ub974 \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Dart\uc5d0\uc11c \ub370\uc774\ud0c0 \ud0c0\uc785\ub9cc \uac1d\uccb4\uac00 \ub418\ub294 \uac83\uc740 \uc544\ub2c8\uba70, \ud568\uc218\uc640 null \uac12 \ub9c8\uc800\ub3c4 \uac1d\uccb4\uc774\ub2c8 \ucc38\uc870\ud558\uae30 \ubc14\ub78d\ub2c8\ub2e4. \ub610\ud55c, Dart \uc5b8\uc5b4\uc5d0\uc11c\ub294 \ubaa8\ub4e0 \uac1d\uccb4\ub4e4\uc774 Object \ud074\ub798\uc2a4 \ud0c0\uc785\uc744 \uae30\ubc18\uc73c\ub85c \ud574\uc11c \ub9cc\ub4e4\uc5b4 \uc9d1\ub2c8\ub2e4. \uc774 \ubd80\ubd84\uc5d0 \ub300\ud574\uc11c\ub294 Class\ub97c \uc9c1\uc811 \ub9cc\ub4dc\ub294 \ub2e8\uacc4\uc5d0\uc11c \uad6c\uccb4\uc801\uc73c\ub85c \uc124\uba85 \ud558\ub3c4\ub85d \ud558\uaca0\uc2b5\ub2c8\ub2e4. \ud074\ub798\uc2a4\uc5d0 \ub300\ud55c \uac1c\ub150\uc744 \ubc30\uc6e0\uc73c\ub2c8, \uc6b0\ub9ac\uac00 \uc774\ubbf8 \uc54c\uace0 \uc788\ub294 \ud074\ub798\uc2a4\ub4e4\uc5d0 \ub300\ud574\uc11c \uc880 \ub354 \uad6c\uccb4\uc801\uc73c\ub85c \uc124\uba85\ud558\uba74\uc11c, \ud074\ub798\uc2a4\uc640 \uac1d\uccb4\uc5d0 \ub300\ud574\uc11c \uc774\ud574\ud574 \ubcf4\ub3c4\ub85d \ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<h4>Integer Class<\/h4>\n\n\n\n<p>Dart\uc5d0\uc11c int \ud074\ub798\uc2a4\uc5d0 \ub300\ud55c \uc124\uba85\uc740 \uacf5\uc2dd \ud648\ud398\uc774\uc9c0\uc5d0\uc11c \uc790\uc138\ud558\uac8c \ud655\uc778\uc774 \uac00\ub2a5\ud569\ub2c8\ub2e4 [<a href=\"https:\/\/api.dart.dev\/stable\/2.7.1\/dart-core\/int-class.html\">\ucc38\uc870<\/a>]. int \ud074\ub798\uc2a4\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \uba87\uac00\uc9c0 \uc694\uae34\ud55c \uba54\uc18c\ub4dc\uc758 \uc0ac\uc6a9 \uc608\uc81c\ub97c darttutorial-14-01.dart \uc5d0\uc11c \ud655\uc778 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>\/\/ darttutorial-14-01.dart \n\/\/ Ref: https:\/\/api.dart.dev\/stable\/2.7.1\/dart-core\/int-class.html\n\nvoid main() {\n  int num1 = 1;\n  int num2;\n  String myString;\n\n  \/\/ Returns the absolute value\n  num2 = num1.abs();\n  print(\"$num2\");\n\n  \/\/ Returns the greatest common divisor\n  num1 = 3;\n  num2 = num1.gcd(6);\n  print(\"$num2\");\n\n  \/\/ Returns a string representation\n  myString = num2.toString();\n  print(\"$myString\");\n}\n<\/pre>\n\n\n\n<p>\uba3c\uc800, \uac1d\uccb4\uc758 \uba54\uc18c\ub4dc\ub97c \uc2e4\ud589\ud558\ub294 \ubc29\ubc95\uc740 \uac04\ub2e8\ud569\ub2c8\ub2e4. &#8220;\uac1d\uccb4\uc774\ub984.\uba54\uc18c\ub4dc\uc774\ub984()&#8221;\ucc98\ub7fc \ud558\uae30\ub9cc \ud558\uba74 \ub429\ub2c8\ub2e4. \uba3c\uc800 num1 \uac1d\uccb4\uc5d0 1 \uac12\uc73c\ub85c \ucd08\uae30\ud654\ud55c \uac83\uc744 \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub9ac\uace0 num1 \uac1d\uccb4\uc758 \uba54\uc18c\ub4dc\uc778 abs()\ub97c \uc2e4\ud589\ud558\uace0\uc790 \ud55c\ub2e4\uba74, num1.abs() \ucc98\ub7fc \ud558\uba74\ub429\ub2c8\ub2e4. \uc774\ub807\uac8c \ud568\uc73c\ub85c\uc368, num1 \uac1d\uccb4\uac00 \uac00\uc9c0\ub294 \uba64\ubc84 \ub370\uc774\ud0c0\uc778 1\uc758 \uc808\ub300\uac12\uc744 abs() \ud568\uc218\ub85c \uacc4\uc2fc\ud55c \ud6c4, return \ud558\uac8c \ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<p>gcd()\ub294 \ucd5c\ub300\uacf5\uc57d\uc218(Greatest Common Divisor)\ub97c \uacc4\uc0b0\ud558\ub294 \uba54\uc18c\ub4dc\uc785\ub2c8\ub2e4. num1.gcd(6)\ucc98\ub7fc \ud638\ucd9c \ud558\uc600\ub294\ub370, \uc774\ub294 num1 \uac1d\uccb4\uc758 \uac12\uacfc \uc785\ub825 \ud30c\ub77c\uba54\ud0c0\ub85c \ubc1b\uc740 6\uac04\uc758 \ucd5c\ub300\uacf5\uc57d\uc218\ub97c \uacc4\uc0b0\ud569\ub2c8\ub2e4. \ud604\uc7ac\ub294 3\uc774 \uacb0\uacfc\uc785\ub2c8\ub2e4. \ub9c8\uc9c0\ub9c9 \uc608\uc81c\ub294 \uac1d\uccb4\uac00 \uac00\uc9c0\uace0 \uc788\ub294 \uc815\uc218 \uac12\uc744 \ubb38\uc790\uc5f4\ub85c \ubcc0\ud658\ud558\ub294 \uae30\ub2a5\uc785\ub2c8\ub2e4. \uc774\ubc88\uc5d0\ub294 num2 \uac1d\uccb4\uc758 \uba64\ubc84 \uba54\uc18c\ub4dc\ub85c \ud638\ucd9c\ud558\uc600\uc73c\uba70, num2.toString()\ub97c \ud1b5\ud574\uc11c num2\uac00 \uac00\uc9c4 \uac12 3\uc744 \ubb38\uc790\uc5f4\ub85c \ubc14\uafd4\uc11c \ucd9c\ub825\ud558\ub3c4\ub85d \ud558\uc600\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<h4>Double Class<\/h4>\n\n\n\n<p>Dart\uc5d0\uc11c double \ud074\ub798\uc2a4\uc5d0 \ub300\ud55c \uc124\uba85\uc740 \uacf5\uc2dd \ud648\ud398\uc774\uc9c0\uc5d0\uc11c \uc790\uc138\ud558\uac8c \ud655\uc778\uc774 \uac00\ub2a5\ud569\ub2c8\ub2e4 [<a href=\"https:\/\/api.dart.dev\/stable\/2.7.1\/dart-core\/int-class.html\"><\/a><a href=\"https:\/\/api.dart.dev\/stable\/2.7.1\/dart-core\/double-class.html\">\ucc38\uc870<\/a>]. double \ud074\ub798\uc2a4\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \uba87\uac00\uc9c0 \uc694\uae34\ud55c \uba54\uc18c\ub4dc\uc758 \uc0ac\uc6a9 \uc608\uc81c\ub97c darttutorial-14-02.dart \uc5d0\uc11c \ud655\uc778 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>\/\/ darttutorial-14-02.dart \n\/\/ Ref: https:\/\/api.dart.dev\/stable\/2.7.1\/dart-core\/double-class.html\n\nvoid main() {\n  double num1 = 1.4;\n  double num2;\n  int num3;\n  String myString;\n\n  \/\/ Returns the absolute value\n  num2 = num1.abs();\n  print(\"$num2\");\n\n  \/\/ Returns a string representation\n  myString = num2.toString();\n  print(\"$myString\");\n\n  \/\/ Returns the greatest integer no greater than member data\n  num3 = num1.floor();\n  print(\"$num3\");\n\n  \/\/ Returns the greatest integer double value no greater than member data\n  num2 = num1.floorToDouble();\n  print(\"$num2\");\n\n  \/\/ Returns the greatest integer no greater than member data\n  num3 = num1.round();\n  print(\"$num3\");\n\n  \/\/ Returns the integer double value obtained by discarding any fractional digits\n  num2 = num1.truncateToDouble();\n  print(\"$num2\");\n}\n<\/pre>\n\n\n\n<p>\uc608\uc81c\uc5d0\uc11c \uc0ac\uc6a9\ud55c \uba64\ubc84 \uba54\uc18c\ub4dc\ub294 \uc21c\uc11c\ub300\ub85c abs(), toString(), floor(), floorToDouble(), round(), truncateToDouble() \uc785\ub2c8\ub2e4. int \ud074\ub798\uc2a4\uc758 \uc608\uc81c\uc640 \uacb9\uce58\ub294 \ubd80\ubd84\ub3c4 \uc77c\ubd80 \uc788\uc2b5\ub2c8\ub2e4. \uac01\uac01\uc758 \uc790\uc138\ud55c \uc758\ubbf8\ub294 \ud574\ub2f9 \ud648\ud398\uc774\uc9c0\ub97c \ud1b5\ud574\uc11c \uc9c1\uc811 \ud655\uc778\ud558\uace0, \uc774\ud574\ud574 \ubcf4\ub294 \uac83\uc73c\ub85c \ud558\uaca0\uc2b5\ub2c8\ub2e4. \ucd94\uac00\ub85c \uc544\ub798\uc758 darttutorial-14-03.dart \ucc98\ub7fc, \uc815\uc218, \uc2e4\uc218 \ud639\uc740 \ubb38\uc790\uc5f4\uc5d0 &#8220;.&#8221;\uc744 \uc774\uc5b4\uc11c \ucc0d\uace0, \uac01\uac01\uc758 \ud074\ub798\uc2a4 \ud0c0\uc785\uc5d0 \uc18d\ud55c \uba64\ubc84 \uba54\uc18c\ub4dc\ub97c \ud638\ucd9c\ud558\ub294 \ubc29\ubc95\ub3c4 \uac00\ub2a5\ud569\ub2c8\ub2e4. <\/p>\n\n\n\n<pre>\/\/ darttutorial-14-03.dart \n\/\/ Ref: https:\/\/api.dart.dev\/stable\/2.7.1\/dart-core\/double-class.html\n\nvoid main() {\n  var num;\n\n  \/\/ Returns the absolute value\n  num = 1.4.abs();\n  print(\"$num\");\n\n  \/\/ Returns a string representation\n  num = 1.4.toString();\n  print(\"$num\");\n\n  \/\/ Returns the greatest integer no greater than member data\n  num = 1.4.floor();\n  print(\"$num\");\n\n  \/\/ Returns the greatest integer double value no greater than member data\n  num = 1.4.floorToDouble();\n  print(\"$num\");\n\n  \/\/ Returns the greatest integer no greater than member data\n  num = 1.4.round();\n  print(\"$num\");\n\n  \/\/ Returns the integer double value obtained by discarding any fractional digits\n  num = 1.4.truncateToDouble();\n  print(\"$num\");\n}\n<\/pre>\n\n\n\n<p>\ub208\uc73c\ub85c \ubcf4\uae30\uc5d4, \uadf8\ub0e5 \ub2e8\uc21c\ud55c \uc815\uc218\/\uc2e4\uc218 \uc22b\uc790 \ud639\uc740 \ubb38\uc790\uc5f4\ub85c \ubcf4\uc774\uc9c0\ub9cc, Dart\ub294 \uc774\ub7f0 \uac12\ub4e4\uc744 \ubaa8\ub450 \ud074\ub798\uc2a4\ub85c \ucc98\ub9ac\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<h4>String Class<\/h4>\n\n\n\n<p>\ubb38\uc790\uc5f4\uc740 \uc22b\uc790 \ub9cc\ud07c\uc774\ub098 \ud504\ub85c\uadf8\ub798\ubc0d\uc5d0\uc11c \ub9ce\uc774 \uc0ac\uc6a9\ud558\ub294 (\uc5b4\uca4c\uba74 \uc22b\uc790\ubcf4\ub2e4 \uc800 \ub9ce\uc774 \uc0ac\uc6a9\ud558\ub294) \ub370\uc774\ud0c0 \ud0c0\uc785\uc785\ub2c8\ub2e4. Dart\uc758 \ubb38\uc790\uc5f4\uc5d0 \ub300\ud55c \uc790\uc138\ud55c \uc124\uba85\uc740 \ud648\ud398\uc774\uc9c0\uc5d0\uc11c \ucc38\uc870\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4 [<a href=\"https:\/\/api.dart.dev\/stable\/2.7.1\/dart-core\/String-class.html\">\ucc38\uc870<\/a>]. \ubb38\uc790\uc5f4\uc5d0 \ub300\ud574\uc11c\ub3c4 darttutorial-14-04.dart \uc608\uc81c \ud504\ub85c\uadf8\ub7a8\uc744 \ud1b5\ud574\uc11c \uc774\ub798\ub97c \ud574\ubcf4\ub3c4\ub85d \ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>\/\/ darttutorial-14-04.dart \n\/\/ Ref: https:\/\/api.dart.dev\/stable\/2.7.1\/dart-core\/String-class.html\n\nvoid main() {\n  var string1 = \"Hello Dart!\";\n  var string2;\n  var num;\n\n  \/\/ Sub-slicing (or Sub-string)\n  string2 = string1.substring(0,5);\n  print(\"$string2\");\n\n  \/\/ Index Operator\n  string2 = string1[0];\n  print(\"$string2\");\n\n  \/\/ Concatenation\n  string2 = \"Hello\" + \" \" + \"Dart\" + \"!\";\n  print(\"$string2\");\n\n  \/\/ Using String Properties\n  num = string1.length;\n  print(\"$num\");\n\n  \/\/ Interpolate the value of expressions within strings\n  string2 = \"$string1 has ${string1.length} letters\";\n  print(\"$string2\");\n\n  \/\/ Converts all characters to lower case\n  string2 = string1.toLowerCase();\n  print(\"$string2\");\n\n  \/\/ Converts all characters to upper case\n  string2 = string1.toUpperCase();\n  print(\"$string2\");\n}\n<\/pre>\n\n\n\n<p>substring()\uc740 \ubb38\uc790\uc5f4 \uac1d\uccb4\uc758 \uc815\ud574\uc9c4 \ucc98\uc74c \uc704\uce58 \ubd80\ud130 \ub9c8\uc9c0\ub9c9 \uc704\uce58\uc758 \ubc14\ub85c \uc55e\uae4c\uc9c0\uc758 \uae00\uc790\ub4e4\uc744 \uaebc\ub0b4\uc11c, \uc0c8\ub85c\uc6b4 \ubb38\uc790\uc5f4\uc744 \ub9cc\ub4ed\ub2c8\ub2e4. string1\uc5d0 \ud604\uc7ac &#8220;Hello Dart!&#8221;\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uba85\uc2ec\ud574\uc57c \ud558\ub294 \uc0ac\ud56d\uc740, Dart\uc5d0\uc11c \uc21c\uc11c\ub97c \uc138\ub294 \uacbd\uc6b0\uac00 \uc788\ub2e4\uba74, 0\ubd80\ud130 \uc13c\ub2e4\ub294 \uc810\uc785\ub2c8\ub2e4. \uc0ac\ub78c\uc740 1\ubd80\ud130 \uc138\uc9c0\ub9cc, Dart\ub97c \ud3ec\ud568\ud55c \ub300\ubd80\ubd84\uc758 \ud504\ub85c\uadf8\ub798\ubc0d \uc5b8\uc5b4\ub4e4\uc740 0\ubd80\ud130 \uc149\ub2c8\ub2e4. \ub530\ub77c\uc11c, string2 = string1.substring(0,5);\uc740 0\ubc88\uc9f8 \uae00\uc790\uc778 H\ub85c \uc2dc\uc791\ud574\uc11c, 5\ubc88\uc9f8 \uae00\uc790\uc778 \ube48\uce78(space)\uc758 \ubc14\ub85c \uc55e\uc778 &#8216;o&#8217; \uae00\uc790\uae4c\uc9c0\ub97c \ud3ec\ud568\ud558\ub294 \uc0c8\ub85c\uc6b4 \ubb38\uc790\uc5f4 &#8220;Hello&#8221;\ub97c \ub9cc\ub4e0\ud6c4, \uc774\ub97c string2\uc5d0 \uc800\uc7a5\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p>Index \uc5f0\uc0b0\uc790\uc778 [ ] \uae30\ud638\ub294 \ubb38\uc790\uc5f4\uc5d0 \uc0ac\uc6a9\ud588\uc744\ub584, \ud2b9\uc815 \uc704\uce58\uc758 \uae00\uc790\ub97c \uaebc\ub0b4\ub294 \uc5ed\ud560\uc744 \ud569\ub2c8\ub2e4. \uc608\uc81c \ud504\ub85c\uadf8\ub7a8\uc5d0\uc11c string2 = string1[0];\uc740 0\ubc88\uc9f8 \ubb38\uc790\uc5f4\uc744 string1 \ubb38\uc790\uc5f4\uc5d0\uc11c \uaebc\ub0c5\ub2c8\ub2e4. \ub530\ub77c\uc11c, \uae00\uc790 H\ub97c string2\uc5d0 \uc800\uc7a5\ud558\ub294 \uc5ed\ud560\uc744 \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p>Concatenation\uc740 \uc218\ud559\uc73c\ub85c \uc774\uc57c\uae30 \ud558\uba74 &#8220;+&#8221; \uc5f0\uc0b0\uc790\uc640 \uac19\ub2e4\uace0 \ud569\ub2c8\ub2e4. \uc774 \uc5f0\uc0b0\uc790\uac00 \ubb38\uc790\uc5f4\uc5d0 \uc0ac\uc6a9\ub418\uba74, \ubb38\uc790\uc5f4\ub4e4\uc744 \uc5f0\uacb0\ud574\uc11c \uc0c8\ub85c\uc6b4 \ubb38\uc790\uc5f4\uc744 \ub9cc\ub4dc\ub294 \uc5ed\ud560\uc744 \ud569\ub2c8\ub2e4. \ub530\ub77c\uc11c string2 = &#8220;Hello&#8221; + &#8221; &#8221; + &#8220;Dart&#8221; + &#8220;!&#8221;;\uc740 4\uac1c\uc758 \ubb38\uc790\uc5f4\uc744 \ud558\ub098\ub85c \ud569\uccd0\uc11c, string2\uc5d0 \uc800\uc7a5\ud558\ub294 \uc5ed\ud560\uc744 \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\uc774\ubc88\uc5d0\ub294 \uc815\uc218\uc640 \uc2e4\uc218\uc5d0 \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uc558\ub358 property \ubb38\ubc95\uc744 \uc0ac\uc6a9\ud574 \ubd05\ub2c8\ub2e4. Property\ub294 \ub370\uc774\ud0c0\ub97c \uc758\ubbf8\ud558\uba70 \ud568\uc218\ub294 \uc544\ub2d9\ub2c8\ub2e4. \ub530\ub77c\uc11c \uc0ac\uc6a9\uc2dc ()\uc758 \uc785\ub825 \ud30c\ub77c\uba54\ud0c0\ub97c \uae30\uc220\ud558\ub294 \ubd80\ubd84\uc740 \uc5c6\uc2b5\ub2c8\ub2e4. \ubb38\uc790\uc5f4\uc774 \uac00\uc9c4 \uc5ec\ub7ec property \uc911 length\ub97c \uc0ac\uc6a9\ud558\ub294\ub370, \uc774\ub294 \ubb38\uc790\uc5f4\uc774 \uac00\uc9c4 \uae00\uc790\uc758 \uac2f\uc218\ub97c \ub098\ud0c0\ub0c5\ub2c8\ub2e4. \ub530\ub77c\uc11c num = string1.length;\ub97c \uc218\ud589\ud558\uba74, &#8220;Hello Dart!&#8221;\ub97c \uad6c\uc131\ud558\ub294 \uae00\uc790 \uac2f\uc218(\ube48\uce78 \ud3ec\ud568)\uc778 \ucd1d11\uac1c \uae00\uc790\ub97c \uacc4\uc0b0\ud55c \ud6c4, \uc22b\uc790 11\ub85c \uce58\ud658\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p>String Interpolation\uc740 \uc774\ubbf8 \uc6b0\ub9ac\uac00 print()\uc744 \uc0ac\uc6a9\ud558\uba74\uc11c \uc775\uc219\ud558\uac8c \uc0ac\uc6a9\ud55c \uae30\ub2a5\uc758 \uc815\uc2dd \uba85\uce6d \uc785\ub2c8\ub2e4. print(&#8220;$string2&#8221;);\ub97c \uc218\ud589\ud558\uba74, \uc774 \uad6c\ubb38 \uc704\uc5d0\uc11c string2\uac00 \uc788\ub294 \uacbd\uc6b0, string2\uc758 \uac12\uc744 \ucd9c\ub825\ud558\ub3c4\ub85d \ud558\uc600\uc2b5\ub2c8\ub2e4. \uc774\ub807\uac8c \ubb38\uc790\uc5f4\uc5d0 ${ &#8230; } \ucc98\ub7fc \ub418\uc5b4 \uc788\uc73c\uba74, { } \uc548\uc5d0 \ud574\ub2f9\ud558\ub294 \ud45c\ud604 \ud639\uc740 \ubcc0\uc218\ub97c \ucc3e\uc544, \uc774\uc758 \uacb0\uacfc \ud639\uc740 \uc800\uc7a5\uac12\uc744 \ud574\ub2f9 \uc704\uce58\uc5d0 \ub300\uccb4\ud558\uc5ec \uc90d\ub2c8\ub2e4. \ubcc0\uc218 \uc774\ub984\uacfc \uac19\uc774 \ud558\ub098\uc758 \ub2e8\uc5b4\uc778 \uacbd\uc6b0\ub294 { } \uae30\ud638\uac00 \ud544\uc694 \uc5c6\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c, \uc608\uc81c\uc5d0\uc11c string2 = &#8220;$string1 has ${string1.length} letters&#8221;; \ubb38\uc7a5\uc740 \uc55e\uc11c string1\uc5d0 \uc800\uc7a5\ud55c \ubb38\uc790\uc5f4, \uadf8\ub9ac\uace0 \uadf8 \ubb38\uc790\uc5f4\uc5d0 \uc18d\ud55c \uae00\uc790\uc758 \uac2f\uc218\ub97c \ubb38\uc790\uc5f4 \uc548\uc5d0 \ub300\uccb4\ud558\uc5ec \uc800\uc7a5\ud574 \uc90d\ub2c8\ub2e4. \uadf8\ub9ac\uace0 \uc774 \uac12\ub4e4\uc774 \ud3ec\ud568\ub41c \uc0c8\ub85c\uc6b4 \ubb38\uc790\uc5f4\uc744 string2\uc5d0 \uc800\uc7a5\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p>toLowerCase()\uc640 toUpperCase()\ub294 \uc774\ub984\ucc98\ub7fc \uc9c1\uad00\uc801\uc778 \uae30\ub2a5\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. \uc989, \ubb38\uc790\uc5f4\uc758 \ubaa8\ub4e0 \uae00\uc790\uc751 \uc18c\ubb38\uc790 \ud639\uc740 \ub300\ubb38\uc790\ub85c \ud558\ub294 \uc0c8\ub85c\uc6b4 \ubb38\uc790\uc5f4\uc744 \ub9cc\ub4e4\uc5b4 \uc90d\ub2c8\ub2e4.<\/p>\n\n\n\n<p>darttutorial-14-04.dart \uc608\uc81c \ud504\ub85c\uadf8\ub7a8\uc758 \uc218\ud589 \uacb0\uacfc\ub97c \uc544\ub798\uc5d0 \uba85\uc2dc\ud558\uc600\uc73c\ub2c8, \ubcf8\uc778\uc774 \uc0dd\uac01\ud55c \uacb0\uacfc\uc640 \ub9de\ub294\uc9c0 \ud655\uc778\ud574 \ubcf4\uace0, \uc2e4\uc81c \ud504\ub85c\uadf8\ub7a8\uc744 \uc218\ud589\ud558\uc5ec \uacb0\uacfc\ub97c \ud655\uc778\ud574 \ubd05\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>Hello\nH\nHello Dart!\n11\nHello Dart! has 11 letters\nhello dart!\nHELLO DART!\n<\/pre>\n\n\n\n<h4>Boolean Class<\/h4>\n\n\n\n<p>Boolean \ub370\uc774\ud0c0 \ud0c0\uc785\uc740 true \uc544\ub2c8\uba74 false\uc758 \ub9e4\uc6b0 \ub2e8\uc21c\ud55c \uac12\uc744 \uc800\uc7a5\ud558\uc9c0\ub9cc, \ud074\ub798\uc2a4\ub85c \ub9cc\ub4e4\uc5b4\uc838 \uc788\uc73c\uba70, \uba87\uac00\uc9c0 property\uc640 method\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4. \uc544\ub798\uc758 darttutorial-14-05.dart \uc608\uc81c\ub294 \uc5ec\ub7ec\ubc88 \ub4f1\uc7a5\ud55c toString()\uc774 Boolean \ud074\ub798\uc2a4\uc5d0\ub3c4 \uc788\uc73c\uba70, \uc720\uc0ac\ud55c \uc6a9\ubc95\uc73c\ub85c \uc0ac\uc6a9\ub418\ub294 \uac83\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>\/\/ darttutorial-14-05.dart \n\/\/ Ref: https:\/\/api.dart.dev\/stable\/2.7.1\/dart-core\/bool-class.html\n\nvoid main() {\n  bool bool1 = true;\n  var myString;\n\n  \/\/ Print boolean object\n  print(\"$bool1\"); \/\/ true\n\n  \/\/ Convert boolean object to String\n  myString = bool1.toString();\n  print(\"$myString\"); \/\/ true\n}\n<\/pre>\n\n\n\n<h4>Class Operators (is &amp; is!)<\/h4>\n\n\n\n<p>\uac1d\uccb4\uc9c0\ud5a5 \ud504\ub85c\uadf8\ub798\ubc0d\uc744 \ud558\ub2e4\ubcf4\uba74, \ud604\uc7ac \ub2e4\ub8e8\ub294 \ub370\uc774\ud0c0\uac00 \uc5b4\ub5a4 \ud0c0\uc785\uc778\uc9c0 \ud655\uc778\uc774 \ud544\uc694\ud55c \uacbd\uc6b0\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub7f0 \uacbd\uc6b0 \uc0ac\uc6a9 \uac00\ub2a5\ud55c \ubb38\ubc95\uc778 is\uc640 is! \uc785\ub2c8\ub2e4. \ud2b9\ud788 \ub3d9\uc801\uc73c\ub85c \ubcc0\uc218\ub97c \uc0dd\uc131\ud558\ub294 var \ud639\uc740 dynamic\uc758 \uacbd\uc6b0\ub294, \ud504\uace0\ub85c\uadf8\ub7a8\uc774 \uc218\ud589\ub418\uba74\uc11c \uc800\uc7a5\ud558\ub294 \ub370\uc774\ud0c0 \ud0c0\uc785\uc774 \uc218\uc2dc\ub85c \ubc14\ub014\uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c, \ud504\ub85c\uadf8\ub7a8 \uc218\ud589 \uc2dc\uc810\uc5d0\uc11c \ud0c0\uc785\uc744 \uc54c\uc544\uc57c \ud558\ub294 \uacbd\uc6b0\uc5d0 \uc694\uae34\ud558\uac8c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \ubd84\ubc95\uc785\ub2c8\ub2e4. \uc544\ub798\uc758 darttutorial-14-06.dart \uc608\uc81c\ub97c  \ud1b5\ud574\uc11c \uc774 \ubb38\ubc95\uc774 \uc5b4\ub5bb\uac8c \ub3d9\uc791\ud558\ub294\uc9c0 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>\/\/ darttutorial-14-06.dart \n\nvoid printType(var para) {\n  if(para is int) {\n    print(\"[type] int\");\n  } else if(para is double) {\n    print(\"[type] double\");\n  } else if(para is String) {\n    print(\"[type] string\");\n  } else if(para is bool) {\n    print(\"[type] double\");\n  } else {\n    print(\"[type] not identified\");\n  }\n}\n\nvoid main() {\n  int num1 = 1;\n  var num2 = 1.1;\n  dynamic num3;\n\n  printType(num1);\n  printType(num2);\n\n  num3 = num1;\n  printType(num3);\n\n  num3 = num2;\n  printType(num3);\n\n  num3 = \"number\";\n  printType(num3);  \n}\n<\/pre>\n\n\n\n<p>printType() \ud568\uc218\ub97c \ubcf4\uba74, \uc785\ub825 \ud30c\ub77c\uba54\ud0c0\uc758 \ud0c0\uc785\uc5d0 \ub530\ub77c\uc11c \ud654\uba74\uc5d0 \ud0c0\uc785\uc744 \ucd9c\ub825\ud574 \uc8fc\ub294 \uae30\ub2a5\uc744 \ud655\uc778 \uac00\ub2a5\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<h4>\ub9c8\ubb34\ub9ac<\/h4>\n\n\n\n<p>Dart\ub294 \uac1d\uccb4\uc9c0\ud5a5 \uc5b8\uc5b4\ub85c\uc11c, \ub2e4\ub8e8\ub294 \ubaa8\ub4e0 \ub370\uc774\ud0c0\uac00 \uac1d\uccb4\ub85c \uc2e4\ud604\ub429\ub2c8\ub2e4. \uc6b0\ub9ac\ub294 \uc774\ubc88 \uae00\uc5d0\uc11c \uc124\uacc4\ub3c4\uc5d0 \ud574\ub2f9\ud558\ub294 \ud074\ub798\uc2a4\uc640 \uc774\ub4e4\uc774 \uc2e4\uc81c \ub370\uc774\ud0c0\ub97c \uac00\uc9c0\uba74\uc11c \uc2e4\uc138\uacc4\uc5d0 \uc758\ubbf8\uc788\ub294 \ud615\ud0dc\ub85c \ub3d9\uc791\ud558\ub294 \uac1d\uccb4\uc5d0 \ub300\ud574\uc11c \ubc30\uc6e0\uc2b5\ub2c8\ub2e4. \uadf8\ub9ac\uace0, \uc9c0\uae08\uae4c\uc9c0 \ubc30\uc6cc\uc628 int, double, String, bool, var, Object, dynamic \ub4f1\uc774 \uac1d\uccb4\ub97c \uc800\uc7a5\ud558\ub294 \uac83\ub4e4 \uc784\uc744 \ubc30\uc6e0\uc2b5\ub2c8\ub2e4. \uc774\ub4e4\uc740 \uba64\ubc84 \ub370\uc774\ud0c0\uc640 \uba64\ubc84 \uba54\uc18c\ub4dc\ub97c \uac00\uc9c0\uba70, \ubcf4\ub2e4 \uad6c\uccb4\uc801\uc778 \ub0b4\uc6a9\uc740 \uacf5\uc2dd \ud648\ud398\uc774\uc9c0\uc758 \uad00\ub828 \uba54\ub274\uc5bc\uc744 \ucc38\uc870\ud558\ub3c4\ub85d \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignright is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-content\/uploads\/2020\/01\/b05-1.jpg\" alt=\"\" class=\"wp-image-267\" width=\"134\" height=\"48\"\/><\/figure><\/div>\n\n\n\n<p><strong>Creative Commons License<\/strong> (<strong>CC BY-NC-ND<\/strong>)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&lt; Dart \uae30\ucd08\ubb38\ubc95 &#8211; Class \uc0ac\uc6a9\ud558\uae30 &gt; \uba3c\uc800 \uc77c\ubc18\uc801\uc778 \uac1c\ub150\uc5d0 \ub300\ud574\uc11c \uc124\uba85\ud569\ub2c8\ub2e4. \uc81c\ud488\uc744 \uacf5\uc7a5\uc5d0\uc11c \ucd9c\ud558\ud558\uae30 \uc804\uc5d0, \uc124\uacc4\ub3c4(design document)\ub97c \ub9cc\ub4dc\ub294 \uc791\uc5c5\uc774 \uc788\uc2b5\ub2c8\ub2e4. \uc608\ub97c\ub4e4\uc5b4 \ubc18\ub3c4\uccb4 \uc124\uacc4\ub3c4\uac00 \ub9cc\ub4e4\uc5b4\uc9c0\uba74, \uc774\ub97c \ud1b5\ud574\uc11c \uc2e4\uc81c \ubc18\ub3c4\uccb4 \uc81c\ud488(product)\uc744 &#8230;<\/p>\n","protected":false},"author":1,"featured_media":862,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[3],"tags":[],"aioseo_notices":[],"_links":{"self":[{"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/posts\/443"}],"collection":[{"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/comments?post=443"}],"version-history":[{"count":6,"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/posts\/443\/revisions"}],"predecessor-version":[{"id":863,"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/posts\/443\/revisions\/863"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/media\/862"}],"wp:attachment":[{"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/media?parent=443"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/categories?post=443"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/tags?post=443"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}