{"id":515,"date":"2020-06-01T09:00:58","date_gmt":"2020-06-01T00:00:58","guid":{"rendered":"http:\/\/mobilelab.khu.ac.kr\/?p=515"},"modified":"2020-04-05T18:59:39","modified_gmt":"2020-04-05T09:59:39","slug":"be-dart-programmer-20","status":"publish","type":"post","link":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/2020\/06\/01\/be-dart-programmer-20\/","title":{"rendered":"Dart Programmer \ub418\uae30 [20]"},"content":{"rendered":"\n<h4>&lt; Dart \uae30\ucd08\ubb38\ubc95 &#8211; Making Class &#8211; Part.1 &gt;<\/h4>\n\n\n\n<p>\uc774\uc804\uc758 \uae00\uc778 <em>Using Class<\/em>\ub97c \ud1b5\ud574\uc11c, \ud074\ub798\uc2a4\uac00 \ubb34\uc5c7\uc774\uba70, Dart \uc5b8\uc5b4\uac00 \uc81c\uacf5\ud558\ub294 \ud074\ub798\uc2a4\ub4e4\uc744 \uc5b4\ub5bb\uac8c \uc0ac\uc6a9\ud558\ub294\uc9c0 \uc774\ud574 \ud558\uc600\uc2b5\ub2c8\ub2e4. \uc774 \uae00\uc5d0\uc11c\ub294 \uac1c\ubc1c\uc790\uac00 \uc9c1\uc811 \ud074\ub798\uc2a4\ub97c \ub9cc\ub4dc\ub294 \ubc29\ubc95\uc5d0 \ub300\ud574\uc11c \uc124\uba85\ud558\uba74\uc11c, \ud074\ub798\uc2a4\uc758 \ubcf4\ub2e4 \uae4a\uc740 \ub0b4\uc6a9\uc5d0 \ub300\ud574\uc11c \uc54c\uc544\uac00\uaca0\uc2b5\ub2c8\ub2e4. \ub2e4\ub978 \uae00 \ub4e4\uacfc \ube44\uad50\ud558\uc5ec \ub0b4\uc6a9\uc774 \ub2e4\uc18c \ubc29\ub300\ud560 \uc218 \uc788\uae30\uc5d0, \ubbf8\ub9ac \ub2e4\ub8e8\uace0\uc790 \ud558\ub294 \ub0b4\uc6a9\uc744 \ub2e4\uc74c\uacfc \uac19\uc774 \ub098\ud0c0\ub0c8\uc2b5\ub2c8\ub2e4. \ucc38\uace0\ub85c \uc774\ubc88\uae00\uc5d0\uc11c\ub294 Dart \uc5b8\uc5b4 \uacf5\uc2dd \ud648\ud398\uc774\uc9c0\uc758 Language Guide \ubd80\ubd84\uc5d0\uc11c, Class \ubd80\ubd84\uc758 \uc608\uc81c \ud504\ub85c\uadf8\ub7a8\uc744 \uc77c\ubd80 \ubcc0\ud615\ud558\uc5ec \uc124\uba85 \ud558\uaca0\uc2b5\ub2c8\ub2e4 [<a href=\"https:\/\/dart.dev\/guides\/language\/language-tour#classes\">\ucc38\uc870<\/a>]. \ub2e4\ub8f0 \ub0b4\uc6a9\uc774 \ub9ce\uc740 \uad00\uacc4\ub85c \uc774 \uae00\uc5d0\uc11c\ub294 \uc544\ub798\uc758 \uc0ac\ud56d\uc5d0 \ub300\ud574\uc11c \uc124\uba85\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<ul><li><em>Class<\/em> Syntax<\/li><li>Constructor<\/li><li><em>runtimeType<\/em> Property<\/li><li>Instance Variables and Methods <\/li><li>Getters and Setters<\/li><li>Inheritance or Subclassing (<em>extends<\/em> Syntax)<\/li><li>Overriding Members<\/li><\/ul>\n\n\n\n<p>\uadf8\ub9ac\uace0 \ub2e4\uc74c \uae00\ub4e4\uc5d0\uc11c \uc544\ub798\uc758 \ub0b4\uc6a9 \ub4f1\uc744 \ub2e4\ub8e8\ub3c4\ub85d \ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<ul><li>Mixins for Multiple Inheritance (<em>with<\/em> Syntax)<\/li><li>Implicit Interfaces (<em>implements<\/em> Syntax)<\/li><li>Abstract Methods and Classes<\/li><li>Extension Methods<\/li><li>Class Variables and Methods (<em>Static<\/em> Syntax)<\/li><li>Auxiliary Useful Features<\/li><\/ul>\n\n\n\n<p>\uc774 \uae00\uc5d0\uc11c\ub294 \uc608\uc2dc\ub85c \ud558\ub098\uc758 \ud074\ub798\uc2a4\ub97c \ub9cc\ub4e4\uc5b4 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \uac04\ub2e8\ud558\uac8c 2\ucc28\uc6d0 \ud3c9\uba74\uc5d0 \uc88c\ud45c\uac12\uc778 (x, y)\ub97c \ub098\ud0c0\ub0b4\ub294 \ud074\ub798\uc2a4 Point \uc785\ub2c8\ub2e4. \uc544\ubb34\ub7f0 \ub0b4\uc6a9\uc774 \uc5c6\ub294 \uac00\uc7a5 \ub2e8\uc21c\ud55c \ud615\ud0dc\uc5d0\uc11c \uc2dc\uc791\ud574\uc11c \uc0c8\ub85c\uc6b4 \ubb38\ubc95\uc744 \ud558\ub098\uc529 \ucd94\uac00\ud574 \uac00\ub294 \ubc29\ud5a5\uc73c\ub85c \uc9c4\ud654\ud574 \ubcf4\ub3c4\ub85d \ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<h4><em>Class<\/em> Syntax<\/h4>\n\n\n\n<p>\uc6b0\ub9ac\ub294 Dart\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \ub2e4\uc591\ud55c \ud074\ub798\uc2a4\ub97c \uc0ac\uc6a9\ud588\uc2b5\ub2c8\ub2e4. int, double, String, bool, List, Map, Set \ub4f1\uc758 \ud074\ub798\uc2a4\ub97c \uc798 \uc0ac\uc6a9\ud558\uc600\ub294\ub370, \uc774\ub4e4\uc744 \uc774\uc81c \ub9cc\ub4e4\uc5b4 \ubcf4\ub3c4\ub85d \ud558\uaca0\uc2b5\ub2c8\ub2e4. \ud074\ub798\uc2a4\ub97c \ub9cc\ub4dc\ub294 \ubb38\ubc95\uc740 <em>class<\/em> \uc785\ub2c8\ub2e4. \uc77c\ub2e8 \ub0b4\ubd80\ub97c \ucc44\uc6b0\uc9c0 \uc54a\uace0, \uac00\uc7a5 \uac04\ub2e8\ud55c \ud615\ud0dc\ub85c Point\ub77c\ub294 \uc774\ub984\uc758 \ud074\ub798\uc2a4\ub97c \ub9cc\ub4e4\uba74 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>class Point {\n}\n<\/pre>\n\n\n\n<p>\uc544\ubb34\ub7f0 \uc815\ubcf4\uac00 \uc5c6\ub294 \ud074\ub798\uc2a4\ub294 \uc758\ubbf8\uac00 \uc5c6\uc73c\ubbc0\ub85c, \uc6d0\ub798 \uacfc\ud45c\uac00 \uac00\uc838\uc57c \ud558\ub294 \uc815\ubcf4\uc778 x, y \uac12\uc744 \uac16\ub3c4\ub85d \ud558\uaca0\uc2b5\ub2c8\ub2e4. \ud3b8\uc758\uc0c1 \ub370\uc774\ud0c0 \ud0c0\uc785\uc744 \uace0\ub824\ud558\uc9c0 \uc54a\uace0 type inference\ub97c \uc0ac\uc6a9\ud558\ub294 var \ud0c0\uc785\uc73c\ub85c \ub9cc\ub4e4\uaca0\uc2b5\ub2c8\ub2e4. \uc774\ub807\uac8c \ud074\ub798\uc2a4 \uc548\uc758 \ubcc0\uc218\ub97c instance variable \ud639\uc740 member variable \uc774\ub77c\uace0 \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>class Point {\n  var x;\n  var y;\n}\n<\/pre>\n\n\n\n<p>\uc774\ub807\uac8c \uac04\ub2e8\ud55c \ud074\ub798\uc2a4 Point \uc774\uc9c0\ub9cc, \ub2f9\uc7a5 \ud504\ub85c\uadf8\ub7a8\uc5d0\uc11c \ud65c\uc6a9 \uac00\ub2a5\ud569\ub2c8\ub2e4. \uac04\ub2e8\ud558\uac8c point1\uc774\ub77c\ub294 \uc774\ub984\uc73c\ub85c \ud074\ub798\uc2a4 Point\uc758 \uac1d\uccb4\ub97c \ub9cc\ub4e4\uace0, (Using Class\uc5d0\uc11c \ubc30\uc6b4 \uac83\ucc98\ub7fc) \ud074\ub798\uc2a4 Point\uc758 \uba64\ubc84 \ub370\uc774\ud0c0\uc5d0 \uac12\uc744 \uc800\uc7a5\ud558\uac70\ub098 \uc77d\uc5b4\uc624\ub3c4\ub85d \ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>void main() {\n  var point1 = Point();\n  \/\/ output: [01]$ point1 is (null, null)\n  print(\"[01]\\$ point1 is (${point1.x}, ${point1.y})\");\n}\n<\/pre>\n\n\n\n<p>print \uad6c\ubb38 [01] \uad00\ub828, Point \ud074\ub798\uc2a4 \uc774\ub984\uc744 \uc4f0\uace0 () \uae30\ud638\ub97c \ub9c8\uce58 \ud568\uc218 \ud638\ucd9c \ud558\ub4ef\uc774 \ubd99\uc774\ub294 \ud615\ud0dc\ub85c Point \uac1d\uccb4\ub97c \ub9cc\ub4e4\uac8c \ub429\ub2c8\ub2e4. \uadf8\ub9ac\uace0 \ub9cc\ub4e4\uc5b4\uc9c4 \uac1d\uccb4\ub97c point1\uc5d0\uac8c \uc804\ub2ec\ud558\uc600\uc2b5\ub2c8\ub2e4. Point \uac1d\uccb4\uc5d0\ub294 x\uc640 y\uac00 \uba64\ubc84 \ub370\uc774\ud0c0\ub85c \uc788\uc73c\ubbc0\ub85c, \uc77c\ub2e8 \ub9cc\ub4e4\uc5b4\uc9c4 Point \uac1d\uccb4\uc758 \uba64\ubc84 \ubcc0\uc218\ub97c Using Class\uc5d0\uc11c \ubc30\uc6b4 &#8220;.&#8221; \uc5f0\uc0b0\uc790\ub97c \ud1b5\ud574\uc11c \ud655\uc778\ud574 \ubcf4\uba74, \ub450 \uac12\uc774 \ubaa8\ub450 null\ub85c \ub098\ud0c0\ub098\ub294 \uac83\uc744 \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub294 Point \uac1d\uccb4\ub97c \ub9cc\ub4e4\uba74\uc11c, x\uc640 y \ubcc0\uc218\ub294 \ub9cc\ub4e4\uc5c8\uc9c0\ub9cc, \ucd08\uae30\ud654\ub97c \ud558\uc9c0 \uc54a\uc558\uae30\uc5d0, \uc55e\uc11c \ubcc0\uc218 \ubd80\ubd84\uc5d0\uc11c \ubc30\uc6b4 \uac83\ucc98\ub7fc \uac01\uac01 null \uac12\uc744 \uac00\uc9c0\ub294 \uac83\uc744 \ud655\uc778\ud55c \uac83\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\ub9cc\uc57d var point1 = Point();\uac00 \uc544\ub2cc Point point1;\ub97c \ub9cc\ub4e4\uba74 \uc5b4\ub5bb\uac8c \ub420\uae4c\uc694? \ubcc0\uc218\ub97c \ub9cc\ub4e4\uba74, \ucd08\uae30\uac12\uc740 null\uc774\ub77c\uace0 \ud588\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c \ud6c4\uc790\uc758 \ubb38\ubc95\uc740 point1\uc774\ub77c\ub294 \uc774\ub984\uc73c\ub85c &#8220;\uc55e\uc73c\ub85c&#8221; Point \ud074\ub798\uc2a4\ub97c \uc800\uc7a5\ud558\uace0 \ub2e4\ub8f0\uac83\uc774\ub2c8, &#8220;\uc9c0\uae08\uc740&#8221; \uc800\uc7a5\uc744 \uc548\ud558\uace0 \uc788\ub294 \uc0c1\ud0dc\ub77c\uc11c point1\uc774 null \uac12\uc744 \uac16\uac8c \ub429\ub2c8\ub2e4. \ub530\ub77c\uc11c, print\ub85c x\uc640 y\ub97c \ucd9c\ub825\ud558\uace0\uc790 \ud558\uba74 \uc5d0\ub7ec\uac00 \ubc1c\uc0dd \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>void main() {\n  Point point1;\n  \/\/ error at below, due to point1 is null\n  print(\"[01]\\$ point1 is (${point1.x}, ${point1.y})\");\n}\n<\/pre>\n\n\n\n<p>\uc774\uc5d0 point1 \uac1d\uccb4\uc758 \uba64\ubc84 \ubcc0\uc218\uc778 x\uc640 y\ub97c \uc758\ubbf8 \uc788\ub294 \uac12\uc73c\ub85c \uc800\uc7a5\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \ubc29\ubc95\uc740 Using Class\uc5d0\uc11c \ubc30\uc6b4 \uac83\ucc98\ub7fc, \uac1d\uccb4\uc758 &#8220;.&#8221; \uc5f0\uc0b0\uc790\ub97c \ud65c\uc6a9\ud558\uc5ec \uac12\uc744 \uc800\uc7a5\ud558\ub294 \uac83\uacfc \ub3d9\uc77c\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>void main() {\n  var point1 = Point();\n  \/\/ output: [01]$ point1 is (null, null)\n  print(\"[01]\\$ point1 is (${point1.x}, ${point1.y})\");\n\n  point1.x = 4;\n  point1.y = 4;\n  \/\/ output: [02]$ point1 is (4, 4)\n  print(\"[02]\\$ point1 is (${point1.x}, ${point1.y})\");\n}\n<\/pre>\n\n\n\n<p>point1 \uac1d\uccb4\uc758 x\uc640 y\uc5d0 \uac01\uac01 \uc815\uc218 4\ub97c \uc800\uc7a5\ud558\uc600\uc2b5\ub2c8\ub2e4. \uadf8\ub9ac\uace0 print \uad6c\ubb38 [02] \ucc98\ub7fc \ud558\uba74, \uc81c\ub300\ub85c 4 \uac12\uc774 \uc88c\ud45c \uac11\uc73c\ub85c \uc5c5\ub370\uc774\ud2b8 \ub41c \uac83\uc744 \ud655\uc778 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<h4>Constructor<\/h4>\n\n\n\n<p>\ubcf4\ub2e4 \ud3b8\ub9ac\ud558\uac8c \uac1d\uccb4\ub97c \ub9cc\ub4dc\ub294 \uc9c0\uc810\uc5d0\uc11c \uba64\ubc84 \ubcc0\uc218\ub4e4\uc758 \ucd08\uae30\ud654\ub97c \uac19\uc774\ud558\ub294 \ubc29\ubc95\uc740 \uc5c6\uc744\uae4c? \uc774\ub7f0 \uae30\ub2a5\uc744 \uac1d\uccb4\uc9c0\ud5a5 \ud504\ub85c\uadf8\ub798\ubc0d\uc5d0\uc11c\ub294 constructor\ub77c\uace0 \ud569\ub2c8\ub2e4. \uba64\ubc84 \uba54\uc18c\ub4dc\ub85c\uc11c, \uac1d\uccb4\ub97c \ub9cc\ub4dc\ub294 \uc2dc\uc810\uc5d0\uc11c \uba64\ubc84 \ub370\uc774\ud0c0\ub97c \ucd08\uae30\ud654 \ud558\ub294 \uc791\uc5c5\uc744 \ud569\ub2c8\ub2e4.  \uac00\uc7a5 \uae30\ubcf8\uc801\uc778 constructor\ub294 \ud074\ub798\uc2a4\uc758 \uc774\ub984\uacfc \uac19\uc740 \uc774\ub984\uc758 \uba54\uc18c\ub4dc \uc785\ub2c8\ub2e4. Point \ud074\ub798\uc2a4\uc5d0 constructor\ub97c \ucd94\uac00\ud558\uace0, \ud574\ub2f9 constructor\uac00 x, y\uc758 \uac12\uc744 \uc785\ub825 \ud30c\ub77c\uba54\ud0c0\ub85c \ubc1b\ub3c4\ub85d \ud558\uace0, main()\uc5d0\uc11c constructor\ub97c \ud1b5\ud574\uc11c \ucd08\uae30\ud654\uae4c\uc9c0 \uc218\ud589\ud558\ub294 \ucf54\ub4dc\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. <\/p>\n\n\n\n<pre>class Point {\n  var x;\n  var y;\n\n  Point(var numX, var numY) {\n    this.x = numX;\n    this.y = numY;\n  }\n}\n\nvoid main() {\n  var point2 = Point(5, 5);\n  \/\/ output: [03]$ point1 is (5, 5)\n  print(\"[03]\\$ point2 is (${point2.x}, ${point2.y})\");\n}\n<\/pre>\n\n\n\n<p>\uc124\uba85\uc744 \ud558\uc9c0 \uc54a\uc740 \ubb38\ubc95\uc778 this\uac00 \ub098\ud0c0\ub0ac\uc2b5\ub2c8\ub2e4. this\ub294 \ud074\ub798\uc2a4\uc758 \uba64\ubc84 \uba54\uc18c\ub4dc\uc5d0\uc11c \uac1d\uccb4\uc758 \uac12\uc5d0 \uc811\uadfc\ud558\uae30 \uc704\ud558\uc5ec \uc0ac\uc6a9\ud558\ub294 \ubb38\ubc95\uc785\ub2c8\ub2e4. \uc989, \uc124\uacc4\ub3c4\uc778 \ud074\ub798\uc2a4\uc5d0\uc11c \uc81c\ud488\uc778 \uac1d\uccb4\ub4e4\uc774 \ub300\ub7c9\uc73c\ub85c \ub9cc\ub4e4\uc5b4 \uc9d1\ub2c8\ub2e4. \ub530\ub77c\uc11c Dart \uc5b8\uc5b4\ub294 Point \ud074\ub798\uc2a4\uc5d0\uc11c point2 \uac1d\uccb4\uac00 \ub9cc\ub4e4\uc5b4 \uc84c\uc744\ub54c, \uc124\uacc4\ub3c4\uac00 \uc544\ub2cc \uc81c\ud488\uc778 point2\uc758 \ub370\uc774\ud0c0\uc778 (5,5)\uc5d0 \uc811\uadfc\ud574\uc57c \ud569\ub2c8\ub2e4. \ub530\ub77c\uc11c, this\ub294 var point2 = Point(5, 5);\uac00 \uc218\ud589\ub418\uba74, \uc77c\ub2e8 Point \uac1d\uccb4\ub97c \ub9cc\ub4e4\uc5b4\uc11c point2\uc5d0 \uc804\ub2ec\ud569\ub2c8\ub2e4. \uadf8\ub9ac\uace0 \ub098\uc11c, point2\uc758 (x,y)\ub97c \uc811\uadfc\ud574\uc57c \ud558\ubbc0\ub85c, this\ub294 point2\ub97c \uc758\ubbf8\ud569\ub2c8\ub2e4. this\ub294 \uc785\ub825 \ud30c\ub77c\uba54\ud0c0 \ub4f1\uc73c\ub85c \uac1c\ubc1c\uc790\uac00 \uad00\ub9ac\ud560 \ud544\uc694\ub294 \uc5c6\uc73c\uba70, Dart \uc5b8\uc5b4\uac00 \uac1d\uccb4\uc758 \uba54\uc18c\ub4dc\uac00 \uc2e4\ud589\ub420\ub54c \uc2a4\uc2a4\ub85c \uad00\ub9ac\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\uac1c\ubc1c\uc790\uac00 \uc9c1\uc811 constructor\ub97c \ub9cc\ub4e4\uac8c \ub418\uba74, \ud55c\uac00\uc9c0 \uc81c\uc57d\uc0ac\ud56d\uc774 \ubc1c\ud589\ud569\ub2c8\ub2e4. \uc55e\uc11c\ucc98\ub7fc \uc785\ub825 \ud30c\ub77c\uba54\ud0c0\uac00 \uc5c6\ub294 constructor\uac00 \uc790\ub3d9\uc73c\ub85c \ub3d9\uc791\ud558\uc9c0 \uc54a\ub294 \ub2e4\ub294 \uc810\uc785\ub2c8\ub2e4. \uc989 var point1 = Point();\ub294 \uc0ac\uc2e4\uc0c1 \uc785\ub825 \ud30c\ub77c\uba54\ud0c0\uac00 \uc5c6\ub294 contructor\ub97c \uc2e4\ud589\ud558\ub294 Point() \uc600\ub294\ub370, \uc774 \ubd80\ubd84\uc774 \uc5d0\ub7ec \uc5c6\uc774 \ub3d9\uc791\ud55c \uc774\uc720\ub294, \uac1c\ubc1c\uc790\uac00 constructor\ub97c \uc9c1\uc811 \ub9cc\ub4e4\uc9c0 \uc54a\uc73c\uba74, Dart \uc5b8\uc5b4\ub294 \uc790\ub3d9\uc73c\ub85c \uc785\ub825 \ud30c\ub77c\uba54\ud0c0\uac00 \uc5c6\ub294 constructor(default constructor \ub77c\uace0 \ud569\ub2c8\ub2e4)\ub97c \ub9cc\ub4e4\uc5b4 \uc8fc\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uac1c\ubc1c\uc790\uac00 constructor\ub97c \uc2a4\uc2a4\ub85c \ub9cc\ub4e4\uba74, Dart\ub294 default constructor\uc758 \uc0dd\uc131\uc744 \ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c \uc785\ub825 \ud30c\ub77c\uba54\ud0c0\uac00 \uc5c6\ub294 default constructor\ub97c \uc9c1\uc811 \ub9cc\ub4e4\uc5b4 \uc918\uc57c \ud558\ub294\ub370, \uac00\uc7a5 \uac04\ub2e8\ud55c \ubc29\ubc95\uc740 \ub450\uac1c\uc758 \uc785\ub825 \ud30c\ub77c\uba54\ud0c0\ub97c \ubc1b\ub3c4\ub85d \ub9cc\ub4e0 constructor\uc758 \uc785\ub825 \ud30c\ub77c\uba54\ud0c0\ub97c optional\ud55c \ud30c\ub77c\uba54\ud0c0\ub85c \uc815\uc758\ud558\uace0, \uc8fc\uc5b4\uc9c0\uc9c0 \uc54a\uc73c\uba74 default \uac12\uc73c\ub85c \ucd08\uae30\ud654 \ud558\ub3c4\ub85d \ud558\ub294 \ubc29\ubc95\uc785\ub2c8\ub2e4. \uc774\ub807\uac8c \uac1c\uc120\ud55c constructor\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>Point([var numX = 0, var numY = 0]) {\n  this.x = numX;\n  this.y = numY;\n}\n<\/pre>\n\n\n\n<p>Constructor\ub294 \uc5ec\ub7ec\uac1c\uac00 \uc874\uc7ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \ud074\ub798\uc2a4\uc758 \uc774\ub984\uc740 \ud558\ub098\uc774\ub2c8, \ud074\ub798\uc2a4\uc758 \uc774\ub984\uacfc \ub3d9\uc77c\ud55c constructor\ub294 \ubcf5\uc218\ub85c \uc874\uc7ac\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c, \ud074\ub798\uc2a4\uc758 \uc774\ub984\uc5d0 \ucd94\uac00\uc801\uc778 \uc2dd\ubcc4\uc790\ub97c \ub354\ud55c \ud615\ud0dc\ub85c \ubcf5\uc218\uac1c\uc758 constructor\ub97c \ub9cc\ub4e4\uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub2e4\uc74c\uc740 &#8220;\ud074\ub798\uc2a4\uc774\ub984.\uc2dd\ubcc4\uc790\uc774\ub984&#8221;\uc758 \ubc29\ubc95\uc73c\ub85c \uc774\ub984\uc774 Point.fromPoint \uc774\uba70, \uc785\ub825 \ud30c\ub77c\uba54\ud0c0\ub85c Point \uac1d\uccb4\ub97c \ubc1b\ub3c4\ub85d \ucd94\uac00\ub41c constructor \uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>Point.fromPoint(Point origin) {\n  this.x = origin.x;\n  this.y = origin.y;\n}\n<\/pre>\n\n\n\n<p>\uc0c8\ub85c \ub9cc\ub4e0 constroctur\ub85c \ubd80\ud130 point3 \uac1d\uccb4\ub97c \ub9cc\ub4e4\uba74 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>var point3 = Point.fromPoint(point2);\n<\/pre>\n\n\n\n<h4><em>runtimeType<\/em> Property<\/h4>\n\n\n\n<p>Dart \uc5b8\uc5b4\ub294 \ubaa8\ub4e0 \ub370\uc774\ud0c0 \ud0c0\uc785\uc774 \ud074\ub798\uc2a4\uc758 \uac1d\uccb4\ub4e4\uc774\ub77c\uace0 \ud558\uc600\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc, type inference \uae30\ub2a5\uc73c\ub85c \uc778\ud574\uc11c, \ud3b8\ub9ac\ud558\uac8c var \ud639\uc740 dynamic \ud0c0\uc785\uc73c\ub85c \uc0ac\uc6a9\ud568\uc73c\ub85c\uc368, \uac1c\ubc1c\uc790\uac00 \uc77c\uc77c\uc774 \ub2e4\ub8e8\uace0\uc790 \ud558\ub294 \ud0c0\uc785\uc5d0 \ub9de\ucdb0\uc11c \ud504\ub85c\uadf8\ub798\ubc0d\uc744 \ud558\ub294 (\uc77c\ubd80) \ubc88\uac70\ub7ec\uc6c0\uc744 \ud3b8\ud558\uac8c \ubc14\ub00c\uc5b4 \uc90d\ub2c8\ub2e4. \ud558\uc9c0\ub9cc, \ud504\ub85c\uadf8\ub7a8\uc758 \uc2e4\ud589\uc911\uc5d0 \uac1d\uccb4\uc758 \ud0c0\uc785\uc744 \ud655\uc778\ud574\uc57c \ud558\ub294 \uacbd\uc6b0\uac00 \uc885\uc885 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub7f0 \uacbd\uc6b0\uc5d0 \uc720\uc6a9\ud55c \ubb38\ubc95\uc774 <em>runtimeType<\/em> property \uc785\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \uc9c0\uae08\uae4c\uc9c0 \uc5b8\uae09\ub41c point3\uc758 \ud074\ub798\uc2a4 \ud0c0\uc785\uc744 \uc54c\uace0 \uc2f6\ub2e4\uba74, \ub2e4\uc74c\uacfc \uac19\uc774 \ud558\uba74 \ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>print(\"[05]\\$ {$point3.runtimeType}\");\n<\/pre>\n\n\n\n<p>\uc774\uc5d0 \ub300\ud55c \ucd9c\ub825\uc740 &#8220;{Instance of &#8216;Point&#8217;.runtimeType}&#8221;\uc73c\ub85c \ub418\uc5b4, \ud074\ub798\uc2a4 Point\ub85c \ubd80\ud130 \ub9cc\ub4e4\uc5b4\uc9c4 \uac1d\uccb4(object \ud639\uc740 instance)\uc784\uc744 \uc54c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<h4>Instance Variables and Methods&nbsp;<\/h4>\n\n\n\n<p>Instance Variable\uc740 Member Variable \uc774\ub77c\uace0 \ubd80\ub97c \uc218 \uc788\uc2b5\ub2c8\ub2e4, \uac1d\uccb4\uac00 \ub9cc\ub4e4\uc5b4 \uc9c0\uace0, \ud574\ub2f9 \uac1d\uccb4\uac00 \uad00\ub9ac\ud558\ub294 \ubcc0\uc218\ub97c \uc758\ubbf8\ud569\ub2c8\ub2e4. \uc774\ubbf8 \uc6b0\ub9ac\ub294 Point \ud074\ub798\uc2a4\uc5d0\uc11c \ub9cc\ub4e0 point1, point2, point3 \uac1d\uccb4 \uac01\uac01\uc5d0 \uc800\uc7a5\ub41c (x,y) \ubcc0\uc218\ub4e4 \uc785\ub2c8\ub2e4. <\/p>\n\n\n\n<p>Instance Method\ub294 Member Method \uc774\ub77c\uace0 \ubd80\ub97c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud074\ub798\uc2a4\uc5d0\uc11c \ub9cc\ub4e4\uc5b4\uc9c4 \uac1d\uccb4\uac00 \uac00\uc9c0\uace0 \uc788\ub294 \ud568\uc218\ub4e4 \uc785\ub2c8\ub2e4. Constructor \ub4e4\ub3c4 \uc5ec\uae30\uc5d0 \uc18d\ud558\ub294 \ud568\uc218\ub4e4 \uc785\ub2c8\ub2e4. \uadf8\ub7ec\uba74 \uc774\ubc88\uc5d0\ub294 Point \ud074\ub798\uc2a4\uc5d0 \uba54\uc18c\ub4dc\ub97c \ucd94\uac00\ud574 \ubcf4\ub3c4\ub85d \ud558\uaca0\uc2b5\ub2c8\ub2e4. \uc774\ubc88\uc5d0 \ucd94\uac00\ud558\ub294 \uba54\uc18c\ub4dc\ub294 \ub450\uac1c\uc758 \uc88c\ud45c \uc0ac\uc774\uc758 \uac70\ub9ac\ub97c \uad6c\ud558\ub294 \uae30\ub2a5\uc785\ub2c8\ub2e4. \uc774\ub984\uc740 distanceTo \uc774\uba70, \uc785\ub825 \ud30c\ub77c\uba54\ud0c0\ub85c \uc88c\ud45c\uac00 \uc8fc\uc5b4\uc9c0\uba74, \ubcf8\uc778\uc758 \uc88c\ud45c\uc640 \uc785\ub825 \ud30c\ub77c\uba54\ud0c0\ub85c \uc8fc\uc5b4\uc9c0\ub294 \uc88c\ud45c\uc0ac\uc774\uc758 \uac70\ub9ac\ub97c \uad6c\ud569\ub2c8\ub2e4. \uc88c\ud45c \uc0ac\uc774\uc758 \uac70\ub9ac\ub97c \uad6c\ud558\ub294 \uacf5\uc2dd\uc740 [<a href=\"https:\/\/ko.wikipedia.org\/wiki\/%EB%91%90_%EC%A0%90_%EC%82%AC%EC%9D%B4%EC%9D%98_%EA%B1%B0%EB%A6%AC\">\uc5ec\uae30<\/a>]\uc5d0\uc11c \ud655\uc778 \uac00\ub2a5\ud569\ub2c8\ub2e4. <\/p>\n\n\n\n<pre>num distanceTo(Point other) {\n  var dx = this.x - other.y;\n  var dy = this.y - other.y;\n  return sqrt(dx * dx + dy * dy);\n}\n<\/pre>\n\n\n\n<p>\ubabb\ubcf4\ub358 \ub370\uc774\ud0c0 \ud0c0\uc785\uc778 num\uacfc \ud568\uc218\uc778 sqrt\uac00 \uc788\ub294\ub370, \uc774\ub294 \uc774\ud6c4 Library\uc5d0\uc11c \uc124\uba85\ud558\uaca0\uc9c0\ub9cc, \uc22b\uc790\ub97c \ub2e4\ub8e8\ub294 num \ud074\ub798\uc2a4 \ud0c0\uc785\uacfc \uc218\ud559\uc5d0\uc11c \uc81c\uacf1\uadfc\uc744 \uacc4\uc0b0\ud558\ub294 \uae30\ub2a5\uc758 \ud568\uc218\ub85c, Dart \uc5b8\uc5b4\uac00 \ub0b4\uc7a5\ud574\uc11c \uc81c\uacf5\ud558\ub294 \uac83\uc785\ub2c8\ub2e4. \uc774\ub97c \uc0ac\uc6a9\ud558\uae30 \uc704\ud574\uc11c, \ud504\ub85c\uadf8\ub7a8\uc758 \ub9e8 \uc704\uc5d0 import &#8216;dart:math&#8217;; \uad6c\ubb38\ub3c4 \ucd94\uac00\ud574 \ud558\uba70, \uc774\ub4e4\uc740 Library \uc5d0\uc11c \uc124\uba85 \ud558\uaca0\uc2b5\ub2c8\ub2e4. <\/p>\n\n\n\n<h4>Getters and Setters<\/h4>\n\n\n\n<p>Getter\uc640 Setter\ub294 \uba54\uc18c\ub4dc\uc758 \uc77c\uc885\uc73c\ub85c\uc11c, \uac1d\uccb4\uc758 Property\ub97c \uc77d\uac70\ub098 \uc4f0\uae30 \uc704\ud574\uc11c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uac1d\uccb4\uc758 \uba64\ubc84 \ub370\uc774\ud0c0\ub97c \uc9c1\uc811 \uc77d\uace0 \uc4f0\uae30 \ubcf4\ub2e4\ub294 \uac04\uc811\uc801\uc73c\ub85c Getter\uc640 Setter\ub97c \ud1b5\ud574\uc11c \uc811\uadfc\ud558\ub294 \uac83\uc774 \uc77c\ubc18\uc801\uc778 \uac1d\uccb4 \uc9c0\ud5a5 \ud504\ub85c\uadf8\ub798\ubc0d \ubc29\ubc95\uc774\ub77c\uace0 \ubcf4\uba74 \ub418\uaca0\uc2b5\ub2c8\ub2e4. Getter\ub85c\uc368, \uac1d\uccb4\uc758 \uc88c\ud45c\ub97c \uc77d\uc5b4 \uc624\ub294 \uac04\ub2e8\ud55c \uba54\uc18c\ub4dc\ub97c \ub9cc\ub4e4\uc5b4 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \uc774 Getter\ub294 \uacb0\uacfc\uc801\uc73c\ub85c \uac1d\uccb4\uc758 x, y \uc88c\ud45c\ub97c &#8220;(x,y)&#8221; \ubb38\uc790\uc5f4\uc758 \ud615\ud0dc\ub85c return \ud558\ub3c4\ub85d \ub9cc\ub4e4\uc5b4 \ubd05\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>String get stringify =&gt; \"(${this.x},${this.y})\";\n<\/pre>\n\n\n\n<p>Anonymous function\uacfc \uc720\uc0ac\ud558\uc9c0\ub9cc, \uc785\ub825 \ud30c\ub77c\uba54\ud0c0 \ubd80\ubd84\uc744 \uad04\ud638 ( &#8230; )\ub85c \ubb36\uc5b4 \uc8fc\uc9c0 \uc54a\ub294 \uac83\uc774 \uc57d\uac04 \ub2e4\ub974\ub2e4\ub294 \uac83\uc744 \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc65c \uc774\ub807\uac8c \ud45c\ud604\uc774 \ub418\ub294 \uac83\uc778\uc9c0\ub294 \uc544\ub798\uc758 \uc2e4\ud589 \uad6c\ubb38\uc744 \ubcf4\uba74 \uc774\ud574\uac00 \ub429\ub2c8\ub2e4. <\/p>\n\n\n\n<pre>print(\"[07]\\$ Position of point3 : \" + point3.stringify);\n<\/pre>\n\n\n\n<p>\ud638\ucd9c\ud558\ub294 \ubaa8\uc591\uc774 \uac1d\uccb4\uc758 property\ub97c \uc811\uadfc\ud558\ub294 \uac83\ucc98\ub7fc \ub418\uc5b4 \uc788\uace0, \ubcc4\ub3c4\uc758 \uc785\ub825 \ud30c\ub77c\uba54\ud0c0\ub97c \ubc1b\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c \ud074\ub798\uc2a4 \uac1d\uccb4\uc758 stringfy property\uac00 \ud638\ucd9c\ub418\uba74, anonymous function \ucc98\ub7fc, \uc624\ub978\ucabd\uc758 \ud615\ud0dc\uc758 \ubb38\uc790\uc5f4(String) \ud0c0\uc785\uc73c\ub85c \ub9cc\ub4e4\uc5b4\uc11c return \ud558\uac8c \ub429\ub2c8\ub2e4. Setter\ub97c \ub9cc\ub4e0 \uad6c\ubb38\uc744 \uba3c\uc800 \ud655\uc778 \ud558\uba74 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. set \uad6c\ubb38\uc774 \ub9e8 \uc55e\uc5d0 \ub098\ud0c0\ub098 \uc787\uace0, \ub9c8\uce58 \ud568\uc218 \uc774\ub984\uacfc \uc785\ub825 \ud30c\ub77c\uba54\ud0c0\ub97c \uc815\uc758\ud558\ub294 \uac83\ucc98\ub7fc \ub418\uc5b4 \uc788\uc73c\uba70, \uc785\ub825 \ud30c\ub77c\uba54\ud0c0 \uc704\uce58\uc5d0 \uc788\ub294 value\ub97c \uac00\uc9c0\uace0 \uac1d\uccb4 \ub0b4\ubd80\uc758 x \uac12\uacfc y \uac12\uc744 \uc5c5\ub370\uc774\ud2b8 \ud558\ub294 \uac83\uc744 \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4. <\/p>\n\n\n\n<pre>set increaseX(num value) =&gt; this.x += value;\nset increaseY(num value) =&gt; this.y += value; \n<\/pre>\n\n\n\n<p>Anonymous function \uac19\uae30\ub3c4 \ud558\uba74\uc11c \ub2e4\ub978 \uc774 \ud615\ud0dc\ub294 \ub2e4\uc74c\uacfc \uac19\uc774 \uc2e4\ud589\uc744 \ud569\ub2c8\ub2e4. \ub9c8\uce58 \uac1d\uccb4\uc758 \uba64\ubc84 \ubcc0\uc218\uc5d0 \uac12\uc744 \uc800\uc7a5\ud558\ub294 \uac83\ucc98\ub7fc \ubcf4\uc774\uc9c0\ub9cc, \uc2e4\uc81c\ub85c\ub294 \uba64\ubc84 \ubcc0\uc218\ub97c \uc5c5\ub370\uc774\ud2b8 \ud558\ub294 \uba54\uc18c\ub4dc\ub97c \ud638\ucd9c\ud55c \uc148\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>point3.increaseX = 3;\npoint3.increaseY = 3;\n<\/pre>\n\n\n\n<p>\uc9c0\uae08\uae4c\uc9c0 \ub9cc\ub4e4\uc5c8\ub358 \ubaa8\ub4e0 \ub0b4\uc6a9\uc744 \ud558\ub098\uc758 \ud504\ub85c\uadf8\ub7a8\uc5d0 \ubaa8\uc544\uc11c \uc544\ub798\uc758 darttutorial-20-01.dart\uc5d0 \ud3ec\ud568 \ud558\uc600\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>\/\/ darttutorial-20-01.dart \n\n\/\/ Library for sqrt function inclusion\nimport 'dart:math';\n\nclass Point {\n  \/\/ Instance Variables\n  var x;\n  var y;\n\n  \/\/ Constructor with optional and default parameters\n  Point([var numX = 0, var numY = 0]) {\n    this.x = numX;\n    this.y = numY;\n  }\n\n  \/\/ COnstructor with Class-Name.Identifier-Name\n  Point.fromPoint(Point origin) {\n    this.x = origin.x;\n    this.y = origin.y;\n  }\n\n  \/\/ Instance method to calculate distance\n  num distanceTo(Point other) {\n    var dx = this.x - other.y;\n    var dy = this.y - other.y;\n    return sqrt(dx * dx + dy * dy);\n  }\n\n  \/\/ Getter\n  String get stringify =&gt; \"(${this.x},${this.y})\";\n\n  \/\/ Setter\n  set increaseX(num value) =&gt; this.x += value;\n  set increaseY(num value) =&gt; this.y += value; \n}\n\nvoid main() {\n  var point1 = Point();\n  \/\/ output: [01]$ point1 is (null, null)\n  print(\"[01]\\$ point1 is (${point1.x}, ${point1.y})\");\n\n  point1.x = 4;\n  point1.y = 4;\n  \/\/ output: [02]$ point1 is (4, 4)\n  print(\"[02]\\$ point1 is (${point1.x}, ${point1.y})\");\n\n  var point2 = Point(5, 5);\n  \/\/ output: [03]$ point2 is (5, 5)\n  print(\"[03]\\$ point2 is (${point2.x}, ${point2.y})\");\n\n  var point3 = Point.fromPoint(point2);\n  \/\/ output: [04]$ point3 is (5, 5)\n  print(\"[04]\\$ point3 is (${point3.x}, ${point3.y})\");\n\n  \/\/ output: [05]$ {Instance of 'Point'.runtimeType}\n  print(\"[05]\\$ {$point3.runtimeType}\");\n\n  \/\/ output: [06]$ Distance is 1.4142135623730951\n  print(\"[06]\\$ Distance is ${point1.distanceTo(point3)}\");\n\n  \/\/ output: [07]$ Position of point3 : (5,5)\n  print(\"[07]\\$ Position of point3 : \" + point3.stringify);\n\n  point3.increaseX = 3;\n  point3.increaseY = 3;\n  \/\/ output: [08]$ Position of point3 : (8,8)\n  print(\"[08]\\$ Position of point3 : \" + point3.stringify);\n}\n<\/pre>\n\n\n\n<p>\uc18c\uc2a4 \ucf54\ub4dc\ub0b4\uc758 print \uad6c\ubb38 \uc704\uc5d0 \uc2e4\ud589 \uacb0\uacfc\ub97c \ud3ec\ud568\ud558\uc600\uc9c0\ub9cc, \ucd9c\ub825 \uacb0\uacfc\ub97c \ud558\ub098\ub85c \ubaa8\uc544\uc11c \ub2e4\uc74c\uacfc \uac19\uc774 \ub098\uc5f4 \ud558\uc600\uc73c\ub2c8, \ucc38\uc870\ud558\uae30 \ubc14\ub78d\ub2c8\ub2e4. <\/p>\n\n\n\n<pre>[01]$ point1 is (0, 0)\n[02]$ point1 is (4, 4)\n[03]$ point2 is (5, 5)\n[04]$ point3 is (5, 5)\n[05]$ {Instance of 'Point'.runtimeType}\n[06]$ Distance is 1.4142135623730951\n[07]$ Position of point3 : (5,5)\n[08]$ Position of point3 : (8,8)\n<\/pre>\n\n\n\n<p>\uc9c0\uae08\uae4c\uc9c0 \ud074\ub798\uc2a4\ub97c \ub9cc\ub4dc\ub294 \ubc95\uc5d0 \ub300\ud574\uc11c \uc54c\uc544 \ubcf4\uc558\uc2b5\ub2c8\ub2e4. \ud074\ub798\uc2a4\ub97c \ub9cc\ub4e4\uc5b4\uc11c \uba64\ubc84 \ub370\uc774\ud0c0\uc640 \uba64\ubc84 \uba54\uc18c\ub4dc\ub97c \ud3ec\ud568\ud558\uc600\uc2b5\ub2c8\ub2e4. \uc774\ub807\uac8c \ub2e8\uc21c\ud55c \ud615\ud0dc\ub85c \ud074\ub798\uc2a4\ub97c \ub9cc\ub4e4\uc5b4\uc11c \uc0ac\uc6a9\ud558\ub294 \uacbd\uc6b0\ub3c4 \uc790\uc8fc \uc788\ub294 \uc0ac\uc6a9\ubc95 \uc785\ub2c8\ub2e4. \ud558\uc9c0\ub9cc, \ud074\ub798\uc2a4\ub97c \uc0ac\uc6a9\ud558\ub294 \uacbd\uc6b0\ub294 \ub300\ubd80\ubd84 &#8216;Subclassing&#8217; \ud639\uc740 &#8216;\uc720\uc804\uc758 \ubc95\uce59(inheritance)&#8217;\ub97c \ud1b5\ud574\uc11c \uc7ac\uc0ac\uc6a9\uc774\ub77c\ub294 \uac1c\ub150\uc744 \uc2e4\ucc9c\ud558\ub294 \uacbd\uc6b0\uac00 \uc77c\ubc18\uc801\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<h4>Subclassing (<em>extends<\/em> syntax &amp; <em>Object<\/em> Class)<\/h4>\n\n\n\n<p>Subclassing\uc740 \ud2b9\uc815 Class\uc5d0 \ucd94\uac00\ub85c \ub370\uc774\ud0c0\uc640 \uae30\ub2a5\uc744 \ub123\uc5b4\uc11c \ud655\uc7a5\ud558\ub294 \uac1c\ub150\uc785\ub2c8\ub2e4. \ud655\uc7a5\uc774\ub77c\ub294 \ub2e8\uc5b4\ub97c \ud65c\uc6a9\ud574\uc11c \ubb38\ubc95\uc774\ub984\uc774 <em>extends<\/em> \uc785\ub2c8\ub2e4. \uc815\ub9ac\ud574\uc11c \uc774\uc57c\uae30\ud558\uba74, \uae30\ubc18\uc774 \ub418\ub294 Base Class\uc5d0 \ucd94\uac00\uc801\uc778 \uae30\ub2a5\uc744 \ub123\uc5b4\uc11c \ud655\uc7a5(extends)\ud558\uba74, \uc0c8\ub85c\uc6b4 \ud074\ub798\uc2a4\uc778 Subclass\ub97c \ub9cc\ub4e4\uac8c \ub418\ub294 \uac81\ub2c8\ub2e4. \uc774\ub54c \ud655\uc7a5\ub418\uc11c \ub9cc\ub4e4\uc5b4\uc9c4 Subclass\ub294 \uae30\ubc18\uc774 \ub418\uc5c8\ub358 Base Class\ub97c Super Class \ub77c\uace0\ub3c4 \ubd80\ub985\ub2c8\ub2e4. <\/p>\n\n\n\n<p>\uc804\ud1b5\uc801\uc73c\ub85c \ub2e4\ub978 \uc5b8\uc5b4\ub4e4\uc740 Inheritance \ub77c\ub294 \ub2e8\uc5b4\ub97c \ub354 \ub9ce\uc774 \uc4f0\uae30\ub294 \ud569\ub2c8\ub2e4. \uc774\uc720\ub294 \ubd80\ubaa8 \ud074\ub798\uc2a4(parent class)\uc5d0\uc11c \uc790\uc2dd \ud074\ub798\uc2a4(child class)\ub97c \ub9cc\ub4e0\ub2e4\ub294 \uac1c\ub150\uc778\ub370, \uc790\uc2dd\uc774 \ubd80\ubaa8\uc758 DNA\ub97c \ubb3c\ub824 \ubc1b\ub294 \ub2e4\ub294 \uac1c\ub150\uc5d0\uc11c, \ubd80\ubaa8\uc758 \ubaa8\ub4e0 \ub370\uc774\ud0c0\uc640 \uae30\ub2a5\uc774 \uc790\uc2dd\uc5d0\uac8c \uc720\uc804\uc774 \ub418\uace0, \uc790\uc2dd \uc2a4\uc2a4\ub85c\uc758 \ub370\uc774\ud0c0\uc640 \uae30\ub2a5\uc774 \ucd94\uac00\ub41c\ub2e4\ub294 \uc758\ubbf8\uc785\ub2c8\ub2e4. <\/p>\n\n\n\n<p>\uc774 \uae00\uc5d0\uc11c\ub294 Dart \uc5b8\uc5b4\uc5d0\uc11c \uc8fc\ub85c \uc0ac\uc6a9\ud558\ub294 superclass, subclass, extends\uc758 \ub2e8\uc5b4\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc124\uba85\uc744 \ud574 \ub098\uac00\ub3c4\ub85d \ud558\uaca0\uc2b5\ub2c8\ub2e4. \uadf8\ub9ac\uace0 \ucc38\uace0\ub85c Dart \uc5b8\uc5b4\uc758 \ubaa8\ub4e0 \ud074\ub798\uc2a4\ub4e4\uc740 <em>Object<\/em> \ub77c\ub294 \ud074\ub798\uc2a4\uc5d0\uc11c extends \ub418\uc5b4 \ub9cc\ub4e4\uc5b4\uc9c4 \ud074\ub798\uc2a4\ub4e4\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\uc774 \uae00\uc5d0\uc11c\ub294 subclassing\uc744 \uc124\uba85\ud558\uae30 \uc704\ud55c \ubaa9\uc801\uc73c\ub85c, \uc55e\uc11c\uc758 Point \ud074\ub798\uc2a4\ub97c extends\ud574\uc11c ColorPoint \ud074\ub798\uc2a4\ub97c \ub9cc\ub4e4\uace0\uc790 \ud569\ub2c8\ub2e4. \uc774\ub294 Point \ud074\ub798\uc2a4\uc758 \uacbd\uc6b0\ub294 \ub2e8\uc21c\ud788 \uc88c\ud45c\uac12\ub9cc \uac00\uc9c0\uace0 \uc788\uc9c0\ub9cc, ColorPoint\ub294 \uc810\uc5d0 \uc0c9\uae54\uc744 \uc785\ud788\ub824\ub294 \ubaa9\uc801\uc73c\ub85c Point \ud074\ub798\uc2a4\ub97c extends \ud558\uace0\uc790 \ud569\ub2c8\ub2e4. Point\uc5d0\uc11c extends\ud55c ColorPoint\ub97c \ub2e4\uc74c\uacfc \uac19\uc774 \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>class ColorPoint extends Point {\n}\n<\/pre>\n\n\n\n<p>\uc774\ub807\uac8c \ud558\ub294 \uac83 \ub9cc\uc73c\ub85c, Point \ud074\ub798\uc2a4\uc758 \ubaa8\ub4e0 \ub370\uc774\ud0c0\uc640 \uba54\uc18c\ub4dc\ub294 \ubaa8\ub450 ColorPoint\uc5d0 \ud3ec\ud568\ub429\ub2c8\ub2e4. { &#8230; } \uc548\uc5d0 \uc544\ubb34\uac83\ub3c4 \uc801\uc9c0 \uc54a\uc740 \uc0c1\ud0dc\uc5d0\uc11c, main()\uc5d0\uc11c \ub2e4\uc74c\uacfc \uac19\uc774 \uc2e4\ud589\ud558\uba74, \uc55e\uc11c Point \ud074\ub798\uc2a4\uc5d0\uc11c \uc815\uc758\ud55c \uae30\ub2a5\ub4e4\uc774 \uadf8\ub300\ub85c \ub3d9\uc791\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>var cPoint1 = ColorPoint();\n\/\/ output : [01]$ Position of cPoint1 : (0,0)\nprint(\"[01]\\$ Position of cPoint1 : \" + cPoint1.stringify);\n<\/pre>\n\n\n\n<p>\uc774\uc81c ColorPoint \ud074\ub798\uc2a4\uc5d0 Instance Variables\ub97c \ucd94\uac00 \ud558\uaca0\uc2b5\ub2c8\ub2e4. \ud751\ubc31\uc758 \uacbd\uc6b0\ub294 \ud751 \ud639\uc740 \ubc31\uc758 \uc774\uc9c4 \uac12\uc774\uc9c0\ubbf8\ub098, \uceec\ub7ec \uac12\uc744 \ub098\ud0c0\ub0b4\ub824\uba74 R, G\uc640 B\uc758 \uc138\uac00\uc9c0 \uc0bc\uc6d0\uc0c9\uc774 \ud569\uccd0\uc838\uc57c \ud569\ub2c8\ub2e4. \ub530\ub77c\uc11c { red, green, blue } \uc138 \uac12\uc744 subclass\uc778 ColorPoint\uc5d0\uc11c \uba64\ubc84 \ub370\uc774\ud0c0\ub85c \uac16\ub3c4\ub85d \ud569\ub2c8\ub2e4. \uadf8\ub9ac\uace0 \uac00\uc7a5 \uae30\ubcf8\uc801\uc73c\ub85c constructor\ub97c \ub9cc\ub4e4\uc5b4\uc11c, \uc138\uac00\uc9c0 \uc0c9\uae54\uc744 \ubc1b\ub3c4\ub85d \ud558\uace0, \ucd94\uac00\ub85c super class\uc778 Point\uc758 (x,y) \ud30c\ub77c\uba54\ud0c0\ub97c \ucd08\uae30\ud654 \ud558\ub294 \ud615\ud0dc\ub85c \ub9cc\ub4ed\ub2c8\ub2e4. Point \uacbd\uc6b0 \ucc98\ub7fc, \uc785\ub825 \ud30c\ub77c\uba54\ud0c0\ub97c \uc8fc\uc9c0 \uc54a\uc73c\uba74, default\ub85c \uc138\uac00\uc9c0 \uc0c9\uae54 \ubc0f \uc88c\ud45c\uac00 0\uc778 \uac83\uc73c\ub85c \ucd08\uae30\ud654 \ud558\ub3c4\ub85d \ud558\uaca0\uc2b5\ub2c8\ub2e4. \uc774\ub807\uac8c \uac1c\uc120\ud55c ColorPoint \ud074\ub798\uc2a4\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. <\/p>\n\n\n\n<pre>class ColorPoint extends Point {\n  int red;\n  int green;\n  int blue;\n\n  ColorPoint([int r = 0, int g = 0, int b = 0, int x = 0, int y = 0]) : super(x, y) {\n    this.red = r;\n    this.green = g;\n    this.blue = b;\n  }\n}\n<\/pre>\n\n\n\n<p>\uc774\uc81c ColorPoint \ud074\ub798\uc2a4\ub294 Point \ud074\ub798\uc2a4\uc758 \uc88c\ud45c \uac12\uc5d0 \ucd94\uac00\ub85c 3\uac00\uc9c0 \uc0c9\uae54\uc744 \uba64\ubc84 \ub370\uc774\ud130\ub85c \uc800\uc7a5\ud569\ub2c8\ub2e4. \uadf8\ub9ac\uace0 contructor\ub97c \ud1b5\ud574\uc11c, \uc544\ubb34\ub7f0 \uac12\uc774 \uc5c6\uc73c\uba74 \ubaa8\ub4e0 \uac12\uc744 0\uc73c\ub85c \uc124\uc815\ud558\uac70\ub098, \ub2e4\uc12f \uac00\uc9c0\uc758 \uac12\uc744 \uc8fc\uba74 subclass\uc758 3\uac00\uc9c0 \uc0c9\uae54\uc744 \ucc44\uc6b0\uace0, super class\uc758 \uc88c\ud45c\uac12\uc744 \ucc44\uc6b0\ub294 \uc791\uc5c5\uc744 \ud569\ub2c8\ub2e4. \uc5ec\uae30\uc11c ColorPoint\uc758 constructor\ub97c \ubcf4\uba74, subclass\uc758 3\uac00\uc9c0 \uc0c9\uae54\uc740 constructor \uc548\uc5d0\uc11c \uac12\uc744 \ucd08\uae30\ud654 \ud558\uc9c0\ub9cc, super class\uc758 x, y \uc88c\ub8cc\ub294 &#8220;: super(x, y)&#8221;\ub85c \ub418\uc5b4 \uc788\ub294 \uac83\uc744 \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc5ec\uae30\uc11c super\ub294 super class\uc758 constructor\ub97c \ud638\ucd9c\ud55c \uac83\uc785\ub2c8\ub2e4. \ub530\ub77c\uc11c Point \ud074\ub798\uc2a4\uc758 Point( x, y )\ub97c \ud638\ucd9c\ud55c\ub2e4\uace0 \ubcf4\uba74 \ub429\ub2c8\ub2e4. \uc774\ub807\uac8c subclass\uc5d0\uc11c\ub294 \ud544\uc694\ud55c \uacbd\uc6b0\uc5d0 \uac15\uc81c\uc801\uc73c\ub85c super class\uc758 \uba54\uc18c\ub4dc\ub97c \ud638\ucd9c\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>var cPoint2 = ColorPoint(100, 100, 100, 3, 3);\n\/\/ output : [02]$ Color of cPoint2 : 100 100 100\nprint(\"[02]\\$ Color of cPoint2 : \" + \"${cPoint2.red} ${cPoint2.green} ${cPoint2.blue}\");\n\/\/ output : [03]$ Position of cPoint2 : (3,3)\nprint(\"[03]\\$ Position of cPoint2 : \" + cPoint2.stringify);\n<\/pre>\n\n\n\n<p>\uc704\ucc98\ub7fc main()\uc5d0\uc11c \uc218\ud589\uc744 \ud558\uba74 \ub2e4\uc74c\uacfc \uac19\uc740 \ucd9c\ub825\uc744 \ubcf4\uc5ec\uc90d\ub2c8\ub2e4. Color \uac12\uc774 \ubaa8\ub450 100\uc73c\ub85c \ucc44\uc6cc\uc838 \uc788\uace0, \uc88c\ud45c \uac12\uc740 (3,3)\uc73c\ub85c \ub9cc\ub4e4\uc5b4\uc838 \uc788\ub294 \uac83\uc744 \ud655\uc778 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>[01]$ Position of cPoint1 : (0,0)\n[02]$ Color of cPoint2 : 100 100 100\n[03]$ Position of cPoint2 : (3,3)\n<\/pre>\n\n\n\n<p>super \ubb38\ubc95\uc744 \ub2e4\uc2dc \ud55c\ubc88 \ub354 \ud65c\uc6a9\ud558\uae30 \uc704\ud574\uc11c, \uc774\ubc88\uc5d0\ub294 subclass\uc5d0\uc11c super class\uc758 stringfy property\ub97c \uac1c\uc120\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4. Point \ud074\ub798\uc2a4\uc5d0\ub294 \uc88c\ud45c\uac12\ub9cc \ucd9c\ub825\uc744 \ud588\uc9c0\ub9cc, ColorPoint\uc758 stringfy\ub294 \uc88c\ud45c\uc5d0 \ucd94\uac00\uc801\uc73c\ub85c \uc0c9\uae54\uc744 \ucd9c\ub825\ud558\uac8c \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>String get stringify =&gt; \"${super.stringify} with (${this.red},${this.green},${this.red})\";\n<\/pre>\n\n\n\n<p>\uc774\ub807\uac8c stringfy\ub97c \uc218\uc815 \ud55c\ud6c4, \ub2e4\uc2dc \ud55c\ubc88 \uc704\uc758 \uacb0\uacfc\ub97c \ucd9c\ub825\ud558\uba74, \ub2e4\uc74c\uacfc \uac19\uc774 \ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>[01]$ Position of cPoint1 : (0,0) with (0,0,0)\n[02]$ Color of cPoint2 : 100 100 100\n[03]$ Position of cPoint2 : (3,3) with (100,100,100)\n<\/pre>\n\n\n\n<h4>Overriding Members<\/h4>\n\n\n\n<p>Override\ub294 subclass\uc5d0\uc11c super class\uc758 \uba54\uc18c\ub4dc, getter, setter\uc640 \uac19\uc740 \uc774\ub984\uc73c\ub85c \uac19\uc740 \ud0c0\uc785\uc758 \ud568\uc218\ub97c \ub9cc\ub4dc\ub294 \uac83\uc744 \uc758\ubbf8\ud55c\ub2e4. \uc774\ub7f0 \uacbd\uc6b0\ub294, \ub300\ubd80\ubd84 super class\uc758 \ud568\uc218\ub97c \uac15\ud654\ud558\uac70\ub098, \ud639\uc740 super class\uc758 \uc791\uc5c5\uc744 \uc644\uc804\ud788 \uc0c8\ub85c\uc6b4 \uc791\uc5c5\uc73c\ub85c \ub300\uccb4\ud558\ub294 \ubaa9\uc801\uc73c\ub85c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uc774\ubbf8 \uc6b0\ub9ac\ub294 \uc55e\uc11c\uc758 ColorPoint\ub97c \ub9cc\ub4e4\ub54c, ColorPoint\uc758 \ub0b4\ubd80\uc5d0 getter\ub97c \ub9cc\ub4e4\uc5c8\ub294\ub370, super class\uc778 Point \ud074\ub798\uc2a4\uc5d0 \uc774\ubbf8 \uc874\uc7ac\ud558\ub294 &#8220;String get stringify&#8221; \ud615\ud0dc\ub85c \ub9cc\ub4e0 \uac83\uc744 \ubcf4\uc558\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c, ColorPoint\ub294 super class\uc778 Point \ud074\ub798\uc2a4\uc758 getter\uc778 stringfy\ub97c override \ud558\uc600\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c, \uc704\uc758 ColorPoint\uc758 stringfy \uad6c\ubb38\uc744 \ubcf4\uba74, \ucd94\uac00\ub41c \uae30\ub2a5\uc778 \uc138\uac00\uc9c0 \uc0c9\uae54\uc744 \ucd9c\ub825\ud558\ub294 \ud615\ud0dc\ub97c \ub9cc\ub4e0\ud6c4, super class\uc5d0 \uc874\uc7ac\ud558\uba74\uc11c overried\ub41c Point \ud074\ub798\uc2a4\uc758 stringfy\ub97c \uc2e4\ud589\ud558\uc5ec, \uc88c\ud45c\ub97c \ucd94\uac00\ub85c \uac00\uc838\uc624\ub3c4\ub85d \ud558\uc600\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p>Dart\uc5d0\uc11c\ub294 subclass\uc5d0\uc11c super class\uc758 \ud568\uc218(\uba54\uc18c\ub4dc, getter, setter)\ub97c override\ud558\ub294 \uac83\uc744 \uba85\ud655\ud558\uac8c \ub4dc\ub7ec\ub0b4\ub294 \ubb38\ubc95\uc73c\ub85c @override\uc774 \uc788\uc73c\uba70, \uc55e\uc11c\uc758 ColorPoint \ud074\ub798\uc2a4\uc758 stringfy\uc5d0 \ub2e4\uc74c\uacfc \uac19\uc774 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <\/p>\n\n\n\n<pre>@override\nString get stringify =&gt; \"${super.stringify} with (${this.red},${this.green},${this.red})\";\n<\/pre>\n\n\n\n<p>@override\uac00 \uc5c6\ub354\ub77c\ub3c4 override\ub97c \ud558\ub294 \uac83\uc5d0\ub294 \ubb38\uc81c\uac00 \uc5c6\uc9c0\ub9cc, \ud574\ub2f9 \ud568\uc218\uac00 \uba85\ud655\ud558\uac8c super class\uc758 \ud568\uc218\ub97c override\ud558\ub294 \uac83\uc73c\ub85c \ud588\uc73c\ubbc0\ub85c, \uac1c\ubc1c\uc790\uac00 subclass\uc5d0\uc11c \uc791\uc5c5\uc744 \ud560\ub54c, \ubc18\ub4dc\uc2dc super class\uc5d0\ub294 \ud574\ub2f9 \ud568\uc218\uac00 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uc758\ubbf8\ub97c \ud65c\uc6a9\ud558\uc5ec editor \ub4f1\uc5d0\uc11c super class\uc758 \ud574\ub2f9 \ud568\uc218\uc758 \uc774\ub984\uc774 \ubc14\ub00c\uac70\ub098 \ud558\ub294 \ub4f1\uc758 \uc0c1\ud669\uc5d0\uc11c\ub3c4 \uc624\ub958\ub97c \ubc29\uc9c0\ud560 \uc218 \uc788\ub3c4\ub85d \ub3c4\uc6c0\uc744 \uc904 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p>Overriding \ud560 \uc218 \uc788\ub294 \ud568\uc218\ub294 \uba64\ubc84 \uba54\uc18c\ub4dc, getter, setter \uc678\uc5d0 Dart\uc758 \ud45c\uc900 \uc5f0\uc0b0\uc790\ub4e4\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \uc989, +, -, *, \/, ~\/, % \uc678\uc5d0 &lt;&lt;, &gt;&gt;, == \ub4f1\uc758 \uc5f0\uc0b0\uc790 \uae30\ud638\ub4e4\ub3c4 override\uac00 \uac00\ub2a5\ud569\ub2c8\ub2e4. \uc774\ub294 \uc0c8\ub86d\uac8c \ub9cc\ub4e0 \ud074\ub798\uc2a4\uc5d0 \ub300\ud574\uc11c\ub294 \uae30\uc874\uc758 \uc5f0\uc0b0\uc790\uac00 \uc815\ubcf4\uac00 \uc5c6\uc5b4\uc11c \ucc98\ub9ac\ub97c \ud560 \uc218 \uc5c6\uae30 \ub54c\ubb38\uc5d0, \uc0c8\ub85c\uc6b4 \ud074\ub798\uc2a4\ub97c \ub9cc\ub4e0 \uac1c\ubc1c\uc790\uac00 \uc9c1\uc811 \uc774 \uc5f0\uc0b0\uc790\ub4e4\uc774 \uc0c8\ub85c\uc6b4 \ud074\ub798\uc2a4 \ud0c0\uc785\uc744 \ub9cc\ub0ac\uc744\ub54c \uc5b4\ub5bb\uac8c \ub3d9\uc791\ud574\uc57c \ud560\uc9c0\ub97c \uc815\ud574\uc918\uc57c \ud558\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4. \uc774\ub97c \uc608\uc2dc\ub85c \ubcf4\uc5ec\uc8fc\uae30 \uc704\ud574\uc11c, ColorPoint \uac1d\uccb4\uac00 + \uc5f0\uc0b0\uc790\uc5d0 \ubc18\uc751\ud560 \uc218 \uc788\ub3c4\ub85d, \ud45c\uc900 \uc5f0\uc0b0\uc790\uc778 + \uc5f0\uc0b0\uc790\ub97c override \ud558\ub3c4\ub85d \ud569\ub2c8\ub2e4. \uc774 \ucf54\ub4dc\uac00 \uc544\ub798\uc5d0 \ub098\ud0c0\ub098 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>ColorPoint operator +(ColorPoint p) =&gt; ColorPoint(255, 255, 255, this.x + p.x, this.y + p.y);\n<\/pre>\n\n\n\n<p>\uad6c\ubb38\uc744 \uc0c1\uc138\ud558\uac8c \uc124\uba85\ud558\uba74, ColorPoint p \uac1d\uccb4\ub97c \uc785\ub825\uc73c\ub85c \ubc1b\uc544\uc11c, ColorPoint\ub97c \uacb0\uacfc\uac12\uc73c\ub85c return\ud558\ub294 operator + \uc5f0\uc0b0\uc790\ub97c \uc7ac\uc815\uc758 \ud55c\ub2e4\ub294 \uc758\ubbf8\uc785\ub2c8\ub2e4. return \ud558\ub294 \uc0c8\ub85c\uc6b4 ColorPoint \uac1d\uccb4\ub294 \ubaa8\ub4e0 \uc0c9\uae54 \uac12\uc744 255\ub85c \ud558\uace0, \uc88c\ud45c\uac12\uc740 \ub450 \uc88c\ud45c\ub97c \ud569\ud55c \uac12\uc73c\ub85c \uc5c5\ub370\uc774\ud2b8 \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p>darttutorial-20-01.dart\uc5d0\uc11c \ub9cc\ub4e0 Point \ud074\ub798\uc2a4\ub97c \uae30\ubc18\uc73c\ub85c \ud574\uc11c, subclassing\uacfc overriding\uc744 \ud1b5\ud574 \ud655\uc7a5\ud55c \ub0b4\uc6a9\uc744 darttutorial-20-02.dart\uc5d0 \ubaa8\uc544 \ub450\uc5c8\uc2b5\ub2c8\ub2e4. \uc18c\uc2a4 \ud504\ub85c\uadf8\ub7a8\uc744 \ucc9c\ucc9c\ud788 \uc77d\uc73c\uba74\uc11c \uc774\ud574\ud558\uae30 \ubc14\ub78d\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>\/\/ darttutorial-20-02.dart \n\n\/\/ Library for sqrt function inclusion\nimport 'dart:math';\n\nclass Point {\n  \/\/ Instance Variables\n  var x;\n  var y;\n\n  \/\/ Constructor with optional and default parameters\n  Point([var numX = 0, var numY = 0]) {\n    this.x = numX;\n    this.y = numY;\n  }\n\n  \/\/ COnstructor with Class-Name.Identifier-Name\n  Point.fromPoint(Point origin) {\n    this.x = origin.x;\n    this.y = origin.y;\n  }\n\n  \/\/ Instance method to calculate distance\n  num distanceTo(Point other) {\n    var dx = this.x - other.y;\n    var dy = this.y - other.y;\n    return sqrt(dx * dx + dy * dy);\n  }\n\n  \/\/ Getter\n  String get stringify =&gt; \"(${this.x},${this.y})\";\n\n  \/\/ Setter\n  set increaseX(num value) =&gt; this.x += value;\n  set increaseY(num value) =&gt; this.y += value; \n}\n\nclass ColorPoint extends Point {\n  \/\/ Instance Variables\n  int red;\n  int green;\n  int blue;\n\n  \/\/ Constructor with optional and default parameters\n  ColorPoint([int r = 0, int g = 0, int b = 0, int x = 0, int y = 0]) : super(x, y) {\n    this.red = r;\n    this.green = g;\n    this.blue = b;\n  }\n\n  \/\/ Getter\n  @override\n  String get stringify =&gt; \"${super.stringify} with (${this.red},${this.green},${this.red})\";\n\n  \/\/ Overriding generic operators\n  ColorPoint operator +(ColorPoint p) =&gt; ColorPoint(255, 255, 255, this.x + p.x, this.y + p.y);\n}\n\nvoid main() {\n  var cPoint1 = ColorPoint();\n  \/\/ output : [01]$ Position of cPoint1 : (0,0)\n  print(\"[01]\\$ Position of cPoint1 : \" + cPoint1.stringify);\n\n  var cPoint2 = ColorPoint(100, 100, 100, 3, 3);\n  \/\/ output : [02]$ Color of cPoint2 : 100 100 100\n  print(\"[02]\\$ Color of cPoint2 : \" + \"${cPoint2.red} ${cPoint2.green} ${cPoint2.blue}\");\n  \/\/ output : [03]$ Position of cPoint2 : (3,3)\n  print(\"[03]\\$ Position of cPoint2 : \" + cPoint2.stringify);\n\n  var cPoint3 = ColorPoint(1, 1, 1, 5, 5);\n  var cPoint4 = cPoint2 + cPoint3;\n  \/\/ output : [04]$ Color of cPoint4 : 255 255 255\n  print(\"[04]\\$ Color of cPoint4 : \" + \"${cPoint4.red} ${cPoint4.green} ${cPoint4.blue}\");\n  \/\/ output : [05]$ Position of cPoint4 : (8,8) with (255,255,255)\n  print(\"[05]\\$ Position of cPoint4 : \" + cPoint4.stringify);\n}\n<\/pre>\n\n\n\n<p>\uc774 \ud504\ub85c\uadf8\ub7a8\uc758 \ucd9c\ub825\uc740 \uc544\ub798\uc640 \uac19\uc774 \ubcc4\ub3c4\ub85c \ud3ec\ud568\ud558\uc600\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>[01]$ Position of cPoint1 : (0,0) with (0,0,0)\n[02]$ Color of cPoint2 : 100 100 100\n[03]$ Position of cPoint2 : (3,3) with (100,100,100)\n[04]$ Color of cPoint4 : 255 255 255\n[05]$ Position of cPoint4 : (8,8) with (255,255,255)\n<\/pre>\n\n\n\n<h4>\ub9c8\ubb34\ub9ac<\/h4>\n\n\n\n<p>\uc774 \uae00\uc5d0\uc11c\ub294 Using Class\uc5d0\uc11c \uc0ac\uc6a9\ud55c \ud074\ub798\uc2a4\ub97c \uc9c1\uc811 \ub9cc\ub4e4\uc5b4 \ubcf4\ub294 \uc791\uc5c5\uc744 \ud558\uc600\uc2b5\ub2c8\ub2e4. \ud074\ub798\uc2a4\ub97c \ud558\ub098 \ub9cc\ub4e4\uc5b4 \ubcf8 \ud6c4, \uc774\ub97c super class\ub85c \ud558\uc5ec, \ud655\uc7a5\ud55c(extends) subclass\ub97c \ub9cc\ub4e4\uc5b4 \ubcf4\uc558\uc2b5\ub2c8\ub2e4. \uc774\ub807\uac8c \ud568\uc73c\ub85c\uc368, \uae30\ubcf8\uc801\uc778 \ud074\ub798\uc2a4\uc758 \uc124\uacc4\uc640 \uac1c\ubc1c\uc5d0 \ub300\ud574\uc11c \ubc30\uc6e0\uc73c\uba70, \uc880 \ub354 \uc9c4\ubcf4\ub41c \ubb38\ubc95\ub4e4\uc744 \ub2e4\uc74c \uae00\uc5d0\uc11c \ubc30\uc6b0\ub3c4\ub85d \ud558\uaca0\uc2b5\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=\"137\" height=\"49\"\/><\/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; Making Class &#8211; Part.1 &gt; \uc774\uc804\uc758 \uae00\uc778 Using Class\ub97c \ud1b5\ud574\uc11c, \ud074\ub798\uc2a4\uac00 \ubb34\uc5c7\uc774\uba70, Dart \uc5b8\uc5b4\uac00 \uc81c\uacf5\ud558\ub294 \ud074\ub798\uc2a4\ub4e4\uc744 \uc5b4\ub5bb\uac8c \uc0ac\uc6a9\ud558\ub294\uc9c0 \uc774\ud574 \ud558\uc600\uc2b5\ub2c8\ub2e4. \uc774 \uae00\uc5d0\uc11c\ub294 \uac1c\ubc1c\uc790\uac00 \uc9c1\uc811 \ud074\ub798\uc2a4\ub97c \ub9cc\ub4dc\ub294 &#8230;<\/p>\n","protected":false},"author":1,"featured_media":965,"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\/515"}],"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=515"}],"version-history":[{"count":15,"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/posts\/515\/revisions"}],"predecessor-version":[{"id":966,"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/posts\/515\/revisions\/966"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/media\/965"}],"wp:attachment":[{"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/media?parent=515"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/categories?post=515"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/tags?post=515"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}