[
  {
    "path": "LICENSE",
    "content": "               The Artistic License 2.0\n\n           Copyright (c) 2015 独孤求败\n\n     Everyone is permitted to copy and distribute verbatim copies\n      of this license document, but changing it is not allowed.\n\nPreamble\n\nThis license establishes the terms under which a given free software\nPackage may be copied, modified, distributed, and/or redistributed.\nThe intent is that the Copyright Holder maintains some artistic\ncontrol over the development of that Package while still keeping the\nPackage available as open source and free software.\n\nYou are always permitted to make arrangements wholly outside of this\nlicense directly with the Copyright Holder of a given Package.  If the\nterms of this license do not permit the full use that you propose to\nmake of the Package, you should contact the Copyright Holder and seek\na different licensing arrangement.\n\nDefinitions\n\n    \"Copyright Holder\" means the individual(s) or organization(s)\n    named in the copyright notice for the entire Package.\n\n    \"Contributor\" means any party that has contributed code or other\n    material to the Package, in accordance with the Copyright Holder's\n    procedures.\n\n    \"You\" and \"your\" means any person who would like to copy,\n    distribute, or modify the Package.\n\n    \"Package\" means the collection of files distributed by the\n    Copyright Holder, and derivatives of that collection and/or of\n    those files. A given Package may consist of either the Standard\n    Version, or a Modified Version.\n\n    \"Distribute\" means providing a copy of the Package or making it\n    accessible to anyone else, or in the case of a company or\n    organization, to others outside of your company or organization.\n\n    \"Distributor Fee\" means any fee that you charge for Distributing\n    this Package or providing support for this Package to another\n    party.  It does not mean licensing fees.\n\n    \"Standard Version\" refers to the Package if it has not been\n    modified, or has been modified only in ways explicitly requested\n    by the Copyright Holder.\n\n    \"Modified Version\" means the Package, if it has been changed, and\n    such changes were not explicitly requested by the Copyright\n    Holder.\n\n    \"Original License\" means this Artistic License as Distributed with\n    the Standard Version of the Package, in its current version or as\n    it may be modified by The Perl Foundation in the future.\n\n    \"Source\" form means the source code, documentation source, and\n    configuration files for the Package.\n\n    \"Compiled\" form means the compiled bytecode, object code, binary,\n    or any other form resulting from mechanical transformation or\n    translation of the Source form.\n\n\nPermission for Use and Modification Without Distribution\n\n(1)  You are permitted to use the Standard Version and create and use\nModified Versions for any purpose without restriction, provided that\nyou do not Distribute the Modified Version.\n\n\nPermissions for Redistribution of the Standard Version\n\n(2)  You may Distribute verbatim copies of the Source form of the\nStandard Version of this Package in any medium without restriction,\neither gratis or for a Distributor Fee, provided that you duplicate\nall of the original copyright notices and associated disclaimers.  At\nyour discretion, such verbatim copies may or may not include a\nCompiled form of the Package.\n\n(3)  You may apply any bug fixes, portability changes, and other\nmodifications made available from the Copyright Holder.  The resulting\nPackage will still be considered the Standard Version, and as such\nwill be subject to the Original License.\n\n\nDistribution of Modified Versions of the Package as Source\n\n(4)  You may Distribute your Modified Version as Source (either gratis\nor for a Distributor Fee, and with or without a Compiled form of the\nModified Version) provided that you clearly document how it differs\nfrom the Standard Version, including, but not limited to, documenting\nany non-standard features, executables, or modules, and provided that\nyou do at least ONE of the following:\n\n    (a)  make the Modified Version available to the Copyright Holder\n    of the Standard Version, under the Original License, so that the\n    Copyright Holder may include your modifications in the Standard\n    Version.\n\n    (b)  ensure that installation of your Modified Version does not\n    prevent the user installing or running the Standard Version. In\n    addition, the Modified Version must bear a name that is different\n    from the name of the Standard Version.\n\n    (c)  allow anyone who receives a copy of the Modified Version to\n    make the Source form of the Modified Version available to others\n    under\n\n    (i)  the Original License or\n\n    (ii)  a license that permits the licensee to freely copy,\n    modify and redistribute the Modified Version using the same\n    licensing terms that apply to the copy that the licensee\n    received, and requires that the Source form of the Modified\n    Version, and of any works derived from it, be made freely\n    available in that license fees are prohibited but Distributor\n    Fees are allowed.\n\n\nDistribution of Compiled Forms of the Standard Version\nor Modified Versions without the Source\n\n(5)  You may Distribute Compiled forms of the Standard Version without\nthe Source, provided that you include complete instructions on how to\nget the Source of the Standard Version.  Such instructions must be\nvalid at the time of your distribution.  If these instructions, at any\ntime while you are carrying out such distribution, become invalid, you\nmust provide new instructions on demand or cease further distribution.\nIf you provide valid instructions or cease distribution within thirty\ndays after you become aware that the instructions are invalid, then\nyou do not forfeit any of your rights under this license.\n\n(6)  You may Distribute a Modified Version in Compiled form without\nthe Source, provided that you comply with Section 4 with respect to\nthe Source of the Modified Version.\n\n\nAggregating or Linking the Package\n\n(7)  You may aggregate the Package (either the Standard Version or\nModified Version) with other packages and Distribute the resulting\naggregation provided that you do not charge a licensing fee for the\nPackage.  Distributor Fees are permitted, and licensing fees for other\ncomponents in the aggregation are permitted. The terms of this license\napply to the use and Distribution of the Standard or Modified Versions\nas included in the aggregation.\n\n(8) You are permitted to link Modified and Standard Versions with\nother works, to embed the Package in a larger work of your own, or to\nbuild stand-alone binary or bytecode versions of applications that\ninclude the Package, and Distribute the result without restriction,\nprovided the result does not expose a direct interface to the Package.\n\n\nItems That are Not Considered Part of a Modified Version\n\n(9) Works (including, but not limited to, modules and scripts) that\nmerely extend or make use of the Package, do not, by themselves, cause\nthe Package to be a Modified Version.  In addition, such works are not\nconsidered parts of the Package itself, and are not subject to the\nterms of this license.\n\n\nGeneral Provisions\n\n(10)  Any use, modification, and distribution of the Standard or\nModified Versions is governed by this Artistic License. By using,\nmodifying or distributing the Package, you accept this license. Do not\nuse, modify, or distribute the Package, if you do not accept this\nlicense.\n\n(11)  If your Modified Version has been derived from a Modified\nVersion made by someone other than you, you are nevertheless required\nto ensure that your Modified Version complies with the requirements of\nthis license.\n\n(12)  This license does not grant you the right to use any trademark,\nservice mark, tradename, or logo of the Copyright Holder.\n\n(13)  This license includes the non-exclusive, worldwide,\nfree-of-charge patent license to make, have made, use, offer to sell,\nsell, import and otherwise transfer the Package with respect to any\npatent claims licensable by the Copyright Holder that are necessarily\ninfringed by the Package. If you institute patent litigation\n(including a cross-claim or counterclaim) against any party alleging\nthat the Package constitutes direct or contributory patent\ninfringement, then this Artistic License to you shall terminate on the\ndate that such litigation is filed.\n\n(14)  Disclaimer of Warranty:\nTHE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS \"AS\nIS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED\nWARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR\nNON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL\nLAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL\nBE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL\nDAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF\nADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n"
  },
  {
    "path": "README.md",
    "content": "## Java\n * 27天成为Java大神\n \n## Disclaimer\n  版权归原作者所有，欢迎自由转载-非商用-非衍生-保持署名和链接。\n"
  },
  {
    "path": "day01/code/01_HelloWorld案例/HelloWorld.java",
    "content": "class HelloWorld {\n\tpublic static void main(String[] args) {\n\t\tSystem.out.println(\"Ұϼ\");\n\t}\n}"
  },
  {
    "path": "day01/code/01_HelloWorld案例/Student.java",
    "content": "//עͣڽ˵\n/*\n\tע͵ķࣺ\n\t\tע һڽ˵г \n\t\t\tʽǣ//ע\n\t\tע һڽ˵г\n\t\t\tʽǣ\n\t\tĵע һǶ߷˵javadoc߽һĵ˵顣\n\t\t\tʽǣ\n*/\n\n//ע⣺עͲǶдעͿԡ\n\n//ҵѧ\n//classjava\n//ĸʽǣclass \n\n/*\n\tҵѧ\n\tclassjava\n\tĸʽǣclass \n*/\n\n/**  */\nclass Student {\n\tpublic static void main(String[] args) {\n\t\tSystem.out.println(\"ѧ\");\n\t}\n}"
  },
  {
    "path": "day01/code/02_带注释的HelloWorld案例/Demo.java",
    "content": "/*\n\tע͵ã\n\t\tA:˵߳Ķ\n\t\tB:԰ǵԳ\n*/\nclass Demo {\n\tpublic static void main(String[] args) {\n\t\tSystem.out.println(\"HelloWorld\");\n\t\tSystem.out.println(\"Ұϼ\");\n\t\tSystem.out.println(\"ҰJava\");\n\t\tSystem.out.println(\"Ұ\");\n\t}\n}"
  },
  {
    "path": "day01/code/02_带注释的HelloWorld案例/HelloWorld.java",
    "content": "/*\n\tҪHelloWorld\n\n\t\n\t\tA:javaĵλ࣬Ҫһ\n\t\tB:javaҪܹУ\n\t\tC:Ҫ\n\n\t裺\n\t\tA:ĸʽ\n\t\t\tclass  {\n\t\t\t\t//\n\t\t\t}\n\t\tB:ĸʽ\n\t\t\tpublic static void main(String[] args) {\n\t\t\t\t//\n\t\t\t}\n\t\tC:ĸʽ\n\t\t\tSystem.out.println(\"ǿԸ\");\n\n\tǵ˼ôֳ\n*/\n//ҵĴע͵HelloWorld\n//class\nclass HelloWorld {\n\t/*\n\t\tmain\n\t\tmainǳ\n\t\tjvmԶmain\n\t*/\n\tpublic static void main(String[] args) {\n\t\t//\n\t\tSystem.out.println(\"HelloWorld\");\n\t}\n}"
  },
  {
    "path": "day01/code/03_关键字/KeyWord.java",
    "content": "/*\n\tؼ֣JavaԸضĵ\n\n\tؼֵص㣺ؼֶСд\n\n\tؼע\n\t\tA:gotoconstΪִ,Ŀǰʹ\n\t\tB:Editplusĸ߼±,Թؼɫǣǳֱ\n*/\nclass KeyWord {\n\tpublic static void main(String[] args) {\n\t\tSystem.out.println(\"HelloWorld\");\n\t}\n}"
  },
  {
    "path": "day01/code/04_标识符/NameDemo.java",
    "content": "/*\n\tʶǸ,ӿ,,ʱʹõַ(ַ)\n\n\tɹ\n\t\tA:ӢĸСд\n\t\tB:\n\t\tC:_$\n\n\tע\n\t\tA:ֿͷ\n\t\tB:JavaеĹؼ\n\t\tC:ִСд\n\t\t\tStudent,student \n\n\t򣺼֪\n\t\tA: ʵļ,ڽͬ\n\t\t\tȫСд\n\t\t\tcom\n\t\t\t༶cn.itcast\n\n\t\tB:߽ӿ\n\t\t\tһʣĸд\n\t\t\t\tStudent,Person,Teacher\n\t\t\tʣÿʵĸд\n\t\t\t\tHelloWorld,MyName,NameDemo\n\n\t\tC:߱\n\t\t\tһʣȫСд\n\t\t\t\tname,age,show()\n\t\t\tʣӵڶʿʼÿĸд\n\t\t\t\tmyName,showAllStudentNames()\n\n\t\tD:\n\t\t\tһʣȫд\n\t\t\t\tAGE\n\t\t\tʣÿʶд_\n\t\t\t\tSTUDENT_MAX_AGE\n*/\nclass NameDemo {\n\tpublic static void main(String[] args) {\n\t\tSystem.out.println(\"Hello World!\");\n\t}\n}"
  },
  {
    "path": "day01/code/04_标识符/基础班/Student.txt",
    "content": ""
  },
  {
    "path": "day01/code/04_标识符/就业班/Student.txt",
    "content": ""
  },
  {
    "path": "day01/day01总结.txt",
    "content": "1:(˽)\n\t(1)\n\t(2)Ӳ\n\t(3)\n\t(4)\n\t(5)\n\t(6)˻ʽ()\n\t\tA:ͼλ淽ʽ\n\t\tB:зʽ\n\t(7)̵Ĺܼʶ\n\t(8)õĿݼ( Լݼ)\n\t\tA:ȫѡ\n\t\tB:\n\t\tC:ճ\n\t\tD:\n\t\tE:\n\t\tF:\n\n2:DOS()\n\t(1)л̷()\n\t\td: س\n\t(2)ʾĳĿ¼µļļ()\n\t\tdir س\n\t(3)ļ\n\t\tmd ļ س\n\t(4)ɾļ\n\t\trd ļ س\n\t(5)Ŀ¼()\n\t\t cd Ŀ¼ \n\t\t༶ cd Ŀ¼1\\Ŀ¼2\\...\n\t(6)Ŀ¼()\n\t\t cd..\n\t\t˸Ŀ¼ cd\\\n\t(7)ɾļ\n\t\tdel ļ\n\t\t*.txt Աʾļ\n\t(8)()\n\t\tcls\n\t(9)˳\n\t\texit\n\t(10)չDOS\n\t\tɾݵļ\n\t\trd /s ļ ʾǷɾ\n\t\trd /q /s ļ ֱɾ\n\n3:JavaԷչʷ(˽)\n\t(1)Java֮\n\t(2)JDKİ汾\n\t\t1.4.2\n\t\t1.5\n\t\t1.6\n\t\t1.7\n\t\t1.8\n\t(3)JavaԵƽ̨\n\t\tJavaSE\n\t\tJavaEE\n\t\tJavaME(Android)\n\t(4)JavaԵص\n\n4:JDK,JRE,JVM()\n\t(1)JVM\n\t\t֤JavaԿƽ̨ԲͬĲϵͳṩͬJVM\n\n\t\t⣺javaǿƽ̨?JVMǿƽ̨?\n\t(2)JRE\n\t\tjavaлJVMͺ\n\t(3)JDK\n\t\tjavaJREͿ(javac,java)\n\n5:JDKأװж()\n\t(1)\n\t\tأ߰ٶҲԡ\n\t(2)װ\n\t\tװ һװɡһ㽨鲻Ҫпոġ\n\t\tɫ ѹͿʹ\n\t(3)ж\n\t\tװ ͨ360߿\n\t\tɫ ֱɾļм\n\n6:HelloWorld()\n\t(1)д\n\t\tclass HelloWorld {\n\t\t\tpublic static void main(String[] args) {\n\t\t\t\tSystem.out.println(\"HelloWorld\");\n\t\t\t}\n\t\t}\n\t(2)͸ó\n\t\tA:classģʽ: class  {}\n\t\tB:ҪУʽǣ\n\t\t\tpublic static void main(String[] args) { }\n\t\tC:Ҫݣ䣬ʽǣ\n\t\t\tSystem.out.println(\"HelloWorld\");\n\t(3)ı\n\t\tA:javac򣬺ļ\n\t\t\tjavac HelloWorld.java\n\t\tB:javaִг򣬺classļƣչ\n\t\t\tjava HelloWorld\n\t(4)һJavaĿ\n\t\tA:дJavaԴ\n\t\tB:ͨjavacjavaֽļ\n\t\tC:ͨjavaֽļ\n\n7:HelloWorld()\n\t(1)ļԲһ£ǽһ\n\t(2)Ҳļ\n\t(3)д(Сдƴд)\n\t(4)ƥ⣬дʱ򣬳ɶд\n\t(5)Ӣ⣬javaһ㶼Ӣ״̬\n\t(6)ĩβȱٷֺ\t\t\n\t\n8:path()\n\t(1)ΪʲôҪpath\n\t\tΪjavacjavaĿ¼ʹ\n\t(2)\n\t\tA:ʽ1 ֱ޸pathǰ׷JDKbinĿ¼\n\t\tB:ʽ2() \n\t\t\t½JAVA_HOME: JDKİװĿ¼\n\t\t\t޸path: %JAVA_HOME%\\bin;ǰĻ\n\n9:classpath()\n\t(1)ΪʲôҪclasspath\n\t\tΪclassļĿ¼\n\t(2)\n\t\t½classpathҪĿ¼еclassļĿ¼ùȥɡ\n\t\tע⣺ִеʱȺ˳ϵ\n\t(3)pathclasspath\n\t\tpathΪexeļĿ¼\n\t\tclasspathΪclassļĿ¼\n\n(10)ע()\n\t(1)ע:ڽ˵\n\t(2)ࣺ\n\t\tA:У//ע\n\t\tB:У/* ע */\n\t\tC:ĵעͣ/** ע */\n\t(3)ע͵HelloWorld\n\t(4)ע͵ã\n\t\tA:˵߳Ķ\n\t\tB:ǵԳ\n\n(11)ؼ()\n\t(1)ؼ:Javaضĵ\n\t(2)ص:ȫСд\n\t(3)ע\n\t\tA:gotoconstΪִڣĿǰʹ\n\t\tB:Editplusĸ߼±Թؼɫǣ\n\n(12)ʶ()\n\t(1)ʶ࣬ӿڣֵ߱ķ\n\t(2)ɹ\n\t\tA:ӢĸСд\n\t\tB:\n\t\tC:_$\n\t(3)ע\n\t\tA:ֿͷ\n\t\tB:JavaеĹؼ\n\t\tC:ִСд\n\t\t\tStudent,student \n\t(4)ʽ\n\t\tA: ʵļ,ڽͬ\n\t\t\tȫСд\n\t\t\tcom\n\t\t\t༶cn.itcast\n\n\t\tB:߽ӿ\n\t\t\tһʣĸд\n\t\t\t\tStudent,Person,Teacher\n\t\t\tʣÿʵĸд\n\t\t\t\tHelloWorld,MyName,NameDemo\n\n\t\tC:߱\n\t\t\tһʣȫСд\n\t\t\t\tname,age,show()\n\t\t\tʣӵڶʿʼÿĸд\n\t\t\t\tmyName,showAllStudentNames()\n\n\t\tD:\n\t\t\tһʣȫд\n\t\t\t\tAGE\n\t\t\tʣÿʶд_\n\t\t\t\tSTUDENT_MAX_AGE"
  },
  {
    "path": "day01/课堂练习.txt",
    "content": "A:ݼ\n\tCtrl+A\tȫѡ\n\tCtrl+C\t\n\tCtrl+V\tճ\n\tCtrl+X\t\n\tCtrl+Z\t\n\tCtrl+S\t\n\t\nB:DOS\n\td: س\t̷л\n\tdir(directory):гǰĿ¼µļԼļ\n\tmd (make directory) : Ŀ¼\n\trd (remove directory): ɾĿ¼\n\tcd (change directory)ıָĿ¼(ָĿ¼)\n\tcd.. : ˻صһĿ¼\n\tcd\\: ˻صĿ¼\n\tdel (delete): ɾļ,ɾһѺ׺һļ*.txt\n\texit : ˳dos\n\tcls : (clear screen)\n\t\n\tչ(ɾݵļ)\n\t\trd /s ļ (ѯǷɾ)\n\t\trd /q /s ļ (ɾ)\n\t\t\nC:JDK,JRE,JVMĹϵ\n\tJVM֤JavaԿƽ̨\n\tJRE:JVM + \n\tJDK:JRE + tools(߰)\n\nD:HelloWorld\n\tjava\n\tjavac\n\tjava -version\n\t\nE:жس\n\ta:һ\n\t\tװ  һװ\n\t\tɫ\tѹͿʹ\n\tb:ж\n\t\tװ\t360/\n\t\tɫ\tֱɾļ\n\t\t\nF:\n\ta:ļԲһ?\n\t\tԣǲ顣ļһ¡\n\tb:Ҳļ\n\tc:ƴд\n\td:ƥ\n\te:Ӣ\n\t\n\tҵԼĴȫ¼wordͿˡ\n\tҪͼҪ¼ԭ򣬽\n\t\nG:path\n\ta:ΪʲôҪ\n\t\tΪjavacĿ¼ʹ\n\tb:\n\t\tʽ1JDKװĿ¼binĿ¼õpath\n\t\t\tD:\\develop\\Java\\jdk1.7.0_72\\bin;ǰĻ\n\t\t\t\n\t\t\texeβļĸĿ¼õpathУͿͨDOSʹø\n\t\tʽ2\n\t\t\t½JAVA_HOME\n\t\t\t\tJAVA_HOME\n\t\t\t\tֵJDKİװ· \tD:\\develop\\Java\\jdk1.7.0_72\n\t\t\t޸path\n\t\t\t\t%JAVA_HOME%\\bin;ǰĻ\n\tc:ϰ\n\t\tԼûԼָĿ¼ȱдjavaС\n\nH:װEditplus\n\ta:װ\n\t\tر򵥣ס·Ҽ\n\tb:ͨù½һHelloWorldС\n\tc:ȥļ\n\t\t -- ѡ -- ļ -- ѱʱļĹȥ\n\td:javacjava\n\t\t -- û -- ޸\n\t\t\t\n\t\t -- û -- ѡղŸǸ -- javac\n\t\t -- û -- ѡղŸǸ -- java\n\t\t岽裬javacjavaͼ\n\tc:ϰ\n\t\tװEditplusȻͨùʵֳı"
  },
  {
    "path": "day02/code/01_常量/ConstantDemo.java",
    "content": "/*\n\tڳִеĹֵԷı\n\t\t\t\n\n\tࣺ\n\t\tA:ֵ\n\t\t\t112.5\n\t\tB:Զ峣(󲿷ֽ)\n\n\tֵࣺ\n\t\tA:ַ \"\"\n\t\tB: е\n\t\tC:С еĴС\n\t\tD:ַ õ\n\t\tE: ֵֻtruefalse\n\t\tF:ճ null(鲿ȥ)\n*/\nclass ConstantDemo {\n\tpublic static void main(String[] args) {\n\t\t//ַ\n\t\tSystem.out.println(\"HelloWorld\");\n\n\t\t//\n\t\tSystem.out.println(100);\n\n\t\t//С\n\t\tSystem.out.println(12.345);\n\n\t\t//ַ\n\t\tSystem.out.println('A');\n\t\t//Ǵ\n\t\t//System.out.println('BC');\n\t\tSystem.out.println('1');\n\t\t\n\t\t//\n\t\tSystem.out.println(true);\n\t\tSystem.out.println(false);\n\t}\n}"
  },
  {
    "path": "day02/code/02_进制转换/JinZhiDemo.java",
    "content": "/*\n\t\t\n\t\t0,1ɡ0bͷ\n\t˽\t\n\t\t0,1,7ɡ0ͷ\n\tʮ\t\n\t\t0,1,9ɡĬʮƵ\n\tʮ    \n\t\t0,1,9,a,b,c,d,e,f(Сд)0xͷ\n\n*/\nclass JinZhiDemo {\n\tpublic static void main(String[] args) {\n\t\tSystem.out.println(0b100);//4\n\t\tSystem.out.println(0100);//64\n\t\tSystem.out.println(100);//100\n\t\tSystem.out.println(0x100);//256\n\t}\n}"
  },
  {
    "path": "day02/code/04_数据类型/Array2Sum.java",
    "content": "/*\n\t\n*/\n\nclass Array2Sum {\n\tpublic static void main(String[] args) {\n\t\tint[][] arr = {{22,66,44},{77,33,88},{25,45,65},{11,66,99}};\n\t\tint sum = 0;\n\t\tfor (int i=0; i<arr.length; i++) {\n\t\t\tfor (int j=0; j<arr[i].length; j++) {\n\t\t\t\tsum +=arr[i][j];\n\t\t\t}\n\t\t}\n\t\tSystem.out.println(\"Ϊ\" +sum);\n\t}\n}\n"
  },
  {
    "path": "day02/code/04_数据类型/DataType.java",
    "content": "/*\n\tΪ˸õıʵJavaԲͬṩ˲ͬ͡\n\n\tͣ\n\t\tͣ48\n\t\tͣ࣬ӿڣ顣(潲)\n\n\t:\n\t\t\t\t\t\tռõڴռ\n\t\t\tbyte\t\t\t1ֽ\n\t\t\t\t\t\t\t\t01111111\n\t\t\t\t\t\t\t\t10000000(1ȱʾλֱʾֵ -128)\n\t\t\tshort\t\t\t2ֽ\n\t\t\tint\t\t\t\t4ֽ\n\t\t\tlong\t\t\t8ֽ\n\t\t\n\t\t\tfloat\t\t\t4ֽ\n\t\t\tdouble\t\t\t8ֽ\n\t\tַ\n\t\t\tchar\t\t\t2ֽ\n\t\t\n\t\t\tboolean\t\t\tδ֪1ֽ\n\n\t⣺\n\t\tJavaַԴ洢һ?\n\t\tԡΪJavaԲõunicode룬\n\t\tunicodeÿַֽڣ\n\t\tԣjavaеַԴ洢һ֡\n\n\n\tע⣺\n\t\tĬint\n\t\tĬdouble\n\n\t\tlong͵ıҪlL\n\t\tfloat͵ıҪfF\n\n\t\tͬһ{}棬ǲͬı\n*/\nclass DataType {\n\tpublic static void main(String[] args) {\n\t\t//ĸʽ\n\t\t//  = ʼֵ;\n\n\t\t//byte͵ı\n\t\tbyte b = 1;\n\t\tSystem.out.println(1);\n\t\tSystem.out.println(b);\n\n\t\t//short͵ı\n\t\tshort s = 100;\n\t\tSystem.out.println(s);\n\n\t\t//int͵ı\n\t\tint i = 100000;\n\t\tSystem.out.println(i);\n\n\t\t//\n\t\t//int j = 2147483648;\n\t\t//System.out.println(j);\n\n\t\t//long͵ı\n\t\tlong l = 2147483648L;\n\t\tSystem.out.println(l);\n\n\t\t//float͵ı\n\t\tfloat f = 12.34F;\n\t\tSystem.out.println(f);\n\n\t\t//double͵ı\n\t\tdouble d = 23.56;\n\t\tSystem.out.println(d);\n\n\t\t//char͵ı\n\t\tchar ch = 'a';\n\t\tSystem.out.println(ch);\n\n\t\t//boolean͵ı\n\t\tboolean flag = true;\n\t\tSystem.out.println(flag);\n\t}\n}\n"
  },
  {
    "path": "day02/code/04_数据类型/DataType2.java",
    "content": "/*\n\tʹñע\n\t\tA:\t\n\t\t\tһУĸŵķΧ\n\t\t\tͬвܶͬ\n\n\t\tB:ʼֵ\n\t\t\tûгʼֱֵʹ\n\n\t\tC:\n\t\t\tһϽֻһ\n\t\t\tԶǲ\n*/\nclass DataType2 {\n\t//int i = 100;\n\n\tpublic static void main(String[] args) {\n\t\tint i = 200;\n\n\t\t//int j;\n\t\t//System.out.println(j);\n\n\t\t//int a = 10;int b = 20;\n\n\t\t//int a = 10;\n\t\t//int b = 20;\n\n\t\t//int a,b;\n\n\t\t//int x=10,y=20;\n\t\t//int x = 10;\n\t\t//int y = 20;\n\n\t\t//\n\t\t//  = ʼֵ;\n\t\t//ʵǻԸıһ£ֻҪʹøñǰֵɡ\n\t\tint j;\n\t\t//........\n\t\tj = 200;\n\t\tSystem.out.println(j);\n\t}\n}\n"
  },
  {
    "path": "day02/code/04_数据类型/MyArrayDemo.java",
    "content": "import java.util.Scanner;\n\nclass MyArrayDemo {\n\tpublic static void main(String[] args) {\n\t\tScanner sc = new Scanner(System.in);\n\n\t\tSystem.out.println(\"ݣ\");\n\t\tint[] arr;\n\t\tint i = 0;\n\t\tarr = new int[3];\n\t\tSystem.out.println(arr);\n\n\t\twhile(true) {\n\t\t\tarr[i] = sc.nextInt();\n\t\t\ti++;\n\t\t\tif (i >= arr.length) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t/*\n\t\tfor (i = 0; i<arr.length; i++) {\n\t\t\tarr[i] = sc.nextInt();\n\t\t\t//System.out.println(arr[i]);\n\t\t}\n\t\t*/\n\n\t\tfor (int j=0; j<arr.length; j++) {\n\t\tSystem.out.println(\"arr[\" +j +\"]=\" +arr[j]);\n\t\t}\n\n\t\tint temp = 0;\n\t\tfor (int j=1; j<arr.length; j++) {\n\t\t\ttemp = arr[j-1]>=arr[j]?arr[j-1]:arr[j];\n\t\t}\n\t\tSystem.out.println(\"arrֵΪ\" +temp);\n\t}\n}\n"
  },
  {
    "path": "day02/code/04_数据类型/MyArrayTest.java",
    "content": "/*\n\tһάϰ\n\n\t\n*/\nimport java.util.Scanner;\n\nclass  MyArrayTest {\n\tpublic static void main(String[] args) {\n\t\tint arr = {1,2,3,4,5,6,7,8};\n\t\tString strArray = {\"\",\"һ\",\"ڶ\",\"\",\"\",\"\",\"\",\"\"};\n\n\t\t//\n\t\tScanner sc = new Scanner(System.in);\n\t\tSystem.out.println(\"(1-7)\");\n\t\tint index = sc.nextInt();\n\t\tSystem.out.println(\"ҪҵΪ\" +strArray[index]);\n\t}\n\n\t//\n\tpublic static void printArray(int[] arr) {\n\t\tSystem.out.print(\"[\");\n\t\tfor (int i=0; i<arr.length; i++) {\n\t\t\tif (i <= arr.length-1) {\n\t\t\t\tSystem.out.print(arr[i] +\", \");\n\t\t\t}\n\t\t\tSystem.out.print(arr[i]);\n\t\t}\n\t\tSystem.out.println(\"]\");\n\t}\n\n\t//ֵ\n\tpublic static int getMax(int[] arr) {\n\t\tint max = arr[0];\n\t\tfor (int i=0; i<arr.length; i++) {\n\t\t\tif (arr[i] > max) {\n\t\t\t\tmax = arr[i];\n\t\t\t}\n\t\t}\n\t\treturn max;\n\t}\n\n\t//ת\n\tpublic static void reverse(int[] arr) {\n\t\tfor (int start=0,end=arr.length; start<=end; start++,end--) {\n\t\t\tint temp = arr[start];\n\t\t\tarr[start] = arr[end];\n\t\t\tarr[end] = temp;\n\t\t}\n\t}\n\n\t//Ԫصһγֵ\n\tpublic static int indexOfArray(int[] arr, int key) {\n\t\tint index = -1;\n\t\tfor (int i=0; i<arr.length; i++) {\n\t\t\tif (key == arr[i]) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn index;\n\t}\n\n\t//\n\t//public static void OrderOfArray(int[] arr) {\n\n\t//}\n\n}\n"
  },
  {
    "path": "day02/code/05_类型转换/DataTypeDemo.java",
    "content": "/*\n\t+һ, Ӧܹݵļӷ\n\n\tݣҪһ¡\n\n\tbooleanͲתΪ͡\n\n\tʽת\n\t\tA:byte,short,char-->int-->long-->float-->double\n\t\tB:byte,short,char໥֮䲻תǲתΪint\n*/\nclass DataTypeDemo {\n\tpublic static void main(String[] args) {\n\t\t//һ\n\t\tint a = 10;\n\t\tint b = 20;\n\t\tSystem.out.println(a + b);\n\t\tint c = a + b;\n\t\tSystem.out.println(c);\n\t\tSystem.out.println(\"--------------\");\n\n\t\t//\n\t\tbyte by = 3;\n\t\tint i = 4;\n\t\tSystem.out.println(by + i);\n\t\tint j =\tby + i;\n\t\tSystem.out.println(j);\n\t}\n}"
  },
  {
    "path": "day02/code/05_类型转换/DataTypeDemo2.java",
    "content": "/*\n\tǿת:ӴСʹãΪоȵĶʧ\n\t\tĿ =(Ŀ)(ת);\n*/\nclass DataTypeDemo2 {\n\tpublic static void main(String[] args) {\n\t\t//\n\t\tbyte by = 3;\n\t\tint i = 4;\n\t\tbyte bb = (byte)(by + i);\n\t\tSystem.out.println(bb);\n\t}\n}"
  },
  {
    "path": "day02/code/05_类型转换/DataTypeDemo3.java",
    "content": "/*\n\t+:ӷ\n\t\tA:ݲ\n\t\tB:ַ+\n\t\t\tASCII\n\t\t\t\t'0'\t48\n\t\t\t\t'A'\t65\n\t\t\t\t'a'\t97\n\t\tC:ַ+\n\t\t\tַĲУַӷ\n*/\nclass DataTypeDemo3 {\n\tpublic static void main(String[] args) {\n\t\tSystem.out.println('a');\n\t\tSystem.out.println('a'+1);\n\t\tSystem.out.println('A'+0);\n\t\tSystem.out.println('0'+0);\n\t\tSystem.out.println(\"-----------\");\n\n\n\t\tSystem.out.println('a'+'b');\n\t\tSystem.out.println(\"a\"+\"b\");\n\t\t\n\t\tSystem.out.println(\"hello\"+'a'+1); //ַƴĶַ\n\t\tSystem.out.println('a'+1+\"hello\");\n\t\tSystem.out.println(\"5+5=\"+5+5);\n\t\tSystem.out.println(5+5+\"=5+5\");\n\t}\n}\n"
  },
  {
    "path": "day02/code/05_类型转换/DataTypeTest.java",
    "content": "/*\n\tbyte b1=3,b2=4,b;\n\tb=b1+b2;\n\tb=3+4;\n\tľǱʧܵأΪʲôأ\n\t\tb=b1+b2;\n\n\tԭ\n\t\tӣʾͣ\n\t\tӣȻжϽǷߵķΧݣھͲڣ\n*/\nclass DataTypeTest {\n\tpublic static void main(String[] args) {\n\t\tbyte b1=3,b2=4,b;\n\t\t//b = b1+b2; //ұԶ\n\t\tb = 3+4;\n\t}\n}\n"
  },
  {
    "path": "day02/code/05_类型转换/DataTypeTest2.java",
    "content": "/*\n\tbyte b = 130;û?øֵȷô?Ƕ?\n*/\nclass DataTypeTest2 {\n\tpublic static void main(String[] args) {\n\t\t//byte b = 130;\n\n\t\t//\n\t\t//1\n\t\t//int a  = 130;\n\t\n\t\t//2\n\t\tbyte b = (byte) 130;\n\t\tSystem.out.println(b);\n\t}\n}\n\n/*\n\tʮƣ130\n\n\tA:һȰʮתΪ\n\t\tƣ000000000 000000000 000000000 100000010\n\t\tڴ˶һԣҲ000000000 000000000 000000000 100000010\n\n\tB:ǿת\n\t\tƣ000000000 000000000 000000000 100000010\n\t\tȡͱˣ100000010\n\n\tC:ǲ룬㿴ԭ\n\t\t\t\tλ\t\tֵλ\n\t\t룺\t1\t\t\t00000010\n\t\t룺\t1\t\t\t00000001\n\t\tԭ룺\t1\t\t\t11111110\n*/\n"
  },
  {
    "path": "day02/code/05_类型转换/DataTypeTest3.java",
    "content": "class DataTypeTest3 {\n\tpublic static void main(String[] args) {\n\t\tbyte b = (byte)300;\n\t\tSystem.out.println(b);\n\n\n\t\tSystem.out.println((byte)127);\n\t\tSystem.out.println((byte)128);\n\t\tSystem.out.println((byte)129);\n\t\tSystem.out.println((byte)130);\n\t\tSystem.out.println((byte)131);\n\t}\n}\n\n/*\n\tʮƣ300\n\n\tA:ʮתΪ\n\t\t00000000 00000000 00000001 00101100\n\n\tB:ȡ\n\t\t0 0101100\n*/"
  },
  {
    "path": "day02/code/06_算术运算符/OperatorDemo.java",
    "content": "/*\n\t㣺ԳͱвĹ̳Ϊ㡣\n\tԳͱвķųΪ\n\tʽѳͱʽ\n\t\t\ta + b\n\t\t\tע⣺ʽн\n\n\t\n\t\t\n\t\tֵ\n\t\tȽ\n\t\t߼\n\t\tλ\n\t\tĿ\n\n\t\n\t\t+-*/%++--\n*/\nclass OperatorDemo {\n\tpublic static void main(String[] args) {\n\t\tSystem.out.println(10+20);\n\t\tSystem.out.println(10-20);\n\t\tSystem.out.println(10*20);\n\t\t//ֻܵõ\n\t\tSystem.out.println(10/20);\n\t\t//ҪõСԳԻ߳1.0\n\t\tSystem.out.println(10/1.0/20);\n\n\t\t//ӷ÷:,ӷ,ַӷ\n\t\tSystem.out.println(+5);\n\t\tSystem.out.println(1+2);\n\t\tSystem.out.println(\"1\"+\"2\");\n\t}\n}"
  },
  {
    "path": "day02/code/06_算术运算符/OperatorDemo2.java",
    "content": "/*\n\t/:\n\t%:\n\n\tע⣺\n\t\t%ս͵һݵķء\n*/\nclass OperatorDemo2 {\n\tpublic static void main(String[] args) {\n\t\t//%/һһ\n\t\tSystem.out.println(5/3);\n\t\tSystem.out.println(5%3);\n\n\t\t//⣺жĸš\n\t\t//%,Ϊ0˵\n\n\t\tSystem.out.println(5%3); //2\n\t\tSystem.out.println(5%-3);//2\n\t\tSystem.out.println(-5%3);//-2\n\t\tSystem.out.println(-5%3);//-2\n\t}\n}"
  },
  {
    "path": "day02/code/06_算术运算符/OperatorDemo3.java",
    "content": "/*\n\t++,--Լ\n\tһi,\n\t\ti++ͱʾֵ1\n\t\ti--ͱʾֵ1\n\n\t÷\n\t\tA:ʹ\n\t\t\tڲݵǰЧһ\n\t\tB:ʹ\n\t\t\tڲǰ棬ԼȻٲ\n\t\t\tڲ棬Ȳ㣬ȻԼ\n*/\nclass OperatorDemo3 {\n\tpublic static void main(String[] args) {\n\t\tint a = 10;\n\t\tint b = a++;\n\t\tSystem.out.println(a);//11\n\t\tSystem.out.println(b);//10\n\t\tSystem.out.println(\"------------\");\n\n\t\tint c = 10;\n\t\tint d = ++c;\n\t\tSystem.out.println(c);//11\n\t\tSystem.out.println(d);//11\n\n\t\tSystem.out.println(\"------------\");\n\t\tint e = 10;\n\t\t//e++;\n\t\t++e;\n\t\tSystem.out.println(e);\n\t}\n}\n"
  },
  {
    "path": "day02/code/06_算术运算符/OperatorTest.java",
    "content": "/*\n\tһ⣺\n\t\tint a = 10;\n\t\tint b = 10;\n\t\tint c = 10;\n\n\t\ta = b++;\n\t\tc = --a;\n\t\tb = ++a;\n\t\ta = c--;\n\t\tֱa,b,cֵ\n\n\tڶ⣺\n\t\tint a = 4;\n\t\tint b = (a++)+(++a)+(a*10);\n\n*/\nclass OperatorTest {\n\tpublic static void main(String[] args) {\n\t\t/*\n\t\tint a = 10;\n\t\tint b = 10;\n\t\tint c = 10;\n\n\t\ta = b++;//a=10,b=11,c=10\n\t\tc = --a;//a=9,b=11,c=9\n\t\tb = ++a;//a=10,b=10,c=9\n\t\ta = c--;//a=9,b=10,c=8\n\t\tSystem.out.println(a);\n\t\tSystem.out.println(b);\n\t\tSystem.out.println(c);\n\t\tSystem.out.println(\"--------------\");\n\t\t*/\n\n\t\t/*\n\t\tint a = 4;\n\t\tint b = (a++)+(++a)+(a*10);\n\t\t\t  //= 4 + 6 + 60\n\t\t\t  //= 70\n\t\tSystem.out.println(a);\n\t\tSystem.out.println(b);\n\t\t*/\n\n\t\t//int i = 1;\n\t\t//System.out.println(i+++i+++i+++i++);\n\t\t//i++ + i++ + i++ + i++\n\t\t//1\t+ 2\t  + 3\t+ 4\n\n\t\tint i = 1;\n\t\tSystem.out.println(i++ + ++i + i++ + ++i);//1+3+3+5\n\t\t//i++ + ++i + i++ + ++i\n\t\t//1 + 3 + 3 + 5\n\t}\n}\n"
  },
  {
    "path": "day02/code/07_赋值运算符/OperatorDemo.java",
    "content": "/*\n\tֵ\n\t\t=\n\t\tϣ+=,-=,*=,/=,%=,...\n*/\nclass OperatorDemo {\n\tpublic static void main(String[] args) {\n\t\t//10ֵint͵ıa\n\t\tint a = 10;\n\n\t\t//ϵ÷\n\t\tint b = 10;\n\t\tb += 20; //ȼڣb = b + 20;\n\t\tSystem.out.println(b);\n\t}\n}"
  },
  {
    "path": "day02/code/07_赋值运算符/OperatorTest.java",
    "content": "/*\n\t⣺\n\t\tshort s=1, s = s+1; short s=1, s+=1;\n\t\tû⣬У\n*/\nclass OperatorTest {\n\tpublic static void main(String[] args) {\n\t\t//short s = 1;\n\t\t//s = s + 1; \n\t\t//⣬ʧ\n\t\t\n\t\tshort s = 1;\n\t\ts += 1; //s = s + 1;\n\t\t//ûġ\n\t\t//Ϊʽӵȼڣ\n\t\t// s = (s)(s + 1);\n\t}\n}"
  },
  {
    "path": "day02/code/08_关系运算符/OperatorDemo.java",
    "content": "/*\n\tϵ\n\t\t==,!=,>,>=,<,<=\n\n\tص㣺\n\t\t۱ʽǼ򵥻Ǹӣ϶boolean͡\n\t\n\tע\n\t\tϵ==дɡ= \n*/\nclass OperatorDemo {\n\tpublic static void main(String[] args) {\n\t\tint a = 10;\n\t\tint b = 10;\n\t\tint c = 20;\n\t\tSystem.out.println(a == b);\n\t\tSystem.out.println(a == c);\n\t\tSystem.out.println((a + b*c) == (a*b + c));\n\t\tSystem.out.println(\"----------------\");\n\n\t\tSystem.out.println(a = b); //bֵֵaaֵΪ\n\t\tSystem.out.println(a = c);\n\t}\n}\n"
  },
  {
    "path": "day02/code/08_关系运算符/OperatorDemo2.java",
    "content": "/*\n\t&&&? ǰж·ЧֻҪfalseұִ߲СߣȫִС\n\t|||? ǰж·ЧֻҪtrueұִ߲СߣȫִС\n*/\nclass OperatorDemo2 {\n\tpublic static void main(String[] args) {\n\t\tint a = 10;\n\t\tint b = 20;\n\t\tint c = 30;\n\n\t\t//&:߼\tfalsefalse\n\t\tSystem.out.println(a>b & a>c); //false & false = false\n\t\tSystem.out.println(a>b & a<c); //false & true = false\n\t\tSystem.out.println(a<b & a>c); //true & false = false\n\t\tSystem.out.println(a<b & a<c); //true & true = true\n\t\tSystem.out.println(\"--------\");\n\n\t\t//&&:\n\t\tSystem.out.println(a>b && a>c); //false && false = false\n\t\tSystem.out.println(a>b && a<c); //false && true = false\n\t\tSystem.out.println(a<b && a>c); //true && false = false\n\t\tSystem.out.println(a<b && a<c); //true && true = true\n\t\tSystem.out.println(\"--------\");\n\n\t\t//|:߼\ttruetrue\n\t\tSystem.out.println(a>b | a>c); //false | false = false\n\t\tSystem.out.println(a>b | a<c); //false | true = true\n\t\tSystem.out.println(a<b | a>c); //true | false = true\n\t\tSystem.out.println(a<b | a<c); //true | true = true\n\t\tSystem.out.println(\"--------\");\n\n\t\t//||:\n\t\tSystem.out.println(a>b || a>c); //false || false = false\n\t\tSystem.out.println(a>b || a<c); //false || true = true\n\t\tSystem.out.println(a<b || a>c); //true || false = true\n\t\tSystem.out.println(a<b || a<c); //true || true = true\n\t\tSystem.out.println(\"--------\");\n\n\t\tint x = 3;\n\t\tint y = 4;\n\t\t//System.out.println((x++)>3 & (y++)>4); //false & false = false\n\t\t//System.out.println(x);//4\n\t\t//System.out.println(y);//5\n\t\tSystem.out.println((x++)>3 && (y++)>4);\n\t\tSystem.out.println(x);//4\n\t\tSystem.out.println(y);//4\n\t}\n}\n"
  },
  {
    "path": "day02/code/09_逻辑运算符/OperatorDemo.java",
    "content": "/*\n\t߼\n\t\t&,|,!,^\n\t\t&&,||\n\n\tע⣺\n\t\t߼ӵӦһʽ\n*/\nclass OperatorDemo {\n\tpublic static void main(String[] args) {\n\t\t//&,|,!,^\n\t\tint a = 10;\n\t\tint b = 20;\n\t\tint c = 30;\n\n\t\t//&:߼\tfalsefalse\n\t\tSystem.out.println(a>b & a>c); //false & false = false\n\t\tSystem.out.println(a>b & a<c); //false & true = false\n\t\tSystem.out.println(a<b & a>c); //true & false = false\n\t\tSystem.out.println(a<b & a<c); //true & true = true\n\t\tSystem.out.println(\"--------\");\n\n\t\t//|:߼\ttruetrue\n\t\tSystem.out.println(a>b | a>c); //false | false = false\n\t\tSystem.out.println(a>b | a<c); //false | true = true\n\t\tSystem.out.println(a<b | a>c); //true | false = true\n\t\tSystem.out.println(a<b | a<c); //true | true = true\n\t\tSystem.out.println(\"--------\");\n\n\t\t//^:߼ ͬfalseͬtrue\n\t\t//£УŮŮУŮŮ\n\t\tSystem.out.println(a>b ^ a>c); //false ^ false = false\n\t\tSystem.out.println(a>b ^ a<c); //false ^ true = true\n\t\tSystem.out.println(a<b ^ a>c); //true ^ false = true\n\t\tSystem.out.println(a<b ^ a<c); //true ^ true = false\n\t\tSystem.out.println(\"--------\");\n\n\t\t//!:߼\n\t\tSystem.out.println((a>b));//false\n\t\tSystem.out.println(!(a>b));//true\n\t\tSystem.out.println(!!(a>b));//false\n\t\tSystem.out.println(!!!(a>b));//true\n\t\tSystem.out.println(!!!!(a>b));//false\n\t}\n}\n"
  },
  {
    "path": "day02/day02总结.txt",
    "content": "1:()\n\t(1)ڳйУֵı\n\t(2)ķࣺ\n\t\tA:ֵ\n\t\tB:Զ峣(󲿷ֽ)\n\t(3)ֵ\n\t\tA:ַ \"\"ݡ\"helloworld\"\n\t\tB: :1,200\n\t\tC:С :12.5\n\t\tD:ַ ''ݡ'a','A','0'\n\t\tE: Ƚ⣬ֵֻtrue,false\n\t\tF:ճ null(鲿ֽ)\n\t(4)Javaıʽ\n\t\tA:\n\t\t\t0,1ɡ0bͷ\n\t\tB:˽\n\t\t\t0,1,2,3,4,5,6,7ɡ0ͷ\n\t\tC:ʮ\n\t\t\t0,1,2,3,4,5,6,7,8,9ɡĬʮơ\n\t\tD:ʮ\n\t\t\t0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,Fɡ0xͷ\n\t\t\tע⣺ĸִСд\n\n2:()\n\t(1)һּķʽxƱʾx1\n\t(2)ת\n\t\tA:Ƶʮ\n\t\t\tϵ*^Ȩ֮͡\n\t\tB:ʮƵ\n\t\t\tȡ,ֱΪ0,ת\n\t\tC:ת\n\t\t\ta:ƺʮ\n\t\t\t\t8421\n\t\t\tb:ƺͰ˽\n\t\t\t\tλ\n\t\t\tc:ƺʮ\n\t\t\t\tλ\n\t\tD:XƵYƵת\n\t\t\tʹʮΪɡ\n\n3:зݱʾ()\n\t(1)ݵĴ洢㶼ǲòеġ\n\t(2)ݵзűʾ\n\t\t0ʾ,1ʾš\n\t\tA:ԭ\n\t\t\t:Ķ\n\t\t\t:ΪΪ1Ķ\n\t\tB:\n\t\t\t:ԭͬ\n\t\t\t:ԭ,λ䣬ֵλȡ1001\n\t\tC:\n\t\t\t:ԭͬ\n\t\t\t:+1\n\t(3)ݵзűʾϰ\n\t\tA:֪ԭ룬Ͳ\n\t\tB:֪룬ԭ롣\n\t(4)䣺floatڼеıʾ \n\t\t\tλ\t\tָλ\t\tλ\n\t\t\tS\t\tE\t\tM\n3:()\n\t(1)ڳйУֵı\n\t(2)ʽ\n\t\tA:  = ʼֵ;\n\t\tB: ;\n\t\t   = ʼֵ;\n\n4:()\n\t(1)ͷ\n\t\tA:ͣ48\n\t\tB:ͣ࣬ӿڣ\n\t(2)\n\t\tA:\t\t\tռõڴռ\n\t\t\tbyte\t\t1\n\t\t\tshort\t\t2\n\t\t\tint\t\t4\n\t\t\tlong\t\t8\n\t\tB:\n\t\t\tfloat\t\t4\n\t\t\tdouble\t\t8\n\t\tC:ַ\n\t\t\tchar\t\t2\n\t\tD:\n\t\t\tboolean\t\t1\n\n\t\t⣺JavaеַԴ洢һ?Ϊʲô?\n\t(3)ע(رע)\n\t\tA:ĬintͣĬdouble(һҪرעʽת)\n\t\tB:longݵʱ򣬽LlƼL\n\t\t  floatݵʱ򣬽FfƼF\n\t\t  (fFᱨʧȵĴ)\n\t(4)ʹñע\n\t\tA:\n\t\t\tÿһĴЧңͬһܶͬı\t\t\t(forѭ()жıfor{}жͬ)\n\t\tB:ʼֵ\n\t\t\tֵʹ\n\t\tC:һ϶\n\t\t\tһ϶ǲ顣\n\n\t\t\tint a,b;\n\t\t\ta = 10;\n\t\t\tb = 20;\n\n\t\t\tint a = 10,b = 20;\n\n\t\t\tint a = 10;\n\t\t\tint b = 20;\n\n5:ת()\n\tע⣺\n\t\tbooleanͲ롣\n\t(1)ʽתС\n\t\tbyte,short,char --> int --> long --> float --> double\n\n\t\tlongΪʲôԵfloat?\n\t\t\tA:Ϊlongfloatĵײ洢ṹͬ\n\t\t\tB:ݷΧ\n\t\t\t\tlong: 2^63\n\t\t\t\tfloat: 3.4*10^38\n\n\t\t\t\t3.4*10^38 > 3.4*8^38 = 3.4*2^3^38 = 3.4*2^114 > 2^63\n\t(2)ǿתӴС\n\t\tһ㲻Ϊоȵʧ\n\t\tʽ\n\t\t\tĿ  = (Ŀ)(ת);\n\n6:()\n\t(1)㣺ԳͱвĹ̳Ϊ㡣\n\t(2)ԳͱвķųΪ\n\t(3)ʽѳͱʽ\n\t\tע⣺ʽн\n\n7:()\n\t(1)+,-,*,/,%,++,--\n\t(2)+:\n\t\t\n\t\tӷ\n\t\tַӷ\n\t(3)%/\n\t\t%\n\t\t/\n\t\t\tõСԳԻ߳1.0\n\n\t\t%ĽķźǰǸһ¡\n\t(4)++,--\n\t\tA:ʹ\n\t\t\tݵǰͺЧһ\n\t\tB:ʹ\n\t\t\tݵǰ棬ݱ仯ٲ㡣\n\t\t\tݵĺ棬Ȳ㣬ݱ仯\n\t\tC:++,--ϰ⡣\n\n8:ֵ()\n\t(1)=,+=,-=,*=,/=,%=,...\n\t(2)÷\n\t\tint a = 10;\n\t\t10ֵint͵ıa\n\t(3)÷\n\t\tint a = 10;\n\t\ta += 20;\n\t\tֵȼڣa = a + 20;\n\t\tߺұߵĽֵߣǿתΪߵ͡\n\t(4)\n\t\tshort s = 1; s = s + 1;\n\t\tshort s = 1, s +=1;\n\t\tĸ⡣\n\n9:ϵ()\n\t(1)==,!=,>,>=,<,<=\n\t(2)ע⣺\n\t\tA:۱ʽ򵥻Ǹӣ϶boolean\n\t\tB:ǧҪ\"==\"д\"=\"\n\n10:߼()\n\t(1)&,|,^,!,&&,||\n\t(2)÷\n\t\t&:falsefalse\n\t\t|:truetrue\n\t\t^:ͬfalseͬtrue(¹ϵ)(ֵַʽ)\n\t\t!:żֵ䣻ֵ෴\n\t(3)˫÷:\n\t\t&&,||&,|\n\n\t\t&&ж·ЧΪfalseұִ߲С\n\t\t||ж·ЧΪtrueұִ߲С"
  },
  {
    "path": "day02/课堂练习.txt",
    "content": "1:ƵʮƵת\n\t0b10110 = 22\n\t073 = 59\n\t0x3c = 60\n\n2:ʮƵƵת\n\t60\t0b111100074,0x3c\n\n3:зݱʾϰ\n\t֪ĳXԭΪ0b10110100XķͲ롣\n\t֪ĳXĲ0b11101110ԭ롣     \n\n4:D̽һļ20150309,ȻдHelloWorld\n\tҪͨwindows±ʵ֣ͨDOSڱС\n\n5:++,--ϰ\n\tint a = 10;\n\tint b = 10;\n\tint c = 10;\n\n\ta = b++;\n\tc = --a;\n\tb = ++a;\n\ta = c--;\n\tֱa,b,cֵ\n\n6:΢һĿ\n\tint a = 4;\n\tint b = (a++)+(++a)+(a*10);\n"
  },
  {
    "path": "day03/code/01_位运算符/OperatorDemo.java",
    "content": "/*\n\tλλһȰתɶƣȻ㡣\n\n\t⣺&&&?\n\t\t\tA:&&&Ϊ߼㣬&&ж·Ч\n\t\t\tB:&Ϊλ㡣\n*/\nclass OperatorDemo {\n\tpublic static void main(String[] args) {\n\t\t//&,|,^,~\n\t\tSystem.out.println(3 & 4); //0\n\t\tSystem.out.println(3 | 4); //7\n\t\tSystem.out.println(3 ^ 4); //7\n\t\tSystem.out.println(~3); //\n\t}\n}\n\n/*\n\tA:34Ķ\n\t\t3Ķƣ00000000 00000000 00000000 00000011\n\t\t4Ķƣ00000000 00000000 00000000 00000100\n\tB:λ&\t00\n\t\t00000000 00000000 00000000 00000011\n\t   &00000000 00000000 00000000 00000100\n\t   ------------------------------------\n\t    00000000 00000000 00000000 00000000\n\tC:λ|\t11\n\t\t00000000 00000000 00000000 00000011\n\t   &00000000 00000000 00000000 00000100\n\t   ------------------------------------\n\t    00000000 00000000 00000000 00000111\n\tD:λ^\tͬ0ͬ1\n\t\t00000000 00000000 00000000 00000011\n\t   &00000000 00000000 00000000 00000100\n\t   ------------------------------------\n\t    00000000 00000000 00000000 00000111\n\tE:λ~ ÿλλȡ\n\t\t00000000 00000000 00000000 00000011\n\t   ~11111111 11111111 11111111 11111100\n\t :11111111 11111111 11111111 11111011\n\t ԭ:10000000 00000000 00000000 00000100\n*/"
  },
  {
    "path": "day03/code/01_位运算符/OperatorDemo2.java",
    "content": "/*\n\t<<:ƣұ߲0\n\t>>:ƣλȷ01\n\t>>>:޷ ߲0\n*/\nclass OperatorDemo2 {\n\tpublic static void main(String[] args) {\n\t\t/*\n\t\tSystem.out.println(4 << 2); //16 = 4 * 2^2\n\t\tSystem.out.println(3 << 3); //3 * 2 ^ 3\n\t\tSystem.out.println(32 >> 2); //32 / 2^2\n\t\tSystem.out.println(32 >>> 2);\n\t\t*/\n\n\t\tSystem.out.println(-32 >> 2);\n\t\tSystem.out.println(-32 >>> 2);\n\t}\n}\n\n/*\n\tA:<<\n\t\t4Ķƣ\n\t\t\t00000000 00000000 00000000 00000100\n\t\t(00)000000 00000000 00000000 0000010000\n\n\tB:>>>\n\t\tԭ10000000 00000000 00000000 00100000\n\t\t11111111 11111111 11111111 11011111\n\t\t11111111 11111111 11111111 11100000\n\n\t\t>>>\n\t\t\t11111111 11111111 11111111 11100000\n\t\t\t0011111111 11111111 11111111 111000(00)\n*/"
  },
  {
    "path": "day03/code/01_位运算符/OperatorTest.java",
    "content": "/*\n\tλ^ţͬһΣֵ\n\n\t ⣺\n\t\tݽн\n\t\t˵ûָݵͣĬint͡ҽΡ\n*/\nclass OperatorTest {\n\tpublic static void main(String[] args) {\n\t\t/*\n\t\tSystem.out.println(1 ^ 2 ^ 2);//1\n\t\tSystem.out.println(1 ^ 1 ^ 2);//2\n\t\tSystem.out.println(15 ^ 3 ^ 7 ^ 7 ^ 3);//15\n\t\t*/\n\n\t\t//\n\t\tint a = 10;\n\t\tint b = 20;\n\n\t\t//System.out.println(a+\"---\"+b);\n\t\tSystem.out.println(\"a=\"+a+\",b=\"+b);\n\n\t\t//ô?\n\t\t//ʽ1ʹõгô˷\n\t\t/*\n\t\tint temp = a;\n\t\ta = b;\n\t\tb = temp;\n\t\tSystem.out.println(\"a=\"+a+\",b=\"+b);\n\t\t*/\n\n\t\t//ʽ2ãa+bѾΧˡ\n\t\t/*\n\t\ta = a + b; //a=30\n\t\tb = a - b; //b=10\n\t\ta = a - b; //a=20\n\t\tSystem.out.println(\"a=\"+a+\",b=\"+b);\n\t\t*/\n\n\t\t//ʽ3ãa+bѾΧˡ\n\t\t//a = (a+b) - (b=a); //һ仰㶨\n\t\t//System.out.println(\"a=\"+a+\",b=\"+b);\n\n\t\t//ʽ4\n\t\ta = a ^ b;\n\t\tb = a ^ b; //b = a ^ b = a ^ b ^ b = a;\n\t\ta = a ^ b; //a = a ^ b = a ^ b ^ a = b;\n\t\tSystem.out.println(\"a=\"+a+\",b=\"+b);\n\t\t//䣺ߣa,b,aұa^b\n\t}\n}\n"
  },
  {
    "path": "day03/code/02_三元运算符/OperatorDemo.java",
    "content": "/*\n\tԪ\n\tʽ\n\t\t(ϵʽ)?ʽ1ʽ2\n\n\ṭִ\n\t\tϵʽ䷵ֵ\n\t\t\ttrue:ʽ1ʽֵ\n\t\t\tfalse:ʽ2ʽֵ\n\n*/\nclass OperatorDemo {\n\tpublic static void main(String[] args) {\n\t\t//ȡеĽϴֵ\n\t\tint x = 3;\n\t\tint y = 4;\n\t\tint z = (x > y)? x : y;\n\t\tSystem.out.println(z);\n\n\t\t//ȽǷ\n\t\tint a = 4;\n\t\tint b = 4;\n\t\t//boolean flag = (a==b)?true:false;\n\t\tboolean flag = (a == b);\n\t\tSystem.out.println(flag);\n\n\t\t//ȡеĽϴֵ\n\t\tint c = 30;\n\t\tint d = 40;\n\t\tint e = 50;\n\t\t//int max = (c>d)?(c>e?c:e):(d>e?d:e);\n\t\tint temp = (c>d)?c:d;\n\t\tint max = (temp>e)?temp:e;\n\t\tSystem.out.println(max);\n\t}\n}\n"
  },
  {
    "path": "day03/code/03_键盘录入数据/OperatorDemo.java",
    "content": "/*\n\tΪ˳ݸӵǾ¼ݡ\n\n\tʹü¼?Ŀǰ͸Ҽסˡ\n\tA:\n\t\timport java.util.Scanner;\n\n\t\tclass\n\tB:\n\t\tScanner sc = new Scanner(System.in);\n\tC:ȡ\n\t\tint i = sc.nextInt();\n*/\nimport java.util.Scanner;\n\nclass OperatorDemo {\n\tpublic static void main(String[] args) {\n\t\t//¼\n\t\tScanner sc = new Scanner(System.in);\n\n\t\tSystem.out.println(\"һ\");\n\t\t//ȡ\n\t\tint i = sc.nextInt();\n\n\t\tSystem.out.println(\"i:\"+i);\n\t}\n}"
  },
  {
    "path": "day03/code/03_键盘录入数据/OperatorTest.java",
    "content": "/*\n\t󣺼¼ݣͣ\n\t\n\t\n\t\tA:¼ݣͨScannerʵ֡\n\t\t\t\timport java.util.Scanner;\n\t\t\t\tScanner sc = new Scanner(System.in);\n\t\t\tȡ\tint i = sc.nextInt();\n\n\t\tB:¼\n\t\t\tԾint i = sc.nextInt();Ρֱòͬı\n\t\t\t\tint i = sc.nextInt();\n\t\t\t\tint j = sc.nextInt();\n\n\t\tC:ݵĺ\n\t\t\tint sum = i + j;\n\n\t\tD:\n\t\t\tSystem.out.println(sum);\n*/\nimport java.util.Scanner;\n\nclass OperatorTest {\n\tpublic static void main(String[] args) {\n\t\t//¼\n\t\tScanner sc = new Scanner(System.in);\n\n\t\t//¼\n\t\tSystem.out.println(\"һݣ\");\n\t\tint firstNumber = sc.nextInt();\n\t\tSystem.out.println(\"ڶݣ\");\n\t\tint secondNumber = sc.nextInt();\n\n\t\t//ӷ\n\t\tint sum = firstNumber + secondNumber;\n\n\t\t//\n\t\tSystem.out.println(\"ݺǣ\"+sum);\n\t}\n}\n"
  },
  {
    "path": "day03/code/03_键盘录入数据/OperatorTest2.java",
    "content": "/*\n\t󣺼¼ݣȡеֵ\n\n\t\n\t\tA:¼\n\t\tB:ȡֵԪʵ\n\t\tC:ֵ\n*/\nimport java.util.Scanner;\n\nclass OperatorTest2 {\n\tpublic static void main(String[] args) {\n\t\t//¼\n\t\tScanner sc = new Scanner(System.in);\n\n\t\t//ȡ¼\n\t\tSystem.out.println(\"һݣ\");\n\t\tint a = sc.nextInt();\n\t\tSystem.out.println(\"ڶݣ\");\n\t\tint b = sc.nextInt();\n\n\t\t//ȡֵ\n\t\tint max = (a>b)?a:b;\n\n\t\t//\n\t\tSystem.out.println(\"ֵǣ\"+max);\n\t}\n}"
  },
  {
    "path": "day03/code/03_键盘录入数据/OperatorTest3.java",
    "content": "/*\n\t¼ݣȡеֵ\n*/\nimport java.util.Scanner;\n\nclass OperatorTest3 {\n\tpublic static void main(String[] args) {\n\t\t//¼\n\t\tScanner sc = new Scanner(System.in);\n\n\t\t//ȡ¼\n\t\tSystem.out.println(\"һݣ\");\n\t\tint a = sc.nextInt();\n\t\tSystem.out.println(\"ڶݣ\");\n\t\tint b = sc.nextInt();\n\t\tSystem.out.println(\"ݣ\");\n\t\tint c = sc.nextInt();\n\n\t\t//ȡݵֵ\n\t\tint temp = (a>b)?a:b;\n\t\tint max = (temp>c)?temp:c;\n\n\t\t//\n\t\tSystem.out.println(\"ֵǣ\"+max);\n\n\t}\n}\n"
  },
  {
    "path": "day03/code/03_键盘录入数据/OperatorTest4.java",
    "content": "/*\n\t¼ݣȽǷ\n*/\nimport java.util.Scanner;\n\nclass OperatorTest4 {\n\tpublic static void main(String[] args) {\n\t\t//¼\n\t\tScanner sc = new Scanner(System.in);\n\n\t\t//ȡ¼\n\t\tSystem.out.println(\"һݣ\");\n\t\tint a = sc.nextInt();\n\t\tSystem.out.println(\"ڶݣ\");\n\t\tint b = sc.nextInt();\n\n\t\t//ȽǷ\n\t\t//boolean flag =  (a==b)?true:false;\n\t\tboolean flag = (a==b);\n\n\t\t//\n\t\tSystem.out.println(flag);\n\t}\n}\n"
  },
  {
    "path": "day03/code/04_顺序结构语句/OrderDemo.java",
    "content": "/*\n\tǳ̿ƣûض﷨ṹմȺ˳\n\tִУдĴ붼ִеġ\n\t\n\tܵ˵дǰִУдںĺִ\n*/\nclass OrderDemo {\n\tpublic static void main(String[] args) {\n\t\tSystem.out.println(\"Ұϼ\");\n\t\tSystem.out.println(\"ҰJava\");\n\t\tSystem.out.println(\"Ұ\");\n\t\tSystem.out.println(\"ϼ\");\n\t}\n}"
  },
  {
    "path": "day03/code/05_选择结构(if语句)/IfDemo.java",
    "content": "/*\n\tѡṹif䣬switch䡣\n\n\tifָʽ\n\n\tifʽ1\n\t\tif(ϵʽ) {\n\t\t     ;\n\t\t}\n\n\ṭִ\n\t\tA:ϵʽ\n\t\tB:trueִ\n\t\t  falseͲִ\n\t\tC:ִ\n*/\nclass IfDemo {\n\tpublic static void main(String[] args) {\n\t\tint x = 3;\n\n\t\tif(x == 3) {\n\t\t\tSystem.out.println(\"x3\");\n\t\t\t//x = 10;\n\t\t}\n\n\t\tif(x > 5) {\n\t\t\tSystem.out.println(\"x5\");\t\n\t\t}\n\n\t\tSystem.out.println(\"over\");\n\t}\n}"
  },
  {
    "path": "day03/code/05_选择结构(if语句)/IfDemo2.java",
    "content": "/*\n\tifע\n\t\tA:ϵʽۼ򵥻Ǹӣboolean\n\t\tB:жϵʱ򣬽鳣ߡ\n\t\tC:ifƵһ䣬ſʡԣ\n\t\t  Ƕ䣬ͲʡԡԶҪʡ\n\t\tD:һ˵žûзֺţзֺžû\n*/\nclass IfDemo2 {\n\tpublic static void main(String[] args) {\n\t\tint x = 10;\n\t\tint y = 20;\n\t\tint z = 30;\n\n\t\tif(x > y) {\n\t\t\tSystem.out.println(\"hello\");\n\t\t}\n\n\t\t//ﲻboolean\n\t\t/*\n\t\tif(30) {\n\t\t\tSystem.out.println(\"world\");\n\t\t}\n\t\t*/\n\t\t\n\t\tif(true) {\n\t\t\tSystem.out.println(\"java\");\n\t\t}\n\n\t\tif(x<y && x<z) {\n\t\t\tSystem.out.println(\"android\");\n\t\t}\n\t\tSystem.out.println(\"-----------\");\n\n\t\tboolean flag = false;\n\t\t/*\n\t\tif(flag == true) {\n\t\t\tSystem.out.println(\"javaweb\");\n\t\t}\n\t\t*/\n\t\t\n\t\t/*\n\t\tif(flag = true) {\n\t\t\tSystem.out.println(\"javaweb\");\n\t\t}\n\t\t*/\n\t\t\n\t\t/*\n\t\tif(true = flag) {\n\t\t\tSystem.out.println(\"javaweb\");\n\t\t}\n\t\t*/\n\t\tSystem.out.println(\"-----------\");\n\n\t\tif(false) {\n\t\t\tSystem.out.println(\"haha\");\n\t\t\tSystem.out.println(\"hehe\");\n\t\t}\n\n\t\tSystem.out.println(\"heihei\");\n\n\t\tSystem.out.println(\"-----------\");\n\n\t\tif(false);\n\n\t\t//\n\t\t{\n\t\t\tSystem.out.println(\"111\");\n\t\t\tSystem.out.println(\"222\");\n\t\t}\n\t\tSystem.out.println(\"over\");\n\t}\n}\n"
  },
  {
    "path": "day03/code/05_选择结构(if语句)/IfDemo3.java",
    "content": "/*\n\tifʽ2\n\t\tif(ϵʽ) {\n\t\t     1;\n\t\t}else {\n\t\t\t 2;\n\t\t}\n\n\ṭִ\n\t\tA:ϵʽֵ\n\t\tB:trueִ1\n\t\t  falseִ2\n\t\tC:ִ\n*/\nclass IfDemo3 {\n\tpublic static void main(String[] args) {\n\t\tint x = 3;\n\n\t\tif(x == 3) {\n\t\t\tSystem.out.println(\"x3\");\n\t\t}else {\n\t\t\tSystem.out.println(\"x3\");\n\t\t}\n\n\t\tif(x > 5) {\n\t\t\tSystem.out.println(\"x3\");\n\t\t}else {\n\t\t\tSystem.out.println(\"x5\");\n\t\t}\n\t}\n}"
  },
  {
    "path": "day03/code/05_选择结构(if语句)/IfDemo4.java",
    "content": "/*\n\tifĵڶָʽԪ\n\t\tԪ\n\t\t\tϵʽ?ʽ1:ʽ2;\n\n\t\tifʽ2\n\t\t\tif(ϵʽ){\n\t\t\t\t1;\n\t\t\t}else {\n\t\t\t\t2;\n\t\t\t}\n\n\tܽ᣺\n\t\tԪܹʵֵģifĵڶָʽʵ֮֡\n\t\tʲôʱ򲻳?\n\t\t\tifһʱͲ\n\t\t\tΪԪһҪнأ䲻Ϊһء\n*/\nimport java.util.Scanner;\n\nclass IfDemo4 {\n\tpublic static void main(String[] args) {\n\t\t//¼\n\t\tScanner sc = new Scanner(System.in);\n\n\t\t//ȡ¼\n\t\tSystem.out.println(\"һݣ\");\n\t\tint a = sc.nextInt();\n\t\tSystem.out.println(\"ڶݣ\");\n\t\tint b = sc.nextInt();\n\n\t\t//ʹԪʵ\n\t\tint c =  (a>b)?a:b;\n\t\tSystem.out.println(\"c:\"+c);\n\n\t\t//ifʽ2ʵ\n\t\tint d;\n\t\tif(a > b) {\n\t\t\td = a;\n\t\t}else {\n\t\t\td = b;\n\t\t}\n\t\tSystem.out.println(\"d:\"+d);\n\t\tSystem.out.println(\"------------------\");\n\n\t\t//ֱӰѽ\n\t\tif(a > b) {\n\t\t\tSystem.out.println(\"a:\"+a);\n\t\t}else {\n\t\t\tSystem.out.println(\"b:\"+b);\n\t\t}\n\n\t\t//ԪĽ\n\t\t//(a>b)?System.out.println(\"a:\"+a):System.out.println(\"b:\"+b);\n\t}\n}\n"
  },
  {
    "path": "day03/code/05_选择结构(if语句)/IfDemo5.java",
    "content": "/*\n\tifʽ3\n\t\tif(ϵʽ1) {\n\t\t     1;\n\t\t}else  if (ϵʽ2) {\n\t\t\t 2;\n\t\t}\n\t\t\n\t\telse {\n\t\t\t n+1;\n\t\t}\n\n\ṭִ\n\t\tжϹϵʽ1truefalse\n\t\ttrueִ1\n\t\tfalseͼжϹϵʽ2truefalse\n\t\ttrueִ2\n\t\tfalseͼжϹϵʽtruefalse\n\t\t\n\t\tûκιϵʽΪtrueִn+1\n\n\t\n\t\t¼ѧɼݳɼڵۡ\n\t\t\t90-100\t\n\t\t\t80-90\t\n\t\t\t70-80\t\n\t\t\t60-70\t\n\t\t\t60\t\n*/\nimport java.util.Scanner;\n\nclass IfDemo5 {\n\tpublic static void main(String[] args) {\n\t\t//¼\n\t\tScanner sc = new Scanner(System.in);\n\n\t\t//¼ѧɼ\n\t\tSystem.out.println(\"ɼ\");\n\t\tint score = sc.nextInt();\n\n\t\t//УݵʱһҪע⣺\n\t\t//ȷ\n\t\t//\n\t\t//߽\n\n\t\t/*\n\t\tif(score>=90 && score<=100) {\n\t\t\tSystem.out.println(\"\");\n\t\t}else if(score>=80 && score<90) {\n\t\t\tSystem.out.println(\"\");\n\t\t}else if(score>=70 && score<80) {\n\t\t\tSystem.out.println(\"\");\n\t\t}else if(score>=60 && score<70) {\n\t\t\tSystem.out.println(\"\");\n\t\t}else {\n\t\t\tSystem.out.println(\"\");\n\t\t}\n\t\t*/\n\n\t\t//ʱȻҪˡûпǵݵ\n\t\t//ԣҪһж\n\t\t/*\n\t\tif(score>=90 && score<=100) {\n\t\t\tSystem.out.println(\"\");\n\t\t}else if(score>=80 && score<90) {\n\t\t\tSystem.out.println(\"\");\n\t\t}else if(score>=70 && score<80) {\n\t\t\tSystem.out.println(\"\");\n\t\t}else if(score>=60 && score<70) {\n\t\t\tSystem.out.println(\"\");\n\t\t}else if(score>=0 && score<60) {\n\t\t\tSystem.out.println(\"\");\n\t\t}else {\n\t\t\tSystem.out.println(\"ĳɼ\");\n\t\t}\n\t\t*/\n\n\t\t//ҲжϳɼǷ\n\t\tif(score<0 || score>100) {\n\t\t\tSystem.out.println(\"ĳɼ\");\n\t\t}else if(score>=90 && score<=100) {\n\t\t\tSystem.out.println(\"\");\n\t\t}else if(score>=80 && score<90) {\n\t\t\tSystem.out.println(\"\");\n\t\t}else if(score>=70 && score<80) {\n\t\t\tSystem.out.println(\"\");\n\t\t}else if(score>=60 && score<70) {\n\t\t\tSystem.out.println(\"\");\n\t\t}else {\n\t\t\tSystem.out.println(\"\");\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day03/code/05_选择结构(if语句)/IfTest.java",
    "content": "/*\n\t¼ݣȡеֵ\n\n\t\n\t\tA:¼\n\t\tB:жϣifʵ\n\t\tC:\n\n\tϰ\n\t\t¼ݣȽǷ\n\t\tifʵ֡\n*/\nimport java.util.Scanner;\n\nclass IfTest {\n\tpublic static void main(String[] args) {\n\t\t//¼\n\t\tScanner sc = new Scanner(System.in);\n\n\t\t//¼\n\t\tSystem.out.println(\"һݣ\");\n\t\tint firstNumber = sc.nextInt();\n\t\tSystem.out.println(\"ڶݣ\");\n\t\tint secondNumber = sc.nextInt();\n\n\t\t//ifʵ\n\n\t\t//ʽ1ֱӰѽ\n\t\tif(firstNumber > secondNumber) {\n\t\t\tSystem.out.println(\"ϴֵǣ\"+firstNumber);\n\t\t}else {\n\t\t\tSystem.out.println(\"ϴֵǣ\"+secondNumber);\n\t\t}\n\t\tSystem.out.println(\"-----------------------------\");\n\n\t\t//ʽ2ѽ\n\t\t/*\n\t\t,\n\t\tif(firstNumber > secondNumber) {\n\t\t\tint max = firstNumber;\n\t\t}else {\n\t\t\tint max = secondNumber;\n\t\t}\n\t\t*/\n\n\t\tint max;\n\t\tif(firstNumber > secondNumber) {\n\t\t\tmax = firstNumber;\n\t\t}else {\n\t\t\tmax = secondNumber;\n\t\t}\n\t\tSystem.out.println(\"ϴֵǣ\"+max);\n\t}\n}\n"
  },
  {
    "path": "day03/code/05_选择结构(if语句)/IfTest2.java",
    "content": "/*\n\t󣺼¼ݣȽǷ\n\n\t\n\t\tA:¼룬Scanner\n\t\tB:Ƚݣif\n\t\tC:ʽչʾ\n*/\nimport java.util.Scanner;\n\nclass IfTest2 {\n\tpublic static void main(String[] args) {\n\t\t//¼\n\t\tScanner sc = new Scanner(System.in);\n\n\t\t//¼\n\t\tSystem.out.println(\"һݣ\");\n\t\tint a = sc.nextInt();\n\t\tSystem.out.println(\"ڶݣ\");\n\t\tint b = sc.nextInt();\n\n\t\t//Ƚ\n\t\t//ʽ1:ѽֱ\n\t\tif(a == b) {\n\t\t\tSystem.out.println(true);\n\t\t}else {\n\t\t\tSystem.out.println(false);\t\n\t\t}\n\t\tSystem.out.println(\"------------------\");\n\n\t\t//ʽ2:ѽ\n\t\tboolean flag;\n\t\tif(a == b) {\n\t\t\tflag = true;\n\t\t}else {\n\t\t\tflag = false;\n\t\t}\n\t\tSystem.out.println(flag);\n\t}\n}\n"
  },
  {
    "path": "day03/code/05_选择结构(if语句)/IfTest3.java",
    "content": "/*\n\t󣺼¼xֵyĲ\n\t\t\tx>=3\ty = 2x + 1;\n\t\t\t-1<=x<3\ty = 2x;\n\t\t\tx<-1\ty = 2x C 1;\n\n\n\t\n\t\tA:¼ݡ\n\t\tB:жxȡֵΧӦyֵ\n\t\tC:yֵ\n*/\nimport java.util.Scanner;\n\nclass IfTest3 {\n\tpublic static void main(String[] args) {\n\t\t//¼\n\t\tScanner sc = new Scanner(System.in); \n\n\t\t//¼\n\t\tSystem.out.println(\"һݣ\");\n\t\tint x = sc.nextInt();\n\n\t\tint y;\n\t\tif(x >= 3) {\n\t\t\ty = 2*x + 1;\n\t\t}else if(x>=-1 && x<3) {\n\t\t\ty = 2*x;\n\t\t}else {\n\t\t\ty = 2*x - 1;\n\t\t}\n\n\t\tSystem.out.println(\"yֵǣ\"+y);\n\t}\n}"
  },
  {
    "path": "day03/code/05_选择结构(if语句)/IfTest4.java",
    "content": "/*\n\t󣺼¼·ݵֵӦļڡ\n\t\t 3,4,5\n\t\t 6,7,8\n\t\t 9,10,11\n\t\t 12,1,2\n\n\t\n\t\tA:¼·ݣScannerʵ֡\n\t\tB:ifʵж\n*/\nimport java.util.Scanner;\n\nclass IfTest4 {\n\tpublic static void main(String[] args) {\n\t\t//¼\n\t\tScanner sc = new Scanner(System.in);\n\n\t\t//¼·\n\t\tSystem.out.println(\"·ݣ\");\n\t\tint month = sc.nextInt();\n\t\t\n\t\t/*\n\t\tif(month<1 || month>12) {\n\t\t\tSystem.out.println(\"·\");\n\t\t}else if(month == 1) {\n\t\t\tSystem.out.println(\"\");\n\t\t}else if(month == 2) {\n\t\t\tSystem.out.println(\"\");\n\t\t}else if(month == 3) {\n\t\t\tSystem.out.println(\"\");\n\t\t}else if(month == 4) {\n\t\t\tSystem.out.println(\"\");\n\t\t}else if(month == 5) {\n\t\t\tSystem.out.println(\"\");\n\t\t}else if(month == 6) {\n\t\t\tSystem.out.println(\"ļ\");\n\t\t}else if(month == 7) {\n\t\t\tSystem.out.println(\"ļ\");\n\t\t}else if(month == 8) {\n\t\t\tSystem.out.println(\"ļ\");\n\t\t}else if(month == 9) {\n\t\t\tSystem.out.println(\"＾\");\n\t\t}else if(month == 10) {\n\t\t\tSystem.out.println(\"＾\");\n\t\t}else if(month == 11) {\n\t\t\tSystem.out.println(\"＾\");\n\t\t}else {\n\t\t\tSystem.out.println(\"\");\n\t\t}\n\t\t*/\n\n\t\t//Ȼڿʵ֣ǸоЩ鷳\n\t\t//ҪԳиĽ\n\t\t//θ?\n\t\t//month==3 || month==4 || month==5\n\t\t/*\n\t\tif(month<1 || month>12) {\n\t\t\tSystem.out.println(\"·\");\n\t\t}else if(month==3 || month==4 || month==5) {\n\t\t\tSystem.out.println(\"\");\n\t\t}else if(month==6 || month==7 || month==8) {\n\t\t\tSystem.out.println(\"ļ\");\n\t\t}else if(month==9 || month==10 || month==11) {\n\t\t\tSystem.out.println(\"＾\");\n\t\t}else {\n\t\t\tSystem.out.println(\"\");\n\t\t}\n\t\t*/\n\n\t\t//ʱѾˡ\n\t\t//ǣжϵ϶࣬˵ϰ°ꡣ\n\t\t//жϵȽ϶ĻʵԿͨһʽб\n\t\t//(month>=3 && month<=5)\n\t\t//һΧж\n\t\tif(month<1 || month>12) {\n\t\t\tSystem.out.println(\"·\");\n\t\t}else if(month>=3 && month<=5) {\n\t\t\tSystem.out.println(\"\");\n\t\t}else if(month>=6 && month<=8) {\n\t\t\tSystem.out.println(\"ļ\");\n\t\t}else if(month>=9 && month<=11) {\n\t\t\tSystem.out.println(\"＾\");\n\t\t}else {\n\t\t\tSystem.out.println(\"\");\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day03/code/05_选择结构(if语句)/IfTest5.java",
    "content": "/*\n\t󣺻ȡеֵ\n*/\nimport java.util.Scanner;\n\nclass IfTest5 {\n\tpublic static void main(String[] args) {\n\t\t//¼\n\t\tScanner sc = new Scanner(System.in);\n\n\t\t//¼\n\t\tSystem.out.println(\"һݣ\");\n\t\tint a = sc.nextInt();\n\t\tSystem.out.println(\"ڶݣ\");\n\t\tint b = sc.nextInt();\n\t\tSystem.out.println(\"ݣ\");\n\t\tint c = sc.nextInt();\n\n\t\t//Ԫʵ\n\t\t//int max  = (a>b)?(a>c?a:c):(b>c?b:c);\n\t\tint temp = a>b?a:b;\n\t\tint max = temp>c?temp:c;\n\t\tSystem.out.println(\"ֵǣ\"+max);\n\n\n\t\t//ifʵ(ifǶʹ)\n\t\tint max2;\n\t\tif(a > b) {\n\t\t\tif(a > c) {\n\t\t\t\tmax2 = a;\n\t\t\t}else {\n\t\t\t\tmax2 = c;\n\t\t\t}\n\t\t}else {\n\t\t\tif(b > c) {\n\t\t\t\tmax2 = b;\n\t\t\t}else {\n\t\t\t\tmax2 = c;\n\t\t\t}\n\t\t}\n\t\tSystem.out.println(\"ֵǣ\"+max2);\n\t}\n}\n"
  },
  {
    "path": "day03/code/06_选择结构(switch语句)/SwitchDemo.java",
    "content": "/*\n\tswitchʽ\n\t\tswitch(ʽ) {\n\t\t\tcase ֵ1\n\t\t\t\t1;\n\t\t\t\tbreak;\n\t\t    case ֵ2\n\t\t\t\t2;\n\t\t\t\tbreak;\n\t\t\t\t\n\t\t    default\t\n\t\t\t\tn+1;\n\t\t\t\tbreak;\n\t\t}\n\n\t\tʽͣ\n\t\t\tA:switchʾswitch\n\t\t\tB:ʽȡֵ\n\t\t\t\tbyte,short,int,char\n\t\t\t\tJDK5Ժö͡(enum)\n\t\t\t\tJDK7Ժַ(String)\n\t\t\tC:caseҪͱʽбȽϵֵ\n\t\t\tD:Ƕ\n\t\t\tE:breakʾжϣ˼Խswitch\n\t\t\tF:defaultʾƥʱ򣬾ִиôݣifelseơ\n\t\t\n\t\t⣺\n\t\t\tswitchıʽbyte?long?String?\n\t\t\t\tԡ\n\t\t\t\tԡ\n\t\t\t\tJDK7Ժԡ\n\n\t\ṭִ\n\t\t\tA:ȼʽֵ\n\t\t\tB:ΣcaseαȽϣһжӦֵͻִӦ䣬\n\t\t\t  ִеĹУbreakͻ\n\t\t\tC:еcaseͱʽֵƥ䣬ͻִdefault岿֣Ȼ\n\n\t\t󣺸ݼ¼ֵ1237Ӧһڶա\n\n\t\t\n\t\t\tA:¼ݣScannerʵ\n\t\t\tB:¼ݽжϣswitchʵ\n\t\t\tC:ӦĽ\n*/\nimport java.util.Scanner;\n\nclass SwitchDemo {\n\tpublic static void main(String[] args) {\n\t\t//¼\n\t\tScanner sc = new Scanner(System.in);\n\n\t\t//¼\n\t\tSystem.out.println(\"һ(1-7)\");\n\t\tint week = sc.nextInt();\n\n\t\t//switchʵ\n\t\tswitch(week) {\n\t\t\tcase 1:\n\t\t\t\tSystem.out.println(\"һ\");\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tSystem.out.println(\"ڶ\");\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tSystem.out.println(\"\");\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\tSystem.out.println(\"\");\n\t\t\t\tbreak;\n\t\t\tcase 5:\n\t\t\t\tSystem.out.println(\"\");\n\t\t\t\tbreak;\n\t\t\tcase 6:\n\t\t\t\tSystem.out.println(\"\");\n\t\t\t\tbreak;\n\t\t\tcase 7:\n\t\t\t\tSystem.out.println(\"\");\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tSystem.out.println(\"\");\n\t\t\t\tbreak;\n\t\t}\n\t}\n}"
  },
  {
    "path": "day03/code/06_选择结构(switch语句)/SwitchDemo2.java",
    "content": "/*\n\tע\n\t\tA:caseֻǳǱңcaseֵܳͬ\n\t\tB:defaultʡ\n\t\t\tʡԡһ㲻顣жϵֵǹ̶ġ\n\t\tC:breakʡ\n\t\t\tԡһ϶ûκġ\n\t\t\tмʡҲǿԵģǲ飬ΪܶҪĽӰ졣\n\t\tD:defaultλһҪ\n\t\t\tһκκcaseӦλá\n\t\t\tǣʱübreak\n\t\tE:switchĽ\n\t\t\ta:break\n\t\t\tb:ִеĩβ\n*/\nclass SwitchDemo2 {\n\tpublic static void main(String[] args) {\n\t\tint week = 3;\n\t\t//int y = 4;\n\n\t\tswitch(week) {\n\t\t\tcase 1:\n\t\t\t\tSystem.out.println(1);\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tSystem.out.println(2);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tSystem.out.println(5);\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tSystem.out.println(3);\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\tSystem.out.println(4);\n\t\t\t\tbreak;\n\t\t\t/*\n\t\t\tdefault:\n\t\t\t\tSystem.out.println(5);\n\t\t\t\t//break;\n\t\t\t*/\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day03/code/06_选择结构(switch语句)/SwitchTest.java",
    "content": "/*\n\tд\n*/\nclass SwitchTest {\n\tpublic static void main(String[] args) {\n\t\t/*\n\t\tint x = 2;\n\t\tint y = 3;\n\n\t\tswitch(x){\n\t\t\tdefault:\n\t\t\t\ty++;\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\ty++;\n\t\t\tcase 4:\n\t\t\t\ty++;\n\t\t}\n\t\tSystem.out.println(\"y=\"+y);\n\t\t*/\n\n\t\tint x = 2;\n\t\tint y = 3;\n\t\tswitch(x){\n\t\t\tdefault:\n\t\t\t\ty++;\n\t\t\tcase 3:\n\t\t\t\ty++;\n\t\t\tcase 4:\n\t\t\t\ty++;\n\t\t}\n\t\tSystem.out.println(\"y=\"+y);\n\t}\n}\n"
  },
  {
    "path": "day03/code/06_选择结构(switch语句)/SwitchTest2.java",
    "content": "/*\n\tģѡ⣬ѡ񣬸ӦĴ𰸡(ʽַ)\n\tݸַѡַʲô(ʽַ)\n*/\nclass SwitchTest2 {\n\tpublic static void main(String[] args) {\n\t\t//һѡ\n\t\t//ʽַ\n\t\tchar ch = 'B';\n\n\t\tswitch(ch) {\n\t\t\tcase 'A':\n\t\t\t\tSystem.out.println(\"ѡA\");\n\t\t\t\tbreak;\n\t\t\tcase 'B':\n\t\t\t\tSystem.out.println(\"ѡB\");\n\t\t\t\tbreak;\n\t\t\tcase 'C':\n\t\t\t\tSystem.out.println(\"ѡC\");\n\t\t\t\tbreak;\n\t\t\tcase 'D':\n\t\t\t\tSystem.out.println(\"ѡD\");\n\t\t\t\tbreak;\n\t\t}\n\n\t\t//ַж\n\t\tString s = \"java\";\n\n\t\tswitch(s) {\n\t\t\tcase \"hello\":\n\t\t\t\tSystem.out.println(\"hello\");\n\t\t\t\tbreak;\n\t\t\tcase \"world\":\n\t\t\t\tSystem.out.println(\"world\");\n\t\t\t\tbreak;\n\t\t\tcase \"java\":\n\t\t\t\tSystem.out.println(\"java\");\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tSystem.out.println(\"android\");\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day03/code/06_选择结构(switch语句)/SwitchTest3.java",
    "content": "/*\n\tswitchʵּ¼·ݣӦļ\n\n\tжϵʱѡifswitch䣬ôǵ׸ѡʹ?\n\t\tifʹó\n\t\t\tԽboolean͵ж\n\t\t\tһΧж\n\t\t\tԼֵж\n\t\tswitchʹó\n\t\t\tԼֵж\n*/\nimport java.util.Scanner;\n\nclass SwitchTest3 {\n\tpublic static void main(String[] args) {\n\t\t//¼\n\t\tScanner sc = new Scanner(System.in);\n\n\t\t//¼\n\t\tSystem.out.println(\"·ݣ\");\n\t\tint month = sc.nextInt();\n\n\t\t/*\n\t\tswitch(month) {\n\t\t\tcase 1:\n\t\t\t\tSystem.out.println(\"\");\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tSystem.out.println(\"\");\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tSystem.out.println(\"\");\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\tSystem.out.println(\"\");\n\t\t\t\tbreak;\n\t\t\tcase 5:\n\t\t\t\tSystem.out.println(\"\");\n\t\t\t\tbreak;\n\t\t\tcase 6:\n\t\t\t\tSystem.out.println(\"ļ\");\n\t\t\t\tbreak;\n\t\t\tcase 7:\n\t\t\t\tSystem.out.println(\"ļ\");\n\t\t\t\tbreak;\n\t\t\tcase 8:\n\t\t\t\tSystem.out.println(\"ļ\");\n\t\t\t\tbreak;\n\t\t\tcase 9:\n\t\t\t\tSystem.out.println(\"＾\");\n\t\t\t\tbreak;\n\t\t\tcase 10:\n\t\t\t\tSystem.out.println(\"＾\");\n\t\t\t\tbreak;\n\t\t\tcase 11:\n\t\t\t\tSystem.out.println(\"＾\");\n\t\t\t\tbreak;\n\t\t\tcase 12:\n\t\t\t\tSystem.out.println(\"\");\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tSystem.out.println(\"·\");\n\t\t}\n\t\t*/\n\n\t\t//Ƚ鷳\n\t\tswitch(month) {\n\t\t\tcase 1:\n\t\t\tcase 2:\n\t\t\tcase 12:\n\t\t\t\tSystem.out.println(\"\");\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\tcase 4:\n\t\t\tcase 5:\n\t\t\t\tSystem.out.println(\"\");\n\t\t\t\tbreak;\n\t\t\tcase 6:\n\t\t\tcase 7:\n\t\t\tcase 8:\n\t\t\t\tSystem.out.println(\"ļ\");\n\t\t\t\tbreak;\n\t\t\tcase 9:\n\t\t\tcase 10:\n\t\t\tcase 11:\n\t\t\t\tSystem.out.println(\"＾\");\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tSystem.out.println(\"·\");\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day03/day03总结.txt",
    "content": "1:λ(˽)\n\t(1)&,|,^,~,>>,>>>,<<\n\t\tλ㣬ҪתΪơ\n\t(2)^ص㣺()\n\t\tͬһΣֵ䡣\n\n\t\t⣺ֵ\n\t\t\tint a = 10;\n\t\t\tint b = 20;\n\n\t\t\n\t\t\tint temp = a;\n\t\t\ta = b;\n\t\t\tb = temp;\n\t\tԣ^ʵ\n\t\t\ta = a ^ b;\n\t\t\tb = a ^ b;\n\t\t\ta = a ^ b;\n\t(3)()\n\t\tЧʵķʽ28ֵ\n\t\t\t2*8\n\n\t\t\t2<<3\n\n2:Ԫ()\n\t(1)ʽ\n\t\tϵʽ?ʽ1:ʽ2;\n\t(2)ִ̣\n\t\tA:ϵʽֵ\n\t\tB:trueʽ1ǽ\n\t\t  falseʽ2ǽ\n\t(3)ϰ\n\t\tA:ȡнϴֵ\n\t\tB:ȡнϴֵ\n\t\tC:ȽǷ\n\t(4)˲䣺\n\t\tʽǶʹԼθдǶ\n\n3:¼()\n\tʽ\n\t(1)\n\t\timport java.util.Scanner;\n\n\t\tע⣺λclass档\n\t(2)¼\n\t\tScanner sc = new Scanner(System.in);\n\t(3)ȡ\n\t\tint i = sc.nextInt();\n\t(4)ϰ\n\t\tA:ݵĺ\n\t\tB:ȡнϴֵ\n\t\tC:ȡнϴֵ\n\t\tD:ȽǷ\n\n4:˳ṹ()\n\t(1)̿䣺\n\t\t˳ṹ\n\t\tѡṹ\n\t\tѭṹ\n\t(2)˳ṹ\n\t\t£ִС\n\n5:if()\n\t(1)ָʽ\n\t\tA:ʽ1\n\t\t\tif(ϵʽ) {\n\t\t\t\t;\n\t\t\t}\n\n\t\t\ṭִ\n\t\t\t\ta:ϵʽֵ\n\t\t\t\tb:trueִ\n\t\t\t\t  falseͲִ\n\t\t\t\tc:ִ\n\n\t\tB:ʽ2\n\t\t\tif(ϵʽ) {\n\t\t\t\t1;\n\t\t\t}else {\n\t\t\t\t2;\n\t\t\t}\n\n\t\t\ṭִ\n\t\t\t\ta:ϵʽֵ\n\t\t\t\tb:trueִ1\n\t\t\t\t  falseִ2\n\t\t\t\tc:ִ\n\n\t\t\tԪ?\n\t\t\t\tԪʵֵģifĸʽ2ʵ֣֮\n\t\t\t\tʲôʱ򲻳?\n\t\t\t\t\tifһʱ򣬾Ͳԡ\n\t\t\t\t\tΪԪһҪ㷵һ\n\t\t\t\t\t䲻һؽ\n\n\t\tC:ʽ3\n\t\t\tif(ϵʽ1) {\n\t\t\t\t1;\n\t\t\t}else if(ϵʽ2) {\n\t\t\t\t2;\n\t\t\t}else if(ϵʽ3) {\n\t\t\t\t3;\n\t\t\t}\n\t\t\t...\n\t\t\telse {\n\t\t\t\tn+1;\n\t\t\t}\n\n\t\t\ṭִ\n\t\t\t\ta:ϵʽ1ֵ\n\t\t\t\tb:trueִ1\n\t\t\t\t  falseͼϵʽ2ֵ\n\t\t\t\tc:trueִ2\n\t\t\t\t  falseͼϵʽ3ֵ\n\t\t\t\t  ...\n\t\t\t\td:еĹϵʽ㣬ִelsen+1;\n\t(2)ע\n\t\tA:ϵʽۼ򵥻Ǹӣboolean\n\t\tB:ifһ䣬{}ǿʡԵġǶ䣬{}ʡԡ\n\t\t  ԶҪʡԡ\n\t\tC:Ҫӣ\n\t\t\tһ{ޣ\n\t\tD:else治йϵʽֻifС\n\t(3)ϰ\n\t\tA:ȡнϴֵ\n\t\tB:ȡнϴֵ\n\t\tC:ȽǷ\n\t\tD:ݼ¼xֵyֵ\n\t\tE:ѧɼӦ\n\t\tF:ݼ¼·ݣӦļ\n\n6:switch()\n\t(1)ʽ\n\t\tswitch(ʽ) {\n\t\t\tcase ֵ1:\n\t\t\t\t1;\n\t\t\t\tbreak;\n\t\t\tcase ֵ2:\n\t\t\t\t2;\n\t\t\t\tbreak;\n\t\t\tcase ֵ3:\n\t\t\t\t3;\n\t\t\t\tbreak;\n\t\t\t...\n\t\t\tdefault:\n\t\t\t\tn+1;\n\t\t\t\tbreak;\n\t\t}\n\n\t\tʽͣ\n\t\tA:switch˵switch\n\t\tB:ʽȡֵ\n\t\t\tbyte,short,int,char\n\t\t\tJDK5Ժö\n\t\t\tJDK7ԺString\n\n\t\t\t⣺switchıʽǿbyte?long?String?\n\t\tC:caseֵǺͱʽƥ\n\t\tD:ҪɵĶǶ\n\t\tE:break ˵䱻ж\n\t\tF:default ifelseƣڴвƥ\n\t(2)ִ\n\t\tA:ʽֵ\n\t\tB:caseֵƥ䣬жӦľִжӦ\n\t\tC:ûжӦģִdefault\n\t(3)ע\n\t\tA:caseֻǳǱҳֵظ\n\t\tB:breakʡ?\n\t\t\tԡһ϶ԡ\n\t\t\tмҲԣǲ顣ΪܵõĽҪġ\n\t\t\tcase͸ \n\t\tC:defaultʡ?\n\t\t\tԡ\n\t\tD:defaultһҪ?\n\t\t\tһмҲǿԵġҪעbreak\n\t\tE:switchĽ\n\t\t\ta:break\n\t\t\tb:ִеĩβ\n\t(4)ϰ\n\t\tA:ʽ\n\t\tB:ʽַ\n\t\tC:ʽַ\n\t\tD:ݼ¼·ݣӦļ\n\t(5)ifswitchĸӦó\n\t\tA:if\n\t\t\tԶԼֵж\n\t\t\tԶԱʽboolean͵Ľж\n\t\t\tԶһݷΧж\n\t\tB:switch\n\t\t\tʺϼֵж(ѡ)"
  },
  {
    "path": "day04/code/01_循环语句(for)/ForDemo.java",
    "content": "/*\n\tѭ䣺\n\t\tʼ:һЩʼ\n\t\tж:֪Ҫٴ\n\t\tѭ:Ҫ\n\t\t仯:ͨںʵʱ\n*/\nclass ForDemo {\n\tpublic static void main(String[] args) {\n\t\t//ڿ̨һ\"HelloWorld\"\n\t\tSystem.out.println(\"HelloWorld\");\n\n\t\t//ڿ̨ʮ\"HelloWorld\"\n\t\tSystem.out.println(\"HelloWorld\");\n\t\tSystem.out.println(\"HelloWorld\");\n\t\tSystem.out.println(\"HelloWorld\");\n\t\tSystem.out.println(\"HelloWorld\");\n\t\tSystem.out.println(\"HelloWorld\");\n\t\tSystem.out.println(\"HelloWorld\");\n\t\tSystem.out.println(\"HelloWorld\");\n\t\tSystem.out.println(\"HelloWorld\");\n\t\tSystem.out.println(\"HelloWorld\");\n\t\tSystem.out.println(\"HelloWorld\");\n\n\t\t//ڿ̨һ\"HelloWorld\"\n\t}\n}"
  },
  {
    "path": "day04/code/01_循环语句(for)/ForDemo2.java",
    "content": "/*\n\tforѭĸʽ\n\t\tfor(ʼ;ж;) {\n\t\t\tѭ;\n\t\t}\n\n\t\ṭִ\n\t\tA:ִгʼ\n\t\tB:ִж䣬䷵ֵ\n\t\t\ttrueͼ\n\t\t\tfalseѭ\n\t\tC:ִѭ\n\t\tD:ִп\n\t\tE:صB\n*/\nclass ForDemo2 {\n\tpublic static void main(String[] args) {\n\t\t//ڿ̨10HelloWorld\n\t\tfor(int x=0; x<10; x++) {\n\t\t\tSystem.out.println(\"HelloWorld\");\n\t\t}\t\n\t\tSystem.out.println(\"--------------\");\n\t\t\n\t\t//ʼ0ʼ\n\t\tfor(int x=1; x<=10; x++) {\n\t\t\tSystem.out.println(\"HelloWorld\");\n\t\t}\t\n\n\t\tfor(int x=1; x<11; x++) {\n\t\t\tSystem.out.println(\"HelloWorld\");\n\t\t}\n\n\t\tfor(int x=10; x>0; x--) {\n\t\t\tSystem.out.println(\"HelloWorld\");\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day04/code/01_循环语句(for)/ForDemo3.java",
    "content": "/*\n\t5Ľ׳\n\n\t׳ˣ\n\t\tn! = n*(n-1)*(n-2)*...*3*2*1\n\n\t\tn! = n*(n-1)!\n*/\nclass ForDemo3 {\n\tpublic static void main(String[] args) {\n\t\t//۳˱\n\t\tint jc = 1;\n\n\t\tfor(int x=1; x<=5; x++) {\n\t\t\tjc *= x;\n\t\t}\n\n\t\tSystem.out.println(\"5Ľ׳ǣ\"+jc);\n\t}\n}"
  },
  {
    "path": "day04/code/01_循环语句(for)/ForDemo4.java",
    "content": "/*\n\tͳơˮɻжٸ\n\n\t\n\t\tA:ҪͳжٸݣҪһͳƱ\n\t\t\tint count = 0;\n\t\tB:һλʵǵǷΧͨforѭͿԸ㶨\n\t\tC:λֵ͵ڸǹ\n\t\t\tȡÿһλϵ?\n\n\t\t\tһx 153\n\t\t\tλx%10\n\t\t\tʮλx/10%10\n\t\t\tλx/10/10%10\n\t\t\tǧλx/10/10/10%10\n\t\t\t...\n\n\t\t\tx == (λ*λ*λ + ʮλ*ʮλ*ʮλ + λ*λ*λ)\n*/\nclass ForDemo4 {\n\tpublic static void main(String[] args) {\n\t\t//ͳƱ\n\t\tint count = 0;\n\n\t\tfor(int x=100; x<1000; x++) {\n\t\t\tint ge = x%10;\n\t\t\tint shi = x/10%10;\n\t\t\tint bai = x/10/10%10;\n\n\t\t\tif(x == (ge*ge*ge + shi*shi*shi + bai*bai*bai)) {\n\t\t\t\tcount++;\n\t\t\t}\n\t\t}\n\n\t\tSystem.out.println(\"ˮɻУ\"+count+\"\");\n\t}\n}\n"
  },
  {
    "path": "day04/code/01_循环语句(for)/ForTest.java",
    "content": "class ForTest {\n\tpublic static void main(String[] args) {\n\t\t//ڿ̨1-10\n\t\tSystem.out.println(1);\n\t\tSystem.out.println(2);\n\t\tSystem.out.println(3);\n\t\tSystem.out.println(4);\n\t\tSystem.out.println(5);\n\t\tSystem.out.println(6);\n\t\tSystem.out.println(7);\n\t\tSystem.out.println(8);\n\t\tSystem.out.println(9);\n\t\tSystem.out.println(10);\n\t\tSystem.out.println(\"------------\");\n\n\t\tfor(int x=0; x<10; x++) {\n\t\t\tSystem.out.println(x+1);\t\n\t\t}\n\t\tSystem.out.println(\"------------\");\n\n\t\tfor(int x=1; x<=10; x++) {\n\t\t\tSystem.out.println(x);\t\n\t\t}\n\t\tSystem.out.println(\"------------\");\n\n\t\tfor(int x=10; x>0; x--) {\n\t\t\tSystem.out.println(x);\t\n\t\t}\n\t\tSystem.out.println(\"------------\");\n\t}\n}\n"
  },
  {
    "path": "day04/code/01_循环语句(for)/ForTest2.java",
    "content": "/*\n\t1-10֮֮\n\t\t0+1=1\n\t\t\t1+2=3\n\t\t\t\t3+3=6\n\t\t\t\t\t6+4=10\n\t\t\t\t\t\t10+5=15\n\t\t\t\t\t\t\t...\n\n\t\tΪÿһεۼӽǱ仯ģҪһרڼ¼ÿۼӵĽ\n\t\tҪ1234...ҲǱ仯ģҲҪһѭܵõÿֵ\n*/\nclass ForTest2 {\n\tpublic static void main(String[] args) {\n\t\t//\n\t\t//System.out.println(1+2+3+4+5+6+7+8+9+10);\n\t\n\t\t//ѭ\n\t\tint sum = 0;\n\n\t\tfor(int x=1; x<=10; x++) {\n\t\t\t//x=1,2,3,4,...10\n\n\t\t\t//sum = sum + x; //sum=0 + 1 = 1;\n\t\t\t//sum = sum + x; //sum=1 + 2 = 3;\n\n\t\t\t//sum = sum + x;\n\t\t\n\t\t\tsum += x;\n\t\t}\n\n\t\tSystem.out.println(\"1-10ĺǣ\"+sum);\n\t}\n}"
  },
  {
    "path": "day04/code/01_循环语句(for)/ForTest3.java",
    "content": "class ForTest3 {\n\tpublic static void main(String[] args) {\n\t\t//1-100֮ż\n\n\t\t/*\n\t\t//ͱ\n\t\tint sum = 0;\n\n\t\t//ͨforѭȡÿһ\n\t\tfor(int x=1; x<=100; x++) {\n\t\t\t//ۼ\n\t\t\tsum += x;\n\t\t}\n\n\t\t//\n\t\tSystem.out.println(\"1-100֮ͣ\"+sum);\n\t\tSystem.out.println(\"---------------\");\n\t\t*/\n\n\t\t//ż:ܱ2\n\t\t//жǷܹ? x%2 == 0\n\n\t\t/*\n\t\tint sum = 0;\n\n\t\tfor(int x=1; x<=100; x++) {\n\t\t\tif(x%2 == 0) {\n\t\t\t\tsum += x;\n\t\t\t}\n\t\t}\n\n\t\tSystem.out.println(\"1-100żͣ\"+sum);\n\t\t*/\n\n\t\tint sum = 0;\n\n\t\tfor(int x=0; x<=100; x+=2) {\n\t\t\tsum += x;\n\t\t}\n\n\t\tSystem.out.println(\"1-100żͣ\"+sum);\n\t}\n}\n"
  },
  {
    "path": "day04/code/01_循环语句(for)/ForTest4.java",
    "content": "/*\n\tνˮɻָһλλֵ͵ڸ\n\t153һˮɻ\n\t153 = 1*1*1 + 5*5*5 + 3*3*3\n\n\t\n\t\tA:һλʵǵǷΧͨforѭͿԸ㶨\n\t\tB:λֵ͵ڸǹ\n\t\t\tȡÿһλϵ?\n\n\t\t\tһx 153\n\t\t\tλx%10\n\t\t\tʮλx/10%10\n\t\t\tλx/10/10%10\n\t\t\tǧλx/10/10/10%10\n\t\t\t...\n\n\t\t\tx == (λ*λ*λ + ʮλ*ʮλ*ʮλ + λ*λ*λ)\n*/\nclass ForTest4 {\n\tpublic static void main(String[] args) {\n\t\tfor(int x=100; x<1000; x++) {\n\t\t\tint ge = x%10;\n\t\t\tint shi = x/10%10;\n\t\t\tint bai = x/10/10%10;\n\n\t\t\tif(x == (ge*ge*ge + shi*shi*shi + bai*bai*bai)){\n\t\t\t\tSystem.out.println(x);\n\t\t\t}\n\t\t}\n\t}\n}"
  },
  {
    "path": "day04/code/01_循环语句(for)/ForTest5.java",
    "content": "/*\n\tڿ̨λ\n\t\t\tλλ\n\t\t\tʮλǧλ\n\t\t\tλ+ʮλ+ǧλ+λ=λ\n\n\t\n\t\tA:λǷΧ\n\t\tB:ȡÿһλϵݡ\n\t\tC:\n\t\t\tλλ\n\t\t\tʮλǧλ\n\t\t\tλ+ʮλ+ǧλ+λ=λ\n*/\nclass ForTest5 {\n\tpublic static void main(String[] args) {\n\t\tfor(int x=10000; x<100000; x++) {\n\t\t\tint ge = x%10;\n\t\t\tint shi = x/10%10;\n\t\t\tint bai = x/10/10%10;\n\t\t\tint qian = x/10/10/10%10;\n\t\t\tint wan = x/10/10/10/10%10;\n\n\t\t\tif((ge == wan) && (shi == qian) && (ge+shi+qian+wan == bai)) {\n\t\t\t\tSystem.out.println(x);\n\t\t\t}\n\t\t}\n\t}\n}"
  },
  {
    "path": "day04/code/01_循环语句(for)/ForTest6.java",
    "content": "/*\n\tͳ1-1000֮ͬʱжٸ\n\t\t\t32\n\t\t\t53\n\t\t\t72\n\n\t\n\t\tA:һͳƱ\n\t\tB:1-1000֮˷ΧforѭԽ\n\t\tC:\n\t\t\t32\n\t\t\t53\n\t\t\t72\n\n\t\t\tx%3 == 2\n\t\t\tx%5 == 3\n\t\t\tx%7 == 2\n*/\nclass ForTest6 {\n\tpublic static void main(String[] args) {\n\t\t//һͳƱ\n\t\tint count = 0;\n\n\t\t//1-1000֮˷ΧforѭԽ\n\t\tfor(int x=1; x<=1000; x++) {\n\t\t\t//ж\n\t\t\tif(x%3==2 && x%5==3 && x%7==2) {\n\t\t\t\t//System.out.println(x);\n\t\t\t\tcount++;\n\t\t\t}\n\t\t}\n\n\t\tSystem.out.println(\"\"+count+\"\");\n\t}\n}\n"
  },
  {
    "path": "day04/code/02_循环语句(while)/WhileDemo.java",
    "content": "/*\n\twhileѭĸʽ\n\t\twhile(ʽ) {\n\t\t\t;\n\t\t}\n\n\tθʽ\n\t\tʼ;\n\t\twhile(ж) {\n\t\t\tѭ;\n\t\t\t;\n\t\t}\n\n\t\tfor(ʼ;ж;) {\n\t\t\t ѭ;\n\t\t}\n\tɴ˿ɼwhileѭforѭǿԵȼתġ\n*/\nclass WhileDemo {\n\tpublic static void main(String[] args) {\n\t\t//for\n\t\t/*\n\t\tfor(int x=0; x<10; x++) {\n\t\t\tSystem.out.println(\"HelloWorld\");\n\t\t}\n\t\tSystem.out.println(\"--------------\");\n\t\t*/\n\n\t\t//while\n\t\t/*\n\t\tint x=0;\n\t\twhile(x<10) {\n\t\t\tSystem.out.println(\"HelloWorld\");\n\t\t\tx++;\n\t\t}\n\t\t*/\n\n\t\t//\n\t\t//for\n\t\t/*\n\t\tint sum = 0;\n\t\tfor(int x=1; x<=100; x++) {\n\t\t\tsum+=x;\n\t\t}\n\t\tSystem.out.println(\"1-100֮ǣ\"+sum);\n\t\t*/\n\n\t\t//while\n\t\t/*\n\t\tint sum = 0;\n\t\tint x = 1;\n\t\twhile(x<=100) {\n\t\t\tsum += x;\n\t\t\tx++;\n\t\t}\n\t\tSystem.out.println(\"1-100֮ǣ\"+sum);\n\t\t*/\n\n\t\t//ˮɻ\n\t\t//for\n\t\t/*\n\t\tfor(int x=100; x<1000; x++) {\n\t\t\tint ge = x%10;\n\t\t\tint shi = x/10%10;\n\t\t\tint bai = x/10/10%10;\n\n\t\t\tif(x == (ge*ge*ge + shi*shi*shi + bai*bai*bai)) {\n\t\t\t\tSystem.out.println(x);\n\t\t\t}\n\t\t}\n\t\t*/\n\n\t\t//while\n\t\tint x = 100;\n\t\twhile(x<1000) {\n\t\t\tint ge = x%10;\n\t\t\tint shi = x/10%10;\n\t\t\tint bai = x/10/10%10;\n\n\t\t\tif(x == (ge*ge*ge + shi*shi*shi + bai*bai*bai)) {\n\t\t\t\tSystem.out.println(x);\n\t\t\t}\n\n\t\t\tx++;\n\t\t}\n\t}\n}"
  },
  {
    "path": "day04/code/02_循环语句(while)/WhileDemo2.java",
    "content": "/*\n\tforwhile\n\tʹ𣺿ƵǸforѭ󣬾Ͳٱʵˣ\n\t\t\t  whileѭԼʹãʹãwhileƼʹfor\n\t\t\t  ԭforѭñʹڴʧܹڴʹЧʡ\n\t\n\t\t\tforѭʺһΧжϽв\n\t\t\t\tˮɻ\n\t\t\twhileѭʺжϴȷ\n\t\t\t\t\n*/\nclass WhileDemo2 {\n\tpublic static void main(String[] args) {\n\t\tint x = 0;\n\t\twhile(x<10) {\n\t\t\tSystem.out.println(x);\n\t\t\tx++;\n\t\t}\n\t\tSystem.out.println(x+\"---\");\n\t\tSystem.out.println(\"-----------\");\n\n\t\tfor(int y=0; y<10; y++) {\n\t\t\tSystem.out.println(y);\n\t\t}\n\t\t//System.out.println(y+\"---\");\n\t}\n}\n"
  },
  {
    "path": "day04/code/02_循环语句(while)/WhileTest.java",
    "content": "/*\n\tҹɽ壺8848mһ㹻ֽţΪ0.01m\n\tʣ۵ٴΣͿԱ֤Ȳĸ߶?\n\n\t\n\t\tA:ʼ\n\t\t\tҹɽ壺8848mһ㹻ֽţΪ0.01m\n\t\tB:ͳƱ\n\t\t\t۵ٴ\n\t\tC:ж\n\t\t\tֽź<=8848\n\t\tD:仯\n\t\t\tֽźÿ۵һǰ2\n*/\nclass WhileTest {\n\tpublic static void main(String[] args) {\n\t\t//ʼ\n\t\tint end = 884800;\n\t\tint start = 1;\n\n\t\t//ͳƱ\n\t\tint count = 0;\n\n\t\t//whileѭ\n\t\twhile(start<=end) {\n\t\t\tcount++;\n\n\t\t\t//ֽźÿ۵һǰ2\n\t\t\tstart*=2;\n\t\t}\n\n\t\tSystem.out.println(\"Ҫ۵\"+count+\"\");\n\n\t\t//Ŀforѭ\n\t\t/*\n\t\tint count = 0;\n\t\tfor(int start = 1,end = 884800; start<=end;start*=2){\n\t\t\tcount++;\n\t\t}\n\t\tSystem.out.println(\"Ҫ۵\"+count+\"\");\n\t\t*/\n\t}\n}\n"
  },
  {
    "path": "day04/code/03_循环语句(do...while)/DoWhileDemo.java",
    "content": "/*\n\tdo...whileʽ\n\t\tdo {\n\t\t\t;\n\t\t}while(ʽ);\n\n\tθʽ\n\t\tʼ;\n\t\tdo {\n\t\t\tѭ;\n\t\t\t;\n\t\t}while(ж);\n\t\t\n\t\t\n\t\tfor(ʼ;ж;) {\n\t\t\t ѭ;\n\t\t}\n*/\nclass DoWhileDemo {\n\tpublic static void main(String[] args) {\n\t\t/*\n\t\tint sum = 0;\n\t\tfor(int x=1; x<=100; x++) {\n\t\t\tsum+=x;\n\t\t}\n\t\tSystem.out.println(sum);\n\t\t*/\n\n\t\t//do...while\n\t\tint sum = 0;\n\t\tint x = 1;\n\t\tdo{\n\t\t\tsum+=x;\n\t\t\tx++;\n\t\t}while (x<=100);\n\t\tSystem.out.println(sum);\n\t}\n}"
  },
  {
    "path": "day04/code/03_循环语句(do...while)/DoWhileTest.java",
    "content": "/*\n\tѭ\n\t\tA:dowhileѭٻִһѭ塣\n\t\tB:forѭwhileѭֻʱŻȥִѭ塣\n\n\tע\n\t\tA:дȿforѭٿwhileѭdowhileѭ\n\t\tB:򵥵ѭ\n\t\t\tfor(;;){}\n\t\t\n*/\nclass DoWhileTest {\n\tpublic static void main(String[] args) {\n\t\t/*\n\t\tfor(int x = 10; x>20; x++) {\n\t\t\tSystem.out.println(\"hello\");\n\t\t}\n\n\t\tint y = 10;\n\t\twhile(y>20){\n\t\t\tSystem.out.println(\"world\");\n\t\t\ty++;\n\t\t}\n\n\t\tint z = 10;\n\t\tdo{\n\t\t\tSystem.out.println(\"java\");\n\t\t\tz++;\n\t\t}while(z>20);\n\t\t*/\n\t\n\t\t/*\n\t\tfor(;;){\n\t\t\tSystem.out.println(\"haha\");\n\t\t}\n\t\t*/\n\n\t\twhile(true) {\n\t\t\tSystem.out.println(\"haha\");\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day04/code/04_循环语句(嵌套使用)/ForForDemo.java",
    "content": "/*\n\tһ45е(*)ͼ\n\n\t\t\t*****\n\t\t\t*****\n\t\t\t*****\n\t\t\t*****\n\n\t⣺\n\t\tSystem.out.println(\"*\");\n\t\t\tڵǰ*С\n\n\t\tSystem.out.print(\"*\");\n\t\t\tڵǰ*\n\n\tѭǶУ\n\t\tѭ\n\t\tѭ\n*/\nclass ForForDemo {\n\tpublic static void main(String[] args) {\n\t\t//ʽһ\n\t\t/*\n\t\tSystem.out.println(\"*****\");\n\t\tSystem.out.println(\"*****\");\n\t\tSystem.out.println(\"*****\");\n\t\tSystem.out.println(\"*****\");\n\t\t*/\n\n\t\t//ʽ\n\t\t/*\n\t\tSystem.out.println(\"*\");\n\t\tSystem.out.println(\"*\");\n\t\tSystem.out.println(\"*\");\n\t\tSystem.out.println(\"*\");\n\t\tSystem.out.println(\"*\");\n\t\t*/\n\n\t\t//\n\t\t/*\n\t\tSystem.out.println(\"*\");\n\t\tSystem.out.println(\"*\");\n\n\t\tSystem.out.print(\"*\");\n\t\tSystem.out.print(\"*\");\n\t\tSystem.out.println();\n\t\t*/\n\n\t\t/*\n\t\tSystem.out.print(\"*\");\n\t\tSystem.out.print(\"*\");\n\t\tSystem.out.print(\"*\");\n\t\tSystem.out.print(\"*\");\n\t\tSystem.out.print(\"*\");\n\t\t*/\n\n\t\t//ѭĽһ5*\n\t\t/*\n\t\t//һ\n\t\tfor(int x=0; x<5; x++) {\n\t\t\tSystem.out.print(\"*\");\n\t\t}\n\t\tSystem.out.println();\n\n\t\t//ڶ\n\t\tfor(int x=0; x<5; x++) {\n\t\t\tSystem.out.print(\"*\");\n\t\t}\n\t\tSystem.out.println();\n\n\t\t//\n\t\tfor(int x=0; x<5; x++) {\n\t\t\tSystem.out.print(\"*\");\n\t\t}\n\t\tSystem.out.println();\n\n\t\t//\n\t\tfor(int x=0; x<5; x++) {\n\t\t\tSystem.out.print(\"*\");\n\t\t}\n\t\tSystem.out.println();\n\t\t*/\n\n\t\t//ͬ˺ܶ\n\t\tfor(int y=0; y<4; y++) {\n\t\t\tfor(int x=0; x<5; x++) {\n\t\t\t\tSystem.out.print(\"*\");\n\t\t\t}\n\t\t\tSystem.out.println();\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day04/code/04_循环语句(嵌套使用)/ForForDemo2.java",
    "content": "/*\n\tͼ\n\t\t\t*\n\t\t\t**\n\t\t\t***\n\t\t\t****\n\t\t\t*****\n*/\nclass ForForDemo2 {\n\tpublic static void main(String[] args) {\n\t\t//һ55е\n\t\t/*\n\t\tfor(int x=0; x<5; x++) {\n\t\t\tfor(int y=0; y<5; y++) {\n\t\t\t\tSystem.out.print(\"*\");\n\t\t\t}\n\t\t\tSystem.out.println();\n\t\t}\n\t\t*/\n\n\t\t//Ҫ°벿\n\t\t//ͨ۲ͼΣ֪ûб仯ڱ仯\n\t\t//һУ1\n\t\t//ڶУ2\n\t\t//У3\n\t\t//У4\n\t\t//У5\n\t\t//Ȼһ仯ôǾͶһ\n\t\t/*\n\t\tint z = 0;\n\t\tfor(int x=0; x<5; x++) {\n\t\t\tfor(int y=0; y<=z; y++) {\n\t\t\t\tSystem.out.print(\"*\");\n\t\t\t}\n\t\t\tSystem.out.println();\n\t\t\tz++;\n\t\t}\n\t\t*/\n\n\t\t//Ƿzı仯xı仯ʵһµ\n\t\t//ǸûбҪzֱӰzx滻\n\t\tfor(int x=0; x<5; x++) {\n\t\t\tfor(int y=0; y<=x; y++) {\n\t\t\t\tSystem.out.print(\"*\");\n\t\t\t}\n\t\t\tSystem.out.println();\n\t\t}\n\t\tSystem.out.println(\"---------\");\n\n\t\tfor(int x=1; x<=5; x++) {\n\t\t\tfor(int y=1; y<=x; y++) {\n\t\t\t\tSystem.out.print(\"*\");\n\t\t\t}\n\t\t\tSystem.out.println();\n\t\t}\n\t}\n}"
  },
  {
    "path": "day04/code/04_循环语句(嵌套使用)/ForForDemo3.java",
    "content": "/*\n\tڿ̨žų˷\n\n\t\t1*1=1\n\t\t1*2=2\t2*2=4\n\t\t1*3=3\t2*3=6\t3*3=9\n\t\t...\n\t\t1*9=9\t2*9=18\t3*9=27\t4*9=36\t...\n\n\tתַ\n\t\t\\t\ttabλ\n*/\nclass ForForDemo3 {\n\tpublic static void main(String[] args) {\n\t\t//ǰÿһпһ*\n\t\t//ôʵǸղŵ\n\t\t/*\n\t\tfor(int x=1; x<=9; x++) {\n\t\t\tfor(int y=1; y<=x; y++) {\n\t\t\t\tSystem.out.print(\"*\"+\"\\t\");\n\t\t\t}\n\t\t\tSystem.out.println();\n\t\t}\n\t\t*/\n\n\t\t//Ҫ*滻Ϊʽ\n\t\tfor(int x=1; x<=9; x++) {\n\t\t\tfor(int y=1; y<=x; y++) {\n\t\t\t\tSystem.out.print(y+\"*\"+x+\"=\"+(x*y)+\"\\t\");\n\t\t\t}\n\t\t\tSystem.out.println();\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day04/code/05_控制跳转语句/BreakAndContinue.java",
    "content": "/*\n\tҪ\n*/\nclass BreakAndContinue {\n\tpublic static void main(String[] args) {\n\t\tfor(int x=1; x<=10; x++) {\n\t\t\tif(x%3==0) {\n\t\t\t\t//ڴ˴д\n\t\t\t\tbreak;\n\t\t\t\t//continue;\n\t\t\t\t//System.out.println(\"Java\");\n\t\t\t}\n\t\t\tSystem.out.println(\"Java\");\n\t\t}\n\t\t\t\n\t\t//ڿ̨2:Javaࡰ\n\t\t//ڿ̨7:Javaࡰ\n\t\t//ڿ̨13:Javaࡰ\t\n\t}\n}\n"
  },
  {
    "path": "day04/code/05_控制跳转语句/BreakDemo.java",
    "content": "/*\n\tbreak:ж\n\n\tbreakʹó\n\t\tA:ѡṹswitch\n\t\tB:ѭ\n\t\t뿪ʹóĴû\n\n\tbreak:\n\t\tA:ѭ\n\t\tB:ѭ(˽)\n\t\t\tǩ÷\n*/\nclass BreakDemo {\n\tpublic static void main(String[] args) {\n\t\tfor(int x=0; x<10; x++) {\n\t\t\t//System.out.println(x);\n\t\t\tif(x%2==0) {\n\t\t\t\tbreak;\n\t\t\t\t//breakǲж\n\t\t\t\t//System.out.println(x);\n\t\t\t}\n\n\t\t\tSystem.out.println(x);\n\t\t}\n\t\tSystem.out.println(\"-------------\");\n\n\t\twc:for(int x=0; x<3; x++) {\n\t\t\tnc:for(int y=0; y<4; y++) {\n\t\t\t\tSystem.out.print(\"*\");\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tSystem.out.println();\n\t\t}\n\t}\n}"
  },
  {
    "path": "day04/code/05_控制跳转语句/ContinueDemo.java",
    "content": "/*\n\tcontinueʹó\n\t\tѭ\n\t\t뿪ʹóĴû\n\t\n\tcontinueã\n\t\tA:ѭԱbreakȻܽ\n\t\t\tbreak  ˳ǰѭ\n\t\t\tcontinue  ˳ѭ\n\t\tB:ҲԴǩʹ\n\n*/\nclass ContinueDemo {\n\tpublic static void main(String[] args) {\n\t\t//continue;\n\n\t\tfor(int x=0; x<10; x++) {\n\t\t\tif(x%2==0) {\n\t\t\t\t//break;  //ǰѭ\n\t\t\t\tcontinue; //ѭһβ\n\t\t\t}\n\t\t\tSystem.out.println(x);\n\t\t}\n\n\n\t\twc:for(int x=0; x<3; x++) {\n\t\t\tnc:for(int y=0; y<4; y++) {\n\t\t\t\tSystem.out.print(\"*\");\n\t\t\t\tcontinue wc;\n\t\t\t}\n\t\t\tSystem.out.println();\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day04/code/05_控制跳转语句/ReturnDemo.java",
    "content": "/*\n\treturnġ\n*/\nclass ReturnDemo {\n\tpublic static void main(String[] args) {\n\t\tfor(int x=0; x<10; x++) {\n\t\t\tif(x%3==0) {\n\t\t\t\t//break;\n\t\t\t\t//continue;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tSystem.out.println(x);\n\t\t}\n\n\t\tSystem.out.println(\"over\");\n\t}\n}"
  },
  {
    "path": "day04/code/06_方法/MethodDemo.java",
    "content": "/*\n\tضܵĴ\n\n\tʽ\n\t\tη ֵ ( 1 2) {\n\t\t\t;\n\t\t\treturn ֵ;\n\t\t}\n\n\tηpublic static\n\tֵͣյֵ\n\tΪ˷öһ\n\t\n\t\tʽڽʵʲı\n\t\tʵʲʵʲ\n\t壺ضܵĴ\n\treturn ֵͨreturnѽظ\n\n\tȻ֪˷ĸʽôǸдһ?\n\tȷ\n\t\tA:ֵ\n\t\t\t\n\t\tB:б\n\t\t\tмμӣÿʲô\n\n\t֮͵İ\n\t\tA:û˵ݵͣĬint͡\n\t\tB:ݵĺ\n\t\t\t˵μӣĬ϶int\n\t\tC:intӵĽʲô?\n\t\t\tintͣԷֵint\n\n\tִص㣺\n\t\tòִС\n\n\tȷֵķĵã\n\t\tA:ãû塣\n\t\tB:ãǺܺãΪǿҪԽҪĲ\n\t\tC:ֵãƼʽ\n*/\nclass MethodDemo {\n\tpublic static void main(String[] args) {\n\t\t//\n\t\tint x = 10;\n\t\tint y = 20;\n\n\t\t//\n\t\t//sum(x,y);\n\n\t\t//\n\t\tSystem.out.println(sum(x,y));\n\n\t\t//ֵ\n\t\tint result = sum(x,y);\n\t\t//resultв\n\t\tSystem.out.println(result);\n\t}\n\n\t//ԼҪдһ\n\tpublic static int sum(int a,int b) {\n\t\tint c = a + b;\n\t\treturn c;\n\t}\n}"
  },
  {
    "path": "day04/code/06_方法/MethodDemo2.java",
    "content": "/*\n\tע\n\t\tA:òִ\n\t\tB:뷽ƽϵǶ׶\n\t\tC:ʱ֮öŸ\n\t\tD:õʱڴ\n\t\t\tԴݱҲԳǲܼ\n\t\tE:ȷķֵһҪreturnһֵ\n*/\nclass MethodDemo2 {\n\tpublic static void main(String[] args) {\n\t\tint a = 10;\n\t\tint b = 20;\n\t\t\n\t\tint c = sum(a,b);\n\t\tSystem.out.println(c);\n\n\t\tint d = sum(10,20);\n\t\tSystem.out.println(d);\n\t}\n\t\n\tpublic static int sum(int a,int b) {\n\t\t//return a + b;\n\t\tint c = a + b;\n\t\treturn c;\n\t}\n}\n"
  },
  {
    "path": "day04/code/06_方法/MethodDemo3.java",
    "content": "/*\n\tûȷֵķãvoidεķ\n\t\t\n*/\nclass MethodDemo3 {\n\tpublic static void main(String[] args) {\n\t\t/*\n\t\t//ڿ̨һ34е\n\t\tfor(int x=0; x<3; x++){\n\t\t\tfor(int y=0; y<4; y++) {\n\t\t\t\tSystem.out.print(\"*\");\n\t\t\t}\n\t\t\tSystem.out.println();\n\t\t}\n\t\tSystem.out.println(\"--------\");\n\t\t//ڿ̨һ56е\n\t\tfor(int x=0; x<5; x++){\n\t\t\tfor(int y=0; y<6; y++) {\n\t\t\t\tSystem.out.print(\"*\");\n\t\t\t}\n\t\t\tSystem.out.println();\n\t\t}\n\t\tSystem.out.println(\"--------\");\n\t\t//ڿ̨һ78е\n\t\tfor(int x=0; x<7; x++){\n\t\t\tfor(int y=0; y<8; y++) {\n\t\t\t\tSystem.out.print(\"*\");\n\t\t\t}\n\t\t\tSystem.out.println();\n\t\t}\n\t\tSystem.out.println(\"--------\");\n\t\t*/\n\n\t\t//\n\t\t//printXing(3,4);\n\t\t//printXing(7,8);\n\n\t\t//\n\t\t//System.out.println(printXing(7,8));\n\n\t\t//ֵ\n\t\t//void v = printXing(7,8);\n\t\t//System.out.println(v);\n\t}\n\n\tpublic static void printXing(int a,int b) {\n\t\tfor(int x=0; x<a; x++){\n\t\t\tfor(int y=0; y<b; y++) {\n\t\t\t\tSystem.out.print(\"*\");\n\t\t\t}\n\t\t\tSystem.out.println();\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day04/code/06_方法/MethodTest.java",
    "content": "/*\n\t󣺼¼ݣеĽϴֵ\n\n\t\n\t\tA:¼ݣScannerʵ֡\n\t\tB:дһʵ֣ݵĽϴֵ\n\t\tC:ù\n\t\tD:\n*/\nimport java.util.Scanner;\n\nclass MethodTest {\n\tpublic static void main(String[] args) {\n\t\t//¼\n\t\tScanner sc = new Scanner(System.in);\n\n\t\t//ȡ¼\n\t\tSystem.out.println(\"һݣ\");\n\t\tint a = sc.nextInt();\n\t\tSystem.out.println(\"ڶݣ\");\n\t\tint b = sc.nextInt();\n\n\t\t//÷\n\t\tint max = getMax(a,b);\n\t\tSystem.out.println(\"ֵǣ\"+max);\n\t}\n\n\t/*\n\t\tеĽϴֵ\n\t\tȷ\n\t\t\tֵint\n\t\t\tбint a,int b\n\t*/\n\tpublic static int getMax(int a,int b) {\n\t\t/*\n\t\tif(a > b) {\n\t\t\treturn a;\n\t\t}else {\n\t\t\treturn b;\n\t\t}\n\t\t*/\n\n\t\t/*\n\t\tint m = a>b?a:b;\n\t\treturn m;\n\t\t*/\n\n\t\treturn a>b?a:b;\n\t}\n}\n"
  },
  {
    "path": "day04/code/06_方法/MethodTest2.java",
    "content": "/*\n\t¼ݣȽǷ\n*/\nimport java.util.Scanner;\n\nclass MethodTest2 {\n\tpublic static void main(String[] args) {\n\t\t//¼\n\t\tScanner sc = new Scanner(System.in);\n\n\t\t//¼\n\t\tSystem.out.println(\"һݣ\");\n\t\tint a = sc.nextInt();\n\t\tSystem.out.println(\"ڶݣ\");\n\t\tint b = sc.nextInt();\n\n\t\t//÷\n\t\tboolean flag = compare(a,b);\n\t\tSystem.out.println(flag);\n\t}\n\n\t/*\n\t\tȽǷ\n\n\t\tȷ\n\t\t\tֵͣboolean\n\t\t\tбint a,int b\n\t*/\n\tpublic static boolean compare(int a,int b) {\n\t\t/*\n\t\tif(a == b) {\n\t\t\treturn true;\n\t\t}else {\n\t\t\treturn false;\n\t\t}\n\t\t*/\n\n\t\t//Ԫʽ1\n\t\t//boolean flag = a==b?true:false;\n\t\t//return flag;\n\n\t\t//Ԫʽ2\n\t\t//return a==b?true:false;\n\t\n\t\t//հ\n\t\treturn a == b;\n\t}\n}\n"
  },
  {
    "path": "day04/code/06_方法/MethodTest3.java",
    "content": "/*\n\t¼ݣеֵ\n*/\nimport java.util.Scanner;\n\nclass MethodTest3 {\n\tpublic static void main(String[] args) {\n\t\t//¼\n\t\tScanner sc = new Scanner(System.in);\n\n\t\t//¼\n\t\tSystem.out.println(\"һݣ\");\n\t\tint a = sc.nextInt();\n\t\tSystem.out.println(\"ڶݣ\");\n\t\tint b = sc.nextInt();\n\t\tSystem.out.println(\"ݣ\");\n\t\tint c = sc.nextInt();\n\t\t\n\t\t//ù\n\t\tint max = getMax(a,b,c);\n\t\tSystem.out.println(max);\n\t}\n\n\t/*\n\t\tеֵ\n\t\tȷ\n\t\t\tֵͣint\n\t\t\tбint a,int b,int c\n\t*/\n\tpublic static int getMax(int a,int b,int c) {\n\t\t/*\n\t\tif(a>b){\n\t\t\tif(a>c) {\n\t\t\t\treturn a;\n\t\t\t}else {\n\t\t\t\treturn c;\n\t\t\t}\n\t\t}else{\n\t\t\tif(b>c) {\n\t\t\t\treturn b;\n\t\t\t}else {\n\t\t\t\treturn c;\n\t\t\t}\n\t\t}\n\t\t*/\n\n\t\t//Ԫ\n\t\t//return a>b?a>c?a:c:b>c?b:c;\n\n\t\tint temp = a>b?a:b;\n\t\tint max = temp>c?temp:c;\n\t\treturn max;\n\t}\n}\n"
  },
  {
    "path": "day04/code/06_方法/MethodTest4.java",
    "content": "/*\n\t¼һn(1<=n<=9)Ӧnn˷\n*/\nimport java.util.Scanner;\n\nclass MethodTest4 {\n\tpublic static void main(String[] args) {\n\t\t//¼\n\t\tScanner sc = new Scanner(System.in);\n\n\t\t//¼\n\t\tSystem.out.println(\"һ(1~9)\");\n\t\tint n = sc.nextInt();\n\n\t\t//ùܣnn˷\n\t\tprintNN(n);\n\t}\n\n\t/*\n\t\tӦnn˷\n\t\t\n\t\tֵͣ\n\t\t\tvoid\n\t\tб\n\t\t\tint n\n\t*/\n\tpublic static void printNN(int n){\n\t\tfor(int x=1; x<=n; x++) {\n\t\t\tfor(int y=1; y<=x; y++) {\n\t\t\t\tSystem.out.print(y+\"*\"+x+\"=\"+x*y+\"\\t\");\n\t\t\t}\n\t\t\tSystem.out.println();\n\t\t}\t\n\t}\n}"
  },
  {
    "path": "day04/code/day04总结.txt",
    "content": "1ѭ()\n\t(1)forѭ\n\t\tfor(ʼʽ;ʽ;ʽ){\n\t\t\tѭ;\n\t\t}\n\n\t\ṭִ\n\t\t\tA:ִгʼʽ\n\t\t\tB:ִʽ䷵ֵ\n\t\t\t\ttrueͼ\n\t\t\t\tfalseͽѭ\n\t\t\tC:ִѭ;\n\t\t\tD:ִпʽ\n\t\t\tE:صB\n\t(2)whileѭ\n\t\tʽ\n\t\twhile(ʽ){\n\t\t\t;\n\t\t}\n\t\t\n\t\tΣ\n\t\tʼʽ;\n\t\twhile(ʽ){\n\t\t\tѭ;\n\t\t\tʽ;\n\t\t}\n\t(3)do...whileѭ()\n\t\tʽ\n\t\tdo {\n\t\t\t;\n\t\t}while(ʽ);\n\n\t\t:\n\t\tʼʽ;\n\t\tdo{\n\t\t\tѭ;\n\t\t\tʽ;\n\t\t}while(ʽ);\n\t(4)ѭ\n\t\tA:do...whileִһѭ壬ѭжִС\n\t\tB:whileforѭǿԵȼתġʹõʱѡfor\n\t\t\t\n\t\t\t\ta:ʽƵǸ滹Ҫʹãֻʹwhile\n\t\t\t\tb:forʺϷΧȡֵwhileʺϴȷĲ\n\t(5)ע\n\t\tѭ\n\t\t\tfor(;;){}\n\n\t\t\twhile(true){}\n\t(6)\n\t\tA:10HelloWorld\n\t\t\tfor(int x=0; x<10; x++) {\n\t\t\t\tSystem.out.println(\"HelloWorld\");\n\t\t\t}\n\t\tB:1-10\n\t\t\tfor(int x=1; x<=10; x++) {\n\t\t\t\tSystem.out.println(x);\n\t\t\t}\n\t\tC:10-1\n\t\t\tfor(int x=10; x>0; x--) {\n\t\t\t\tSystem.out.println(x);\n\t\t\t}\n\t\tD:1-10ĺ\n\t\t\tint sum = 0;\n\t\t\tfor(int x=1; x<=10; x++) {\n\t\t\t\tsum += x;\n\t\t\t}\n\t\t\tSystem.out.println(sum);\n\t\tE:1-100ż(Լд)\n\t\t\t//ʽ1\n\t\t\tint sum = 0;\n\t\t\tfor(int x=0; x<=100; x+=2) {\n\t\t\t\tsum += x;\n\t\t\t}\n\t\t\tSystem.out.println(sum);\n\n\t\t\t//ʽ2\n\t\t\tint sum = 0;\n\t\t\tfor(int x=0; x<=100; x++) {\n\t\t\t\tif(x%2 == 0){\n\t\t\t\t\tsum += x;\n\t\t\t\t}\n\t\t\t}\n\t\t\tSystem.out.println(sum);\n\t\tF:ˮɻ\n\t\t\tfor(int x=100; x<1000; x++) {\n\t\t\t\tint ge = x%10;\n\t\t\t\tint shi = x/10%10;\n\t\t\t\tint bai = x/10/10%10;\n\n\t\t\t\tif(x == (ge*ge*ge+shi*shi*shi+bai*bai*bai)) {\n\t\t\t\t\tSystem.out.println(x);\n\t\t\t\t}\n\t\t\t}\n\t\tG:ͳˮɻĸ\n\t\t\tint count = 0;\n\t\t\tfor(int x=100; x<1000; x++) {\n\t\t\t\tint ge = x%10;\n\t\t\t\tint shi = x/10%10;\n\t\t\t\tint bai = x/10/10%10;\n\n\t\t\t\tif(x == (ge*ge*ge+shi*shi*shi+bai*bai*bai)) {\n\t\t\t\t\tcount++;\n\t\t\t\t}\n\t\t\t}\n\t\t\tSystem.out.println(count);\n\t\tH:5λ\n\t\t\tfor(int x=10000; x<100000; x++) {\n\t\t\t\tint ge = x%10;\n\t\t\t\tint shi = x/10%10;\n\t\t\t\tint bai = x/10/10%10;\n\t\t\t\tint qian = x/10/10/10%10;\n\t\t\t\tint wan = x/10/10/10/10%10;\n\n\t\t\t\tif((ge==wan) && (shi==qian) && (bai==ge+shi+qian+wan)) {\n\t\t\t\t\tSystem.out.println(x);\n\t\t\t\t}\n\t\t\t}\n\t\tI:ͳ\n\t\t\tint count = 0;\n\t\t\tfor(int x=0; x<1000; x++) {\n\t\t\t\tif(x%3==2 && x%5==3 && x%7==2) {\n\t\t\t\t\tcount++;\n\t\t\t\t}\n\t\t\t}\n\t\t\tSystem.out.println(count);\n\t\tJ:۵\n\t\t\tint start = 1;\n\t\t\tint end = 884800;\n\t\t\tint count = 0;\n\n\t\t\twhile(start<=end) {\n\t\t\t\tcount++;\n\n\t\t\t\tstart*=2;\n\t\t\t}\n\n\t\t\tSystem.out.println(count);\n\t\tK:СǮĿԼѴ뿴ɡ\n\n2ת()\n\t(1)break:ж\n\t\tA:\n\t\t\tswitch\n\t\t\tѭ\n\t\tB:ʹ\n\t\t\t˳ѭ\n\t\t\t˳ѭ(ǩʹ)\n\t(2)continue:\n\t\tA:\n\t\t\tѭ\n\t\tB:ʹ\n\t\t\t˳ѭ\n\t\t\t˳ѭ(ǩʹ)\n\n\t\tbreakcontinue\n\t\t\tbreak:˳ѭ\n\t\t\tcontinue:˳һѭһ\n\t(3)return:\n\t\tأ÷ʵvoid͵ķҲһreturn\n\t\tֻǣreutrn;\n\t(4)ڿ̨ٴΣ\t\n\t\t\"Java\"\n\n3()\n\t(1)ضܵĴ顣\n\t\tںܶнк\n\t(2)ʽ\n\t\tη ֵ ( 1, 2...) {\n\t\t\t;\n\t\t\treturn ֵ;\n\t\t}\n\n\t\tA:η Ŀǰͼסpublic static\n\t\tB:ֵ ܵĽͣûнأдvoid\n\t\tC: ֣ܼ֪⡣ǵ÷\n\t\tD:\n\t\t\tʽڽʵʲıʱ\n\t\t\tʵʲʵʲݣõʱ\n\t\tE: ɹܵĴ\n\t\tF:return ֵǰѹܵĽͨreturnصĵط\n\t(3)ע\n\t\tA:òִ\n\t\tB:ƽϵǶ׶\n\t\tC:ʱжöŸ\n\t\tD:ǣԴݱǲܴ͡\n\t(4)дһȷ\n\t\tֵͣǽ\n\t\tбмÿ͡\n\t(5)ĵ\n\t\tA:ȷֵķ\n\t\t\ta:ãһû\n\t\t\tb:ããΪǿҪԽнһĲ\n\t\t\tc:ֵ Ƽ\n\t\tB:ûȷֵķ(void)\n\t\t\ta:\n\t\t\n\t\tһ\n\t\t\tֲܴ\n\t\t\t˼Ҫ͸˼Ҫʲô͸ʲô\n\t\t\tֵ˼ҷʲôͣӦʲôͽܡvoid⡣\n\t(6)ϰ\n\t\tȷֵ\n\t\tA:Ľϴֵ\n\t\tB:ȽǷ\n\t\tC:ֵ\n\n\t\tûȷֵ\n\t\tD:mnе\n\t\tE:nn˷"
  },
  {
    "path": "day04/myday04总结.txt",
    "content": "1forѭ\n\tforʽ\n\t\tfor(ʼʽ;жʽ;ʽ) {\n\t\t\tѭ壻\n\t\t}\n\tforѭִ\n\t\tA:ִгʼʽ\n\t\tB:жϿƱֵ\n\t\t\tжΪtrueִһΪfalse\n\t\tC:ִѭ\n\t\tD:ִпʽƱ\n\t\tE:ٻصB\n2whileѭ\n\twhileʽ\n\t\twhile(жʽ) {\n\t\t\t壻\n\t\t}\n\n\n\n\tʼʽ\n\twhile(жʽ) {\n\t\t\n\t}\n\n\twhileѭִ()\n3do...whileѭ\n\tdo...whileʽ\n\t\tdo {\n\t\t\t\n\t\t}while(жʽ)\n\n\n\n\tʼʽ\n\tdo {\n\t\t\n\t}while(жʽ)\n\t\n\tdo...whileѭִ()\n\n*ע\n\tA:ѭıȽ\n\t\tforѭwhileѭеѭһβִУdo...whileѭѭ\n\t\tִһ\n\tB:ѭʹ\n\t\ta:໥ȼת໥д\n\t\tb:ѭҪԺ㣬ʹwhileѭѭǰ涨\n\t\t  Ʊʹforѭ߳Чʣwhileѭ\n\t\t  do...whileѭ\n\t\tC:forѭ֪һΧwhileѭѭһ\n\n*\n\tA:ʮ\"HelloWorld\"\n\tB:ӡ1-10\n\tC:ӡ101\n\tD:1-100֮\n\tE:1-100żĺ\n\tF:ӡˮɻ\n\tG:߶\n\tH:\n4ѭǶʹ\n*\n\tA:\n\tB:\n\tC:\n5ת\n6"
  },
  {
    "path": "day05/code/01_方法重载/MethodDemo.java",
    "content": "/*\n\tأ\n\t\tͬһУһϵֻͬҪǵĲ߲Ͳͬɡ\n\t\tͷֵ޹ء\n*/\nclass MethodDemo {\n\tpublic static void main(String[] args) {\n\t\t//дһܣʵݵ\n\t\tSystem.out.println(sum(10,20));\n\n\t\t//дһܣʵݵ\n\t\t//System.out.println(sum2(10,20,30));\n\t\tSystem.out.println(sum(10,20,30));\n\n\t\tSystem.out.println(sum(1.5,2.5));\n\t}\n\n\tpublic static int sum(int a,int b) {\n\t\treturn a + b;\n\t}\n\n\t/*\n\tpublic static int sum2(int a,int b,int c) {\n\t\treturn a + b + c;\n\n\t\t//Ƕ׵\n\t\t//return sum(sum(a,b),c);\n\t}\n\t*/\n\n\t//ڷҪʵǸ÷\n\t//ԣsum2ֲãҪsum ȽϺ\n\tpublic static int sum(int a,int b,int c) {\n\t\treturn a + b + c;\n\t}\n\n\tpublic static double sum(double a,double b) {\n\t\treturn a + b;\n\t}\n}"
  },
  {
    "path": "day05/code/01_方法重载/MethodTest.java",
    "content": "/*\n\tȽǷȡͷֱΪbyteͣshortͣ\n\tintͣlongͣmainнв\n*/\nclass MethodTest {\n\tpublic static void main(String[] args) {\n\t\t//\n\t\tbyte a = 10;\n\t\tbyte b = 10;\n\t\tSystem.out.println(compare(a,b));\n\n\t\tSystem.out.println(compare(10,10));\n\t}\n\n\t//byte\n\t/*\n\tpublic static boolean compare(byte a,byte b) {\n\t\tSystem.out.println(\"byte\");\n\t\treturn a == b;\n\t}\n\n\t//short\n\tpublic static boolean compare(short a,short b) {\n\t\tSystem.out.println(\"short\");\n\t\treturn a == b;\n\t}\n\n\t//int\n\tpublic static boolean compare(int a,int b) {\n\t\tSystem.out.println(\"int\");\n\t\treturn a == b;\n\t}\n\t*/\n\n\t//long \n\tpublic static boolean compare(long a,long b) {\n\t\tSystem.out.println(\"long\");\n\t\treturn a == b;\n\t}\n}\n"
  },
  {
    "path": "day05/code/02_一维数组/ArrayDemo.java",
    "content": "/*\n\t飺洢ͬһ͵ĶԪصļϡ(ҲԳΪ)\n\n\tĶʽ\n\t\tʽ1[] ;\n\t\t\tint[] arr;\n\t\tʽ2 [];\n\t\t\tint arr[];\n\n\t\tƼʽ1\n\n\tڵûԪأʹûġ\n\tҪгʼ\n\tôζгʼ?\n\t\t̬ʼʼʱָֻ鳤ȣϵͳΪʼֵ\n\t\t̬ʼʼʱָÿԪصĳʼֵϵͳ鳤ȡ\n\n\t̬ʼ\n\t\t[]  = new [鳤];\n\n*/\nclass ArrayDemo {\n\tpublic static void main(String[] args) {\n\t\t//ն̬ʼĸʽһ洢3intԪص\n\t\tint[] arr = new int[3];\n\n\t\t/*\n\t\t\tߣ\n\t\t\t\tint:˵еԪص͡\n\t\t\t\t[]:˵һ\n\t\t\t\tarr:\n\t\t\tұߣ\n\t\t\t\tnew:Ϊʵ()ڴռ\n\t\t\t\t\tScanner sc = new Scanner(System.in);\n\t\t\t\tint:˵еԪص͡\n\t\t\t\t[]:˵һ\n\t\t\t\t3:˵еԪظ\n\t\t*/\n\n\t\t//λȡֵ?\n\t\t//\n\t\tSystem.out.println(arr); //[I@778b3fee ֵַ\n\t\t//λȡԪֵ?\n\t\t//ΪÿԪطһţŵרҵз\n\t\t//Ǵ0ʼŵġҲ˵ǳ-1\n\t\t//˱ԺǾͿͨͱŵȡԪ\n\t\t//ʽ[];\n\t\tSystem.out.println(arr[0]); //0\n\t\tSystem.out.println(arr[1]); //0\n\t\tSystem.out.println(arr[2]); //0\n\t}\n}"
  },
  {
    "path": "day05/code/02_一维数组/ArrayDemo2.java",
    "content": "/*\n\tһ飬ԪءȻеԪظֵٴԪء\n*/\nclass ArrayDemo2 {\n\tpublic static void main(String[] args) {\n\t\t//\n\t\tint[] arr = new int[3];\n\n\t\t//ƼԪ\n\t\tSystem.out.println(arr);\n\t\tSystem.out.println(arr[0]);\n\t\tSystem.out.println(arr[1]);\n\t\tSystem.out.println(arr[2]);\n\n\t\t//еԪظֵ\n\t\tarr[0] = 10;\n\t\tarr[1] = 20;\n\t\tarr[2] = 30;\n\t\t\n\t\t//ٴƼԪ\n\t\tSystem.out.println(arr);\n\t\tSystem.out.println(arr[0]);\n\t\tSystem.out.println(arr[1]);\n\t\tSystem.out.println(arr[2]);\n\t}\n}\n"
  },
  {
    "path": "day05/code/02_一维数组/ArrayDemo3.java",
    "content": "/*\n\t飬ֱԪءȻֱеԪظֱֵٴԪء\n*/\nclass ArrayDemo3 {\n\tpublic static void main(String[] args) {\n\t\t//һ\n\t\tint[] arr = new int[3];\n\n\t\t//ƼԪ\n\t\tSystem.out.println(arr);\n\t\tSystem.out.println(arr[0]);\n\t\tSystem.out.println(arr[1]);\n\t\tSystem.out.println(arr[2]);\n\n\t\t//ֵ\n\t\tarr[0] = 10;\n\t\tarr[1] = 20;\n\t\tarr[2] = 30;\n\t\tSystem.out.println(arr);\n\t\tSystem.out.println(arr[0]);\n\t\tSystem.out.println(arr[1]);\n\t\tSystem.out.println(arr[2]);\n\n\t\t//ٶһµ\n\t\tint[] arr2 = new int[2];\n\t\tSystem.out.println(arr2);\n\t\tSystem.out.println(arr2[0]);\n\t\tSystem.out.println(arr2[1]);\n\n\t\t//ֵ\n\t\tarr2[0] = 100;\n\t\tarr2[1] = 200;\n\t\tSystem.out.println(arr2);\n\t\tSystem.out.println(arr2[0]);\n\t\tSystem.out.println(arr2[1]);\n\t}\n}\n"
  },
  {
    "path": "day05/code/02_一维数组/ArrayDemo4.java",
    "content": "/*\n\t飬ȶһ飬ֵ\n\tȻڶʱѵһĵֵַڶ顣\n\tȻڶ鸳ֵٴԪء\n*/\nclass ArrayDemo4 {\n\tpublic static void main(String[] args) {\n\t\t//һ\n\t\tint[] arr = new int[3];\n\t\t\n\t\t//ֵ\n\t\tarr[0] = 11;\n\t\tarr[1] = 22;\n\t\tarr[2] = 33;\n\t\tSystem.out.println(arr);\n\t\tSystem.out.println(arr[0]);\n\t\tSystem.out.println(arr[1]);\n\t\tSystem.out.println(arr[2]);\n\n\t\t//ڶ\n\t\tint[] arr2 =  arr;\n\n\t\tarr2[1] = 100;\n\n\t\tSystem.out.println(arr);\n\t\tSystem.out.println(arr[0]);\n\t\tSystem.out.println(arr[1]); //???\n\t\tSystem.out.println(arr[2]);\n\n\t\tSystem.out.println(arr2);\n\t\tSystem.out.println(arr2[0]);\n\t\tSystem.out.println(arr2[1]);\n\t\tSystem.out.println(arr2[2]);\n\t}\n}\n"
  },
  {
    "path": "day05/code/02_一维数组/ArrayDemo5.java",
    "content": "/*\n\t̬ʼʽ\n\t\t[]  = new []{Ԫ1,Ԫ2,};\n\n\t\t򻯰棺\n\t\t[]  =\t{Ԫ1,Ԫ2,};\n*/\nclass ArrayDemo5 {\n\tpublic static void main(String[] args) {\n\t\t//һ\n\t\t//int[] arr = new int[]{1,2,3};\n\n\t\t//򻯺\n\t\tint[] arr = {1,2,3};\n\n\t\tSystem.out.println(arr);\n\t\tSystem.out.println(arr[0]);\n\t\tSystem.out.println(arr[1]);\n\t\tSystem.out.println(arr[2]);\n\t}\n}\n"
  },
  {
    "path": "day05/code/02_一维数组/ArrayDemo6.java",
    "content": "/*\n\tС:\n\t\tA:Խ\n\t\t\tArrayIndexOutOfBoundsException\n\t\t\tΪǷ˲ڵ\n\t\tB:ָ쳣\n\t\t\tNullPointerException\n\t\t\tΪѾָڴ棬ԾͲȥʶڴԪˡ\n*/\nclass ArrayDemo6 {\n\tpublic static void main(String[] args) {\n\t\t//\n\t\tint[] arr = {1,2,3};\n\n\t\t//System.out.println(arr[3]);\n\n\t\tarr = null; //arrָڴȥˣarrûָˡ\n\t\tSystem.out.println(arr[0]);\n\t}\n}"
  },
  {
    "path": "day05/code/02_一维数组/ArrayTest.java",
    "content": "/*\n\t:\n\t\tеÿһԪ\n\n\t\n\t\tA:һ飬ֵ\n\t\tB:еԪ\n*/\nclass ArrayTest {\n\tpublic static void main(String[] args) {\n\t\t//һ飬ֵ\n\t\tint[] arr = {11,22,33,44,55};\n\n\t\t//ʽ1\n\t\tSystem.out.println(arr[0]);\n\t\tSystem.out.println(arr[1]);\n\t\tSystem.out.println(arr[2]);\n\t\tSystem.out.println(arr[3]);\n\t\tSystem.out.println(arr[4]);\n\t\tSystem.out.println(\"---------------\");\n\n\t\t//ʽ2\n\t\t//ͨ۲죬ǿͨforѭʵȡ0~4OK\n\t\tfor(int x=0; x<5; x++) {\n\t\t\tSystem.out.println(arr[x]);\n\t\t}\n\t\tSystem.out.println(\"---------------\");\n\n\t\t//ʽ3\n\t\t//Ԫض̫࣬鷳ˡ\n\t\t//أΪ˷ǵĲԼṩһԣ length\n\t\t//ȡĳȡ\n\t\t//ʽǣ.length;\n\t\t//System.out.println(arr.length);\n\t\n\t\tfor(int x=0; x<arr.length; x++) {\n\t\t\tSystem.out.println(arr[x]);\n\t\t}\n\t}\n}"
  },
  {
    "path": "day05/code/02_一维数组/ArrayTest2.java",
    "content": "/*\n\tȡֵ(ȡеֵСֵ)\n\n\tѧСֵ\n*/\nclass ArrayTest2 {\n\tpublic static void main(String[] args) {\n\t\t//\n\t\tint[] arr = {12,86,79,43,50};\n\n\t\t//?\n\t\t/*\n\t\tint max = arr[0];\n\n\t\tfor(int x=1; x<arr.length; x++) {\n\t\t\tif(arr[x] > max) {\n\t\t\t\tmax = arr[x];\n\t\t\t}\n\t\t}\n\n\t\tSystem.out.println(max);\n\t\t*/\n\n\t\t//Ϊ˽÷㣬дһʵֻȡֵ\n\t\tint max = getMax(arr);\n\t\tSystem.out.println(\"ֵǣ\"+max);\n\t}\n\n\t/*\n\t\tֵͣint\n\t\tбint[] arr\n\t*/\n\tpublic static int getMax(int[] arr) {\n\t\t//\n\t\tint max = arr[0];\n\n\t\t//ѭ1ʼԪ\n\t\tfor(int x=1; x<arr.length; x++) {\n\t\t\t//ȽϣѴ\n\t\t\tif(arr[x] > max) {\n\t\t\t\tmax = arr[x];\n\t\t\t}\n\t\t}\n\n\t\t//ֵ\n\t\treturn max;\n\t}\n}\n"
  },
  {
    "path": "day05/code/02_一维数组/ArrayTest3.java",
    "content": "/*\n\tԪطת (ǰԪضԵ)\n\n\t\n\t\tת?\n\t\t\tѵһһ\n\t\t\tѵڶ͵ڶ\n\t\t\t...\n*/\nclass ArrayTest3 {\n\tpublic static void main(String[] args) {\n\t\t//\n\t\tint[] arr = {12,86,79,43,50};\n\n\t\t/*\n\t\tfor(int x=0; x<arr.length; x++) {\n\t\t\tSystem.out.println(arr[x]);\n\t\t}\n\t\t*/\n\n\t\t//дһܱ\n\t\tprintArray(arr);\n\n\t\t//{50,43,79,86,12}\n\t\t//дˣε?\n\t\treverse(arr);\n\t\tprintArray(arr);\n\t}\n\n\t/*\n\t\tֵͣvoid\n\t\tбint[] arr\n\t*/\n\t/*\n\tpublic static void printArray(int[] arr) {\n\t\tfor(int x=0; x<arr.length; x++) {\n\t\t\tSystem.out.println(arr[x]);\n\t\t}\n\t}\n\t*/\n\n\t//Чÿ\n\tpublic static void printArray(int[] arr) {\n\t\tSystem.out.print(\"[\");\n\t\tfor(int x=0; x<arr.length; x++) {\n\t\t\tif(x == arr.length - 1) {\n\t\t\t\tSystem.out.print(arr[x]);\n\t\t\t} else {\n\t\t\t\tSystem.out.print(arr[x]+\", \");\n\t\t\t}\n\t\t}\n\t\tSystem.out.println(\"]\");\n\t}\n\n\t/*\n\t\tдʵ֣\n\t\t\tֵͣvoid\n\t\t\tбint[]\n\t*/\n\tpublic static void reverse(int[] arr) {\n\t\tfor(int start=0,end=arr.length-1; start<=end; start++,end--) {\n\t\t\tint temp = arr[start];\n\t\t\tarr[start] = arr[end];\n\t\t\tarr[end] = temp;\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day05/code/02_一维数组/ArrayTest4.java",
    "content": "/*\n\t(ݼ¼,ҶӦ)\n*/\nimport java.util.Scanner;\n\nclass ArrayTest4 {\n\tpublic static void main(String[] args) {\n\t\t//1,2,3,4,5,6,7\n\t\t//һ\n\t\tString[] strArray = {\"\",\"һ\",\"ڶ\",\"\",\"\",\"\",\"\",\"\"};\n\t\n\t\t//¼\n\t\tScanner sc = new Scanner(System.in);\n\t\t\n\t\tSystem.out.println(\"һ(1~7)\");\n\t\tint week = sc.nextInt();\n\n\t\t//εõ?\n\t\tSystem.out.println(\"õǣ\"+strArray[week]);\n\t}\n}\n"
  },
  {
    "path": "day05/code/02_一维数组/ArrayTest5.java",
    "content": "/*\n\tԪز(ָԪصһгֵ)\n\n\t˼·\n\t\tͷʼαȽԪأֻҪҵˣͷظô\n*/\nclass ArrayTest5 {\n\tpublic static void main(String[] args) {\n\t\t//һ\n\t\tint[] arr = {12,86,79,43,50};\n\n\t\t//дʵ\n\t\tint index = getIndex(arr,79);\n\t\tSystem.out.println(\"79еǣ\"+index);\n\t\tint index2 = getIndex(arr,179);\n\t\tSystem.out.println(\"179еǣ\"+index2);\n\t}\n\n\t/*\n\t\tֵͣint\n\t\tбint[] arr,int key\n\t*/\n\n\t/*\n\tpublic static int getIndex(int[] arr,int key) {\n\t\tfor(int x=0; x<arr.length; x++) {\n\t\t\tif(arr[x] == key) {\n\t\t\t\treturn x;\n\t\t\t}\n\t\t}\n\n\t\t//Ԫزڵʱֵ\n\t\treturn -1; //һǶд-1\n\t}\n\t*/\n\n\t//ٻһд\n\tpublic static int getIndex(int[] arr,int key) {\n\t\tint index = -1;\n\n\t\tfor(int x=0; x<arr.length; x++) {\n\t\t\tif(arr[x] == key) {\n\t\t\t\tindex =  x;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn index;\n\t}\n}\n"
  },
  {
    "path": "day05/code/03_二维数组/Array2Demo.java",
    "content": "/*\n\tά飺ԪΪһά顣\n\n\tʽ1\n\t\t[][]  = new [m][n];\n\t\t\n\t\tm:mʾάжٸһά\n\t\tn:nʾÿһһάԪظ\n\n\t\tΣ\n\t\t\t [][] = new [m][n];\n\t\t\t[] [] = new [m][n];\n\n\t\t\tint[] x,y[];\n*/\nclass Array2Demo {\n\tpublic static void main(String[] args) {\n\t\t//һά\n\t\tint[][] arr = new int[3][2];\n\t\t//ʾarrάԪ\n\t\t//ÿԪһһά\n\t\t//ÿһһά2Ԫ\n\n\t\tSystem.out.println(arr); //[[I@778b3fee\n\t\tSystem.out.println(arr[0]); //[I@57125f92\n\t\tSystem.out.println(arr[1]);\n\t\tSystem.out.println(arr[2]);\n\n\t\t//Ԫ?\n\t\tSystem.out.println(arr[0][1]);\n\t\tSystem.out.println(arr[2][2]);\n\t}\n}"
  },
  {
    "path": "day05/code/03_二维数组/Array2Demo2.java",
    "content": "/*\n\tʽ2\n\t\t[][]  = new [m][];\n\t\t\n\t\tm:mʾάжٸһά\n*/\nclass Array2Demo2 {\n\tpublic static void main(String[] args) {\n\t\t//һ\n\t\tint[][] arr = new int[3][];\n\t\t//ǽ֪ά3һά\n\t\t//ǣÿһάмԪأǲ֪\n\n\t\tSystem.out.println(arr); //[[I@7d3598c3\n\t\tSystem.out.println(arr[0]); //null\n\t\tSystem.out.println(arr[1]); //null\n\t\tSystem.out.println(arr[2]); //null\n\n\n\t\tarr[0] = new int[3];\n\t\tarr[1] = new int[1];\n\t\tarr[2] = new int[2];\n\t\tSystem.out.println(arr[0]); //\n\t\tSystem.out.println(arr[1]); //\n\t\tSystem.out.println(arr[2]); //\n\n\n\t\tarr[2][1] = 100;\n\t\tarr[1][3] = 200;\n\t}\n}"
  },
  {
    "path": "day05/code/03_二维数组/Array2Demo3.java",
    "content": "/*\n\tʽ2\n\t\t[][]  = new [][]{{Ԫء},{Ԫء},{Ԫء}};\n\n\t\tθʽ\n\t\t\t[][]  = {{Ԫء},{Ԫء},{Ԫء}};\n*/\nclass Array2Demo3 {\n\tpublic static void main(String[] args) {\n\t\t//\n\t\t//int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};\n\t\tint[][] arr = {{1,2,3},{4,5},{8}};\n\n\t\tSystem.out.println(arr);\n\t\tSystem.out.println(arr[0]);\n\t\tSystem.out.println(arr[1]);\n\t\tSystem.out.println(arr[2]);\n\n\t\tSystem.out.println(arr[0][0]);\n\t\tSystem.out.println(arr[0][1]);\n\t\tSystem.out.println(arr[1][1]);\n\t\tSystem.out.println(arr[2][1]);\n\t}\n}\n"
  },
  {
    "path": "day05/code/03_二维数组/Array2Test.java",
    "content": "/*\n\tά\n*/\nclass Array2Test {\n\tpublic static void main(String[] args) {\n\t\tint[][] arr = {{1,2,3},{4,5,6},{7,8,9}};\n\n\t\tfor(int x=0; x<arr.length; x++) {\n\t\t\t//System.out.println(arr[x]);\n\t\t\t/*\n\t\t\tint[] a = arr[x];\n\t\t\tfor(int y=0; y<a.length; y++) {\n\t\t\t\tSystem.out.print(a[y]+\" \");\n\t\t\t}\n\t\t\tSystem.out.println();\n\t\t\t*/\n\n\t\t\tfor(int y=0; y<arr[x].length; y++) {\n\t\t\t\tSystem.out.print(arr[x][y]+\" \");\n\t\t\t}\n\t\t\tSystem.out.println();\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day05/code/03_二维数组/Array2Test2.java",
    "content": "/*\n\t˾۶\n\t\tĳ˾ռȺ·ͳƵ£λ(Ԫ)\n\t\tһȣ22,66,44\n\t\tڶȣ77,33,88\n\t\tȣ25,45,65\n\t\tļȣ11,66,99\n\n\t\n\t\tA:ͨ۲죬֪Ӧһάʾ\n\t\tB:ͱ\n\t\tC:ά飬ȡÿһԪأȻۼӼɡ\n\t\tD:\n\n*/\nclass Array2Test2 {\n\tpublic static void main(String[] args) {\n\t\t//\n\t\tint[][] arr = {{22,66,44},{77,33,88},{25,45,65},{11,66,99}};\n\n\t\t//ͱ\n\t\tint sum = 0;\n\n\t\t//ά\n\t\tfor(int x=0; x<arr.length; x++) {\n\t\t\tfor(int y=0; y<arr[x].length; y++) {\n\t\t\t\t//sum = sum + arr[x][y];\n\t\t\t\tsum += arr[x][y];\n\t\t\t}\n\t\t}\n\n\t\t//\n\t\tSystem.out.println(\"sum:\"+sum);\n\t}\n}"
  },
  {
    "path": "day05/code/04_两个思考题/ArgsDemo.java",
    "content": "/*\n\tдܽͺͲĴ(Ŀڱע)\n\t\tͣʽĸıʵʲûӰ졣\n\t\tͣʽĸıֱӰʵʲ\n\n\tjavaûô?\n\t\tjavaֵֻݡ\n\t\tֵַҲһֵ\n*/\nclass ArgsDemo {\n\tpublic static void main(String[] args){\n\t\tint a = 10;\n\t\tint b = 20;\n\t\tSystem.out.println(\"a:\"+a+\",b:\"+b); //a:10,b:20\n\t\tchange(a,b);\n\t\tSystem.out.println(\"a:\"+a+\",b:\"+b); //a:?,b:?\n\n\t\tint[] arr = {1,2,3,4,5};\n\t\tchange(arr);\n\t\tSystem.out.println(arr[1]); //?\n\t}\n\n\tpublic static void change(int a,int b)  //a=10,b=20\n\t{\n\t\tSystem.out.println(\"a:\"+a+\",b:\"+b); //a:10,b:20\n\t\ta = b; //a=20;\n\t\tb = a + b; //b=40;\n\t\tSystem.out.println(\"a:\"+a+\",b:\"+b); //a:20,b:40\n\t}\n\n\tpublic static void change(int[] arr) //arr = {1,2,3,4,5}\n\t{\n\t\tfor(int x=0; x<arr.length; x++)\n\t\t{\n\t\t\t//żݱΪǰ2\n\t\t\tif(arr[x]%2==0)\n\t\t\t{\n\t\t\t\tarr[x]*=2;\n\t\t\t}\n\t\t}\n\n\t\t//{1,4,3,8,5}\n\t}\n}\n"
  },
  {
    "path": "day05/code/04_两个思考题/JiaMiDemo.java",
    "content": "/*\n\tĳ˾ùõ绰ϢС8λΪȷȫ\n\tڴݹҪܣܹ£\n\t\tȽݵȻÿλֶ5úͳ10֣\n\t\t󽫵һλһλֽ һС8λ\n\t\tȻ󣬰ѼܺĽڿ̨ӡ\n\n\t\n\t\tA:С8λ\n\t\t\tǱ仯ġ(0ͷ)\n\t\tB:ܹ\n\t\t\tΪ123456\n\n\t\t\tȽݵ\n\t\t\t\t654321\n\t\t\tȻÿλֶ5úͳ10\n\t\t\t\t109876\n\t\t\t󽫵һλһλֽ\n\t\t\t\t609871\n\t\tC:\n\t\t\t609871\n*/\nclass JiaMiDemo{\n\tpublic static void main(String[] args) {\n\t\t//123456\n\t\t//int[] arr = {1,2,3,4,5,6};\n\n\t\t//\n\t\tint number = 123456;\n\n\t\t//\n\t\tint[] arr = new int[8];\n\n\t\t//ȡһݵλϵֵ\n\t\t//6,5,4,3,2,1\n\t\t/*\n\t\tarr[0] = number%10;\n\t\tarr[1] = number/10%10;\n\t\tarr[2] = number/10/10%10;\n\t\t...\n\t\t*/\n\n\t\t//һ\n\t\t//һ\n\t\tint index = 0;\n\n\t\twhile(number>0) {\n\t\t\tarr[index]  = number%10; //arr[0]=6,arr[1]=5,arr[2]=4,arr[3]=3,arr[4]=2,arr[5]=1\n\t\t\tnumber/=10; //number=12345,number=1234,number=123,number=12,number=1,number=0\n\t\t\tindex++; //index=1,index=2,index=3,index=4,index=5,index=6\n\t\t}\n\n\t\tfor(int x=0; x<index; x++) {\n\t\t\tSystem.out.print(arr[x]);\n\t\t}\n\t\tSystem.out.println();\n\n\t\t//ڶ\n\t\tfor(int x=0; x<index; x++) {\n\t\t\tarr[x] += 5;\n\t\t\tarr[x] %= 10;\n\t\t}\t\n\n\t\tfor(int x=0; x<index; x++) {\n\t\t\tSystem.out.print(arr[x]);\n\t\t}\n\t\tSystem.out.println();\n\n\t\t//\n\t\tint temp = arr[0];\n\t\tarr[0] = arr[index-1];\n\t\tarr[index-1] = temp;\n\n\t\tfor(int x=0; x<index; x++) {\n\t\t\tSystem.out.print(arr[x]);\n\t\t}\n\t\tSystem.out.println();\n\t}\n}"
  },
  {
    "path": "day05/code/04_两个思考题/JiaMiDemo2.java",
    "content": "/*\n\tA:ʵֵĴĽΪʵ\n\tB:¼\n*/\nimport java.util.Scanner;\n\nclass JiaMiDemo2 {\n\tpublic static void main(String[] args) {\n\t\t//¼\n\t\tScanner sc = new Scanner(System.in);\n\n\t\t//¼\n\t\tSystem.out.println(\"(С8λ)\");\n\t\tint number = sc.nextInt();\n\n\t\tjiaMi(number);\n\t}\n\n\tpublic static void jiaMi(int number) {\n\t\tint[] arr = new int[8];\n\n\t\t//һ\n\t\tint index = 0;\n\n\t\twhile(number>0) {\n\t\t\tarr[index++] = number%10;\n\t\t\tnumber /= 10;\n\t\t}\n\n\t\t//ڶ\n\t\tfor(int x=0; x<index; x++) {\n\t\t\tarr[x] += 5;\n\t\t\tarr[x] %= 10;\n\t\t}\n\n\t\t//\n\t\tint temp = arr[0];\n\t\tarr[0] = arr[index-1];\n\t\tarr[index-1] = temp;\n\n\t\t//\n\t\tfor(int x=0; x<index; x++) {\n\t\t\tSystem.out.print(arr[x]);\n\t\t}\n\t\tSystem.out.println();\n\t}\n}\n"
  },
  {
    "path": "day05/day05总结.txt",
    "content": "1()\n\t(1)ͬһУͬбͬķ\n\t\tбͬͬͲͬ\n\t\t뷵ֵ޹ء\n\t(2)ϰ\n\t\tA:жЩ͸ķǷ\n\t\tB:д4ȽǷȵķ\n\t\t\tbyte,byte\n\t\t\tshort,short\n\t\t\tint,int\n\t\t\tlong,long\n\n2һά()\n\t(1):洢ͬһ͵ĶԪصļ\n\t\tÿԪضбţ0ʼ\n\t\tĳ-1\n\t(2)ĸʽ\n\t\tA:[] ;\n\t\tB: [];\n\t(3)ĳʼ\n\t\tA:̬ʼ ֻȣԪ\n\t\t\tint[] arr = new int[3];\n\t\tB:̬ʼ ȣԪ\n\t\t\tint[] arr = new int[]{1,2,3};\n\t\t\t򻯰棺int[] arr = {1,2,3};\n\t(4)javaеڴ\n\t\tA:ջ 洢ֲ\n\t\tB: new\n\t\tC:\n\t\tD:ط\n\t\tE:Ĵ\n\t(5)С\n\t\tA:Խ\n\t\tB:ָ쳣\n\t(6)鳣\tȡ鳤ȣ.length\n\t\tA:\n\t\tB:ȡֵ\n\t\tC:鷴ת\n\t\tD:\n\t\tE:ָԪصһγֵ\n\n3ά()\n\t(1)ά飺Ԫһά顣\n\t(2)ʽ\n\t\tA:[][]  = new [m][n];\n\t\tB:[][]  = new [m][];\n\t\tC:[][]  = new [][]{{Ԫ...},{Ԫ...},{Ԫ...}};\n\t\t  [][]  = {{Ԫ...},{Ԫ...},{Ԫ...}};\n\t(3)\n\t\tA:\n\t\tB:Ͱ\n\n4˼\n\t(1)java\n\t\tͣʽĸı䲻Ӱʵʲ\n\t\tͣʽĸıֱӰʵʲ\n\n\t\tjavaֵֻݡΪֵַҲһֵ\n\t(2)ݼ"
  },
  {
    "path": "day05/课堂练习.txt",
    "content": "1:\n\tpublic static void printArray(int[] arr) {\n\t\tSystem.out.print(\"[\");\n\t\tfor(int x=0; x<arr.length; x++) {\n\t\t\tif(x == arr.length - 1) {\n\t\t\t\tSystem.out.print(arr[x]);\n\t\t\t}else {\n\t\t\t\tSystem.out.print(arr[x]+\", \");\n\t\t\t}\n\t\t}\n\t\tSystem.out.println(\"]\");\n\t}\n\n2:ȡֵ\n\tpublic static int getMax(int[] arr) {\n\t\tint max = arr[0];\n\n\t\tfor(int x=1; x<arr.length; x++) {\n\t\t\tif(arr[x] > max) {\n\t\t\t\tmax = arr[x];\n\t\t\t}\n\t\t}\n\n\t\treturn max;\n\t}\n\n\tpublic static int getMax(int[] arr) {\n\t\tint min = arr[0];\n\n\t\tfor(int x=1; x<arr.length; x++) {\n\t\t\tif(arr[x] < min) {\n\t\t\t\tmin = arr[x];\n\t\t\t}\n\t\t}\n\n\t\treturn min;\n\t}\n\n3:鷴ת\n\tpublic static void reverse(int[] arr) {\n\t\tfor(int start=0,end=arr.length-1; start<=end; start++,end--) {\n\t\t\tint temp = arr[start];\n\t\t\tarr[start] = arr[end];\n\t\t\tarr[end] = temp;\n\t\t}\n\t}\n\n\n4:\n\tString[] strArray = {\"\",\"һ\",\"ڶ\",\"\",\"\",\"\",\"\",\"\"};\n\n\tint index = ???;\n\n\tSystem.out.println(strArray[index]);\n\n5:Ԫеһγֵ\n\tpublic static int getIndex(int[] arr,int key) {\n\t\tint index = -1;\n\n\t\tfor(int x=0; x<arr.length; x++) {\n\t\t\tif(arr[x] == key) {\n\t\t\t\tindex = x;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn index;\n\t}"
  },
  {
    "path": "day06/code/01_面向对象思想/面向对象思想.txt",
    "content": "\n\tǻ̵ı˼\n\n\ṭԼһɲǿǹ̡\n\t󣺵ñ˵Ĳǿǽ\n\n˼ص㣺\n\tA:һָ˼ϰߵ˼\n\tB:Խӵ򵥻\n\tC:Ǵִָ߱\n\t\tɫת\n\n\n\tA:ϴ·\n\t\ṭӽˮ,ϴ·-->·ӽȥ-->·-->Ưϴ·-->š-->¼\n\t\t󣺰·ӵϴ»ϴ·,-->¼\n\n\tB:Է\n\t\ṭȥ,-->ϴ,ϴ-->в,-->-->˲,ʢ-->\n\t\tȥ-->÷Աļǲ˹-->óʦĳ˹-->÷ԱĶ˲˹-->-->\n\n\t\tһЩ顣\n\n\tC:\n\t\ṭ-->-->Գ-->ұȽ-->ѡԼϲĲּۻ-->ؼ\n\t\t󣺲-->-->\n\nд\n\t󣺰Ѵװ\n\t裺\n\t\tA:򿪱\n\t\tB:\n\t\tC:رձ\n\n\tA:\n\t\ta:򿪱\n\t\tb:\n\t\tc:رձ\n\n\t\t룺\n\n\t\tclass Demo {\n\t\t\tpublic static void main(String[] args) {\n\t\t\t\t//System.out.println(\"򿪱\");\n\t\t\t\t//System.out.println(\"\");\n\t\t\t\t//System.out.println(\"رձ\");\n\n\t\t\t\t//ܴ򿪱ŵĲҪ\n\t\t\t\t//ң򿪱ܵĴȽ϶\n\t\t\t\t//ʱʵӦ÷Ľ\n\t\t\t\t//ù\n\t\t\t\topen();\n\t\t\t\tin();\n\t\t\t\tclose();\n\n\t\t\t\t//open();\n\t\t\t\t//open();\n\t\t\t}\n\n\t\t\tpublic static void open() {\n\t\t\t\tSystem.out.println(\"򿪱\");\n\t\t\t}\n\n\t\t\tpublic static void in(){\n\t\t\t\tSystem.out.println(\"\");\n\t\t\t}\n\n\t\t\tpublic static void close() {\n\t\t\t\tSystem.out.println(\"رձ\");\n\t\t\t}\n\t\t}\n\n\tB:\n\t\tҪҵ仰\n\t\t\ta:Щ\n\t\t\t\tUML(ͳһģ) ȡ\n\t\t\tb:ÿЩ\n\t\t\tc:Ĺϵ\n\n\t\tǵ⣺\n\t\t\tѴװ\n\n\t\t\ta:Щ\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t(mainǸ)\n\t\t\tb:ÿЩ\n\t\t\t\t:ȥ\n\t\t\t\t:,ر\n\t\t\t\t:main\n\t\t\tc:Ĺϵ\n\t\t\t\tڲеñʹĹ\n\n\t\t룺\n\t\t\tclass  {\n\t\t\t\tpublic static void in(){\n\t\t\t\t\tSystem.out.println(\"\");\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tclass  {\n\t\t\t\tpublic static void open() {\n\t\t\t\t\tSystem.out.println(\"򿪱\");\n\t\t\t\t}\n\n\t\t\t\tpublic static void close() {\n\t\t\t\t\tSystem.out.println(\"رձ\");\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tclass  {\n\t\t\t\tpublic static void main(String[] args) {\n\t\t\t\t\topen();\n\t\t\t\t\tin();\n\t\t\t\t\tclose();\n\t\t\t\t}\n\t\t\t}\n\nѧ\n\tԺһʱǷжܣУǾֱʹüɡ\n\tûУǾԼһ࣬ɹܣԸá"
  },
  {
    "path": "day06/code/02_类与对象/类与对象.txt",
    "content": "ѧϰԣΪ˰ʵʵϢ\n\nҪͨҪ֪αģ\n\t\n\t\t\tϢ()\n\t\tΪ\tܹʲô(Ϊ)\n\nѧϰjavaԣjavaĵλࡣ\nԣҪͨ֡\n\t\n\t\t\tϢ()\n\t\tΪ\tܹʲô(Ϊ)\n\t\n\tࣺ\n\t\tԱ\tϢ()\n\t\tԱ\tܹʲô(Ϊ)\n\nࣺһصԺΪļ\nǸľ\n\n\n\tѧ\n\tǶ\n"
  },
  {
    "path": "day06/code/03_类的定义/Phone.java",
    "content": "/*\n\tһ\n\t\tֻ\n\t\t\tԣƷƣ۸ɫ\n\t\t\tΪ绰\n\n\tڶתΪ\n\t\tֻࣺ\n\t\t\tԱƷƣ۸ɫ\n\t\t\tԱ绰\n\n\tӢ\n\t\tPhone:\n\t\t\tԱbrandpricecolor\n\t\t\tԱcall(String name)sendMessage()\n\n\tĲд\n\t\tԱʵһֻз⣬ҲԲʼֵ\n\t\tԱʵһֻҪstaticˡ\n*/\n//ҵֻ\nclass Phone {\n\t//Ʒ\n\tString brand;\n\t//۸\n\tint price;\n\t//ɫ\n\tString color;\n\n\t//绰ķ\n\tpublic void call(String name) {\n\t\tSystem.out.println(\"\"+name+\"绰\");\n\t}\n\n\t//ŵķ\n\tpublic void sendMessage() {\n\t\tSystem.out.println(\"Ⱥ\");\n\t}\n}"
  },
  {
    "path": "day06/code/03_类的定义/Student.java",
    "content": "/*\n\tһ\n\t\tѧ\n\t\t\tԣѧţ\n\t\t\tΪѧϰԷ˯\n\n\tڶתΪ\n\t\tѧࣺ\n\t\t\tԱѧţ\n\t\t\tԱѧϰԷ˯\n\n\tӢ\n\t\tStudent:\n\t\t\tԱsidnameage\n\t\t\tԱstudy()eat()sleep()\n\n\tĲд\n\t\tԱʵһֻз⣬ҲԲʼֵ\n\t\tԱʵһֻҪstaticˡ\n\n\tϰ\n\t\tֻ\n*/\n//ҵѧ\nclass Student {\n\t//Ա\n\t//ѧ\n\tString sid;\n\t//\n\tString name;\n\t//\n\tint age;\n\n\t//Ա\n\t//ѧϰķ\n\tpublic void study() {\n\t\tSystem.out.println(\"ѧѧϰ\");\n\t}\n\n\t//Էķ\n\tpublic void eat() {\n\t\tSystem.out.println(\"ѧҪԷ\");\n\t}\n\n\t//˯ķ\n\tpublic void sleep() {\n\t\tSystem.out.println(\"ѧ˯\");\n\t}\n}"
  },
  {
    "path": "day06/code/04_类的使用/一个java文件多个class/StudentDemo.java",
    "content": "/*\n\tһ.javaļпж?\n\t\tԡ\n\t\n\tpublicκӦĸ?\n\t\tδmainġһֻӦһ౻public\n\t\tĿǰдpublicεġ\n\t\n\tڲʹһ?\n\t\tʹĳԱ\n\tδ?\n\t\tʽ\n\t\t\t  = new ();\n\tʹĳԱ?\n\t\tԱ.;\n\t\tԱ.(...);\n\n\tע⣺\n\t\t͵Ĭֵnull\n*/\nclass Student {\n\t//ѧ\n\tString sid;\n\t//\n\tString name;\n\t//\n\tint age;\n\n\t//ѧϰķ\n\t//ѧϰķ\n\tpublic void study() {\n\t\tSystem.out.println(\"ѧѧϰ\");\n\t}\n\n\t//Էķ\n\tpublic void eat() {\n\t\tSystem.out.println(\"ѧҪԷ\");\n\t}\n\n\t//˯ķ\n\tpublic void sleep() {\n\t\tSystem.out.println(\"ѧ˯\");\n\t}\n}\n\nclass StudentDemo {\n\tpublic static void main(String[] args) {\n\t\t//ѧ\n\t\tStudent s = new Student();\n\n\t\t//\n\t\tSystem.out.println(s); //Student@1afb7ac7\n\n\t\t//Ա\n\t\tSystem.out.println(\"ѧǣ\"+s.sid); //null\n\t\tSystem.out.println(\"ǣ\"+s.name);//null\n\t\tSystem.out.println(\"ǣ\"+s.age); //0\n\t\tSystem.out.println(\"--------------\");\n\n\t\t//Աֵ\n\t\ts.sid = \"itcast001\";\n\t\ts.name = \"ϼ\";\n\t\ts.age = 28;\n\n\t\t//ٴԱ\n\t\tSystem.out.println(\"ѧǣ\"+s.sid); //itcast001\n\t\tSystem.out.println(\"ǣ\"+s.name);//ϼ\n\t\tSystem.out.println(\"ǣ\"+s.age); //28\n\t\tSystem.out.println(\"--------------\");\n\n\t\t//ʹóԱ\n\t\ts.study();\n\t\ts.eat();\n\t\ts.sleep();\n\t}\n}"
  },
  {
    "path": "day06/code/04_类的使用/多个java文件多个class/Phone.java",
    "content": "/*\n\tֻ\n\t\tԱƷƣ۸ɫ\n\t\tԱ绰\n*/\nclass Phone {\n\t//Ʒ\n\tString brand;\n\t//۸\n\tint price;\n\t//ɫ\n\tString color;\n\n\t//绰ķ\n\tpublic void call(String name) {\n\t\tSystem.out.println(\"\"+name+\"绰\");\n\t}\n\n\t//\n\tpublic void sendMessage() {\n\t\tSystem.out.println(\"Ⱥ\");\n\t}\n}"
  },
  {
    "path": "day06/code/04_类的使用/多个java文件多个class/PhoneDemo.java",
    "content": "class PhoneDemo {\n\tpublic static void main(String[] args) {\n\t\t//\n\t\tPhone p = new Phone();\n\n\t\t//ʹóԱ\n\t\tSystem.out.println(\"Ʒǣ\"+p.brand);\n\t\tSystem.out.println(\"۸ǣ\"+p.price);\n\t\tSystem.out.println(\"ɫǣ\"+p.color);\n\t\tSystem.out.println(\"----------------\");\n\n\t\t//Աֵ\n\t\tp.brand = \"\";\n\t\tp.price = 2999;\n\t\tp.color = \"ɫ\";\n\n\t\t//ٴʹóԱ\n\t\tSystem.out.println(\"Ʒǣ\"+p.brand);\n\t\tSystem.out.println(\"۸ǣ\"+p.price);\n\t\tSystem.out.println(\"ɫǣ\"+p.color);\n\t\tSystem.out.println(\"----------------\");\n\n\t\t//óԱ\n\t\t//String name = \"ϼ\";\n\t\t//p.call(name);\n\t\tp.call(\"ϼ\");\n\t\tp.sendMessage();\n\t}\n}\n"
  },
  {
    "path": "day06/code/04_类的使用/多个java文件多个class/Student.java",
    "content": "class Student {\n\t//ѧ\n\tString sid;\n\t//\n\tString name;\n\t//\n\tint age;\n\n\t//ѧϰķ\n\t//ѧϰķ\n\tpublic void study() {\n\t\tSystem.out.println(\"ѧѧϰ\");\n\t}\n\n\t//Էķ\n\tpublic void eat() {\n\t\tSystem.out.println(\"ѧҪԷ\");\n\t}\n\n\t//˯ķ\n\tpublic void sleep() {\n\t\tSystem.out.println(\"ѧ˯\");\n\t}\n}"
  },
  {
    "path": "day06/code/04_类的使用/多个java文件多个class/StudentDemo.java",
    "content": "//\nclass StudentDemo {\n\tpublic static void main(String[] args) {\n\t\t//ѧ\n\t\tStudent s = new Student();\n\n\t\t//\n\t\tSystem.out.println(s); //Student@1afb7ac7\n\n\t\t//Ա\n\t\tSystem.out.println(\"ѧǣ\"+s.sid); //null\n\t\tSystem.out.println(\"ǣ\"+s.name);//null\n\t\tSystem.out.println(\"ǣ\"+s.age); //0\n\t\tSystem.out.println(\"--------------\");\n\n\t\t//Աֵ\n\t\ts.sid = \"itcast001\";\n\t\ts.name = \"ϼ\";\n\t\ts.age = 28;\n\n\t\t//ٴԱ\n\t\tSystem.out.println(\"ѧǣ\"+s.sid); //itcast001\n\t\tSystem.out.println(\"ǣ\"+s.name);//ϼ\n\t\tSystem.out.println(\"ǣ\"+s.age); //28\n\t\tSystem.out.println(\"--------------\");\n\n\t\t//ʹóԱ\n\t\ts.study();\n\t\ts.eat();\n\t\ts.sleep();\n\t}\n}"
  },
  {
    "path": "day06/code/05_对象内存图/PhoneDemo.java",
    "content": "//ֻĶ\nclass Phone {\n\t//Ʒ\n\tString brand;\n\t//۸\n\tint price;\n\t//ɫ\n\tString color;\n\n\t//绰ķ\n\tpublic void call(String name) {\n\t\tSystem.out.println(\"\"+name+\"绰\");\n\t}\n\n\t//\n\tpublic void sendMessage() {\n\t\tSystem.out.println(\"Ⱥ\");\n\t}\n}\n\nclass PhoneDemo {\n\tpublic static void main(String[] args) {\n\t\t//\n\t\tPhone p = new Phone();\n\n\t\t//ʹóԱ\n\t\tSystem.out.println(\"Ʒǣ\"+p.brand);\n\t\tSystem.out.println(\"۸ǣ\"+p.price);\n\t\tSystem.out.println(\"ɫǣ\"+p.color);\n\t\tSystem.out.println(\"----------------\");\n\n\t\t//Աֵ\n\t\tp.brand = \"\";\n\t\tp.price = 2999;\n\t\tp.color = \"ɫ\";\n\n\t\t//ٴʹóԱ\n\t\tSystem.out.println(\"Ʒǣ\"+p.brand);\n\t\tSystem.out.println(\"۸ǣ\"+p.price);\n\t\tSystem.out.println(\"ɫǣ\"+p.color);\n\t\tSystem.out.println(\"----------------\");\n\n\t\t//óԱ\n\t\t//String name = \"ϼ\";\n\t\t//p.call(name);\n\t\tp.call(\"ϼ\");\n\t\tp.sendMessage();\n\t}\n}"
  },
  {
    "path": "day06/code/05_对象内存图/PhoneDemo2.java",
    "content": "//ֻĶ\nclass Phone {\n\t//Ʒ\n\tString brand;\n\t//۸\n\tint price;\n\t//ɫ\n\tString color;\n\n\t//绰ķ\n\tpublic void call(String name) {\n\t\tSystem.out.println(\"\"+name+\"绰\");\n\t}\n\n\t//\n\tpublic void sendMessage() {\n\t\tSystem.out.println(\"Ⱥ\");\n\t}\n}\n\nclass PhoneDemo2 {\n\tpublic static void main(String[] args) {\n\t\tPhone p = new Phone();\n\t\tp.brand = \"ŵ\";\n\t\tp.price = 299;\n\t\tp.color = \"\";\n\t\t//ʹóԱ\n\t\tSystem.out.println(\"Ʒǣ\"+p.brand);\n\t\tSystem.out.println(\"۸ǣ\"+p.price);\n\t\tSystem.out.println(\"ɫǣ\"+p.color);\n\t\tp.call(\"ϼ\");\n\t\tp.sendMessage();\n\n\t\tPhone p2 = new Phone();\n\t\tp2.brand = \"С\";\n\t\tp2.price = 699;\n\t\tp2.color = \"ڰ\";\n\t\t//ʹóԱ\n\t\tSystem.out.println(\"Ʒǣ\"+p2.brand);\n\t\tSystem.out.println(\"۸ǣ\"+p2.price);\n\t\tSystem.out.println(\"ɫǣ\"+p2.color);\n\t\tp2.call(\"\");\n\t\tp2.sendMessage();\n\t}\n}\n"
  },
  {
    "path": "day06/code/05_对象内存图/PhoneDemo3.java",
    "content": "//ֻĶ\nclass Phone {\n\t//Ʒ\n\tString brand;\n\t//۸\n\tint price;\n\t//ɫ\n\tString color;\n\n\t//绰ķ\n\tpublic void call(String name) {\n\t\tSystem.out.println(\"\"+name+\"绰\");\n\t}\n\n\t//\n\tpublic void sendMessage() {\n\t\tSystem.out.println(\"Ⱥ\");\n\t}\n}\n\nclass PhoneDemo3 {\n\tpublic static void main(String[] args) {\n\t\tPhone p = new Phone();\n\t\t//Աֵʹò\n\t\t//ò\n\n\t\tPhone p2 = new Phone();\n\t\t//Աֵʹò\n\t\t//ò\n\n\t\tPhone p3 = p;\n\t\tp3.brand = \"\";\n\t\tp3.price = 1999;\n\t\tp3.color = \"ɫ\";\n\t\tSystem.out.println(\"Ʒǣ\"+p.brand);\n\t\tSystem.out.println(\"۸ǣ\"+p.price);\n\t\tSystem.out.println(\"ɫǣ\"+p.color);\n\t}\n}\n"
  },
  {
    "path": "day06/code/06_成员变量和局部变量的区别/VariableDemo.java",
    "content": "/*\n\tԱ;ֲ\n\t\tA:еλòͬ\n\t\t\tԱ з\n\t\t\tֲ ڻ߷\n\t\tB:ڴеλòͬ\n\t\t\tԱ ڴ\n\t\t\tֲ ջڴ\n\t\tC:ڲͬ\n\t\t\tԱ ŶĴڶڣŶʧʧ\n\t\t\tֲ ŷĵöڣŷĵ϶ʧ\n\t\tD:ʼֵͬ\n\t\t\tԱ Ĭϵĳʼֵ\n\t\t\tֲ ûĬϵĳʼֵȶ壬ֵʹá\n\n\t\tע⣺\n\t\t\tͬıһþͽԭ\n*/\nclass VariableDemo {\n\t//Ա\n\tint x;\n\n\tpublic static void main(String[] args) {\n\t\t//ֲ\n\t\tint y;\n\t\t//System.out.println(y);\n\n\t\tVariableDemo vd = new VariableDemo();\n\t\tSystem.out.println(vd.x);\n\t}\n}"
  },
  {
    "path": "day06/code/07_形式参数问题/NoNameObject.java",
    "content": "/*\n\tûֵĶ\n\n\tʹó\n\t\tA:÷,÷ʹһεʱá\n\t\tB:Ϊʵʲ\n*/\n\n//ѧ࣬дһlove\nclass Student  {\n\tpublic void love() {\n\t\tSystem.out.println(\"ѧϲż\");\n\t}\n}\n\nclass StudentDemo {\n\tpublic void test(Student s) {\n\t\ts.love();\n\t}\n}\n\n//\nclass NoNameObject {\n\tpublic static void main(String[] args) {\n\t\t/*\n\t\t//\n\t\tStudent s = new Student();\n\t\ts.love();\n\t\ts.love();\n\n\t\t//\n\t\tnew Student().love();\n\t\tnew Student().love();\n\t\t*/\n\n\t\t//ֵ\n\t\t//StudentDemo sd = new StudentDemo();\n\t\t//Student s = new Student();\n\t\t//sd.test(s);\n\n\t\t//ûֵ\n\t\t//StudentDemo sd = new StudentDemo();\n\t\t//sd.test(new Student());\n\n\t\t//һ\n\t\tnew StudentDemo().test(new Student());\n\t}\n}"
  },
  {
    "path": "day06/code/07_形式参数问题/StudentTest.java",
    "content": "//ΪݣҪǶ(ֵַ)\n//ѧ࣬ѧϰ\nclass Student {\n\tpublic void study() {\n\t\tSystem.out.println(\"ѧѧϰ\");\n\t}\n}\n\nclass StudentDemo {\n\t//Student࣬͡\n\tpublic void test(Student s) {\n\t\ts.study();\n\t}\n}\n\nclass StudentTest {\n\tpublic static void main(String[] args) {\n\t\t//ε?\n\t\tStudentDemo sd = new StudentDemo();\n\t\tStudent s = new Student();\n\t\tsd.test(s);\n\t}\n}"
  },
  {
    "path": "day06/code/07_形式参数问题/SumDemo.java",
    "content": "//ΪʽݣֱӴݻ͵ֵɡ\n\n//Demo࣬дһʵ\nclass Demo {\n\tpublic int sum(int a,int b) {\n\t\treturn a + b;\n\t}\n}\n\n//\nclass SumDemo {\n\tpublic static void main(String[] args) {\n\t\t//\n\t\tint a = 10;\n\t\tint b = 20;\n\n\t\t//\n\t\tDemo d = new Demo();\n\t\tint result = d.sum(a,b);\n\t\tSystem.out.println(\"ǣ\"+result);\n\t}\n}"
  },
  {
    "path": "day06/code/08_封装/StudentDemo.java",
    "content": "/*\n\tѧࣺ\n\n\tǴ˶ǿͨȥʹеĳԱ\n\tڵǣǲֱȥʹĳԱ\n\tô?\n\tjavaṩһؼ֣private\n\n\tprivate:\n\t\tA:һȨη\n\t\tB:γԱ(ԱͳԱ)\n\t\tC:privateεĳԱֻڱвܷʡ\n\n*/\n//ѧ\nclass Student {\n\tString name;\n\tprivate int age;\n\n\t//Ϊ˸ʵ\n\t//ԣҪж\n\t//ҪжϣӦдж\n\t//дӦڷ\n\tpublic void checkAge(int a) {\n\t\tif(a<0 || a>100) {\n\t\t\tSystem.out.println(\"\");\n\t\t}else {\n\t\t\tage = a;\n\t\t}\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n}\n\n//\nclass StudentDemo {\n\tpublic static void main(String[] args) {\n\t\t//ѧ\n\t\tStudent s = new Student();\n\n\t\t//nameageֵ\n\t\ts.name = \"ϼ\";\n\t\t//s.age = 28;\n\t\t//s.age = -28;\n\t\t//ֵͨ\n\t\ts.checkAge(-28);\n\t\t//s.age = -28;\n\n\t\t//\n\t\t//System.out.println(s.name+\"***\"+s.age);\n\t\tSystem.out.println(s.name);\n\t\tSystem.out.println(s.getAge());\n\t}\n}"
  },
  {
    "path": "day06/code/08_封装/StudentDemo2.java",
    "content": "/*\n\tprivateӦó\n\t\ta:ѳԱ˽л\n\t\tb:ṩgetXxx()setXxx()\n*/\nclass Student {\n\tprivate String name;\n\tprivate int age;\n\n\t//namegetset\n\tpublic void setName(String n) {\n\t\t//ʵҲǿԶnameһЩжϵ\n\t\tname = n;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\t//agegetset\n\tpublic void setAge(int a) {\n\t\tage = a;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n}\n\nclass StudentDemo2 {\n\tpublic static void main(String[] args) {\n\t\t//\n\t\tStudent s = new Student();\n\t\t//Աֵ\n\t\tSystem.out.println(s.getName()+\"---\"+s.getAge());\n\n\t\t//Աֵ\n\t\ts.setName(\"ϼ\");\n\t\ts.setAge(28);\n\n\t\t//ٴԱֵ\n\t\tSystem.out.println(s.getName()+\"---\"+s.getAge());\n\t}\t\n}\n"
  },
  {
    "path": "day06/code/09_this关键字/StudentDemo.java",
    "content": "/*\n\t˵֣Ҫ֪⣬ڵnaһõıơ\n\n\tڱڲҵʱ򣬲õǾͽԭԣʱ򣬾Ͳ⡣\n\tԱֵģȷֵ˾ֲ\n\tôǸν?\n\tjavaṩһؼ֣this\n\n\tthisĶ\n\n\tӦó\n\t\tֲسԱ\n*/\nclass Student {\n\tprivate String name;\n\tprivate int age;\n\n\t/*\n\tpublic void setName(String n) {\n\t\tname = n;\n\t}\n\t*/\n\n\tpublic void setName(String name) {  //\"ϼ\"\n\t\tthis.name = name;\n\t}\n\n\tpublic String getName() {\n\t\treturn name; //ʵthis\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n}\n\nclass StudentDemo {\n\tpublic static void main(String[] args) {\n\t\t//\n\t\tStudent s = new Student();\n\t\t//Աֵ\n\t\tSystem.out.println(s.getName()+\"---\"+s.getAge());\n\n\t\t//Աֵ\n\t\ts.setName(\"ϼ\");\n\t\ts.setAge(28);\n\n\t\t//ٴԱֵ\n\t\tSystem.out.println(s.getName()+\"---\"+s.getAge());\n\t}\t\n}\n"
  },
  {
    "path": "day06/code/09_this关键字/StudentDemo2.java",
    "content": "class Student {\n\t//\n\tprivate String name;\n\t//\n\tprivate int age;\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\t//ʾгԱķ\n\tpublic void show() {\n\t\tSystem.out.println(\"ǣ\"+name+\",ǣ\"+age);\n\t}\n}\nclass StudentDemo2 {\n\tpublic static void main(String[] args) {\n\t\t//\n\t\tStudent s = new Student();\n\n\t\t//ʹóԱ\n\t\ts.show();\n\n\t\t//Աֵ\n\t\ts.setName(\"ϼ\");\n\t\ts.setAge(28);\n\n\t\t//ٴʹóԱ\n\t\ts.show();\n\n\t\tSystem.out.println(\"ǣ\"+s.getName()+\",ǣ\"+s.getAge());\n\t}\n}\n"
  },
  {
    "path": "day06/day06总结.txt",
    "content": "1:˼()\n\t(1)ǻ̵һֱ˼\n\t(2)˼ص㣺\n\t\tA:һָ˼ϰߵ˼\n\t\tB:Ѹӵ򵥻\n\t\tC:Ǵִָ߱\n\t(3)\n\t\tA:ϴ·\n\t\tB:Է\n\t\tC:\n\t(4)\n\t\tѴװ\n\n2:()\n\t(1)ѧϰΪ˰ʵñʵϢ\n\t(2)ʵα?\n\t\tԣ\n\t\tΪΪ\n\t(3)ѧϰjavaԣĵλࡣ\n\t   Ҫѧһ\n\t(4)ࣺһصԺΪļ\n\t(5)Ǹľ塣\n\t(6)\n\t\tѧ \n\t\t \n\n3:()\n\t(1)Ա\n\t\tʵǱֻУ⣬ҿԲóʼ\n\t(2)Ա\n\t\tʵǷֻҪstatic\n\t(3)\n\t\tѧ\n\t\t\tclass Student {\n\t\t\t\tString name;\n\t\t\t\tint age;\n\n\t\t\t\tpublic void study() {}\n\t\t\t}\n\n\t\tֻ(ѧѧ)\n\n4:ʹ()\n\t(1)\n\t\tʽ  = new ();\n\t(2)ʹóԱ\n\t\tԱ.;\n\t\tԱ.(...);\n\n5:Ա;ֲ()\n\t(1)еλòͬ\n\t\tA:Ա У\n\t\tB:ֲ ʽ߷\n\t(2)ڴеλòͬ\n\t\tA:Ա ڶ\n\t\tB:ֲ ջ\n\t(3)ڲͬ\n\t\tA:Ա ŶĴڶڣŶʧʧ\n\t\tB:ֲ ŷĵöڣŷĵ϶ʧ\n\t(4)ʼֵͬ\n\t\tA:Ա Ĭϳʼֵ\n\t\tB:ֲ ûĬֵֵʹ\n\n6:ʽ()\n\t(1)\n\t\tΪʽҪǸû͵ֵ\n\t(2)\n\t\tΪʽҪǸ͵ĵֵַ()\n\n7:()\n\t(1)ûֵĶǶļдʽ\n\t(2)ʹó\n\t\tA:÷ֻһ\n\t\tB:Ϊʵʲ\n\n8:װ()\n\t(1)ʵϸڣṩķʷʽ\n\t(2)ô\n\t\tA:ʵϸڣṩķʷʽ\n\t\tB:˴ĸ\n\t\tC:˴İȫ\n\t(3)ʹԭ\n\t\tA:ѳԱ\n\t\tB:óԱӦĹʷʽ\n\n9:privateؼ()\n\t(1)һȨη\n\t(2)ĳԱ(ԱͳԱ)\n\t(3)ڱпԷ\n\t(4)׼룺\n\t\tclass Student {\n\t\t\tprivate String name;\n\t\t\tprivate int age;\n\n\t\t\tpublic void setName(String n) {\n\t\t\t\tname = n;\n\t\t\t}\n\n\t\t\tpublic String getName() {\n\t\t\t\treturn name;\n\t\t\t}\n\n\t\t\tpublic void setAge(int a) {\n\t\t\t\tage = a;\n\t\t\t}\n\n\t\t\tpublic int getAge() {\n\t\t\t\treturn age;\n\t\t\t}\n\n\t\t\tpublic void study() {}\n\t\t}\n\n10:thisؼ()\n\t(1)thisĶ\n\t(2)Ӧó\n\t\t˾ֲسԱ⡣\n\t\t÷superһ𽲡\n\t(3)׼룺\n\t\tclass Student {\n\t\t\tprivate String name;\n\t\t\tprivate int age;\n\n\t\t\tpublic void setName(String name) {\n\t\t\t\tthis.name = name;\n\t\t\t}\n\n\t\t\tpublic String getName() {\n\t\t\t\treturn name;\n\t\t\t}\n\n\t\t\tpublic void setAge(int age) {\n\t\t\t\tthis.age = age;\n\t\t\t}\n\n\t\t\tpublic int getAge() {\n\t\t\t\treturn age;\n\t\t\t}\n\n\t\t\tpublic void show() {\n\t\t\t\tSystem.out.println(\"ǣ\"+name+\",ǣ\"+age);\n\t\t\t}\n\n\t\t\tpublic void study() {\n\t\t\t\tSystem.out.println(\"ѧѧϰ\");\n\t\t\t}\n\n\t\t\tpublic void eat() {\n\t\t\t\tSystem.out.println(\"ѧҪԷ\");\n\t\t\t}\n\n\t\t\tpublic void sleep() {\n\t\t\t\tSystem.out.println(\"ѧ˯\");\n\t\t\t}\n\t\t}\n\n\t\tclass StudentTest {\n\t\t\tpublic static void main(String[] args) {\n\t\t\t\tStudent s = new Student();\n\n\t\t\t\ts.setName(\"ϼ\");\n\t\t\t\ts.setAge(28);\n\n\t\t\t\ts.show();\n\t\t\t\ts.study();\n\t\t\t\ts.eat();\n\t\t\t\ts.sleep();\n\n\t\t\t\tSystem.out.println(\"ǣ\"+s.getName());\n\t\t\t\tSystem.out.println(\"ǣ\"+s.getAge());\n\t\t\t}\n\t\t}"
  },
  {
    "path": "day07/code/01_构造方法/PhoneTest.java",
    "content": "class Phone {\n\tprivate String brand;\n\tprivate int price;\n\tprivate String color;\n\n\tpublic Phone() {}\n\n\tpublic Phone(String brand,int price,String color) {\n\t\tthis.brand = brand;\n\t\tthis.price = price;\n\t\tthis.color = color;\n\t}\n\n\tpublic void setBrand(String brand) {\n\t\tthis.brand = brand;\n\t}\n\n\tpublic String getBrand() {\n\t\treturn brand;\n\t}\n\n\tpublic void setPrice(int price) {\n\t\tthis.price = price;\n\t}\n\n\tpublic int getPrice() {\n\t\treturn price;\n\t}\n\n\tpublic void setColor(String color) {\n\t\tthis.color = color;\n\t}\n\n\tpublic String getColor() {\n\t\treturn color;\n\t}\n\n\tpublic void show() {\n\t\tSystem.out.println(\"ҵֻǣ\"+brand+\",۸ǣ\"+price+\",ɫǣ\"+color);\n\t}\n}\nclass PhoneTest {\n\tpublic static void main(String[] args) {\n\t\t//޲+setXxx()\n\t\tPhone p = new Phone();\n\t\tp.setBrand(\"\");\n\t\tp.setPrice(1000);\n\t\tp.setColor(\"ɫ\");\n\t\tp.show();\n\n\t\t//\n\t\tPhone pp = new Phone(\"Ϊ\",799,\"ɫ\");\n\t\tpp.show();\n\t}\n}\n"
  },
  {
    "path": "day07/code/01_构造方法/StudentDemo.java",
    "content": "/*\n\t췽ݽгʼ\n\n\tص㣺\n\t\tA:ͬ\n\t\tB:ûзֵͣvoidû\n\t\tC:ûоķֵ\n\n\t췽ĸʽ\n\t\tη (...) {\n\t\t\n\t\t}\n\n\t췽ע\n\t\tA:㲻ṩ췽ϵͳĬ޲ι췽\n\t\tB:ṩ˹췽ϵͳṩĬ޲ι췽\n\t\t\tʱ㻹ʹ޲ι췽ֻԼ\n\t\t\tƼԶԼ޲ι췽\n\t\tC:췽Ҳǿص\n\t\tD:췽пreturn?\n\t\t\tԡֻreturn;\n\n*/\nclass Student {\n\t//Ա\n\tprivate String name;\n\tprivate int age;\n\n\t//췽\n\tpublic Student() {\n\t\tSystem.out.println(\"޲ι췽\");\n\t\t//return;\n\t}\n\n\tpublic Student(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic Student(int age) {\n\t\tthis.age = age;\n\t}\n\n\tpublic Student(String name,int age) {\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\t//getXxx()/setXxx()\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\t//ʾгԱķ\n\tpublic void show() {\n\t\tSystem.out.println(\"ǣ\"+name+\",ǣ\"+age);\n\t}\n}\n\nclass StudentDemo {\n\tpublic static void main(String[] args) {\n\t\t//\n\t\tStudent s = new Student();\n\t\ts.show();\n\n\t\t//\n\t\tStudent s2 = new Student(\"ϼ\");\n\t\ts2.show();\n\n\t\t//\n\t\tStudent s3 = new Student(28);\n\t\ts3.show();\n\n\t\t//\n\t\tStudent s4 = new Student(\"ϼ\",28);\n\t\ts4.show();\n\t}\n}"
  },
  {
    "path": "day07/code/01_构造方法/StudentTest.java",
    "content": "/*\n\tɣ\n\t\tԱ\n\t\t췽\n\t\tԱ\n\n\tĳԱֵмַʽ\n\t\tA:setXxx()\n\t\tB:ι췽\n\n\tϰ\n\t\tPhone:\n\t\t\tԱbrand,price,color\n\t\t\t췽޲,\n\t\t\tԱsetXxx()/getXxx()\n\t\t\t\t\t  show()\n\n\t\tPhoneTest:\n\t\t\tmain\n*/\nclass Student {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Student() {}\n\n\tpublic Student(String name,int age) {\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void show() {\n\t\tSystem.out.println(\"ǣ\"+name+\",ǣ\"+age);\n\t}\n}\n\nclass StudentTest {\n\tpublic static void main(String[] args) {\n\t\t//޲+setXxx\n\t\tStudent s1 = new Student();\n\t\ts1.setName(\"ϼ\");\n\t\ts1.setAge(28);\n\t\tSystem.out.println(s1.getName()+\"---\"+s1.getAge());\n\t\ts1.show();\n\t\tSystem.out.println(\"----------------------------\");\n\n\t\t//\n\t\tStudent s2 = new Student(\"\",82);\n\t\tSystem.out.println(s2.getName()+\"---\"+s2.getAge());\n\t\ts2.show();\n\t\t\n\t}\n}"
  },
  {
    "path": "day07/code/03_面向对象练习/加减乘除案例/MyMathDemo.java",
    "content": "/*\n\tһMyMath,ṩļӼ˳ܣȻвԡ\n*/\nclass MyMath {\n\tpublic int add(int a,int b) {\n\t\treturn a + b;\n\t}\n\n\tpublic int subtract(int a,int b) {\n\t\treturn a - b;\n\t}\n\n\tpublic int multiply(int a,int b) {\n\t\treturn a * b;\n\t}\n\n\tpublic int divide(int a,int b) {\n\t\treturn a / b;\n\t}\n}\nclass MyMathDemo {\n\tpublic static void main(String[] args) {\n\t\t//\n\t\tMyMath my = new MyMath();\n\n\t\tSystem.out.println(\"ӷ\"+my.add(23,34));\n\t\tSystem.out.println(\"\"+my.subtract(23,34));\n\t\tSystem.out.println(\"˷\"+my.multiply(2,4));\n\t\tSystem.out.println(\"\"+my.divide(10,4));\n\t}\n}"
  },
  {
    "path": "day07/code/03_面向对象练习/员工类案例/EmployeeDemo.java",
    "content": "/*\n\tһԱ,ԼԱ\n\tȻԱ췽getXxx()/setXxx()\n\tԼһʾгԱϢķԡ\n\n\tEmployee\n\t\tԱԱ,,ְλ\n\t\t췽޲Σ\n\t\tԱgetXxx()/setXxx()show()\n*/\nclass Employee {\n\tprivate String eid;\n\tprivate String name;\n\tprivate String job;\n\n\tpublic Employee() {}\n\n\tpublic Employee(String eid,String name,String job) {\n\t\tthis.eid = eid;\n\t\tthis.name = name;\n\t\tthis.job = job;\n\t}\n\n\tpublic void setEid(String eid) {\n\t\tthis.eid = eid;\n\t}\n\n\tpublic String getEid() {\n\t\treturn eid;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setJob(String job) {\n\t\tthis.job = job;\n\t}\n\n\tpublic String getJob() {\n\t\treturn job;\n\t}\n\n\tpublic void show() {\n\t\tSystem.out.println(\"Աǣ\"+eid+\",ǣ\"+name+\",ְλǣ\"+job);\n\t}\n}\n\nclass EmployeeDemo {\n\tpublic static void main(String[] args) {\n\t\t//޲\n\t\tEmployee e = new Employee();\n\t\te.setEid(\"itcast007\");\n\t\te.setName(\"ǳ\");\n\t\te.setJob(\"߼ʦ\");\n\t\te.show();\n\n\t\t//\n\t\tEmployee e2 = new Employee(\"itcast003\",\"»\",\"ھʦ\");\n\t\te2.show();\n\t}\n}"
  },
  {
    "path": "day07/code/03_面向对象练习/求和案例/Test.java",
    "content": "/*\n\tһDemo,жһݺ͵ķһTestвԡ\n\n\tʲôʱԱ?\n\tҪ֪ʲôʱԱӦ˼ԱĹϵ?\n\tԱĻϢġ\n\tҲ˵ֻкйϵıſԶΪԱ\n*/\nclass Demo {\n\tprivate int x;\n\tprivate int y;\n\n\tpublic Demo() {}\n\n\tpublic Demo(int x,int y) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\n\tpublic void setX(int x) {\n\t\tthis.x = x;\n\t}\n\n\tpublic int getX() {\n\t\treturn x;\n\t}\n\n\tpublic void setY(int y) {\n\t\tthis.y = y;\n\t}\n\n\tpublic int getY() {\n\t\treturn y;\n\t}\n\n\t//ԱѾx,yˡûбҪڶ\n\t/*\n\tpublic int sum(int x,int y) {\n\t\treturn x + y;\n\t}\n\t*/\n\n\tpublic int sum() {\n\t\treturn x + y;\n\t}\n}\n\nclass Test {\n\tpublic static void main(String[] args) {\n\t\tDemo d = new Demo();\n\t\td.setX(10);\n\t\td.setY(20);\n\t\tint result = d.sum();\n\t\tSystem.out.println(result);\n\t}\n}"
  },
  {
    "path": "day07/code/03_面向对象练习/求和案例/Test2.java",
    "content": "/*\n\tʱ򣬷ΧԽСԽá\n*/\nclass Demo {\n\tpublic int sum(int x,int y) {\n\t\treturn x + y;\n\t}\n}\n\nclass Test2 {\n\tpublic static void main(String[] args) {\n\t\tDemo d = new Demo();\n\t\tint result = d.sum(10,20);\n\t\tSystem.out.println(result);\n\t}\n}\n"
  },
  {
    "path": "day07/code/03_面向对象练习/长方形案例/Test.java",
    "content": "/*\n\tһ,ܳķȻһTestвԡ\n*/\nclass ChangFangXing {\n\tprivate int length;\n\tprivate int width;\n\n\tpublic ChangFangXing() {}\n\n\tpublic ChangFangXing(int length,int width) {\n\t\tthis.length = length;\n\t\tthis.width = width;\n\t}\n\n\tpublic void setLength(int length) {\n\t\tthis.length = length;\n\t}\n\n\tpublic int getLength() {\n\t\treturn length;\n\t}\n\n\tpublic void setWidth(int width) {\n\t\tthis.width = width;\n\t}\n\n\tpublic int getWidth() {\n\t\treturn width;\n\t}\n\n\tpublic int zhouChang() {\n\t\treturn (length+width)*2;\n\t}\n\n\tpublic int area() {\n\t\treturn length*width;\n\t}\n}\n\nclass Test {\n\tpublic static void main(String[] args) {\n\t\t//޲\n\t\tChangFangXing cfx = new ChangFangXing();\n\t\tcfx.setLength(100);\n\t\tcfx.setWidth(50);\n\t\tSystem.out.println(\"ܳǣ\"+cfx.zhouChang());\n\t\tSystem.out.println(\"ǣ\"+cfx.area());\n\n\t\t//\n\t\tChangFangXing cfx2 = new ChangFangXing(100,50);\n\t\tSystem.out.println(\"ܳǣ\"+cfx2.zhouChang());\n\t\tSystem.out.println(\"ǣ\"+cfx2.area());\n\t}\n}"
  },
  {
    "path": "day07/code/04_static关键字/StudentDemo.java",
    "content": "/*\n\t༶ӦǱ༶ÿ˶ģԶһӦÿˡ\n\t䣬ÿӦǲһģԣÿ󣬶ӦöԼġ\n\n\tjavaУʲôʾԱǱ? static\n*/\nclass Student {\n\t//\n\tString name;\n\t//\n\tint age;\n\t//༶\n\t//String classNumber;\n\tstatic String classNumber;\n\n\tpublic Student(String name,int age) {\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic Student(String name,int age,String classNumber) {\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t\tthis.classNumber = classNumber;\n\t}\n\n\tpublic void show() {\n\t\tSystem.out.println(name+\"---\"+age+\"---\"+classNumber);\n\t}\n}\n\nclass StudentDemo {\n\tpublic static void main(String[] args) {\n\t\t//ѧ\n\t\tStudent s1 = new Student(\"ϼ\",28,\"20150306\");\n\t\ts1.show();\n\n\t\t/*\n\t\tStudent s2 = new Student(\"\",35,\"20150306\");\n\t\ts2.show();\n\n\t\tStudent s3 = new Student(\"\",33,\"20150306\");\n\t\ts3.show();\n\t\t*/\n\t\tStudent s2 = new Student(\"\",35);\n\t\ts2.show();\n\n\t\tStudent s3 = new Student(\"\",33);\n\t\ts3.show();\n\t}\n}"
  },
  {
    "path": "day07/code/04_static关键字/StudentDemo2.java",
    "content": "/*\n\tstatic:̬ؼ֡\n\n\tã\n\t\tγԱͳԱ\n\n\tص㣺\n\t\tA:ļض\t\n\t\tB:ڶ\n\t\tC:ж\n\t\t\tҲжǷʹþ̬ؼֵ\n\n\t\t\tˮԱ̬\n\t\t\tˮԱ̬\n\t\tD:ͨ\n\t\t\tǵĵüȿǶ󣬻\n*/\nclass Student {\n\tpublic void show() {\n\t\tSystem.out.println(\"show\");\n\t}\n\n\tpublic static void show2() {\n\t\tSystem.out.println(\"show2\");\n\t}\n}\n\nclass StudentDemo2 {\n\tpublic static void main(String[] args) {\n\t\tStudent s = new Student();\n\t\ts.show();\n\t\ts.show2();\n\n\t\tStudent.show2();\n\t\t//Student.show();\n\t}\n}\n"
  },
  {
    "path": "day07/code/04_static关键字/StudentDemo3.java",
    "content": "/*\n\tstaticע\n\t\tA:ھ̬ûthisؼֵ\n\t\t\tΪ̬ļضأڶڡthisŶĴڡ\n\t\t\tȽڴģ ܷʺڴģڴģԷȽڴġ\n\t\tB:ֻ̬ܷʾ̬\n\t\t\tǾ̬ĳԱ\n\t\t\t\tԷʾ̬ԱǾ̬Ա̬ԱǾ̬Ա\n\t\t\t̬ĳԱ\n\t\t\t\tֻܷʾ̬ĳԱ̬ĳԱ\n*/\n/*\nclass Student {\n\tprivate String name;\n\n\tpublic static void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic void show() {\n\t\tSystem.out.println(name);\n\t}\n}*/\n\nclass Demo {\n\tint x = 10;\n\tstatic int y = 20;\n\n\tpublic void show() {\n\t\tSystem.out.println(x);\n\t\tSystem.out.println(y);\n\t}\n\n\tpublic static void show2() {\n\t\t//System.out.println(x);\n\t\tSystem.out.println(y);\n\t}\n\n\tpublic void show3() {\n\t\tshow();\n\t\tshow2();\n\t}\n\n\tpublic static void show4() {\n\t\t//show();\n\t\tshow2();\n\t}\n}\n\nclass StudentDemo3 {\n\tpublic static void main(String[] args) {\n\t\t//Student.setName(\"ϼ\");\n\t}\n}\n"
  },
  {
    "path": "day07/code/04_static关键字/StudentDemo4.java",
    "content": "//̬ǱжģǾ̬ÿеġ\nclass Student {\n\tString name;\n\tint age;\n\tstatic String classNumber;\n\n\tpublic Student(String name,int age) {\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic Student(String name,int age,String classNumber) {\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t\tthis.classNumber = classNumber;\n\t}\n\n\tpublic void show() {\n\t\tSystem.out.println(name+\"---\"+age+\"---\"+classNumber);\n\t}\n}\n\nclass StudentDemo4 {\n\tpublic static void main(String[] args) {\n\t\tStudent s1 = new Student(\"\",28,\"sgyy001\");\n\t\tStudent s2 = new Student(\"С\",20);\n\t\tStudent s3 = new Student(\"\",18);\n\n\t\ts1.show();\n\t\ts2.show();\n\t\ts3.show();\n\n\t\ts2.name = \"ܲ\";\n\t\ts2.classNumber = \"sgyy007\";\n\n\t\ts1.show();\n\t\ts2.show();\n\t\ts3.show();\n\t}\n}"
  },
  {
    "path": "day07/code/05_main是静态的/HelloWorld.java",
    "content": "/*\n\tpublic static void main(String[] args):\n\n\tpublic:ȨηʾķȨޣjvmãȨҪ\n\tstatic:jvmãôֱ\n\tvoid:jvmãҪjvmֵ\n\tmain:һͨõƣȻǹؼ֣Ǳjvmʶ\n\n\tString[] args:\n\t\tڳΪ˽ռ¼ݵġ\n\n\t\tjava HelloWorld aa bb cc\n*/\nclass HelloWorld {\n\tpublic static void main(String[] args) {\n\t\t//System.out.println(args); //[Ljava.lang.String;@778b3fee\n\n\t\tfor(int x=0; x<args.length; x++) {\n\t\t\tSystem.out.println(args[x]);\n\t\t}\n\t}\n}"
  },
  {
    "path": "day07/code/06_制作帮助文档/ArrayDemo.java",
    "content": "//ΪĹಢûʹ÷Ǿ̬ĳԱ\n//Ϊ˷ãǾͰĽΪ̬ε\n/*\n\tһ˵Ḷ́\n\t\tA:д\n\t\tB:ĵע\n\t\tC:ͨjavadoc˵\n\t\t\tʽjavadoc -d Ŀ¼ -author -version ArrayTool.java\n\t\t\t\t  javadoc -d doc -author -version ArrayTool.java\n\t\t\tע⣺javadoc:  - ҲĵĹܱࡣ\n\t\t\t\t˵Ȩ޲publicμ\n*/\nclass ArrayDemo {\n\tpublic static void main(String[] args) {\n\t\tint[] arr = {56,38,91,72,40};\n\n\t\t//󣺱\n\t\t//ArrayTool at = new ArrayTool();\n\t\t//at.printArray(arr);\n\n\t\tArrayTool.printArray(arr);\n\n\t\t//Ҫȡеֵ\n\n\t}\n}"
  },
  {
    "path": "day07/code/06_制作帮助文档/ArrayTool.java",
    "content": "/**\n* вĹ\n* @author fqy\n* @version V1.0\n*/\npublic class ArrayTool {\n\n\t//ѹ췽˽\n\t/**\n\t* ˽й췽\n\t*/\n\tprivate ArrayTool(){}\n\n\t/**\n\t* 飬ʽǣ[Ԫ1, Ԫ2, ...]\n\t* @param arr Ҫ\n\t*/\n\tpublic static void printArray(int[] arr) {\n\t\tSystem.out.print(\"[\");\n\t\tfor(int x=0; x<arr.length; x++) {\n\t\t\tif(x == arr.length-1) {\n\t\t\t\tSystem.out.print(arr[x]);\n\t\t\t}else {\n\t\t\t\tSystem.out.print(arr[x]+\", \");\n\t\t\t}\n\t\t}\n\t\tSystem.out.println(\"]\");\n\t}\n\n\t/**\n\t* ȡеֵ\n\t* @param arr ȡֵ\n\t* @return int еֵ\n\t*/\n\tpublic static int getMax(int[] arr) {\n\t\tint max = arr[0];\n\n\t\tfor(int x=1; x<arr.length; x++) {\n\t\t\tif(arr[x] > max) {\n\t\t\t\tmax = arr[x];\n\t\t\t}\n\t\t}\n\n\t\treturn max;\n\t}\n}"
  },
  {
    "path": "day07/code/07_学习并使用帮助文档/如何使用帮助文档.txt",
    "content": "1:ҵĵ򿪰ĵ\n2:ҵʾ\n3:Ҫҵ࣬س\n\tScanner\n4:ĸ\n\tjava.lang£ǲҪġ\n\t಻java.lang£Ҫġ\n\n\tʽimport java.util.Scanner;\n5:Ľ˵\n6:Ľṹ\n\t˵ƥ\n\n\tֶժҪ\t--\tԱ\n\t췽ժҪ\t--\t췽\n\tժҪ\t--\tԱ\n7:Ĺ췽\n\tΪ˹췽ǾͿԴˡ\n\n\tpublic Scanner(InputStream source) {...}\n\n\tSystem:\n\t\tpublic static final InputStream in; //Ա\n\n\t\tInputStream is = System.in;\n\n\tע⣺\n\t\tе඼ܿ췽\n\t\tһ˵ûй췽ĳԱ϶Ǿ̬ġ\n8:ķ\n\tpublic int nextInt()\n\n\tߣ\n\t\tǷ̬˵÷ͨ\n\t\tֵͣ˼ҷʲôͣʲôͽ\n\tұߣ\n\t\tƣдˣд˾òˡ\n\t\tбĸԼ͡\n\t\t\t  ˼Ҫ͸˼Ҫʲôͣ͸ʲô͡"
  },
  {
    "path": "day07/code/08_Math类的学习和使用/GuessNumberDemo.java",
    "content": "/*\n\t󣺲СϷ\n\t\n\t\n\t\tA:ϵͳһ1-100֮\n\t\t\tint number = (int)(Math.random()*100)+1;\n\t\tB:¼,Scannerʵ\n\t\tC:ݽбȽ\n\t\t\t\tʾ\n\t\t\tС\tʾС\n\t\t\t\tϲ㣬\n\t\tD:Ϊ˱֤ܹУǾͼѭʵֶβ¡ֱС\n*/\nimport java.util.Scanner;\n\nclass GuessNumberDemo {\n\tpublic static void main(String[] args) {\n\t\t//ϵͳһ1-100֮\n\t\tint number = (int)(Math.random()*100)+1;\n\n\t\twhile(true) {\n\t\t\t//¼,Scannerʵ\n\t\t\tScanner sc = new Scanner(System.in);\n\t\t\tSystem.out.println(\"һݣ(1-100)\");\n\t\t\tint guessNumber = sc.nextInt();\n\n\t\t\t//ݽбȽ\n\t\t\tif(guessNumber > number) {\n\t\t\t\tSystem.out.println(\"µ\"+guessNumber+\"\");\n\t\t\t}else if(guessNumber < number) {\n\t\t\t\tSystem.out.println(\"µ\"+guessNumber+\"С\");\n\t\t\t}else {\n\t\t\t\tSystem.out.println(\"ϲ㣬\");\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t\n\t}\n}\n"
  },
  {
    "path": "day07/code/08_Math类的学习和使用/MathDemo.java",
    "content": "/*\n\tMath:ѧ\n\tص㣺ûй췽ΪĳԱǾ̬ġ\n\n\t1ȡ\n\t\tpublic static double random():ֵڵ 0.0 С 1.0\n\n\t2ȡ1-100֮    \n*/\nclass MathDemo {\n\tpublic static void main(String[] args) {\n\t\t//ȡ\n\t\t//double d = Math.random();\n\t\t//System.out.println(d);\n\n\t\t/*\n\t\tfor(int x=0; x<10; x++) {\n\t\t\t//System.out.println(Math.random());\n\t\t\tSystem.out.println(Math.random()*100);\n\t\t}\n\t\t*/\n\n\t\t//λȡ1-100֮?\n\t\tfor(int x=0; x<100; x++) {\n\t\t\tint number = (int)(Math.random()*100)+1;\n\t\t\tSystem.out.println(number);\n\t\t}\n\t}\n}"
  },
  {
    "path": "day07/code/09_代码块/CodeDemo.java",
    "content": "/*\n\t飺JavaУʹ{}Ĵ뱻Ϊ顣\n\n\tλúĲͬԷΪ\n\t\tֲ飺ڷг֣޶ڣͷţڴ\n\t\t飺з֣\n\t\t\t\t\t췽ͬĴŵһÿεù춼ִУڹ췽ǰִ\n\t\t̬飺з֣staticΡ\n\t\t\t\t\tڸгʼڼصʱִУִֻһΡ\n*/\n//ֲ\n/*\nclass Code {\n\tpublic void show() {\n\t\t//ֲ\n\t\t{\n\t\t\tint x = 10;\n\t\t\tSystem.out.println(x);\n\t\t}\n\n\t\t//System.out.println(x);\n\t\t//... 1000,x1000дûбʹ\n\t\tint y = 100;\n\t\tSystem.out.println(y);\n\t}\n}\n*/\n\n//\n/*\nclass Code {\n\n\t//\n\t{\n\t\tSystem.out.println(\"AAAAA\"); \n\t}\n\n\tpublic Code() {\n\t\t//System.out.println(\"AAAAA\"); //ݱȽ϶࣬ÿж\n\t}\n\n\tpublic Code(String s) {\n\t\t//System.out.println(\"AAAAA\");\n\t\tSystem.out.println(s);\n\t}\n}\n*/\n\n//̬\nclass Code {\n\t//̬\n\tstatic {\n\t\tSystem.out.println(\"AAAAA\"); \n\t}\n\n\t/*\n\tpublic Code() {\n\t}\n\n\tpublic Code(String s) {\n\t\tSystem.out.println(s);\n\t}\n\t*/\n}\n\nclass CodeDemo {\n\tstatic {\n\t\tSystem.out.println(\"BBBBB\"); \n\t}\n\n\tpublic static void main(String[] args) {\n\t\tCode c = new Code();\n\t\t//c.show();\n\n\t\t//Code c2 = new Code(\"hello\");\n\t\tSystem.out.println(\"CCCCC\");\n\t}\n}"
  },
  {
    "path": "day07/code/09_代码块/CodeTest.java",
    "content": "/*\n\tִй̣̬ -->  --> 췽 --> ֲ\n\n\t̬飺ִֻһΡ\n\t⣺ÿδִС\n*/\nclass Student {\n\tstatic {\n\t\tSystem.out.println(\"AAAAA\");\n\t}\n\n\t{\n\t\tSystem.out.println(\"BBBBB\");\n\t}\n\n\tpublic Student() {\n\t\t{\n\t\t\tSystem.out.println(\"CCCCC\");\n\t\t}\n\t}\n\n\tstatic {\n\t\tSystem.out.println(\"DDDDD\");\n\t}\n\n\t{\n\t\tSystem.out.println(\"EEEEE\");\n\t}\n}\nclass CodeTest {\n\tpublic static void main(String[] args) {\n\t\tStudent s = new Student();\n\t\tStudent ss = new Student();\n\t}\n}"
  },
  {
    "path": "day07/day07总结.txt",
    "content": "1:췽()\n\t(1)ãԶݽгʼ\n\t(2)ص㣺\n\t\tA:ͬ\n\t\tB:ûзֵ\n\t\tC:ûзֵ\n\t(3)ע\n\t\tA:ûд췽ϵͳĬϸ޲ι췽\n\t\tB:д˹췽ϵͳٸĬ޲ι췽\n\t\t  飺Լֶ޲ι췽\n\t(4)Աֵ\n\t\tA:޲+setXxx()\n\t\tB:\n\t(5)һ׼Ĵ룺\n\t\tclass Student {\n\t\t\tprivate String name;\n\t\t\tprivate int age;\n\n\t\t\tpublic Student() {}\n\n\t\t\tpublic Student(String name,int age) {\n\t\t\t\tthis.name = name;\n\t\t\t\tthis.age = age;\n\t\t\t}\n\n\t\t\tpublic void setName(String name) {\n\t\t\t\tthis.name = name;\n\t\t\t}\n\n\t\t\tpublic String getName() {\n\t\t\t\treturn name;\n\t\t\t}\n\n\t\t\tpublic void setAge(int age) {\n\t\t\t\tthis.age = age;\n\t\t\t}\n\n\t\t\tpublic int getAge() {\n\t\t\t\treturn age;\n\t\t\t}\n\n\t\t\tpublic void show() {\n\t\t\t\tSystem.out.println(\"ǣ\"+name+\",ǣ\"+age);\n\t\t\t}\n\t\t}\n\n\t\tclass StudentTest {\n\t\t\tpublic static void main(String[] args) {\n\t\t\t\t//޲+setXxx()\n\t\t\t\tStudent s = new Student();\n\t\t\t\ts.setName(\"ϼ\");\n\t\t\t\ts.setAge(28);\n\t\t\t\ts.show();\n\n\t\t\t\t//\n\t\t\t\tStudent ss = new Student(\"\",20);\n\t\t\t\tss.show();\n\t\t\t}\n\t\t}\n\t\n2:ĳʼ()\n\t(1)Student s = new Student();Щ\n\t\tA:Student.classļڴ\n\t\tB:ջΪsٿռ\n\t\tC:ڶΪѧ󿪱ٿռ\n\t\tD:ΪѧĳԱĬֵ\n\t\tE:ΪѧĳԱʾֵ\n\t\tF:ͨ췽Աֵ\n\t\tG:ϣѵֵַs\n\n3:ϰ()\n\t(1)дһDemo,һ͹ܡԡ\n\t(2)дһε࣬ܳĹܡԡ\n\t(3)ԼԱ࣬ʵ֣ԡ\n\t(4)Լдһ˼Ӽ˳࣬ԡ\n\n4:staticؼ()\n\t(1)һ״̬η̬˼\n\t(2)γԱͳԱ\n\t(3)ص㣺\n\t\tA:ļض\n\t\tB:ڶ\n\t\tC:ж\n\t\t\tҲжǲǸʹþ̬\n\t\t\tˮˮӡ\n\t\tD:ͨ\n\t\t\t̬εݣͨãҲͨ\n\t(4)ص\n\t\tA:ͨԱ\n\t\t\tԷʾ̬ԱǾ̬Ա̬ԱǾ̬Ա\n\t\tB:̬Ա\n\t\t\tֻܷʾ̬Ա̬Ա\n\n\t\t\tǣֻ̬ܷʾ̬\n\n\t\tע⣺\n\t\t\t̬ǲthisġ\n\t\t\tȽڴĲܷʺڴġ֮ԡ\n\n5:̬ԱͨԱ()\n\t(1)ͬ\n\t\t̬ģΪ\n\t\tǾ̬ڶģΪʵ\n\t(2)ڴռ䲻ͬ\n\t\t̬ڷľ̬\n\t\tǾ̬ڶڴ\n\t(3)ڲͬ\n\t\t̬ļضأʧʧ\n\t\tǾ̬ŶĴڣŶʧʧ\n\t(4)òͬ\n\t\t̬ͨãҲͨáͨ\n\t\tǾֻ̬ͨ\n\n6:mainǾ̬()\n\t(1)public static void main(String[] args)\n\n7:ĵ(˽)\n\t(1)д\n\t(2)ĵע\n\t(3)ͨjavadoc˵\n\n8:ʹðĵ()\n\tգ07_ѧϰʹðĵ --> ʹðĵ.txt\n\n9:ѧϰMath()\n\t(1)Math:ѧ\n\t(2)ص㣺ûй췽ΪĳԱǾ̬\n\t(3)\n\t\tpublic static double random(): Χ[0.0,1.0)\n\t(4)1-100֮\n\t\tint number = (int)(Math.random()*100)+1;\n\t(5)СϷ\n\t\tԼҵķдһ\n\n10:()\n\t(1)java{}Ĵ\n\t(2)ࣺ\n\t\tֲ飺ڷС޶ڣͷţڴʹ\n\t\t飺з⡣\n\t\t\t    Ѷеͬһ֣ÿδ󶼻Զá\n\t\t̬飺з⣬staticΡ\n\t\t\t    еݽгʼִһΡ\n\t(3)⣺\n\t\tA:̬飬飬췽ִ˳?\n\t\tB:д"
  },
  {
    "path": "day08/code/01_继承/ExtendsDemo.java",
    "content": "/*\n\tjavaеļ̳ص㣺\n\t\tA:Javaֵֻ֧̳Уֶ֧̳С\n\t\tB:Javaֶ֧̳(̳ϵ)\n*/\nclass A {\n}\n\nclass B extends A {\n}\n/*\nclass C extends A,B {\n}\n*/\n\nclass C extends B {\n}\n\nclass ExtendsDemo {\n\tpublic static void main(String[] args) {\n\t\t\n\t}\n}\n"
  },
  {
    "path": "day08/code/01_继承/ExtendsDemo2.java",
    "content": "/*\n\tjavaеļ̳ע\n\t\tA:ֻܼ̳из˽еĳԱ(ԱͳԱ)\n\t\tB:಻ܼ̳иĹ췽ǿͨsuper(潲)ؼȥʸ๹췽\n\t\tC:ҪΪ˲ֹܶȥ̳\n\t\t\tclass A {\n\t\t\t\tpublic void show(){}\n\t\t\t\tpublic void show2(){}\n\t\t\t}\n\n\t\t\tclass B extends A {\n\t\t\t\t//public void show(){}\n\t\t\t\tpublic void show3(){}\n\t\t\t}\n\n\tôʲôʱʹü̳?\n\t\tֵ̳֮ǣis aĹϵ\n\t\tϵxxx is a yyyôǾͿʹü̳С\n\t\tABA is a BB is a A ͨͿԿʹü̳С\n\t\t      򲻿ԡ\n\n\t\tStudent,Person\n\t\tDog,Animal\n\t\tDog,Pig\n*/\nclass Fu {\n\tprivate int num = 100;\n\tpublic int num2 = 200;\n\n\tprivate void show() {\n\t\tSystem.out.println(\"show\");\n\t}\n\n\tpublic void show2() {\n\t\tSystem.out.println(\"show2\");\n\t}\n}\n\nclass Zi extends Fu {\n}\n\nclass ExtendsDemo2 {\n\tpublic static void main(String[] args) {\n\t\t//\n\t\tZi z = new Zi();\n\t\t//System.out.println(z.num);\n\t\tSystem.out.println(z.num2);\n\t\t//z.show();\n\t\tz.show2();\n\n\t\t//Fuв\n\t\t//Fu f = new Fu();\n\t\t//System.out.println(f.num);\n\t\t//System.out.println(f.num2);\n\t}\n}"
  },
  {
    "path": "day08/code/01_继承/ExtendsDemo3.java",
    "content": "/*\n\t̳мĳԱϵ\n\t\tֲͬǳļ򵥣һ֪ʹõ˭\n\t\tͬͽԭ\n\n\tʹñʱ򣬻ҾֲΧ\n\tֱʹóԱӹؼ֣thisɡ\n\tֱʹøĳԱӹؼ֣superɡ\n*/\nclass Father {\n\tpublic int age = 40;\n}\n\nclass Son extends Father {\n\tpublic int num = 100;\n\tpublic int age = 20;\n\n\tpublic void show() {\n\t\tint age = 60;\n\t\tSystem.out.println(age); //ֲΧ\n\t\tSystem.out.println(this.age); //ԱΧ\n\t\tSystem.out.println(super.age); //ԱΧ\n\t\tSystem.out.println(num);\n\t}\n}\n\nclass ExtendsDemo3 {\n\tpublic static void main(String[] args) {\n\t\tSon s = new Son();\n\t\t//System.out.println(s.age);\n\t\t//System.out.println(s.num);\n\n\t\ts.show();\n\t}\n}\n"
  },
  {
    "path": "day08/code/01_继承/ExtendsDemo4.java",
    "content": "/*\n\t̳еĹ췽ϵ\n\t\tеĹ췽Ĭ϶ʸпղĹ췽\n\n\t\tΪʲô?\n\t\t\tΪ̳иеݣܻʹøݡ\n\t\t\tԣʼ֮ǰһҪɸݵĳʼ\n\n\n\tôҿɲԷʸ׵Ĵι췽?\n\t\tԡͨsuper(...)\n\n\tע\n\t\tA:ÿһ췽ĵһĬ϶ǣsuper()\n\t\tB:super(...)ʽڹ췽ֻܳһΡ\n\t\tC:û޲ι췽ôֻ\n\t\t\ta:ͨsuperȥʸĴι췽\n\t\t\tb:ͨthisȥʱ췽\n*/\nclass Fu {\n\t/*\n\tpublic Fu() {\n\t\tSystem.out.println(\"Fu()\");\n\t}\n\t*/\n\n\tpublic Fu(String name) {\n\t\tSystem.out.println(\"hello\");\n\t}\n}\n\nclass Zi extends Fu {\n\tpublic Zi() {\n\t\t//super();\n\t\t//super(\"aaa\");\n\t\t//this(\"aaa\");\n\t\tSystem.out.println(\"zi()\");\n\t}\n\n\tpublic Zi(String name) {\n\t\t//super();\n\t\t//super(name);\n\t\t//this();\n\t\tSystem.out.println(\"world\");\n\t}\n}\n\nclass ExtendsDemo4 {\n\tpublic static void main(String[] args) {\n\t\t//\n\t\tZi z = new Zi();\n\t\tSystem.out.println(\"-------------\");\n\t\tZi z2 = new Zi(\"java\");\n\t}\n}\n"
  },
  {
    "path": "day08/code/01_继承/ExtendsDemo5.java",
    "content": "//\nclass Person {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Person() {}\n\n\tpublic Person(String name,int age) { //\"ǿ\",18\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void eat() {\n\t\tSystem.out.println(\"Է\");\n\t}\n\n\tpublic void sleep() {\n\t\tSystem.out.println(\"˯\");\n\t}\n}\n//ѧ\nclass Student extends Person  {\n\tpublic Student() {}\n\n\tpublic Student(String name,int age) {\t//\"ǿ\",18\n\t\tsuper(name,age); //\"ǿ\",18\n\t}\n}\n\n//ʦ\nclass Teacher extends Person {\n}\n\nclass ExtendsDemo5 {\n\tpublic static void main(String[] args) {\n\t\t//ѧ\n\t\tStudent s = new Student();\n\t\ts.setName(\"\");\n\t\ts.setAge(27);\n\t\tSystem.out.println(s.getName()+\"---\"+s.getAge());\n\t\ts.eat();\n\t\ts.sleep();\n\t\tSystem.out.println(\"--------------------------\");\n\n\t\tStudent s2 = new Student(\"ǿ\",18);\n\t\tSystem.out.println(s2.getName()+\"---\"+s2.getAge());\n\t\ts2.eat();\n\t\ts2.sleep();\n\t\tSystem.out.println(\"--------------------------\");\n\n\n\t\t//ʦ\n\t\tTeacher t = new Teacher();\n\t\tt.setName(\"\");\n\t\tt.setAge(25);\n\t\tSystem.out.println(t.getName()+\"---\"+t.getAge());\n\t\tt.eat();\n\t\tt.sleep();\n\t}\n}\n"
  },
  {
    "path": "day08/code/01_继承/ExtendsDemo6.java",
    "content": "/*\n\t̳мĳԱϵ\n\t\tͬƣǳ򵥣һ֪˭\n\t\tͬƣ\n\t\t\t\n\t\t\tڸ\n\t\t\t...\n\t\t\tҲͱ\n*/\nclass Fu {\n\tpublic void show() {\n\t\tSystem.out.println(\"show fu\");\n\t}\n}\n\nclass Zi extends Fu{\n\tpublic void method() {\n\t\tSystem.out.println(\"method zi\");\n\t}\n\n\tpublic void show() {\n\t\tSystem.out.println(\"show zi\");\n\t}\n}\n\nclass ExtendsDemo6 {\n\tpublic static void main(String[] args) {\n\t\tZi z = new Zi();\n\t\tz.show();\n\t\tz.method();\n\t\t//z.haha();\n\t}\n}\n"
  },
  {
    "path": "day08/code/01_继承/PersonDemo.java",
    "content": "/*\n\tѧʦ(Է˯)\n\n\tѧࣺ\n\t\tԱ\n\t\tԱgetXxx()/setXxx(),eat(),sleep()\n\tʦࣺ\n\t\tԱ\n\t\tԱgetXxx()/setXxx(),eat(),sleep()\n\n\tȡԵĶ嵽һУ\n\tࣺ\n\t\tԱ\n\t\tԱgetXxx()/setXxx(),eat(),sleep()\n\n\tѧ ̳ \n\tʦ ̳ \n\n\t̳еĺô\n\t\tA:˴ĸ\n\t\tB:˴ά\n\t\tC:֮˹ϵǶ̬ǰ\n\n\t̳еı׶ˣԺǿ\n\t\tԭ򣺵ϣھۡ\n\t\tϣĹϵ\n\t\tھۣԼ\n*/\n//\nclass Person {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Person() {}\n\n\tpublic Person(String name,int age) {\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void eat() {\n\t\tSystem.out.println(\"Է\");\n\t}\n\n\tpublic void sleep() {\n\t\tSystem.out.println(\"˯\");\n\t}\n}\n//ѧ\nclass Student extends Person  {\n\tpublic Student() {}\n\n\t/*\n\tpublic Student(String name,int age) {\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\t*/\n}\n\n//ʦ\nclass Teacher extends Person {\n}\n\nclass PersonDemo {\n\tpublic static void main(String[] args) {\n\t\t//ѧ\n\t\tStudent s = new Student();\n\t\ts.setName(\"\");\n\t\ts.setAge(27);\n\t\tSystem.out.println(s.getName()+\"---\"+s.getAge());\n\t\ts.eat();\n\t\ts.sleep();\n\t\tSystem.out.println(\"--------------------------\");\n\n\t\t//ʦ\n\t\tTeacher t = new Teacher();\n\t\tt.setName(\"\");\n\t\tt.setAge(25);\n\t\tSystem.out.println(t.getName()+\"---\"+t.getAge());\n\t\tt.eat();\n\t\tt.sleep();\n\t}\n}"
  },
  {
    "path": "day08/code/01_继承/Test.java",
    "content": "/*\n\tѧʦ(Է˯)\n*/\n//ѧ\nclass Student {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Student() {}\n\n\tpublic Student(String name,int age) {\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void eat() {\n\t\tSystem.out.println(\"Է\");\n\t}\n\n\tpublic void sleep() {\n\t\tSystem.out.println(\"˯\");\n\t}\n}\n//ʦ\nclass Teacher {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Teacher() {}\n\n\tpublic Teacher(String name,int age) {\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void eat() {\n\t\tSystem.out.println(\"Է\");\n\t}\n\n\tpublic void sleep() {\n\t\tSystem.out.println(\"˯\");\n\t}\n}\n//\nclass Test {\n\tpublic static void main(String[] args) {\n\t\t//ѧ\n\t\tStudent s = new Student();\n\t\ts.setName(\"ϼ\");\n\t\ts.setAge(28);\n\t\tSystem.out.println(s.getName()+\"---\"+s.getAge());\n\t\ts.eat();\n\t\ts.sleep();\n\t\tSystem.out.println(\"-------------------------\");\n\n\t\tStudent s2 = new Student(\"\",18);\n\t\tSystem.out.println(s2.getName()+\"---\"+s2.getAge());\n\t\ts2.eat();\n\t\ts2.sleep();\n\t\tSystem.out.println(\"-------------------------\");\n\n\t\t//ʦ\n\t\tTeacher t = new Teacher();\n\t\tt.setName(\"\");\n\t\tt.setAge(31);\n\t\tSystem.out.println(t.getName()+\"---\"+t.getAge());\n\t\tt.eat();\n\t\tt.sleep();\n\t\tSystem.out.println(\"-------------------------\");\n\n\t\tTeacher t2 = new Teacher(\"\",21);\n\t\tSystem.out.println(t2.getName()+\"---\"+t2.getAge());\n\t\tt2.eat();\n\t\tt2.sleep();\n\t}\n}"
  },
  {
    "path": "day08/code/01_继承/Test2.java",
    "content": "/*\n\t֪ʶ\n\t\tA:̳мĹ췽ϵ\n\t\t\t󣬻ȥʸĹ췽Ըݽгʼ\n\t\tB:̳мĳԱϵ\n\t\t\tͽԭ\n\t\tC:thissuperʹ\n\t\tD:һĳʼ\n\t\t\tԱʼ\n\t\t\t\tĬ\n\t\t\t\tʾ\n\t\t\t\t췽\n*/\nclass Fu{\n\tpublic int num = 10;\n\tpublic Fu(){\n\t\tSystem.out.println(\"fu\");\n\t}\n}\nclass Zi extends Fu{\n\tpublic int num = 20;\n\tpublic Zi(){\n\t\tSystem.out.println(\"zi\");\n\t}\n\tpublic void show(){\n\t\tint num = 30;\n\t\tSystem.out.println(num);\n\t\tSystem.out.println(this.num);\n\t\tSystem.out.println(super.num);\n\t}\n}\nclass Test2 {\n\tpublic static void main(String[] args) {\n\t\tZi z = new Zi();  \n\t\tz.show();\n\t}\n}"
  },
  {
    "path": "day08/code/01_继承/Test3.java",
    "content": "/*\n\t֪ʶ\n\t\tA:ִ˳\n\t\t\t̬ -->  --> 췽\n\t\tB:ִص\n\t\t\tִֻ̬һ\n\t\t\tÿεù췽ִ\n*/\nclass Fu {\n\tstatic {\n\t\tSystem.out.println(\"̬Fu\");\n\t}\n\n\t{\n\t\tSystem.out.println(\"Fu\");\n\t}\n\n\tpublic Fu() {\n\t\tSystem.out.println(\"췽Fu\");\n\t}\n}\n\nclass Zi extends Fu {\n\tstatic {\n\t\tSystem.out.println(\"̬Zi\");\n\t}\n\n\t{\n\t\tSystem.out.println(\"Zi\");\n\t}\n\n\tpublic Zi() {\n\t\tSystem.out.println(\"췽Zi\");\n\t}\n}\n\nclass Test3 {\n\tpublic static void main(String[] args) {\n\t\tZi z = new Zi();\n\t\tZi z2 = new Zi();\n\t}\n}\n"
  },
  {
    "path": "day08/code/01_继承/Z.java",
    "content": "/*\n\t֪ʶ\n\t\tA:ΪԱ\n\t\t\tclass Demo {\n\t\t\t\tint x = 10; //ͳԱ\n\t\t\t\tStudent s = new Student(); //ͳԱ\n\t\t\t}\n\t\tB:һĳʼ\n\t\t\tԱ\n\t\t\t\tĬ\n\t\t\t\tʾ\n\t\t\t\t\n\t\tC:м̳йϵĳʼִеǷֲʼ\n\t\t\tȳʼٳʼӡ\n\n\t\t\tsuperʾȳʼڳʼʱ򣬰շֲʼִС\n\n\t⣺\n\t\tsuperִС\n*/\nclass X {\n\tY b = new Y();\n\tX() {\n\t\tSystem.out.print(\"X\");\n\t}\n}\n\nclass Y {\n\tY() {\n\t\tSystem.out.print(\"Y\");\n\t}\n}\n\npublic class Z extends X {\n\tY y = new Y();\n\tZ() {\n\t\t//super();//Ĭϣϵͳײãִclass ZĹ췽\n\t\tSystem.out.print(\"Z\");\n\t}\n\n\tpublic static void main(String[] args) {\n\t\tnew Z(); \n\t}\n}"
  },
  {
    "path": "day08/code/01_继承/继承概述.txt",
    "content": "1дһѧ࣬\n\tclass Student {\n\t\tprivate String name;\n\t\tprivate int age;\n\n\t\tpublic Student(){}\n\n\t\tpublic Student(String name,int age) {\n\t\t\tthis.name = name;\n\t\t\tthis.age = age;\n\t\t}\n\n\t\t//getXxx()/setXxx()\n\t}\n2дһʦ࣬\n\tclass Teacher {\n\t\tprivate String name;\n\t\tprivate int age;\n\n\t\tpublic Teacher() {}\n\n\t\tpublic Teacher(String name,int age) {\n\t\t\tthis.name = name;\n\t\t\tthis.age = age;\n\t\t}\n\n\t\t//getXxx()/setXxx()\n\t}\n3дһ࣬\n\tclass Worker {\n\t\tprivate String name;\n\t\tprivate int age;\n\n\t\tpublic Worker() {}\n\n\t\tpublic Worker(String name,int age) {\n\t\t\tthis.name = name;\n\t\t\tthis.age = age;\n\t\t}\n\n\t\t//getXxx()/setXxx()\n\t}\n4...\n\nͨĴ룬ǷָͬĶȽ϶ࡣ\nңǶÿҪӻɾͬĶҲȽ鷳\nΪҪܶࡣ\nôǾ룬ûбȽϺõķʽ?\nν?\n\t˼룺ҿ԰ͬݸǰ嵽AС\n\t      ȻЩAһϵϵЩ\n\t      ;߱AĳԱ\n\tȻǿԵˣjavaṩ˼̳м⡣\n\n˼Ľ룺\n\tclass Person {\n\t\tprivate String name;\n\t\tprivate int age;\n\n\t\tpublic Person(){}\n\n\t\tpublic Person(String name,int age) {\n\t\t\tthis.name = name;\n\t\t\tthis.age = age;\n\t\t}\n\n\t\t//getXxx()/setXxx()\n\t}\nϵα?\n\tʽclass  extends  {}  \n\n\tclass Student extends Person {\n\t\tpublic Student(){}\n\n\t\tpublic Student(String name,int age) {\n\t\t\t???\n\t\t}\n\t}\n\n\tclass Teacher extends Person {\n\t\tpublic Teacher(){}\n\n\t\tpublic Teacher(String name,int age) {\n\t\t\t???\n\t\t}\n\t}\n\nƺ\n\tPerson࣬࣬\n\tStudent,Teacher࣬"
  },
  {
    "path": "day08/code/02_方法重写/PersonDemo.java",
    "content": "/*\n\tдע\n\t\tA:˽зܱд\n\t\tB:д෽ʱȨ޲ܸ\n\t\t\tһɡ\n\t\tC:ྲ̬Ҳ̬ͨд\n*/\nclass Person {\n\tpublic void show() {\n\t\tSystem.out.println(\"show person\");\n\t}\t\n\n\tprivate void show2() {\n\t\tSystem.out.println(\"show2 person\");\n\t}\n\n\tpublic void show3() {\n\t\tSystem.out.println(\"show3 person\");\n\t}\n\n\tpublic static void show4() {\n\t\tSystem.out.println(\"show4 person\");\n\t}\n}\n\nclass Student extends Person {\n\tpublic void show() {\n\t\tSystem.out.println(\"show student\");\n\t}\n\n\tprivate void show2() {\n\t\tSystem.out.println(\"show2 student\");\n\t}\n\n\tpublic void show3() {\n\t\tSystem.out.println(\"show3 student\");\n\t}\n\n\tpublic static void show4() {\n\t\tSystem.out.println(\"show4 student\");\n\t}\n}\n\nclass PersonDemo {\n\tpublic static void main(String[] args) {\n\t\tStudent s = new Student();\n\t\ts.show();\n\t\t//s.show2();\n\t\ts.show3();\n\t\ts.show4();\n\t}\n}\n"
  },
  {
    "path": "day08/code/02_方法重写/PhoneDemo.java",
    "content": "/*\n\tдг˺͸һģһķҲΪǣд\n*/\n//ֻ\n/*\nclass Phone {\n\tpublic void call(String name) {\n\t\tSystem.out.println(\"\"+name+\"绰\");\n\t}\n}\n\n//¿ֻ\nclass NewPhone {\n\tpublic void call(String name) {\n\t\tSystem.out.println(\"\");\n\t\tSystem.out.println(\"\"+name+\"绰\");\n\t}\n}\n\nclass PhoneDemo {\n\tpublic static void main(String[] args) {\n\t\t//ֻ\n\t\tPhone p = new Phone();\n\t\tp.call(\"ϼ\");\n\t\tSystem.out.println(\"-----------\");\n\t\n\t\t//ֻ\n\t\tNewPhone np = new NewPhone();\n\t\tnp.call(\"ϼ\");\n\t}\n}\n*/\n\nclass Phone {\n\tpublic void call(String name) {\n\t\tSystem.out.println(\"\"+name+\"绰\");\n\t}\n}\n\nclass NewPhone extends Phone {\n\tpublic void call(String name) {\n\t\tSystem.out.println(\"\");\n\t\t//System.out.println(\"\"+name+\"绰\");\n\t\tsuper.call(name);\n\t}\n}\n\nclass PhoneDemo {\n\tpublic static void main(String[] args) {\n\t\t//ֻ\n\t\tPhone p = new Phone();\n\t\tp.call(\"ϼ\");\n\t\tSystem.out.println(\"-----------\");\n\t\n\t\t//ֻ\n\t\tNewPhone np = new NewPhone();\n\t\tnp.call(\"ϼ\");\n\t}\n}"
  },
  {
    "path": "day08/code/02_方法重写/两个面试题.txt",
    "content": "1:OverrideOverload?Overloadܸı䷵ֵ?\n\tOverride:д\n\tOverload:\n\n\tдгֺ͸һģһķ\n\tأͬһгֵķͬбͬ\n\n\tOverloadܸı䷵ֵͣΪͷֵ޹ء\n\n2:thisؼֺsuperؼֱַʲô?ԼǸԵʹóá\n\tthis:\n\tsuper:洢ռıʶ(Ϊ)\n\n\tʹó\n\t\tԱ\n\t\t\tthis. ĳԱ\n\t\t\tsuper. ĳԱ\n\t\t췽\n\t\t\tthis(...) Ĺ췽\n\t\t\tsuper(...) Ĺ췽\n\t\tԱ\n\t\t\tthis.(...) ĳԱ\n\t\t\tsuper.(...) ĳԱ"
  },
  {
    "path": "day08/code/03_继承练习/AnimalDemo.java",
    "content": "/*\n\tϰ2èΪ̳еİ汾ԼԼԡȻὲ\n\n\tè\n\t\tԱ\n\t\t췽޲Σ\n\t\tԱgetXxx()/setXxx()show()catchMouse()\n\t\n\t\tԱ\n\t\t췽޲Σ\n\t\tԱgetXxx()/setXxx()show()lookDoor()\n\n\t\n\t\tԱ\n\t\t췽޲Σ\n\t\tԱgetXxx()/setXxx()show()\n\n\tè췽޲Σ\n\t\tcatchMouse()\n\t췽޲Σ\n\t\tlookDoor()\n\n\tࣺ\n\t\tmain(String[] args):\n*/\nclass Animal {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Animal() {}\n\n\tpublic Animal(String name,int age) {\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void show() {\n\t\tSystem.out.println(name+\"---\"+age);\n\t}\n}\n\nclass Cat extends Animal {\n\tpublic Cat() {}\n\n\tpublic Cat(String name,int age) {\n\t\tsuper(name,age);\n\t}\n\n\tpublic void catchMouse() {\n\t\tSystem.out.println(\"è׽\");\n\t}\n}\n\nclass Dog extends Animal {\n\tpublic Dog() {}\n\n\tpublic Dog(String name,int age) {\n\t\tsuper(name,age);\n\t}\n\n\tpublic void lookDoor() {\n\t\tSystem.out.println(\"Կ\");\n\t}\n}\n\nclass AnimalDemo {\n\tpublic static void main(String[] args) {\n\t\t//è\n\t\tCat c = new Cat();\n\t\tc.setName(\"ӷè\");\n\t\tc.setAge(3);\n\t\tc.show();\n\t\tc.catchMouse();\n\t\tSystem.out.println(\"------------\");\n\t\tCat cc = new Cat(\"tomè\",6);\n\t\tcc.show();\n\t\tcc.catchMouse();\n\t\tSystem.out.println(\"------------\");\n\n\t\tDog d = new Dog();\n\t\td.setName(\"Х\");\n\t\td.setAge(5);\n\t\td.show();\n\t\td.lookDoor();\n\t\tSystem.out.println(\"------------\");\n\n\t\tDog dd = new Dog(\"\",8);\n\t\tdd.show();\n\t\tdd.lookDoor();\n\t}\n}"
  },
  {
    "path": "day08/code/03_继承练习/Test.java",
    "content": "/*\n\tè\n\t\tԱ\n\t\t췽޲Σ\n\t\tԱgetXxx()/setXxx()show()catchMouse()\n\t\n\t\tԱ\n\t\t췽޲Σ\n\t\tԱgetXxx()/setXxx()show()lookDoor()\n\tࣺ\n\t\tmain(String[] args):\n*/\n//è\nclass Cat {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Cat() {}\n\n\tpublic Cat(String name,int age) {\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void show() {\n\t\tSystem.out.println(name+\"---\"+age);\n\t}\n\n\tpublic void catchMouse() {\n\t\tSystem.out.println(\"è׽\");\n\t}\n}\n//\nclass Dog {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Dog() {}\n\n\tpublic Dog(String name,int age) {\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void show() {\n\t\tSystem.out.println(name+\"---\"+age);\n\t}\n\n\tpublic void lookDoor() {\n\t\tSystem.out.println(\"Կ\");\n\t}\n}\n//\nclass Test {\n\tpublic static void main(String[] args) {\n\t\t//è\n\t\tCat c = new Cat();\n\t\tc.setName(\"ӷè\");\n\t\tc.setAge(3);\n\t\tc.show();\n\t\tc.catchMouse();\n\t\tSystem.out.println(\"------------\");\n\t\tCat cc = new Cat(\"tomè\",6);\n\t\tcc.show();\n\t\tcc.catchMouse();\n\t\tSystem.out.println(\"------------\");\n\n\t\t//ϰ1ԼдĲ\n\t\tDog d = new Dog();\n\t\td.setName(\"Х\");\n\t\td.setAge(5);\n\t\td.show();\n\t\td.lookDoor();\n\t\tSystem.out.println(\"------------\");\n\n\t\tDog dd = new Dog(\"\",8);\n\t\tdd.show();\n\t\tdd.lookDoor();\n\t}\n}\n\n//ϰ2èΪ̳еİ汾ԼԼԡȻὲ"
  },
  {
    "path": "day08/code/04_final关键字/FinalDemo.java",
    "content": "/*\n\tܶʱǿܲ޸ҵݡʱô?\n\tjavaṩһ״̬ηfinal\n\n\tfinal:յ˼\n\n\tã\n\t\t࣬ԱԱ\n\n\tص㣺\n\t\tࣺ౻finalΣ˵ܱ̳࣬С\n\t\tԱfinalκ󣬾ͱ˳ֵܱ޸ġ\n\t\tԱܱд\n*/\nfinal class Fu {\n\tpublic int num = 10;\n\tpublic final int num2 = 20;\n\n\tpublic final void getResource() {\n\t\tSystem.out.println(\"ǾܵԴ,Կ,Ը\");\n\t}\n\t\n\tpublic void show() {\n\t\tnum = 100;\n\t\tSystem.out.println(num);\n\t\t//num2 = 200;\n\t\tSystem.out.println(num2);\n\t}\n}\n\nclass Zi extends Fu {\n\t/*\n\tpublic void getResource() {\n\t\tSystem.out.println(\"ʲô͸ʲô\");\n\t}\n\t*/\n}\n\nclass FinalDemo {\n\tpublic static void main(String[] args) {\n\t\tZi z = new Zi();\n\t\tz.getResource();\n\t\tz.show();\n\t}\n}"
  },
  {
    "path": "day08/code/04_final关键字/FinalDemo2.java",
    "content": "/*\n\tfinalξֲ\n\t\tͣ͵ֵܱ\n\t\tͣ͵ĵֵַܸı\n*/\nclass Person {\n\tpublic void show() {\n\t\t//ֲ\n\t\tint num  = 10;\n\t\tSystem.out.println(num);\n\t\tnum = 100;\n\t\tSystem.out.println(num);\n\n\t\t//finalξֲ\n\t\tfinal int num2 = 20;\n\t\tSystem.out.println(num2);\n\t\t//num2 = 200;\n\t\tSystem.out.println(num2);\n\t}\n\n\tpublic void method() {\n\t\t//ֲ\n\t\tStudent s1 = new Student();\n\t\tSystem.out.println(s1.age);\n\t\ts1.age = 100;\n\t\tSystem.out.println(s1.age);\n\n\t\t//s1 = new Student();\n\n\t\t//finalξֲ\n\t\tfinal Student s2 = new Student();\n\t\tSystem.out.println(s2.age);\n\t\ts2.age = 100;\n\t\tSystem.out.println(s2.age);\n\n\t\t//s2 = new Student();\n\t}\n}\n\nclass Student {\n\tint age = 10;\n}\n\nclass FinalDemo2 {\n\tpublic static void main(String[] args) {\n\t\tPerson p = new Person();\n\t\t//p.show();\n\t\tp.method();\n\t}\n}\n"
  },
  {
    "path": "day08/code/04_final关键字/FinalDemo3.java",
    "content": "/*\n\tfinalĳʼʱ\n\t\tA:ڶʱֵԺҲܸˡ\n\t\tB:ڶ󣬹췽ǰֵԡ\n*/\nclass Demo {\n\tint num;\n\t//final int num2 = 0;\n\tfinal int num2 = 0;\n\n\t\n\tstatic {\n\t\tnum2 = 10;\n\t}\n\t\n\n\t/*\n\t{\n\t\tnum2 = 20;\n\t}\n\t*/\n\n\tpublic Demo() {\n\t\t//num2 = 100;\n\t}\n}\n\nclass FinalDemo3 {\n\tpublic static void main(String[] args) {\n\t\tDemo d =  new Demo();\n\t\tSystem.out.println(d.num);\n\t\tSystem.out.println(d.num2);\n\t}\n}\n"
  },
  {
    "path": "day08/code/05_多态/DuoTaiDemo.java",
    "content": "/*\n\t̬ͬһڲͬʱֳֵ̱Ĳͬ״̬\n\n\t\n\t\tA:ˮ(ˮˮ)\n\n\t\tB:èͶ\n\t\t\tұߵֵֵߣܶͨ˵ԡ\n\t\t\t d = new ();\n\t\t\t dd = new è();\n\t\t\tè m = new è();\n\t\t\tè mm = new ();  \n\n\t\t\t dd = new è();\n\n\t?\n\t\tA:м̳йϵ\t\n\t\tB:зд\t\n\t\tC:иָ\n*/\nclass Animal {\n\tpublic void eat() {\n\t\tSystem.out.println(\"Է\");\n\t}\n}\n\nclass Dog extends Animal {\n\tpublic void eat() {\n\t\tSystem.out.println(\"\");\n\t}\n}\n\nclass DuoTaiDemo {\n\tpublic static void main(String[] args) {\n\t\t//Animal a = new Animal();\n\t\t//Dog d = new Dog();\n\n\t\t//̬\n\t\tAnimal a = new Dog();\n\t}\n}"
  },
  {
    "path": "day08/code/05_多态/DuoTaiDemo2.java",
    "content": "/*\n\t̬ĳԱص㣺\n\t\tA:Ա\n\t\t\t뿴ߣпߡ\n\t\tB:Ա\n\t\t\t뿴ߣпұߡ\n\n\t\t\tΪʲô?\n\t\t\t\tΪԱдûС\n\t\tC:̬\n\t\t\t뿴ߣпߡ\n\n\t\t\t̬ʵûдһ˵ΪǸء\n*/\nclass Animal {\n\tpublic int age = 40;\n\n\t\n\tpublic void show() {\n\t\tSystem.out.println(\"show animal\");\n\t}\n\t\n\tpublic static void method() {\n\t\tSystem.out.println(\"method animal\");\n\t}\n}\n\nclass Dog extends Animal {\n\tpublic int age = 20;\n\n\tpublic void show() {\n\t\tSystem.out.println(\"show dog\");\n\t}\n\n\tpublic static void method() {\n\t\tSystem.out.println(\"method dog\");\n\t}\n}\n\nclass DuoTaiDemo2 {\n\tpublic static void main(String[] args) {\n\t\t//̬\n\t\tAnimal a = new Dog();\n\t\tSystem.out.println(a.age);\n\t\t//System.out.println(a.num);\n\t\ta.show();\n\n\t\ta.method();\n\t}\n}\n"
  },
  {
    "path": "day08/code/05_多态/DuoTaiTest.java",
    "content": "class Fu{\n\tpublic void show(){\n\t\tSystem.out.println(\"fu show\");\n\t}\n}\nclass Zi extends Fu{\n\tpublic void show(){\n\t\tSystem.out.println(\"zi show\");\n\t}\n\n\tpublic void method(){\n\t\tSystem.out.println(\"zi method\");\n\t}\n}\n//뱨\nclass DuoTaiTest {\n\tpublic static void main(String[] args) {\n\t\tFu f = new Zi();\n\t\tf.method();\n\t}\n}"
  },
  {
    "path": "day08/code/05_多态/DuoTaiTest2.java",
    "content": "class A{\n\tpublic void show(){\t\n\t\tshow2();\n\t}\n\tpublic void show2(){\n\t\tSystem.out.println(\"\");\n\t}\n}\nclass B extends A {\n\tpublic void show2(){\n\t\tSystem.out.println(\"\");\n\t}\n}\nclass C extends B {\n\tpublic void show(){\n\t\tsuper.show();\n\t}\n\t\n\tpublic void show2(){\n\t\tSystem.out.println(\"\");\n\t}\n}\n\nclass DuoTaiTest2 {\n\tpublic static void main(String[] args) {\n\t\tA a = new B();\n\t\ta.show();\n\t\tB b = new C();\n\t\tb.show();\n\t}\n}\n"
  },
  {
    "path": "day08/day08总结.txt",
    "content": "1:̳()\n\t(1)ѶͬԺΪȡ嵽һУ\n\t   Ȼһһϵ;߱һԺΪˡ\n\t   ֹϵУ̳С\n\t(2)̳αʾ?\n\t\tʽclass  extends  {}\n\t(3)javaеļ̳ص㣺\n\t\tA:javaֻ̳ܵ\n\t\tB:javaпԶ̳С(̳ϵ)\n\t(4)javaеļ̳еĺôͱ׶\n\t\tA:ô\t\n\t\t\ta:˴ĸ\n\t\t\tb:˴Ŀά\n\t\t\tc:֮һϵǶ̬ǰ\n\t\tB:׶\n\t\t\tǿˡһĸĶֱӰһࡣ\n\n\t\t\tԭ򣺸ھۣϡ\n\t(5)javaеļ̳еע\n\t\tA:˽гԱܱ̳\n\t\tB:췽ܱ̳Уʣͨsuperؼ\n\t\tC:Ϊ˲ֹܶȥʹü̳\n\t(6)̳еĳԱϵ\n\t\tA:Ա\n\t\t\tͬر򵥣һ֪õ˭\n\t\t\tͬͽԭ\n\t\t\t\tԼthis\n\t\t\t\tʸ׵super\n\t\tB:췽\n\t\t\ta:й췽Ĭ϶Ƿʸ޲ι췽\n\t\t\tb:û޲ι췽ô?\n\t\t\t\tͨsuper(...)ʸι췽\n\t\t\t\tͨthis(...)ʱ췽(һҪһ˸Ĺ췽)\n\t\t\t\tע⣺superthisֻܳһֻĵһ䡣\n\t\t\tΪʲô?\n\t\t\t\tΪܻʸݣԣʼ֮ǰҪȰѸݳʼϡ\n\t\tC:Ա\n\t\t\tͬر򵥣һ֪õ˭\n\t\t\tͬͽԭ\n\t\t\t\tԼthis\n\t\t\t\tʸ׵super\n\t(7)thissuperӦó\n\t\tA:\n\t\t\tthis\n\t\t\tsuper洢ռıʶΪá\n\n\t\tB:Ӧó\n\t\t\ta:Ա\n\t\t\t\tthis. ĳԱ\n\t\t\t\tsuper. ĳԱ\n\t\t\tb:췽\n\t\t\t\tthis(...) Ĺ췽\n\t\t\t\tsuper(...) Ĺ췽\n\t\t\tc:Ա\n\t\t\t\tthis.(...) ĳԱ\n\t\t\t\tsuper.(...) ĳԱ\n\t(8)ϰ\n\t\tʦѧϰ\n\t\t\t̳ǰ\n\t\t\t̳к\n\t\tè͹ϰ\n\t\t\t̳ǰ\n\t\t\t̳к\n\n2:д()\n\t(1)У˺͸һģһķ\n\t(2)ãʹø๦ܣǿùܡ\n\t(3)⣺\n\t\toverrideoverload?\n\t\toverloadԸı䷵ֵ?\n\t(4)дע\n\t\tA:˽зܱд\n\t\tB:дķȨ޲ܱȸķ\n\t\tC:ֻ̬д̬(ʵ㲻д)\n\n3:finalؼ()\n\t(1)final:յ˼\n\t(2)ã࣬γԱγԱ\n\t(3)ص㣺\n\t\tA: ಻ܱ̳\n\t\tB:γԱ ˳\n\t\tC:γԱ ܱд\n\t(4)⣺\n\t\tA:finalξֲ\n\t\t\ta: ֵܷı\n\t\t\tb: ֵַܷ͸ı䣬ǿԸı\n\t\tB:finalĳʼʱ\n\t\t\ta:ڶʱ͸ֵ\n\t\t\tb:ڹ췽ǰֵ\n\n4:̬()\n\t(1)̬ͬһڲͬʱֳ̱Ķ״̬\n\t\tˮèͶ\n\t(2)̬ǰ᣺\n\t\tA:м̳йϵ\n\t\tB:зд\n\t\tC:иָ\n\t(3)̬еĳԱص㣺\n\t\tA:Ա\n\t\t\t뿴ߣп\n\t\tB:Ա\n\t\t\t뿴ߣпұ\n\t\tC:̬\n\t\t\t뿴ߣп\n\n\t\tΪʲô\n\t\t\tΪдûС̬ûдһ˵"
  },
  {
    "path": "day09/code/01_多态/DuoTaiDemo.java",
    "content": "/*\n\t̬ĺô\n\t\tA:˳ά(ɼ̳б֤)\n\t\tB:˳չ(ɶ̬֤)\n\n\t̬ı׶ˣ\n\t\tܷеĹܡ\n*/\nclass Animal {\n\tpublic void eat(){}\n\tpublic void sport(){}\n\n\t/*\n\tpublic void sleep() {\n\t\tSystem.out.println(\"˯\");\n\t}\n\t*/\n}\n\nclass Dog extends Animal {\n\tpublic void eat(){\n\t\tSystem.out.println(\"\");\n\t}\n\n\tpublic void sport(){\n\t\tSystem.out.println(\"ܲ\");\n\t}\n\n\tpublic void lookDoor() {\n\t\tSystem.out.println(\"\");\n\t}\n}\n\nclass Cat extends Animal {\n\tpublic void eat(){\n\t\tSystem.out.println(\"è\");\n\t}\n\n\tpublic void sport(){\n\t\tSystem.out.println(\"è׽Բ\");\n\t}\n}\n\nclass Pig extends Animal {\n\tpublic void eat(){\n\t\tSystem.out.println(\"\");\n\t}\n\n\tpublic void sport(){\n\t\tSystem.out.println(\"˯\");\n\t}\n}\n\nclass DuoTaiDemo {\n\tpublic static void main(String[] args) {\n\t\t/*\n\t\t//ϲһֻ\n\t\tDog d = new Dog();\n\t\td.eat();\n\t\td.sport();\n\n\t\t//Һϲһֻ\n\t\tDog d2 = new Dog();\n\t\td2.eat();\n\t\td2.sport();\n\n\t\t//رϲһֻ\n\t\tDog d3 = new Dog();\n\t\td3.eat();\n\t\td3.sport();\n\t\t*/\n\n\t\t//...\n\t\t//ҪֻܶңÿҪһЩ߻ҪһЩ\n\t\t//Щһġǹһ\n\t\t//һֱдȥ÷ǳ鷳\n\t\t//ԣҪǶŻ\n\t\t//Ż?ΪֲһģǶһ\n\t\t//ԣǾ׼ʹ÷ĽѶΪݹɡ\n\t\t//˷ǾͿµ\n\t\tDog d = new Dog();\n\t\tDog d2 = new Dog();\n\t\tDog d3 = new Dog();\n\n\t\t//printDog(d);\n\t\t//printDog(d2);\n\t\t//printDog(d3);\n\t\tprintAnimal(d);\n\t\tprintAnimal(d2);\n\t\tprintAnimal(d3);\n\t\tSystem.out.println(\"-----------\");\n\n\t\t//ϲèϲèرϲè\n\t\t//...\n\t\t//дһʵְ\n\t\t//\n\t\tCat c = new Cat();\n\t\tCat c2 = new Cat();\n\t\tCat c3 = new Cat();\n\n\t\t//printCat(c);\n\t\t//printCat(c2);\n\t\t//printCat(c3);\n\t\tprintAnimal(c);\n\t\tprintAnimal(c2);\n\t\tprintAnimal(c3);\n\t\tSystem.out.println(\"-----------\");\n\n\t\t//ҺһֻҪдһĴ룬ʵ?\n\t\t//A:ȴ̳Զ\n\t\t//B:ڲдʵ\n\t\t//C:ڲд󣬵÷\n\t\tPig p = new Pig();\n\t\tPig p2 = new Pig();\n\t\tPig p3 = new Pig();\n\n\t\t//printPig(p);\n\t\t//printPig(p2);\n\t\t//printPig(p3);\n\t\tprintAnimal(p);\n\t\tprintAnimal(p2);\n\t\tprintAnimal(p3);\n\n\t\t//һϲǣҪ\n\t\t//ղһ,ԼҲǿɵ\n\t\t//һϲӣ...\n\t\t//һ£\n\t\t//¶һµûκģǼڲеmainеҲû\n\t\t//ǲӦȥڲµĹ\n\t\t//Ժдһʱһԭ򣺶չţ޸Ĺرա\n\t\t//ǣҪ򣬻͵ȥ޸Ĳ\n\t\t//Ϊ˲ȥ޸Ĳгmain\n\t\t//Ҫļһ\n\t}\n\n\t/*\n\tpublic static void printDog(Dog d) {\n\t\td.eat();\n\t\t//...\n\t\td.sport();\n\t}\n\n\tpublic static void printCat(Cat c) {\n\t\tc.eat();\n\t\t//...\n\t\tc.sport();\n\t}\n\n\tpublic static void printPig(Pig p) {\n\t\tp.eat();\n\t\t//...\n\t\tp.sport();\n\t}\n\t*/\n\n\tpublic static void printAnimal(Animal a) {  //Animal a = new Dog(); a = new Cat(); a = new Pig();\n\t\ta.eat();\n\t\t//...\n\t\t//a.lookDoor();\n\t\ta.sport();\n\t}\n}"
  },
  {
    "path": "day09/code/01_多态/DuoTaiDemo2.java",
    "content": "/*\n\tηй?\n\t\tA:󼴿ɡ\n\t\tB:̬ת\n\t\t\tת\n\t\t\t\tӵ\n\t\t\t\tָ\n\t\t\tת\n\t\t\t\tӸ\n\t\t\t\tתΪ\n\n\tװ\n\n\t\tӣ():,Ϸ():,age:20\n\t\tӵ():JavaSEage:40\n\n\t\t//̬\n\t\tӵ k = new (); //Androidܻ𣬶JavaSEAndroidJavaSEܻ\n\t\t\t\t\t\t\t\t //̫æװȥΡճСӣ۾ת\n\t\tSystem.out.println(k.age); //40\n\t\tk.(); //\n\t\t//k.Ϸ(); //\n\n\t\t//ؼ\n\t\t k = ()k; //ȥСӣȥ۾ת\n\t\tSystem.out.println(k.age); //20\n\t\tk.(); //\n\t\tk.Ϸ();\n*/\nclass  Animal {\n\tpublic void eat(){}\n}\n\nclass Dog extends Animal {\n\tpublic void eat(){\n\t\tSystem.out.println(\"Թͷ\");\n\t}\n\t\n\tpublic void help() {\n\t\tSystem.out.println(\"԰ץС͵\");\n\t}\n}\n\nclass Cat extends Animal {\n\t\tpublic void eat(){\n\t\t\tSystem.out.println(\"è\");\n\t\t}\n}\n\nclass DuoTaiDemo2 {\n\tpublic static void main(String[] args) {\n\t\t//̬\n\t\tAnimal a = new Dog();\t//ת\n\t\ta.eat();\n\t\t//a.help(); //뿴\n\n\t\t//ת\n\t\tDog d = (Dog)a;\n\t\td.eat();\n\t\td.help();\n\t\tSystem.out.println(\"-------------\");\n\n\t\t//ᱨ?\n\t\ta = new Cat(); ////ת\n\t\ta.eat();\n\n\t\tCat c = (Cat)a;\n\t\tc.eat();\n\n\t\t//Dog dd = (Dog)a; //ClassCastException\n\t\t//dd.eat();\n\t\t//dd.help();\n\t}\n}"
  },
  {
    "path": "day09/code/02_多态案例/AnimalDemo.java",
    "content": "//è\nclass Animal {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Animal() {}\n\n\tpublic Animal(String name,int age) {\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void show() {\n\t\tSystem.out.println(\"name:\"+name+\",age:\"+age);\n\t}\n\n\tpublic void sleep() {\n\t\tSystem.out.println(\"sleep\");\n\t}\n\n\tpublic void eat() {\n\t\tSystem.out.println(\"eat\");\n\t}\n}\n\nclass Dog extends Animal {\n\tpublic Dog() {}\n\n\tpublic Dog(String name,int age) {\n\t\tsuper(name,age);\n\t}\n\n\tpublic void eat() {\n\t\tSystem.out.println(\"dog eat\");\n\t}\n\n\tpublic void sleep() {\n\t\tSystem.out.println(\"dog sleep\");\n\t}\n}\n\nclass Cat extends Animal {\n\tpublic Cat() {}\n\n\tpublic Cat(String name,int age) {\n\t\tsuper(name,age);\n\t}\n\n\tpublic void eat() {\n\t\tSystem.out.println(\"cat eat\");\n\t}\n\n\tpublic void sleep() {\n\t\tSystem.out.println(\"cat sleep\");\n\t}\n}\n\nclass AnimalDemo {\n\tpublic static void main(String[] args) {\n\t\t//Animal\n\t\tAnimal a = new Animal();\n\t\ta.setName(\"\");\n\t\ta.setAge(10);\n\t\ta.eat();\n\t\ta.sleep();\n\t\ta.show();\n\t\tSystem.out.println(\"------------\");\n\n\t\tAnimal a2 = new Animal(\"\",10);\n\t\ta2.eat();\n\t\ta2.sleep();\n\t\ta2.show();\n\t\tSystem.out.println(\"------------\");\n\n\t\t//Dog\n\t\tDog d = new Dog();\n\t\td.setName(\"\");\n\t\td.setAge(5);\n\t\td.eat();\n\t\td.sleep();\n\t\td.show();\n\t\tSystem.out.println(\"------------\");\n\n\t\tDog d2 = new Dog(\"\",5);\n\t\td2.eat();\n\t\td2.sleep();\n\t\td2.show();\n\t\tSystem.out.println(\"------------\");\n\n\t\t//ϰ1CatԼϰ\n\t\tCat c = new Cat();\n\t\tc.setName(\"è\");\n\t\tc.setAge(2);\n\t\tc.eat();\n\t\tc.sleep();\n\t\tc.show();\n\t\tSystem.out.println(\"------------\");\n\n\t\tCat c2 = new Cat(\"è\",2);\n\t\tc2.eat();\n\t\tc2.sleep();\n\t\tc2.show();\n\t\tSystem.out.println(\"------------\");\n\n\t\t//ͨDogԶ̬\n\t\tAnimal aa = new Dog();\n\t\taa.setName(\"С\");\n\t\taa.setAge(3);\n\t\taa.eat();\n\t\taa.sleep();\n\t\taa.show();\n\t\tSystem.out.println(\"------------\");\n\n\t\tAnimal aa2 = new Dog(\"С\",3);\n\t\taa2.eat();\n\t\taa2.sleep();\n\t\taa2.show();\n\t\tSystem.out.println(\"------------\");\n\n\t\t//ϰ2ͨCatԶ̬Լϰ\n\t\tAnimal aa3 = new Cat(\"Сè\",1);\n\t\taa3.eat();\n\t\taa3.sleep();\n\t\taa3.show();\n\t\tSystem.out.println(\"------------\");\n\n\t\tAnimal aa4 = new Cat();\n\t\taa4.setName(\"Сè\");\n\t\taa4.setAge(1);\n\t\taa4.eat();\n\t\taa4.sleep();\n\t\taa4.show();\n\t}\n}"
  },
  {
    "path": "day09/code/02_多态案例/PersonDemo.java",
    "content": "//ʳĻ\nclass Person {\n\tpublic void eat() {\n\t\tSystem.out.println(\"person eat\");\n\t}\n}\n\nclass SouthPerson extends Person  {\n\tpublic void eat() {\n\t\tSystem.out.println(\"Ϸϲ׷\");\n\t}\n}\n\nclass NorthPerson extends Person {\n\tpublic void eat() {\n\t\tSystem.out.println(\"ϲ\");\n\t}\n}\n\nclass PersonDemo {\n\tpublic static void main(String[] args) {\n\t\tPerson p = new Person();\n\t\tp.eat();\n\n\t\tSouthPerson sp = new SouthPerson();\n\t\tsp.eat();\n\n\t\t//p = sp;\n\t\t//p.eat();\n\t\tPerson pp = new SouthPerson();\n\t\tpp.eat();\n\t}\n}\n"
  },
  {
    "path": "day09/code/03_抽象类/AbstractDemo.java",
    "content": "/*\n\tﲻһֻèǾĸ塣\n\t\t\t\tңڶԳԵĹܣҲӦø֣\n\t\t\t\tΪͬĶԵǲһģӦþĶԼȥʵԼԵĹܡ\n\t\t\t\tһûо֣һݡαʾ?\n\n\t\t\t\tʽ\n\t\t\t\t\tη ֵ (б...);\n\n\t\t\t\tΪ˱ʾһĶjavaṩһʶĹؼ֣abstract\n\t\t\t\tʽ\n\t\t\t\t\tη abstract ֵ (б...);\n\t\t\t\tһеķǳ࣬ôͱ붨Ϊࡣ\n\tص㣺\n\t\tA:ͳ󷽷abstractؼ\n\t\tB:\n\t\t\ta:Ҫôǳ\n\t\t\tb:Ҫôдег󷽷\n\t\tC:಻һг󷽷г󷽷һǳ\n\t\tD:಻ʵ\n\t\t\tôʹóĹ?\n\t\t\tն̬ķʽʹá̬\n\n\tعˣ\n\t\t̬ǰΪʲôҪзд?\n\t\t\tΪķǳġ\n*/\nabstract class Animal {\n\t//зģֻΪ\n\t//public void eat() {}\n\n\t//󷽷\n\tpublic abstract void eat();\n}\n\nabstract class Dog extends Animal {\n}\n\nclass Cat extends Animal {\n\tpublic void eat() {\n\t\tSystem.out.println(\"è\");\n\t}\n}\n\nclass AbstractDemo {\n\tpublic static void main(String[] args) {\n\t\t//Animal a = new Animal(); //޷ʵ\n\n\t\t//Dog d = new Dog();  //޷ʵ\n\n\t\t//Cat c = new Cat();\n\n\t\t//̬\n\t\tAnimal a = new Cat();\n\t\ta.eat();\n\t}\n}"
  },
  {
    "path": "day09/code/03_抽象类/AbstractDemo2.java",
    "content": "/*\n\tĳԱص㣺\n\t\tA:Ա\n\t\t\tǱҲǳ\n\t\tB:췽\n\t\t\tй췽ǲʵ\n\t\t\t⣺췽ʲô?\n\t\t\t\tʸݵĳʼ\n\t\tC:Ա\n\t\t\tг󷽷Ҳзǳ󷽷\n\t\t\t󷽷ǿҪĳЩ顣\n\t\t\tǳ󷽷ڸֱʹã˴ĸԡ\n*/\nabstract class Animal {\n\tint num = 10;\n\tfinal int num2 = 20;\n\n\tpublic Animal() {}\n\n\tpublic void method() {\n\t\tSystem.out.println(\"method\");\n\t}\n\n\tpublic abstract void function();\n}\n\nclass Dog extends Animal  {\n\tpublic void show() {\n\t\tnum = 100;\n\t\tSystem.out.println(num);\n\t\t//num2 = 200;\n\t\tSystem.out.println(num2);\n\t}\n\n\tpublic void function() {}\n}\n\nclass AbstractDemo2 {\n\tpublic static void main(String[] args) {\n\t\tDog d = new Dog();\n\t\td.show();\n\t}\n}\n"
  },
  {
    "path": "day09/code/04_抽象类案例/AbstraceTest.java",
    "content": "/*\nС⣺\n\t1һûг󷽷ɲԶΪ?ԣʲô?\n\t\tԡ\n\t\tΪ˲ñ˴\n\t2abstractܺЩؼֹ\n\t\tfinal: finalεķܱдabstractεķҪ뱻д\n\t\tprivateprivateεķܱдabstractεķҪ뱻д\n\t\n\t\tstaticstaticεķͨãabstractεķûзģ\n\t\t\t\tһûзķûκģԲܹ档\n*/\nabstract class Student {\n\t//public final abstract void show();\n\t//private abstract void show();\n\t//public static abstract void show();\n}\n\nclass AbstractTest {\n\tpublic static void main(String[] args) {\n\t\n\t}\n}"
  },
  {
    "path": "day09/code/04_抽象类案例/AnimalDemo.java",
    "content": "/*\n\tè\n\t\tè\n\t\tԣ䣬Է\n*/\nabstract class Animal {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Animal(){}\n\n\tpublic Animal(String name,int age) {\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\t\t\n\t//󷽷\n\tpublic abstract void eat();\n}\n\n//ʵ\nclass Dog extends Animal {\n\tpublic Dog(){}\n\n\tpublic Dog(String name,int age) {\n\t\tsuper(name,age);\n\t}\n\n\tpublic void eat() {\n\t\tSystem.out.println(\"\");\n\t}\n}\n\n//ϰ1èʵ֣Լϰ\n\nclass AnimalDemo {\n\tpublic static void main(String[] args) {\n\t\t//Թ\n\t\tDog d = new Dog();\n\t\td.setName(\"\");\n\t\td.setAge(3);\n\t\tSystem.out.println(d.getName()+\"---\"+d.getAge());\n\t\td.eat();\n\t\tSystem.out.println(\"--------------------------\");\n\n\t\tDog d2 = new Dog(\"\",3);\n\t\tSystem.out.println(d2.getName()+\"---\"+d2.getAge());\n\t\td2.eat();\n\t\tSystem.out.println(\"--------------------------\");\n\n\t\t//̬\n\t\tAnimal a = new Dog();\n\t\ta.setName(\"\");\n\t\ta.setAge(3);\n\t\tSystem.out.println(a.getName()+\"---\"+a.getAge());\n\t\ta.eat();\n\t\tSystem.out.println(\"--------------------------\");\n\n\t\tAnimal a2 = new Dog(\"\",3);\n\t\tSystem.out.println(a2.getName()+\"---\"+a2.getAge());\n\t\ta2.eat();\n\t\tSystem.out.println(\"--------------------------\");\n\n\t\t//ϰ2èĲԣ̬Ĳ\n\t}\n}"
  },
  {
    "path": "day09/code/04_抽象类案例/EmployeeDemo.java",
    "content": "/*\n\tڿһϵͳʱҪԱƣԱ3ԣԼʡ\n\tҲԱ˺Ա⣬Ϊһԡ\n\tʹü̳е˼ƳԱ;ࡣҪṩҪķԷʡ\n\t\n\tԱࣺ\n\t\tͨԱ\n\t\t\tԼ\n\t\t\n\t\t\tԼʣ\n*/\nabstract class Employee {\n\tprivate String name;\n\tprivate String eid;\n\tprivate int salary;\n\n\tpublic Employee() {}\n\n\tpublic Employee(String name,String eid,int salary) { //\"һ\",\"10000\",500\n\t\tthis.name = name; \n\t\tthis.eid = eid;\n\t\tthis.salary = salary;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t} \n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setEid(String eid) {\n\t\tthis.eid = eid;\n\t}\n\n\tpublic String getEid() {\n\t\treturn eid;\n\t}\n\n\tpublic void setSalary(int salary) {\n\t\tthis.salary = salary;\n\t}\n\n\tpublic int getSalary() {\n\t\treturn salary;\n\t}\n\n\tpublic void show() {\n\t\tSystem.out.println(name+\"---\"+eid+\"---\"+salary);\n\t}\n\n\tpublic abstract void work();\n}\n\nclass Programmer extends Employee {\n\tpublic Programmer() {}\n\n\tpublic Programmer(String name,String eid,int salary) {\n\t\tsuper(name,eid,salary);\n\t}\n\n\tpublic void work() {\n\t\tSystem.out.println(\"ʨд\");\n\t}\n}\n\nclass Manager extends Employee {\n\tprivate int bonus;\n\n\tpublic Manager() {}\n\n\tpublic Manager(String name,String eid,int salary,int bonus) { //\"һ\",\"10000\",500,10000\n\t\tsuper(name,eid,salary); //\"һ\",\"10000\",500\n\t\tthis.bonus = bonus;\n\t}\n\n\tpublic void setBonus(int bonus) {\n\t\tthis.bonus = bonus;\n\t}\n\n\tpublic int getBonus() {\n\t\treturn bonus;\n\t}\n\n\tpublic void work() {\n\t\tSystem.out.println(\"Ϳͻ̸\");\n\t}\n\n\tpublic void show() {\n\t\t//System.out.println(getName()+\"---\"+getEid()+\"---\"+getSalary()+\"---\"+bonus);\n\n\t\tsuper.show();\n\t\tSystem.out.println(\"Ľǣ\"+bonus);\n\t}\n}\n\nclass EmployeeDemo {\n\tpublic static void main(String[] args) {\n\t\t//Ա\n\t\tProgrammer p = new Programmer();\n\t\tp.setName(\"лҽ\");\n\t\tp.setEid(\"10010\");\n\t\tp.setSalary(7700);\n\t\tp.show();\n\t\tp.work();\n\t\t//ֲдˡ\n\t\tSystem.out.println(\"---------------------\");\n\n\t\t//Ĳ\n\t\t/*\n\t\tEmployee e = new Manager();\n\t\te.setName(\"\");\n\t\te.setEid(\"10086\");\n\t\te.setSalary(6000);\n\t\t//e.setBonus(2000);\n\t\te.show();\n\t\te.work();\n\t\t*/\n\n\t\tEmployee e = new Manager(\"һ\",\"10000\",500,10000);\n\t\te.show();\n\t\te.work();\n\t}\n}"
  },
  {
    "path": "day09/code/04_抽象类案例/StudentDemo.java",
    "content": "/*\n\tѧ\n\t\t񣺻ѧԱҵѧԱ\n\t\tԣ䣬༶ѧϰԷ\n*/\nabstract class Student {\n\tprivate String name;\n\tprivate int age;\n\tprivate String classId;\n\n\tpublic Student() {}\n\n\tpublic Student(String name,int age,String classId) {\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t\tthis.classId = classId;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void setClassId(String classId) {\n\t\tthis.classId = classId;\n\t}\n\n\tpublic String getClassId() {\n\t\treturn classId;\n\t}\n\n\t//Է\n\tpublic void eat() {\n\t\tSystem.out.println(\"ѧҪԷ\");\n\t}\n\n\t//ѧϰ\n\tpublic abstract void study();\n}\n\nclass BasicStudent extends Student { \n\tpublic BasicStudent() {}\n\n\tpublic BasicStudent(String name,int age,String classId) {\n\t\tsuper(name,age,classId);\n\t}\n\n\tpublic void study() {\n\t\tSystem.out.println(\"ѧѧϰJavaSE\");\n\t}\n}\n\nclass JobStudent extends Student { \n\tpublic JobStudent() {}\n\n\tpublic JobStudent(String name,int age,String classId) {\n\t\tsuper(name,age,classId);\n\t}\n\n\tpublic void study() {\n\t\tSystem.out.println(\"ҵѧѧϰJavaEE+Android\");\n\t}\n}\n\nclass StudentDemo {\n\tpublic static void main(String[] args) {\n\t\t//\n\t\tBasicStudent bs = new BasicStudent();\n\t\tbs.setName(\"\");\n\t\tbs.setAge(22);\n\t\tbs.setClassId(\"itcast007\");\n\t\tSystem.out.println(bs.getName()+\"---\"+bs.getAge()+\"---\"+bs.getClassId());\n\t\tbs.eat();\n\t\tbs.study();\n\t\tSystem.out.println(\"--------------------------------------------------\");\n\n\t\tBasicStudent bs2 = new BasicStudent(\"\",28,\"itcast250\");\n\t\tSystem.out.println(bs2.getName()+\"---\"+bs2.getAge()+\"---\"+bs2.getClassId());\n\t\tbs2.eat();\n\t\tbs2.study();\n\t\tSystem.out.println(\"--------------------------------------------------\");\n\n\t\t//̬ʹ\n\t\tStudent s = new BasicStudent();\n\t\ts.setName(\"ŷ\");\n\t\ts.setAge(23);\n\t\ts.setClassId(\"itcast123\");\n\t\tSystem.out.println(s.getName()+\"---\"+s.getAge()+\"---\"+s.getClassId());\n\t\ts.eat();\n\t\ts.study();\n\t\tSystem.out.println(\"--------------------------------------------------\");\n\n\t\tStudent s2 = new BasicStudent(\"xiao\",23,\"itcast008\");\n\t\tSystem.out.println(s2.getName()+\"---\"+s2.getAge()+\"---\"+s2.getClassId());\n\t\ts2.eat();\n\t\ts2.study();\n\t}\n}"
  },
  {
    "path": "day09/code/04_抽象类案例/TeacherDemo.java",
    "content": "/*\n\tʦ\n\t\tʦҵʦ\n\t\tԣ䣬Ρ\n*/\nabstract class Teacher {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Teacher(){}\n\n\tpublic Teacher(String name,int age) {\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\t//󷽷\n\tpublic abstract void teach();\n}\n\nclass BasicTeacher extends Teacher {\n\tpublic BasicTeacher(){}\n\n\tpublic BasicTeacher(String name,int age) {\n\t\tsuper(name,age);\n\t}\n\n\tpublic void teach() {\n\t\tSystem.out.println(\"ʦJavaSE\");\n\t}\n}\n\n//ϰ1ҵʦĴ\n\nclass TeacherDemo {\n\tpublic static void main(String[] args) {\n\t\t//Իʦ\n\t\tBasicTeacher bt = new BasicTeacher();\n\t\tbt.setName(\"ϼ\");\n\t\tbt.setAge(28);\n\t\tSystem.out.println(bt.getName()+\"---\"+bt.getAge());\n\t\tbt.teach();\n\t\tSystem.out.println(\"----------------------------\");\n\n\t\tBasicTeacher bt2 = new BasicTeacher(\"ϼ\",28);\n\t\tSystem.out.println(bt2.getName()+\"---\"+bt2.getAge());\n\t\tbt2.teach();\n\t\tSystem.out.println(\"----------------------------\");\n\n\t\t//̬\n\t\tTeacher t = new BasicTeacher();\n\t\tt.setName(\"ϼ\");\n\t\tt.setAge(28);\n\t\tSystem.out.println(t.getName()+\"---\"+t.getAge());\n\t\tt.teach();\n\t\tSystem.out.println(\"----------------------------\");\n\n\t\tTeacher t2 = new BasicTeacher(\"ϼ\",28);\n\t\tSystem.out.println(t2.getName()+\"---\"+t2.getAge());\n\t\tt2.teach();\n\t\tSystem.out.println(\"----------------------------\");\n\n\t\t//ϰ2ҵʦԣ̬\n\t}\n}\n\n//ϰ3ѧ\n//񣺻ѧԱҵѧԱ\n//ԣ䣬༶ѧϰԷ\n//ԼԼд룬Լ"
  },
  {
    "path": "day09/code/05_接口/InterfaceDemo.java",
    "content": "/*\n\tӿڸڶ԰棬ЩèȦߣȶ\n\t\t\t  ЩǶ;;߱ģԣʺ϶ڶС\n\t\t\t  ңҲеè߹߱ЩܣֱӶè߹Ҳʡ\n\t\t\t  һչܣjavaṩ˽ӿ֡\n\n\tӿڵص㣺\n\t\tA:ӿùؼinterfaceʾ\n\t\t\tʽinterface ӿ {}\n\t\tB:ʵֽӿimplementsʾ\n\t\t\tʽclass  implements ӿ {}\n\t\tC:ӿڲʵ\n\t\t\tӿڶ̬\n\t\tD:ӿڵ\n\t\t\ta:Ҫôǳ\n\t\t\tb:Ҫôдӿееĳ󷽷\n*/\ninterface Animal {\n\tpublic abstract void show();\n}\n\nabstract class Dog implements Animal {\n}\n\nclass Cat implements Animal {\n\tpublic void show() {}\n}\n\nclass InterfaceDemo {\n\tpublic static void main(String[] args) {\n\t\n\t}\n}"
  },
  {
    "path": "day09/code/05_接口/InterfaceDemo2.java",
    "content": "/*\n\tӿڵĳԱص㣺\n\t\tA:Ա\n\t\t\tǳǾ̬εġ\n\t\t\tĬϵηpublic static final\n\t\tB:췽\n\t\t\tûй췽\n\t\tC:Ա\n\t\t\tֻǳ󷽷\n\t\t\tĬϵηpublic abstract\n\n\t\t飺\n\t\t\tԼдӿڵݵʱ򣬰ЩĬηϡ\n*/\ninterface Animal {\n\t//int num = 10;\n\t//final int num2 = 20;\n\tpublic static final int num = 10;\n\n\t//public Animal() {}\n\n\tpublic abstract void show();\n\n\t//public void method() {}\n\n\t//void method();\n}\n\nclass Dog implements Animal {\n\t/*\n\tpublic void show() {\n\t\t//num = 100;\n\t\tSystem.out.println(num);\n\t\t//num2 = 200;\n\t\tSystem.out.println(num2);\n\t\tSystem.out.println(Animal.num);\n\t\tSystem.out.println(Animal.num2);\n\n\t}\n\t*/\n\n\tpublic void show() {}\n}\n\nclass InterfaceDemo2 {\n\tpublic static void main(String[] args) {\n\t\tDog d = new Dog();\n\t\t//d.show();\n\t}\n}\n"
  },
  {
    "path": "day09/code/05_接口/InterfaceDemo3.java",
    "content": "/*\n\tࣺ\n\t\t̳йϵֻ̳ܵСԶ̳С\n\tӿڣ\n\t\tʵֹϵԵʵ֣ҲԶʵ֡\n\t\tڼ̳һͬʱʵֶӿڡ\n\tӿӿڣ\n\t\t̳йϵԵ̳УҲԶ̳С\n*/\ninterface A {\n}\n\ninterface B {\n}\n\nclass C {\n}\n\nclass D extends C implements A,B{\n}\n\ninterface E extends A,B{\n}\n\nclass InterfaceDemo3 {\n\tpublic static void main(String[] args) {\n\t\t\n\t}\n}\n"
  },
  {
    "path": "day09/code/05_接口/抽象类和接口的区别.txt",
    "content": "1Ա\n\tࣺ\n\t\tԱǱҲǳ\n\t\t췽\n\t\tԱǳģҲǷǳ\n\tӿڣ\n\t\tԱֻǳ\n\t\t\tĬηpublic static final\n\t\tԱֻǳ\n\t\t\tĬηpublic abstract\n\n2ϵ\n\tࣺ\n\t\t̳йϵֻ̳ܵСԶ̳С\n\tӿڣ\n\t\tʵֹϵԵʵ֣ҲԶʵ֡\n\t\tڼ̳һͬʱʵֶӿڡ\n\tӿӿڣ\n\t\t̳йϵԵ̳УҲԶ̳С\n\n3\n\tֵࣺ̳ǣis aĹϵڳжһǹԹ\n\tӿڣʵֵǣlike aĹϵڽӿжһչ"
  },
  {
    "path": "day09/code/06_接口案例/AnimalDemo.java",
    "content": "/*\n\tһƵʱӾĿʼЩԵݣϵϳȡ\n\tḶ́Ӿ嵽\n\tʵֵḶ́ӳ󵽾塣\n\tʹõʱʹõǾĶ\n\n\tè,ߵĶ⹦\n\n\t˶Ա(ӿ)\n\t\tԱߡ\n\n\tè()\n\t\tԱ\n\t\t췽޲Σ\n\t\tԱgetXxx()/setXxxԷ˯\n\n\t()\n\t\tԱ\n\t\t췽޲Σ\n\t\tԱgetXxx()/setXxxԷ˯\n\n\tèкܶ๲ԵݣҪȡ\n\t\n\t()\n\t\tԱ\n\t\t췽޲Σ\n\t\tԱgetXxx()/setXxxԷ()˯(){}\n\n\tࣺ\n\t\t()\n\t\t\tè()\n\t\t\t\t߱߹ܵè()\n\t\t\t()\n\t\t\t\t߱߹ܵĹ()\n\t\t˶Ա(ӿ)\n\n\n\t̬ǰ᣺\n\t\tA:м̳лʵֹϵ\n\t\tB:зд\n\t\tC:и߸ӿָ\n\n\t̬ıʽ\n\t\t̬\n\t\t̬\n\t\tӿڶ̬\n\n\tĿǰõǾഴʹá\n*/\n//˶Աӿ\ninterface Sport {\n\t//߹\n\tpublic abstract void jump();\n}\n\n//\nabstract class Animal {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Animal(){}\n\n\tpublic Animal(String name,int age) {\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\t//˯\n\tpublic void sleep() {\n\t\tSystem.out.println(\"Ҫ˯\");\n\t}\n\n\t//Է\n\tpublic abstract void eat();\n}\n\n//è\nclass Cat extends Animal {\n\tpublic Cat(){}\n\n\tpublic Cat(String name,int age) {\n\t\tsuper(name,age);\n\t}\n\n\tpublic void eat() {\n\t\tSystem.out.println(\"è\");\n\t}\n}\n\n//߱߹ܵè\nclass JumpCat extends Cat implements Sport {\n\tpublic JumpCat(){}\n\n\tpublic JumpCat(String name,int age) {\n\t\tsuper(name,age);\n\t}\n\n\tpublic void jump() {\n\t\tSystem.out.println(\"èһշ\");\n\t}\n}\n\n//\nclass Dog extends Animal {\n\tpublic Dog(){}\n\n\tpublic Dog(String name,int age) {\n\t\tsuper(name,age);\n\t}\n\n\tpublic void eat() {\n\t\tSystem.out.println(\"\");\n\t}\n}\n\n//߱߹ܵĹ\nclass JumpDog extends Dog implements Sport {\n\tpublic JumpDog(){}\n\n\tpublic JumpDog(String name,int age) {\n\t\tsuper(name,age);\n\t}\n\n\tpublic void jump() {\n\t\tSystem.out.println(\"ڿնԽΧǽ\");\n\t}\n}\n\nclass AnimalDemo {\n\tpublic static void main(String[] args) {\n\t\t//è\n\t\t//޲\n\t\tJumpCat jc = new JumpCat();\n\t\tjc.setName(\"è\");\n\t\tjc.setAge(5);\n\t\tSystem.out.println(jc.getName()+\"---\"+jc.getAge());\n\t\tjc.sleep();\n\t\tjc.eat();\n\t\tjc.jump();\n\t\t//...\n\n\t\t//̬\n\t\tAnimal a = new JumpCat();\n\t\ta.setName(\"è\");\n\t\ta.setAge(6);\n\t\tSystem.out.println(a.getName()+\"---\"+a.getAge());\n\t\ta.sleep();\n\t\ta.eat();\n\t\t//a.jump();\n\n\t\t//̬\n\t\tSport s = new JumpCat();\n\t\ts.jump();\n\t\t//s.eat();\n\t\t//s.sleep();\n\t}\n}"
  },
  {
    "path": "day09/code/06_接口案例/PeopleDemo.java",
    "content": "//˵ӢĽӿ\ninterface SpeakEnglish {\n\tpublic abstract void speak();\n}\n\n//\nabstract class People {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic People() {}\n\n\tpublic People(String name,int age) {\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void sleep() {\n\t\tSystem.out.println(\"sleep\");\n\t}\n\n\tpublic abstract void eat();\n}\n\n//Ľ\nabstract class Coach extends People {\n\tpublic Coach() {}\n\n\tpublic Coach(String name,int age) {\n\t\tsuper(name,age);\n\t}\n\n\tpublic abstract void teach();\n}\n\n//˶Ա\nabstract class Player extends People {\n\tpublic Player() {}\n\n\tpublic Player(String name,int age) {\n\t\tsuper(name,age);\n\t}\n\n\tpublic abstract void study();\n}\n\n//ƹ\nclass PingPangCoach extends Coach implements SpeakEnglish {\n\tpublic PingPangCoach() {}\n\n\tpublic PingPangCoach(String name,int age) {\n\t\tsuper(name,age);\n\t}\n\n\tpublic void speak() {\n\t\tSystem.out.println(\"ƹѧ˵Ӣ\");\n\t}\n\n\tpublic void eat() {\n\t\tSystem.out.println(\"ƹ԰ײ˶\");\n\t}\n\n\tpublic void teach() {\n\t\tSystem.out.println(\"ƹηͽ\");\n\t}\n}\n\n//\nclass BasketBallCoach extends Coach {\n\tpublic BasketBallCoach() {}\n\n\tpublic BasketBallCoach(String name,int age) {\n\t\tsuper(name,age);\n\t}\n\n\tpublic void eat() {\n\t\tSystem.out.println(\"Ժ\");\n\t}\n\n\tpublic void teach() {\n\t\tSystem.out.println(\"δͶ\");\n\t}\n}\n\n//ƹ˶Ա\nclass PingPangPlayer extends Player implements SpeakEnglish {\n\tpublic PingPangPlayer() {}\n\n\tpublic PingPangPlayer(String name,int age) {\n\t\tsuper(name,age);\n\t}\n\n\tpublic void speak() {\n\t\tSystem.out.println(\"ƹ˶Աѧ˵Ӣ\");\n\t}\n\n\tpublic void eat() {\n\t\tSystem.out.println(\"ƹ˶Ա\");\n\t}\n\n\tpublic void study() {\n\t\tSystem.out.println(\"ƹ˶Աѧηͽ\");\n\t}\n}\n\n//˶Ա\nclass BasketBallPlayer extends Player {\n\tpublic BasketBallPlayer() {}\n\n\tpublic BasketBallPlayer(String name,int age) {\n\t\tsuper(name,age);\n\t}\n\n\tpublic void eat() {\n\t\tSystem.out.println(\"˶Աţ\");\n\t}\n\n\tpublic void study() {\n\t\tSystem.out.println(\"˶ԱѧδͶ\");\n\t}\n}\n\nclass PeopleDemo {\n\tpublic static void main(String[] args) {\n\t\t//\n\t\tPingPangCoach ppc = new PingPangCoach(\"\",50);\n\t\tppc.eat();\n\t\tppc.teach();\n\t\tppc.speak();\n\t\tSystem.out.println(\"---------------------------\");\n\n\t\tPingPangPlayer ppp = new PingPangPlayer(\"\",30);\n\t\tppp.eat();\n\t\tppp.study();\n\t\tppp.speak();\n\t\tSystem.out.println(\"---------------------------\");\n\n\t\tBasketBallCoach bbc = new BasketBallCoach(\"ǵ\",60);\n\t\tbbc.eat();\n\t\tbbc.teach();\n\t\tSystem.out.println(\"---------------------------\");\n\n\t\tBasketBallPlayer bbp = new BasketBallPlayer(\"Ų\",30);\n\t\tbbp.eat();\n\t\tbbp.study();\n\t}\n}"
  },
  {
    "path": "day09/code/06_接口案例/PersonDemo.java",
    "content": "/*\n\tʦѧ,̵Ķ⹦\n\n\tSmoking:\n\t\t̵Ĺ\n\n\tʦ\n\t\tԱ\n\t\t췽޲Σ\n\t\tԱgetXxx()/setXxx(),ѧϰ˯\n\tѧ\n\t\tԱ\n\t\t췽޲Σ\n\t\tԱgetXxx()/setXxx(),ѧϰ˯\n\n\tͨʦѧǿԷࣺ\n\t\t\n\tˣ\n\t\tԱ\n\t\t췽޲Σ\n\t\tԱgetXxx()/setXxx(),ѧϰ()˯(){}\n\n\tյķ\n\tˣ\n\t\tԱ\n\t\t췽޲Σ\n\t\tԱgetXxx()/setXxx(),ѧϰ()˯(){}\n\t\t\tʦ\n\t\t\t\tʦ\n\t\t\tѧ\n\t\t\t\tѧ\n\tSmoking:ӿ\n\t\t̵Ĺ\n*/\n//̽ӿ\ninterface Smoking {\n\tpublic abstract void smoke();\n}\n\n//˳\nabstract class Person {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Person(){}\n\n\tpublic Person(String name,int age) {\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\t//˯\n\tpublic void sleep() {\n\t\tSystem.out.println(\"˯\");\n\t}\n\n\t//ѧϰ\n\tpublic abstract void study();\n}\n\n//ʦ\nclass Teacher extends Person {\n\tpublic Teacher(){}\n\n\tpublic Teacher(String name,int age) {\n\t\tsuper(name,age);\n\t}\n\n\tpublic void study() {\n\t\tSystem.out.println(\"ʦҪѧϰΰ֪ʶ\");\n\t}\n}\n\n//ֳʦ\nclass SmokeTeacher extends Teacher implements Smoking {\n\tpublic SmokeTeacher(){}\n\n\tpublic SmokeTeacher(String name,int age) {\n\t\tsuper(name,age);\n\t}\n\n\tpublic void smoke() {\n\t\tSystem.out.println(\"̵ʦ\");\n\t}\n}\n\n//ѧ\nclass Student extends Person {\n\tpublic Student(){}\n\n\tpublic Student(String name,int age) {\n\t\tsuper(name,age);\n\t}\n\n\tpublic void study() {\n\t\tSystem.out.println(\"ѧҪúѧϰ\");\n\t}\n}\n\n//ֳѧ\nclass SmokeStudent extends Student implements Smoking {\n\tpublic SmokeStudent(){}\n\n\tpublic SmokeStudent(String name,int age) {\n\t\tsuper(name,age);\n\t}\n\n\tpublic void smoke() {\n\t\tSystem.out.println(\"̵ѧ\");\n\t}\n}\n\n//\nclass PersonDemo {\n\tpublic static void main(String[] args) {\n\t\t//SmokeTeacher\n\t\tSmokeTeacher st = new SmokeTeacher();\n\t\tst.setName(\"ү\");\n\t\tst.setAge(35);\n\t\tSystem.out.println(st.getName()+\"---\"+st.getAge());\n\t\tst.sleep();\n\t\tst.study();\n\t\tst.smoke();\n\t\tSystem.out.println(\"--------------------------\");\n\n\t\tSmokeTeacher st2 = new SmokeTeacher(\"Ǽȷ\",30);\n\t\tSystem.out.println(st2.getName()+\"---\"+st2.getAge());\n\t\tst2.sleep();\n\t\tst2.study();\n\t\tst2.smoke();\n\t}\n}"
  },
  {
    "path": "day09/day09总结.txt",
    "content": "1̬()\n\t(1)ͬһڲͬʱֳֵ̱Ķ״̬\n\t\tˮèͶ\n\t(2)ǰ\n\t\tA:м̳лʵֹϵ\n\t\tB:зд\n\t\t\tΪеĳ󷽷Լӿеķ뱻дò塣\n\t\tC:и߸ӿָ\n\t(3)̬еĳԱص\n\t\tFu f = new Zi();\n\t\tA:Ա\n\t\t\t뿴ߣп\n\t\tB:Ա\n\t\t\t뿴ߣпұ\n\t\tC:̬\n\t\t\t뿴ߣп\n\t(4)ôͱ׶\n\t\tA:ô\n\t\t\t˴ά\n\t\t\t˴չ\n\t\tB:׶\n\t\t\tܷй\n\t(5)ηй\n\t\tA:\n\t\tB:ת\n\t(6)̬еת\n\t\tA:ת\n\t\t\tӵ\n\t\tB:ת\n\t\t\t(ǿת)\n\t(7)װ\n\n2()\n\t(1)ЩʱǶﲻþĶʱӦðﶨΪࡣ\n\t(2)ص㣺\n\t\tA:߳󷽷abstract\n\t\tB:вһг󷽷г󷽷һǳ\n\t\tC:಻ʵ\n\t\t\t԰ն̬ķʽʵ\n\t\tD:\n\t\t\ta:Ҫôǳ\n\t\t\tb:Ҫôдег󷽷\n\t(3)ĳԱص㣺\n\t\tA:Ա\n\t\t\tǱҲǳ\n\t\tB:췽\n\t\t\tС\n\t\t\tʵй췽ʲô?\n\t\t\tʸݵĳʼ\n\t\tC:Ա\n\t\t\tǳģҲǷǳ\n\t(4)İ\n\t\tA:è\n\t\tB:ʦ\n\t\tC:ѧ\n\t\tD:Ա\n\t(5)С\n\t\tA:㿴һоȻûг󷽷,?\n\t\t  ñ˴\n\t\tB:abstractܺЩؼֹ?\n\t\t\ta:private ͻ\n\t\t\tb:final ͻ\n\t\t\tc:static \n\t\n3ӿ()\n\t(1)Щʱ򣬲ﱾ߱ĹܣǾͿʹýӿչ\n\t(2)ӿڵص㣺\n\t\tA:ӿùؼinterface\n\t\t\tʽǣinterface ӿ {}\n\t\tB:ʵֽӿùؼimplements \n\t\t\tʽǣclass  implements ӿ {}\n\t\tC:ӿڲʵ\n\t\tD:ӿڵ\n\t\t\ta:Ҫôǳ\n\t\t\tb:Ҫôдӿез\n\t(3)ӿڵĳԱص\n\t\tA:Ա\n\t\t\tֻǳ\n\t\t\tĬηpublic static final\n\t\tB:Ա\n\t\t\tֻǳ󷽷\n\t\t\tĬηpublic abstract \n\t\tƼ\n\t\t\tԼдӿڵʱ򣬰Ĭηϡ\n\t(4)ӿڵĹϵ\n\t\tA:\n\t\t\t̳йϵֻ̳ܵУԶ̳С\n\t\tB:ӿ\n\t\t\tʵֹϵԵʵ֣ҲԶʵ֡\n\t\t\tڼ̳һͬʱʵֶӿڡ\n\t\tC:ӿӿ\n\t\t\t̳йϵԵ̳УҲԶ̳С\n\t(5)ͽӿڵ?\n\t\tA:Ա\n\t\tB:ϵ\n\t\tC:\n\t\t\tࣺ࣬涨ǹݡ\n\t\t\tӿڣӿڣ涨չݡ\n\t(6)ӿڵİ\n\t\tA:è\n\t\tB:ʦѧ\n\t\tC:˶ԱѧӢ"
  },
  {
    "path": "day10/code/01_形式参数问题/ArgsDemo.java",
    "content": "//ʽǻֻͣҪݸû͵ֵɡ\nclass Demo {\n\tpublic int sum(int a,int b) {\n\t\treturn a + b;\n\t}\n}\n\nclass ArgsDemo {\n\tpublic static void main(String[] args) {\n\t\tDemo d = new Demo();\n\n\t\t//\n\t\tint x = 10;\n\t\tint y = 20;\n\t\tint z = d.sum(x,y);\n\n\t\t//\n\t\tint a = d.sum(10,20);\n\n\t\tSystem.out.println(z);\n\t\tSystem.out.println(a);\n\t}\n}"
  },
  {
    "path": "day10/code/01_形式参数问题/ArgsDemo2.java",
    "content": "//ʽͣ\n//ࣺĶ\n//ࣺ\n//ӿڣýӿڵʵ\n//飺ĵֵַʵһ\n\n/*\nclass Student {\n\tpublic void study() {\n\t\tSystem.out.println(\"úѧϰ,\");\n\t}\n}\n\nclass StudentDemo {\n\tpublic void method(Student s) {\n\t\ts.study();\n\t}\n}\n\nclass ArgsDemo2 {\n\tpublic static void main(String[] args) {\n\t\tStudentDemo sd = new StudentDemo();\n\t\tStudent s = new Student();\n\t\tsd.method(s);\n\t}\n}\n*/\n\n/*\nabstract class Person {\n\tpublic abstract void study();\n}\n\nclass PersonDemo {\n\tpublic void method(Person p) {\n\t\tp.study();\n\t}\n}\n\nclass Student extends Person {\n\tpublic void study() {\n\t\tSystem.out.println(\"úѧϰ,\");\n\t}\n}\n\nclass ArgsDemo2 {\n\tpublic static void main(String[] args) {\n\t\tPersonDemo pd = new PersonDemo();\n\t\tPerson p = new Student();\n\t\tpd.method(p);\n\t}\n}\n*/\ninterface Person {\n\tpublic abstract void study();\n}\n\nclass PersonDemo {\n\tpublic void method(Person p) {\n\t\tp.study();\n\t}\n}\n\nclass Student implements Person {\n\tpublic void study() {\n\t\tSystem.out.println(\"úѧϰ,\");\n\t}\n}\n\nclass ArgsDemo2 {\n\tpublic static void main(String[] args) {\n\t\tPersonDemo pd = new PersonDemo();\n\t\tPerson p = new Student();\n\t\tpd.method(p);\n\t}\n}"
  },
  {
    "path": "day10/code/02_返回值问题/ReturnDemo.java",
    "content": "//ֵһͣôصľǸû͵ֵ\nclass Demo {\n\tpublic int sum(int a,int b) {\n\t\treturn a + b;\n\t}\n}\n\nclass ReturnDemo {\n\tpublic static void main(String[] args) {\n\t\tint x = new Demo().sum(10,20);\n\t\tSystem.out.println(x);\n\t}\n}"
  },
  {
    "path": "day10/code/02_返回值问题/ReturnDemo2.java",
    "content": "//ֵһ\n//ࣺصǸĶ\n//ࣺصǸó\n//ӿڣصǸýӿڵʵ\n/*\nclass Student {\n\tpublic void study() {\n\t\tSystem.out.println(\"úѧϰ\");\n\t}\n}\n\nclass StudentDemo {\n\tpublic Student getStudent() {\n\t\t//Student s = new Student();\n\t\t//return s;\n\n\t\treturn new Student();\n\t}\n\n\tpublic int sum(int a,int b) {\n\t\treturn a + b;\n\t}\n}\n\nclass ReturnDemo2 {\n\tpublic static void main(String[] args) {\n\t\tStudentDemo sd = new StudentDemo();\n\t\tStudent s = sd.getStudent();  //new Student();\n\t\ts.study();\n\t}\n}\n*/\n\n/*\nabstract class Person {\n\tpublic abstract void study();\n}\n\nclass PersonDemo {\n\tpublic Person getPerson() {\n\t\treturn new Student();\n\t}\n}\n\nclass Student extends Person {\n\tpublic void study() {\n\t\tSystem.out.println(\"úѧϰ\");\n\t}\n}\n\nclass ReturnDemo2 {\n\tpublic static void main(String[] args) {\n\t\tPersonDemo pd = new PersonDemo();\n\t\tPerson p = pd.getPerson();  //new Student();\n\t\tp.study();\n\t}\n}\n*/\n\n"
  },
  {
    "path": "day10/code/02_返回值问题/ReturnDemo3.java",
    "content": "//ֵǽӿڣʵصǽӿڵʵ\ninterface Person {\n\tpublic abstract void study();\n}\n\nclass PersonDemo {\n\tpublic Person getPerson() {\n\t\treturn new Student();\n\t}\n}\n\nclass Student implements Person {\n\tpublic void study() {\n\t\tSystem.out.println(\"úѧϰ\");\n\t}\n}\n\nclass ReturnDemo3 {\n\tpublic static void main(String[] args) {\n\t\t//PersonDemo pd = new PersonDemo();\n\t\t//Person p = pd.getPerson();\n\t\t//p.study();\n\t\t\n\t\t//ʽ\n\t\tnew PersonDemo().getPerson().study();\n\t}\n}"
  },
  {
    "path": "day10/code/03_包/Demo.java",
    "content": "package com.liuyi;\n\npublic class Demo {\n\tpublic int sum(int a,int b) {\n\t\treturn a + b;\n\t}\n}"
  },
  {
    "path": "day10/code/03_包/HelloWorld.java",
    "content": "/*\n\tʵļ\n\tãз\n\t\n\tĻ֣\n\t\n\t\tѧӣɾ޸ģѯ\n\t\tʦӣɾ޸ģѯ\n\t\t˵ӣɾ޸ģѯ\n\tA:չܷ\n\t\tcn.itcast.add\n\t\t\tAddStudent\n\t\t\tAddTeacher\n\t\t\tAddWorker\n\t\tcn.itcast.delete\n\t\t\tDeleteStudent\n\t\t\tDeleteTeacher\n\t\t\tDeleteWorker\n\t\tcn.itcast.update\n\t\tcn.itcast.find\n\tB:ģ\n\t\tcn.itcast.student\n\t\t\tadd\n\t\t\tdelete\n\t\t\tupdate\n\t\t\tfind\n\t\tcn.itcast.teacher\n\t\t\tadd\n\t\t\tdelete\n\t\t\tupdate\n\t\t\tfind\n\t\tcn.itcast.worker\n\t\t\tadd\n\t\t\tdelete\n\t\t\tupdate\n\t\t\tfind\n\t\n\tĸʽ:\n\t\tpackage ;\n\n\tıУ\n\t\tֶʽ\n\t\t\tA:ļ\n\t\t\tB:Լֶ\n\t\t\tC:ѱɵclassļŵȥ\n\t\t\tD:мɣעҪ\n\t\t\t\tjava cn.itcast.HelloWorld\n\t\tԶʽ\n\t\t\tA:ʱһ -d\n\t\t\t\tjavac -d . HelloWorld.java\n\t\t\tB:мɣעҪ\n\t\t\t\tjava cn.itcast.HelloWorld\n\n\t\tע\n\t\t\tpackageǳĵһִеĴ\n\t\t\tpackageһjavaļֻһ\n\t\t\tûpackageĬϱʾް\n*/\npackage cn.itcast;\n\nclass HelloWorld {\n\tpublic static void main(String[] args) {\n\t\tSystem.out.println(\"HelloWorld\");\n\t}\n}"
  },
  {
    "path": "day10/code/03_包/Test.java",
    "content": "package cn.itcast;\n\n/*\n\tʽ\n\t\timport ..;\n\n\tpackage,import,classû˳ϵ()\n\t\tС\n\t\tpackage --> import --> class\n\t\tΨһ\t\t\t\t\n*/\nimport com.liuyi.Demo;\n\npublic class Test {\n\tpublic static void main(String[] args) {\n\t\t/*\n\t\tcom.liuyi.Demo d = new com.liuyi.Demo();\n\t\tint result = d.sum(10,20);\n\t\tSystem.out.println(result);\n\n\t\tcom.liuyi.Demo d2 = new com.liuyi.Demo();\n\t\tint result2 = d2.sum(10,20);\n\t\tSystem.out.println(result2);\n\n\t\tcom.liuyi.Demo d3 = new com.liuyi.Demo();\n\t\tint result3 = d3.sum(10,20);\n\t\tSystem.out.println(result3);\n\t\t*/\n\n\t\tDemo d = new Demo();\n\t\tint result = d.sum(10,20);\n\t\tSystem.out.println(result);\n\t}\n}"
  },
  {
    "path": "day10/code/04_权限修饰符/Father.java",
    "content": "/*\n\tȨη\n\t\t\t\t\tͬһµ\tͬµ\t\tͬ\n\tprivate\t\tY\t\t\n\tĬ\t\tY\t\tY\n\tprotected\tY\t\tY\t\t\t\t\t\t\tY\n\tpublic\t\tY\t\tY\t\t\t\t\t\t\tY\t\t\t\t\tY\n*/\npackage cn.itcast;\n\npublic class Father {\n\tprivate void show() {\n\t\tSystem.out.println(\"show\");\n\t}\n\n\tvoid show2() {\n\t\tSystem.out.println(\"show2\");\n\t}\n\n\tprotected void show3() {\n\t\tSystem.out.println(\"show3\");\n\t}\n\n\tpublic void show4() {\n\t\tSystem.out.println(\"show4\");\n\t}\n\n\tpublic static void main(String[] args) {\n\t\tFather f = new Father();\n\t\tf.show();\n\t\tf.show2();\n\t\tf.show3();\n\t\tf.show4();\n\t}\n}"
  },
  {
    "path": "day10/code/04_权限修饰符/Son.java",
    "content": "package cn.itcast;\n\nclass Son extends Father  {\n\tpublic static void main(String[] args) {\n\t\tFather f = new Father();\n\t\t//f.show();\n\t\tf.show2();\n\t\tf.show3();\n\t\tf.show4();\n\n\t\tSon s = new Son();\n\t\t//s.show();\n\t\ts.show2();\n\t\ts.show3();\n\t\ts.show4();\n\t}\n}\n"
  },
  {
    "path": "day10/code/04_权限修饰符/Son2.java",
    "content": "package com.liuyi;\n\nimport cn.itcast.Father;\n\nclass Son2 extends Father  {\n\tpublic static void main(String[] args) {\n\t\tFather f = new Father();\n\t\t//f.show();\n\t\t//f.show2();\n\t\t//f.show3();\n\t\tf.show4();\n\n\t\tSon2 s = new Son2();\n\t\t//s.show();\n\t\t//s.show2();\n\t\ts.show3();\n\t\ts.show4();\n\t}\n}\n"
  },
  {
    "path": "day10/code/04_权限修饰符/Test.java",
    "content": "package cn.itcast;\n\npublic class Test {\n\tpublic static void main(String[] args) {\n\t\tFather f = new Father();\n\t\t//f.show();\n\t\tf.show2();\n\t\tf.show3();\n\t\tf.show4();\n\t}\n}"
  },
  {
    "path": "day10/code/04_权限修饰符/Test2.java",
    "content": "package com.liuyi;\n\nimport cn.itcast.Father;\n\npublic class Test2 {\n\tpublic static void main(String[] args) {\n\t\tFather f = new Father();\n\t\t//f.show();\n\t\t//f.show2();\n\t\t//f.show3();\n\t\tf.show4();\n\t}\n}"
  },
  {
    "path": "day10/code/05_常见的修饰符组合/HelloWorld.java",
    "content": "/*\nclass Person {\n\tprotected String name;\n}\n\nclass Student extends Person {\n\tpublic Student() {\n\t\tthis.name = \"hello\";\n\t}\n}\n*/\n\npublic class HelloWorld \n{\n\tpublic static void main(String[] args) \n\t{\n\t\tSystem.out.println(\"Hello World!\");\n\t}\n}\n"
  },
  {
    "path": "day10/code/05_常见的修饰符组合/常见的修饰符组合.txt",
    "content": "\t\t\tԱ\t췽\tԱ\nprivate\t\t\tY\t\tY\t\tY\nĬ\t\tY\tY\t\tY\t\tY\nprotected\t\tY\t\tY\t\tY\npublic\t\tY\tY\t\tY\t\tY\nabstract\tY\t\t\t\t\tY\nfinal\t\tY\tY\t\t\t\tY\nstatic\t\t\tY\t\t\t\tY\n\nע⣺4Ȩηֻһִڡ\n\nࣺ\n\tpublic\nԱ\n\tprivate\n췽\n\tpublic\nԱ\n\tpublic\n\nڽӿУ\n\tvoid show();"
  },
  {
    "path": "day10/code/06_内部类/InnerClassDemo.java",
    "content": "/*\n\tڲࣺඨڲͱΪڲࡣ\n\t\tABڲAΪڲࡣ\n\n\tڲķص㣺\n\t\tA:ڲֱӷⲿĳԱ˽С\n\t\tB:ⲿҪڲĳԱ봴\n\n\tڲеλòͬڲԷΪ\n\t\tA:Աλ\n\t\t\tԱڲ\n\t\tB:ֲλ\n\t\t\tֲڲ\n\n\tԱڲࣺ\n\t\tA:ڲķ\n\t\t\tڲĶ󼴿ɡ\n\t\t\tʽⲿ.ڲ  = ⲿ.ڲ;\n*/\nclass Outer {\n\tprivate int num = 10;\n\n\t//Աλ\n\tclass Inner\t{\n\t\tpublic void show() {\n\t\t\tSystem.out.println(num);\n\t\t}\n\t}\n\n\tpublic void method() {\n\t\tInner i = new Inner();\n\t\ti.show();\n\t}\n}\n\nclass InnerClassDemo {\n\tpublic static void main(String[] args) {\n\t\t//\n\t\t//Inner i = new Inner();\n\t\t//i.show();\n\t\n\t\t//ʽⲿ.ڲ  = ⲿ.ڲ;\n\t\tOuter.Inner oi = new Outer().new Inner();\n\t\toi.show();\n\t}\n}"
  },
  {
    "path": "day10/code/06_内部类/InnerClassDemo2.java",
    "content": "/*\n\tࡣ\n\n\tclass Body {\n\t\tprivate class Heart {\n\t\t\tpublic void operator() {\n\t\t\t\tSystem.out.println(\"\");\n\t\t\t}\n\t\t}\n\n\t\tpublic void method() {\n\t\t\tif(ҽ){\n\t\t\t\tHeart h = new Heart();\n\t\t\t\th.operator();\n\t\t\t}\n\t\t}\n\t}\n\n\tBody.Heart bh = new Body().new Heart();\n\tbh.operator();\n\n\tΪ˲ֱӷԣǰڲprivateΡ\n\tʱֲˣô׸ô?\n\tǾͿⲿжһܣ\n\tʹ?\n\t\tBody b = new Body();\n\t\tb.method();\n\t\t\n\n\tԱڲࣺ\n\t\tprivateΪݵİȫ\n\t\tstaticΪݷʸ\n\n*/\n/*\nclass Outer {\n\tprivate class Inner {\n\t\tpublic void show() {\n\t\t\tSystem.out.println(\"show\");\n\t\t}\n\t} \n\n\tpublic void method() {\n\t\tInner i = new Inner();\n\t\ti.show();\n\t}\n}\n*/\n\nclass Outer {\n\t//int num  = 10;\n\t//static int num2 = 20;\n\n\tpublic static class Inner {\n\t\tpublic void show() {\n\t\t\tSystem.out.println(\"show\");\n\t\t\t//System.out.println(num);\n\t\t\t//System.out.println(num2);\n\t\t}\n\n\t\tpublic static void show2() {\n\t\t\tSystem.out.println(\"show2\");\n\t\t\t//System.out.println(num);\n\t\t\t//System.out.println(num2);\n\t\t}\n\t}\n}\n\nclass InnerClassDemo2 {\n\tpublic static void main(String[] args) {\n\t\t//\n\t\t//Outer.Inner oi = new Outer().new Inner();\n\t\n\t\t//private\n\t\t//Outer o = new Outer();\n\t\t//o.method();\n\n\t\t//staticκд\n\t\t//Outer.Inner oi = new Outer().new Inner();\n\t\t//޶\n\t\tOuter.Inner oi = new Outer.Inner();\n\t\toi.show();\n\t\toi.show2();\n\n\t\t//Outer.Inner.show2();\n\t}\n}\n"
  },
  {
    "path": "day10/code/06_内部类/InnerClassDemo3.java",
    "content": "/*\n\tֲڲࣺ\n\t\tA:ֱӷⲿĳԱ\n\t\tB:Դڲͨڲ෽ʹþֲڲ๦\n\n\t⣺\n\t\tֲڲʾֲΪʲôҪfinal?\n\t\t\tΪֲŷĵ϶ʧ\n\t\t\tʱ򣬾ֲûӶڴʧ\n\t\t\tҪʹǸΪݻܼʹã\n\t\t\tfianlΣڶڴ洢ʵһֵ\n*/\nclass Outer {\n\t//private int num = 100;\n\t\t\n\tpublic void method() {\n\t\tfinal int num = 100;\n\n\t\tclass Inner {\n\t\t\tpublic void show() {\n\t\t\t\tSystem.out.println(num);\n\t\t\t}\n\t\t}\n\n\t\tInner i = new Inner();\n\t\ti.show();\n\t}\n}\n\nclass InnerClassDemo3 {\n\tpublic static void main(String[] args) {\n\t\tOuter o = new Outer();\n\t\to.method();\n\t}\n}"
  },
  {
    "path": "day10/code/06_内部类/InnerClassDemo4.java",
    "content": "/*\n\tڲࣺûֵڲ\n\t\n\tǰ᣺һ߽ӿ\n\t\t\tǾҲǳࡣ\n\n\tʽ\n\t\tnew ߽ӿ() {\n\t\t\tд;\n\t\t}\n\n\t⣺䱾\n*/\ninterface Inter {\n\tpublic abstract void show();\n\tpublic abstract void show2();\n}\n\nclass Outer {\n\tprivate int num = 100;\n\n\tpublic void method() {\n\t\t//һ\n\t\t/*\n\t\tnew Inter() {\n\t\t\tpublic void show() {\n\t\t\t\tSystem.out.println(\"show\");\n\t\t\t}\n\t\t}.show();\n\t\t*/\n\n\t\t\n\t\t//\n\t\t/*\n\t\tnew Inter() {\n\t\t\tpublic void show() {\n\t\t\t\tSystem.out.println(\"show\");\n\t\t\t}\n\n\t\t\tpublic void show2() {\n\t\t\t\tSystem.out.println(\"show2\");\n\t\t\t}\n\t\t}.show();\n\n\t\tnew Inter() {\n\t\t\tpublic void show() {\n\t\t\t\tSystem.out.println(\"show\");\n\t\t\t}\n\n\t\t\tpublic void show2() {\n\t\t\t\tSystem.out.println(\"show2\");\n\t\t\t}\n\t\t}.show2();\n\t\t*/\n\n\t\t//\n\t\tInter i = new Inter() {\n\t\t\tpublic void show() {\n\t\t\t\tSystem.out.println(\"show\");\n\t\t\t}\n\n\t\t\tpublic void show2() {\n\t\t\t\tSystem.out.println(\"show2\");\n\t\t\t}\n\t\t};\n\n\t\ti.show();\n\t\ti.show2();\n\t}\n}\n\nclass InnerClassDemo4 {\n\tpublic static void main(String[] args) {\n\t\tOuter o = new Outer();\n\t\to.method();\n\t}\n}\n"
  },
  {
    "path": "day10/code/06_内部类/InnerClassTest.java",
    "content": "/*\n\t⣺벹룬302010\n\n\tע⣺ڲⲿûм̳йϵ\n*/\nclass Outer {\n\tpublic int num  = 10;\n\n\tclass Inner {\n\t\tpublic int num = 20;\n\t\tpublic void show() {\n\t\t\tint num = 30;\n\t\t\tSystem.out.println(num);\n\t\t\tSystem.out.println(this.num);\n\t\t\t//System.out.println(new Outer().num);\n\t\t\tSystem.out.println(Outer.this.num);\n\t\t}\n\t}\n\n}\nclass InnerClassTest {\n\tpublic static void main(String[] args) {\n\t\tOuter.Inner oi = new Outer().new Inner();\n\t\toi.show();\n\t}\n}\n"
  },
  {
    "path": "day10/code/06_内部类/InnerClassTest2.java",
    "content": "//ڲڿеʹ\ninterface Person {\n\tpublic abstract void show();\n}\n\nclass PersonDemo {\n\tpublic void method(Person p) {\n\t\tp.show();\n\t}\n}\n\n/*\nclass Student implements Person {\n\tpublic void show() {\n\t\tSystem.out.println(\"show student\");\n\t}\n}\n*/\n\nclass InnerClassTest2 {\n\tpublic static void main(String[] args) {\n\t\t//PersonDemomethod\n\t\t/*\n\t\tPersonDemo pd = new PersonDemo();\n\t\tPerson p = new Student();\n\t\tpd.method(p);\n\t\t*/\n\n\t\t//\n\t\t//new PersonDemo().method(new Student());\n\n\t\t//ڲ\n\t\tnew PersonDemo().method(new Person(){\n\t\t\tpublic void show() {\n\t\t\t\tSystem.out.println(\"show student\");\n\t\t\t}\n\t\t});\n\n\t\tnew PersonDemo().method(new Person(){\n\t\t\tpublic void show() {\n\t\t\t\tSystem.out.println(\"show teacher\");\n\t\t\t}\n\t\t});\n\t}\n}"
  },
  {
    "path": "day10/code/06_内部类/OuterDemo.java",
    "content": "/*\nҪ󣬲\n\tinterface Inter { void show(); }\n\tclass Outer { // }\n\tclass OuterDemo {\n\t    public static void main(String[] args) {\n\t\t      Outer.method().show();\n\t\t  }\n\t}\nҪڿ̨HelloWorld\n*/\ninterface Inter { void show(); }\n\nclass Outer { \n\t//\n\tpublic static Inter method() {\n\t\treturn new Inter() {\n\t\t\tpublic void show() {\n\t\t\t\tSystem.out.println(\"HelloWorld\");\n\t\t\t}\n\t\t};\n\t}\n}\n\nclass OuterDemo {\n\tpublic static void main(String[] args) {\n\t\tOuter.method().show();\n\t\t/*\n\t\t\tOuter.method():ֱܹӵ÷˵÷Ǿ̬ġ\n\t\t\tOuter.method().show():÷ʽ̣show()֮ǰӦһ\n\t\t*/\n\t}\n}"
  },
  {
    "path": "day10/day10总结.txt",
    "content": "1ʽͷֵ()\n\t(1)ʽ\n\t\tͣҪǶӦֵ\n\t\tͣ\n\t\t\tࣺĶ\n\t\t\tࣺ\n\t\t\tӿڣýӿڵʵ\n\t(2)ֵ⣺\n\t\tͣصǶӦֵ\n\t\tͣ\n\t\t\tࣺĶ\n\t\t\tࣺ\n\t\t\tӿڣýӿڵʵ\n\t(3)ʽ\n\t\tnew A().b().c().d();\n\n2()\n\t(1)ʵļ\n\t(2)з\n\t(3)ʽ\n\t\tpackage ;\n\t(4)ע\n\t\tA:packageǳеĵһִ\n\t\tB:packageΨһ\n\t\tC:ûpackageĬް\n\t(5)ı\n\n3()\n\t(1)Ϊ˷ʹòͬµ࣬Ҫ\n\t(2)ʽ\n\t\timport ....;\n\n\t\tע⣺Ե뵽*,ǲ\n\t(3)packageimportclassû˳ϵ?\n\t\tС\n\t\tpackage --> import --> class\n\n4η()\n\t(1)4Ȩη\n\t\t\t\t\tͬһ\tͬµ\tͬµ\n\t\tprivate\t\tY\n\t\tĬ\t\tY\tY\n\t\tprotected\tY\tY\t\tY\n\t\tpublic\t\tY\tY\t\tY\t\tY\n\t(2)\n\t\tA:\tpublic\n\t\tB:Ա\tprivate\n\t\tC:췽\tpublic\n\t\tD:Ա\tpublic\n\n5ڲ()\n\t(1)ABڲAͱΪڲ\n\t(2)ص㣺\n\t\tA:ڲֱӷⲿĳԱ˽\n\t\tB:ⲿҪڲĳԱ봴\n\t(3)ڲķࣺ\n\t\tA:Աڲ\n\t\tB:ֲڲ\n\t(4)Աڲ\n\t\tA:private\n\t\tB:static\n\t\t\n\t\t⣺\n\t\t\tnum\n\t\t\tthis.num\n\t\t\tOuter.this.num\n\t(5)ֲڲ\n\t\tA:\n\t\t\tֲڲʾֲfinal\n\t(6)ڲ()\n\t\tA:ûֵڲ\n\t\tB:ǰ\n\t\t\tһ߽ӿ\n\t\tC:ʽ\n\t\t\tnew ߽ӿ() {\n\t\t\t\tд();\n\t\t\t};\n\n\t\t\tʣһ\n\t(7)ʹ\n\t\tڶһµˡֱͨڲĸʽͿԸ㶨\n\n\t\tinterface Person {\n\t\t\tpublic abstract void show();\n\t\t}\n\n\t\tclass PersonDemo {\n\t\t\tpublic void method(Person p) {\n\t\t\t\tp.show();\n\t\t\t}\n\t\t}\n\n\t\tPersonDemo pd = new PersonDemo();\n\t\tpd.method(new Person(){\n\t\t\tpublic void show(){...}\n\t\t});\n\t(8)\n\t\t룬ڿ̨HelloWorld\n\n\t\tinterface Inter {\n\t\t\tpublic abstract void show();\n\t\t}\n\n\t\tclass Outer {\n\t\t\t//\n\t\t\tpublic static Inter method() {\n\t\t\t\treturn new Inter(){\n\t\t\t\t\tpublic void show() {\n\t\t\t\t\t\tSystem.out.println(\"helloworld\");\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tclass OuterDemo {\n\t\t\tpublic static void main(String[] args) {\n\t\t\t\tOuter.method().show();\n\t\t\t}\n\t\t}"
  },
  {
    "path": "day11/Eclipse的基本使用.txt",
    "content": "1:ʹ\n\tA:ѡһռ\n\t\tD:\\develop\\eclipse-SDK-3.7.2-win64\\workspace\n\tB:дһHelloWorld(ĿΪλ)\n\t\ta:Ŀ()\n\t\t\t*File -- New -- Java Project\n\t\t\t*߿հ״ֱҼ -- New -- Java Project\n\n\t\t\tĿƺֱFinish\n\t\tb:еjavaļдsrcЧ\n\t\tc:һ\n\t\t\tcn.itcast   \n\t\td:ڰ´һ\n\t\t\tHelloWorld\n\n\t\t\tͬʱдmain\n\t\te:mainдݼ\n\t\tf:\n\t\t\tԶ룬ڱһ̰\n\t\tg:г\n\t\t\tѡҪеļҪеļ\n\t\t\tҼ -- Run as - Java Application\n\t\th:ʾ\n\t\t\tConsolęʾ\n\n2:EclipseĻ\n\tA:ıеĻ(Eclipseû⣬ͲҪ)\n\tB:ȥĬע(Բø)\n\tC:кŵʾ\n\t\tʾڴߵĿհҼ -- Show Line Numbersɡ\n\t\tأĶһΡ\n\tD:Сɫ\n\t\ta:JavaСɫ\n\t\t\twindow -- Preferences -- General -- Appearance -- Colors And Fonts -- Java޸ -- Java Edit Text Font\n\t\tb:̨\n\t\t\twindow -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font\n\t\tc:ļ\n\t\t\twindow -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font\n\tE:Ūˣô\n\t\twindow -- Reset Perspective\n\tF:̨Ҳ\n\t\tWindow--Show ViewConsole\n\n3:ݼʹ\n\tA:ݸ\n\t\tAlt+/ ʾ\n\t\tmain+alt+/,syso+alt+/,ʾ\n\tB:ݼ\n\t\tʽ  ctrl+shift+f\n\t\t  ctrl+shift+o\n\t\tע\tctrl+/\n\t\t\tctrl+shift+/,ctrl+shift+\\\n\t\tƶ ѡдalt+/¼ͷ\n\t\t鿴Դ  ѡ(F3Ctrl+)\n\n4:Eclipse߿Ч\n\tA:Զɹ췽\n\t\ta:޲ι췽 ڴҼ--source--Generate Constructors from Superclass\n\t\tb:ι췽 ڴҼ--source--Generate Constructors using fields.. -- finish\n\tB:Զget/set\n\t\tڴҼ--source--Generate Getters and Setters..."
  },
  {
    "path": "day11/code/day11_Object/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day11/code/day11_Object/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day11_Object</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day11/code/day11_Object/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day11/code/day11_Object/src/cn/itcast_01/Student.java",
    "content": "package cn.itcast_01;\n\n//public class Student extends Object:ּ̳Ĭϴڵ\npublic class Student {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Student() {\n\t\tsuper();\n\t}\n\n\tpublic Student(String name, int age) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\t@Override\n\tpublic String toString() {\n\t\treturn \"Student [name=\" + name + \", age=\" + age + \"]\";\n\t}\n\t\n//\t@Override\n//\tpublic String toString() {\n//\t\treturn name+\"---\"+age;\n//\t}\n\t\n\t\n\n\t// @Override\n\t// public int hashCode() {\n\t// return 1000;\n\t// }\n\n}"
  },
  {
    "path": "day11/code/day11_Object/src/cn/itcast_01/StudentDemo.java",
    "content": "package cn.itcast_01;\n\n/*\n * Object:νṹĸ࣬඼ֱӻ߼ӵļ̳Ըࡣ\n * \n * Objectķ\n * public int hashCode():ظöĹϣֵ\n * \t\tϣֵʵʵĵֵַһǰΪֵַΪǸݵֵַһֵ\n * \t\t401401\n * public final Class<?> getClass():ش Object ʱࡣ\n * \t\tpublic String getName():ظöӦ//ӿڵơ\n * public String toString():ظöַʾ\n * \t\tgetClass().getName() + '@' + Integer.toHexString(hashCode())\n * \n * \t\tInteger\n * \t\t\tpublic static String toHexString(int i):һʮƵַʾʽ\n * \n * \t\tûκģд˷\n * \t\t\tA:ԼֶдЧÿԲԼд\n * \t\t\tB:ԶɣЧУƼʽ\n * \n * public boolean equals(Object obj)\n * protected void finalize()\n * protected Object clone()\n */\npublic class StudentDemo {\n\tpublic static void main(String[] args) {\n\t\tStudent s1 = new Student();\n\t\tSystem.out.println(s1.hashCode()); // 2100664515\n\t\tStudent s2 = new Student();\n\t\tSystem.out.println(s2.hashCode()); // 1237346925\n\t\tSystem.out.println(\"------------\");\n\n\t\tStudent s3 = new Student();\n\t\tClass c = s3.getClass();\n\t\tString name = c.getName();\n\t\tSystem.out.println(name); // cn.itcast_01.Student\n\t\tSystem.out.println(\"------------\");\n\n\t\tStudent s4 = new Student();\n\t\t// ֱһƣʵǸöõtoString()ַ\n\t\tSystem.out.println(s4); // cn.itcast_01.Student@79f1d448\n\t\t// System.out.println(s4.toString()); // cn.itcast_01.Student@79f1d448\n\n\t\t// cn.itcast_01.Student@79f1d448\n\t\t// String s = s4.getClass().getName() +\"@\"+\n\t\t// Integer.toHexString(s4.hashCode());\n\t\t// System.out.println(s);\n\t\t\n\t\tStudent s5 = new Student(\"ϼ\",28);\n\t\tSystem.out.println(s5);\n\t}\n}\n"
  },
  {
    "path": "day11/code/day11_Object/src/cn/itcast_02/Student.java",
    "content": "package cn.itcast_02;\n\npublic class Student {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Student() {\n\t\tsuper();\n\t}\n\n\tpublic Student(String name, int age) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\n\t@Override\n\tpublic boolean equals(Object obj) {\n\t\tif (this == obj)\n\t\t\treturn true;\n\t\t\n\t\tif (obj == null)\n\t\t\treturn false;\n\t\t\n\t\tif (getClass() != obj.getClass())\n\t\t\treturn false;\n\t\t\n\t\tStudent other = (Student) obj;\n\t\tif (age != other.age)\n\t\t\treturn false;\n\t\tif (name == null) {\n\t\t\tif (other.name != null)\n\t\t\t\treturn false;\n\t\t} else if (!name.equals(other.name))\n\t\t\treturn false;\n\t\treturn true;\n\t}\n\n\t// @Override\n\t// public boolean equals(Object obj) { // Object obj = s2;\n\t// // return true;\n\t// // obj -- s2\n\t// // this -- s1\n\t// // Student s = (Student) obj;\n\t// // if (this.name.equals(s.name) && this.age == s.age) {\n\t// // return true;\n\t// // } else {\n\t// // return false;\n\t// // }\n\t//\n\t// // ΪԼԼȣûбҪתģԣΪ߳ЧʣǼһж\n\t// if (this == obj) {\n\t// return true;\n\t// }\n\t//\n\t// // Ϊó׳һЩһж\n\t// // жʵжĳǷĳĶ\n\t// // õһжϷţinstanceof\n\t// // ʽ instanceof \n\t// if (!(obj instanceof Student)) {\n\t// return false;\n\t// }\n\t//\n\t// // ifĵڶָʽʹԪ滻\n\t// Student s = (Student) obj;\n\t// // System.out.println(\"AAAAAA\");\n\t// return this.name.equals(s.name) && this.age == s.age;\n\t// }\n\t\n\t\n}"
  },
  {
    "path": "day11/code/day11_Object/src/cn/itcast_02/StudentDemo.java",
    "content": "package cn.itcast_02;\n\n/*\n * public boolean equals(Object obj):Ƚ϶Ƿ\n * \n * ǷĲ̫һôΪʲô?\n * ʱҪ֪ΪʲôͱȥԴ롣\n * Objectеequals()ʵ֡\n * Դӵģ\n * \t\t public boolean equals(Object obj) {\n *\t\t\treturn (this == obj);  //(s1 == s2);\n *\t\t }\n * \n * \n * ⣺\n * \t\t==equals()?\n * \t\t==:\n * \t\t\tͣȽϵǻ͵ֵǷͬ\n * \t\t\tͣȽϵ͵ĵֵַǷͬ\n *\t\tequals():\n *\t\t\t͡Ĭ£Ƚϵ͵ĵַǷͬ\n *\n * һ˵Ƚϵַ岻ǻд÷\n * д?\n * \t\tдĻ˼öȽϳԱֵǷͬ\n * \t\tʵʿУǶԶɡ\n * \n * ַıȽϣ\n * \t\tַҲһ࣬͡\n * \t\tǵıȽõequals()ַд˸÷ȽϵַǷͬ\n * \n */\npublic class StudentDemo {\n\tpublic static void main(String[] args) {\n\t\tStudent s1 = new Student(\"ϼ\", 28);\n\t\tStudent s2 = new Student(\"ϼ\", 28);\n\t\tStudent s3 = new Student(\"ϼ\", 29);\n\n\t\t// System.out.println(s1 == s1);\n\t\t// System.out.println(s1 == s2);\n\t\tSystem.out.println(s1.equals(s2));\n\t\tSystem.out.println(s1.equals(s3));\n\t\tSystem.out.println(s1.equals(s1));\n\t\t\n\t\tDemo d =  new Demo();\n\t\tSystem.out.println(s1.equals(d)); //ClassCastException\n\t}\n}\n\nclass Demo{}\n"
  },
  {
    "path": "day11/code/day11_Object/src/cn/itcast_03/Student.java",
    "content": "package cn.itcast_03;\n\n//ʹÿ¡ʱ򣬱CloneNotSupportedException\n//ԭΪҪʵһӿCloneable\npublic class Student implements Cloneable {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Student() {\n\t\tsuper();\n\t}\n\n\tpublic Student(String name, int age) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\t@Override\n\tprotected Object clone() throws CloneNotSupportedException {\n\t\treturn super.clone();\n\t}\n}"
  },
  {
    "path": "day11/code/day11_Object/src/cn/itcast_03/StudentDemo.java",
    "content": "package cn.itcast_03;\n\n/*\n * protected Object clone()\n */\npublic class StudentDemo {\n\tpublic static void main(String[] args) throws CloneNotSupportedException {\n\t\tStudent s1 = new Student(\"ϼ\", 28);\n\n\t\tObject obj = s1.clone();\n\t\tStudent s2 = (Student) obj;\n\n\t\tSystem.out.println(s1.getName() + \"---\" + s1.getAge());\n\t\tSystem.out.println(s2.getName() + \"---\" + s2.getAge());\n\n\t\tStudent s3 = s1;\n\t\tSystem.out.println(s3.getName() + \"---\" + s3.getAge());\n\t\tSystem.out.println(\"--------------------------------\");\n\n\t\ts1.setName(\"\");\n\n\t\tSystem.out.println(s1.getName() + \"---\" + s1.getAge());\n\t\tSystem.out.println(s2.getName() + \"---\" + s2.getAge());\n\t\tSystem.out.println(s3.getName() + \"---\" + s3.getAge());\n\t}\n}"
  },
  {
    "path": "day11/day11总结.txt",
    "content": "1:Eclipseʹ()\n\t(1)Java(˽)\n\t\tA:ϵͳԴļ±\n\t\tB:߼±\n\t\tC:ɿ\n\t(2)EclipseMyEclipseĸ(˽)\n\t(3)Eclipse,װ,ж()\n\t\tA:\n\t\t\tӹȥ\n\t\tB:װ\n\t\t\tɫ\tEclipse\n\t\t\tװ\tJDK\n\t\tC:ж\n\t\t\tɫ ֱɾļ\n\t\t\tװ ͨרҵĹ߻߿\n\t(4)EclipseӴͼĽ(˽)\n\t(5)EclipseĻ()\n\t\tA:ʾк\n\t\tB:Сɫ\n\t\tC:ô\n\t\tD:Ҳ̨ô\n\t(6)EclipseĿݼ()\n\t\tA:ݸ\n\t\t\talt+/\n\n\t\t\tȫmainmain + alt+/\n\t\t\tȫ䣺syso + alt+/\n\t\tB:ÿݼ\n\t\t\ta:ʽ\n\t\t\t\tctrl+shift+f\n\t\t\tb:\n\t\t\t\tctrl+shift+o\n\t\t\tc:ע\n\t\t\t\tctrl+/\n\t(7)Eclipse߿Ч()\n\t\tA:д췽\n\t\tB:дgetXxx()/setXxx()\n\t(8)Eclipseĵ()\n\t(9)Eclipsejarʹ()\n\t(10)Eclipseɾ͵Ŀ()\n\t\tA:ɾĿ\n\t\t\ta:Ŀбɾ\n\t\t\tb:Ӳɾ\n\t\tB:Ŀ\n\t\t\tհ--import-->>\n\t\t\tע\n\t\t\t\ta:ͬĿͬʱ֡\n\t\t\t\tb:ԼֶļвĿ\n\t\t\t\tc:ĿΣҪֱӸļСҪļ\n\t(11)Eclipsedebugʹ()\n\t\tA:debug\n\t\t\ta:Դ\n\t\t\tb:鿴ִ\n\t\tB:鿴ִ\n\t\t\ta:μӶϵ\n\t\t\t\tڴ˫\n\t\t\tb:Ӷϵ\n\t\t\t\tﲻ\n\t\t\t\tע⣺Ҫϻ߷\n\t\t\tc:ۿЩط\n\t\t\t\tִ\n\t\t\t\tı仯\n\t\t\t\t̨\n\t\t\td:óһִ\n\t\t\t\tF6\n\t\t\te:ȥϵ\n\t\t\t\tٴ˫\n\t\t\t\tҵdebug棬һbreakpointsxĵط\n\n\n2:Object()\n\t(1)νṹĸ࣬඼ֱӻ߼ӵļ̳Ը\n\t(2)췽\n\t\tֻһ޲ι췽\n\t\tͿ԰ǰ˵ģ๹췽ĬϷʸ޲ι췽\n\t(3)Ա\n\t\tpublic int hashCode():ظöĹϣֵ\n\t\t\tϣֵǵֵַΪֵַ\n\t\tpublic final Class<?> getClass():ش Object ʱࡣ\n\t\tpublic String toString():ظöַʾ\n\t\t\tû壬ддôд?Զɡ\n\t\tpublic boolean equals(Object obj):Ƚ϶Ƿͬ\n\t\t\tĬϱȽû壬ддôд?Զɡ\n\t\tprotected void finalize():ãڴ\n\t\tprotected Object clone():¡\n\t\t\tҪܹʹÿ¡ʵֿ¡ӿڡ\n\t(4)⣺()\n\t\t==equals()?\n\t\tA:==\n\t\t\tͣȽϵǻ͵ֵǷͬ\n\t\t\tͣȽϵ͵ĵֵַǷͬ\n\t\tB:equals()\n\t\t\tֻܱȽͣĬϱȽϵǶĵֵַǷͬ\n\t\t\tǣܱдһҪʵʵ\n"
  },
  {
    "path": "day12/code/day12_Scanner/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day12/code/day12_Scanner/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day12_Scanner</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day12/code/day12_Scanner/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day12/code/day12_Scanner/src/cn/itcast_01/ScannerDemo.java",
    "content": "package cn.itcast_01;\n\nimport java.io.InputStream;\nimport java.util.Scanner;\n\n/*\n * Scanner:JDK5Ժڰʵּ¼ݵġ\n * \n * 췽\n * \t\tpublic Scanner(InputStream source)\n */\npublic class ScannerDemo {\n\tpublic static void main(String[] args) {\n\t\t// ¼\n\t\t// Scanner sc = new Scanner(System.in);\n\n\t\t// public Scanner(InputStream source)\n\n\t\t// SystemһԱ\n\t\t// public static final InputStream in;\n\t\t// InputStream is = System.in;\n\n\t\t// Demoһ\n\t\t// public static final int x;\n\t\t// public static final Student s;\n\t\t// int y = Demo.x;\n\t\t// Student student = Demo.s;\n\n\t\t// InputStream is = System.in; //\n\t\t// Scanner sc = new Scanner(is);\n\n\t\tScanner sc = new Scanner(System.in);\n\t}\n}\n"
  },
  {
    "path": "day12/code/day12_Scanner/src/cn/itcast_02/ScannerDemo.java",
    "content": "package cn.itcast_02;\n\nimport java.util.Scanner;\n\n/*\n * Ա\n * \t\thasNextXxx():жһǲָ\n * \t\tnextXxx():ȡ͵\n * \n * ע⣺\n * \t\t¼ݣҪintͣȴһַ\n * \t\tڿ̨ʾInputMismatchException\t벻ƥ쳣\n * \t\t\n */\npublic class ScannerDemo {\n\tpublic static void main(String[] args) {\n\t\tScanner sc = new Scanner(System.in);\n\n\t\tSystem.out.println(\"һ\");\n\n\t\tif (sc.hasNextInt()) {\n\t\t\tint number = sc.nextInt();\n\t\t\tSystem.out.println(number);\n\t\t}\n\n\t\tSystem.out.println(\"over\");\n\t}\n}\n"
  },
  {
    "path": "day12/code/day12_Scanner/src/cn/itcast_03/ScannerDemo.java",
    "content": "package cn.itcast_03;\n\nimport java.util.Scanner;\n\n/*\n * public int nextInt():ȡһint͵\n * public String nextLine():ȡһַ͵\n */\npublic class ScannerDemo {\n\tpublic static void main(String[] args) {\n\t\tScanner sc = new Scanner(System.in);\n\t\tString s = sc.nextLine();\n\t\tSystem.out.println(s);\n\t}\n}\n"
  },
  {
    "path": "day12/code/day12_Scanner/src/cn/itcast_03/ScannerDemo2.java",
    "content": "package cn.itcast_03;\n\nimport java.util.Scanner;\n\n/*\n * ⣺\n * \t\tint--int\n * \t\tString--String\n * \t\tString--int\n * \n * \t\tint--String⣬ѻسиString\n * \n * ν?\n * \t\tA:´һµļ¼\n * \t\tB:Ѽ¼ȫStringͽܡ\n * \t\t      ҪʲôͣͰStringתΪ͡\n * \t\t      ôת콲\n */\npublic class ScannerDemo2 {\n\tpublic static void main(String[] args) {\n\t\tScanner sc = new Scanner(System.in);\n\n\t\t// int x = sc.nextInt();\n\t\t// int y = sc.nextInt();\n\t\t// System.out.println(x);\n\t\t// System.out.println(y);\n\n\t\t// String x = sc.nextLine();\n\t\t// String y = sc.nextLine();\n\t\t// System.out.println(x);\n\t\t// System.out.println(y);\n\n\t\t// String x = sc.nextLine();\n\t\t// int y = sc.nextInt();\n\t\t// System.out.println(x);\n\t\t// System.out.println(y);\n\n\t\tint x = sc.nextInt();\n\t\t\n\t\tsc = new Scanner(System.in);\n\t\t\n\t\tString y = sc.nextLine(); // ѻسи\n\t\tSystem.out.println(x);\n\t\tSystem.out.println(y);\n\t}\n}\n"
  },
  {
    "path": "day12/code/day12_String/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day12/code/day12_String/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day12_String</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day12/code/day12_String/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day12/code/day12_String/bin/cn/itcast_08/String类的equals()方法源码.txt",
    "content": "String s1 = \"admin\";\nString s2 = \"admin\";\nSystem.out.println(s1.equals(s2));\n\n\tprivate final char value[]; //ַ䱾ʾһַ顣ײԼʵת\n\n\tpublic boolean equals(Object anObject) {\n\t\t//this\t--\ts1\n\t\t//anObject\t--\ts2\n\t\n\t\t//Ƚ϶ĵַǷͬ\n        if (this == anObject) {\n            return true;\n        }\n        \n        //жanObjectǲַһ\n        if (anObject instanceof String) {\n        \t//anObjectַ󣬾תΪһַ\n            String anotherString = (String) anObject;\n            \n            int n = value.length; \n            //value.length --> this.value.length --> s1.toCharArray().length\n            \n            if (n == anotherString.value.length) {\n                char v1[] = value; //--> this.value --> s1.toCharArray()\n                char v2[] = anotherString.value; //--> s2.toCharArray()\n                int i = 0;\n                while (n-- != 0) {\n                    if (v1[i] != v2[i])\n                            return false;\n                    i++;\n                }\n                return true;\n            }\n        }\n        \n        return false;\n    }\n"
  },
  {
    "path": "day12/code/day12_String/src/cn/itcast_01/StringDemo.java",
    "content": "package cn.itcast_01;\n\n/*\n * ַɶַɵһݡ\n * \n * 췽\n * \t\tpublic String():String\n *\t\tpublic String(byte[] bytes):ֽתַ\n *\t\tpublic String(byte[] bytes,int index,int length):ֽеһתַ\n *\t\tpublic String(char[] value):ַתַ\n *\t\tpublic String(char[] value,int index,int count):ַһתַ\n * \t\tpublic String(String original):ַתַ\n * \n * ⣺\n * \t\t1:κζƵʱĬϵõǸötoString()\n * \t\t  toString()Ĭǰ...@ϣֵʮơ\n * \t\t һƵʱ򣬷ֲʽ˵˸дtoString()\n * \t\t2:شַĳ\n * \t\tpublic int length()\n * \t\n * ⣺\n * \t\tlength()?Stringlength()\n * \t\tûС\n * \t\tС\n */\npublic class StringDemo {\n\tpublic static void main(String[] args) {\n\t\t// public String():String\n\t\tString s1 = new String();\n\t\tSystem.out.println(\"s1:\" + s1);\n\t\tSystem.out.println(\"s1.length():\" + s1.length());\n\t\tSystem.out.println(\"--------------------------\");\n\n\t\t// public String(byte[] bytes):ֽתַ\n\t\tbyte[] bytes = { 97, 98, 99, 100, 101 };\n\t\tString s2 = new String(bytes); // ֵתɶӦֵַ\n\t\tSystem.out.println(\"s2:\" + s2);\n\t\tSystem.out.println(\"s2.length():\" + s2.length());\n\t\tSystem.out.println(\"--------------------------\");\n\n\t\t// public String(byte[] bytes,int index,int length):ֽеһתַ\n\t\t// String s3 = new String(bytes, 1, 2);\n\t\tString s3 = new String(bytes, 0, bytes.length);\n\t\tSystem.out.println(\"s3:\" + s3);\n\t\tSystem.out.println(\"s3.length():\" + s3.length());\n\t\tSystem.out.println(\"--------------------------\");\n\n\t\t// public String(char[] value):ַתַ\n\t\tchar[] chs = { 'a', 'b', 'c', 'd', 'e', '', '', 'ϼ' };\n\t\tString s4 = new String(chs);\n\t\tSystem.out.println(\"s4:\" + s4);\n\t\tSystem.out.println(\"s4.length():\" + s4.length());\n\t\tSystem.out.println(\"--------------------------\");\n\n\t\t// public String(char[] value,int index,int count):ַһתַ\n\t\t// Ҫַ:de\n\t\tString s5 = new String(chs, 3, 4);\n\t\tSystem.out.println(\"s5:\" + s5);\n\t\tSystem.out.println(\"s5.length():\" + s5.length());\n\t\tSystem.out.println(\"--------------------------\");\n\n\t\t// public String(String original):ַתַ\n\t\tString s6 = new String(\"helloworld\");\n\t\tSystem.out.println(\"s6:\" + s6);\n\t\tSystem.out.println(\"s6.length():\" + s6.length());\n\t\tSystem.out.println(\"--------------------------\");\n\n\t\t// Java еֵַ \"abc\" Ϊʵʵ֡\n\t\tString s7 = \"helloworld\";\n\t\tSystem.out.println(\"s7:\" + s7);\n\t\tSystem.out.println(\"s7.length():\" + s7.length());\n\t}\n}\n"
  },
  {
    "path": "day12/code/day12_String/src/cn/itcast_02/StringDemo.java",
    "content": "package cn.itcast_02;\n\n/*\n * ַǳ,ֵڴܸ֮\n * ڴͼ\n */\n\npublic class StringDemo {\n\tpublic static void main(String[] args) {\n\t\tString s = \"hello\";\n\t\ts += \"world\";\n\t\tSystem.out.println(s);\n\t}\n}\n"
  },
  {
    "path": "day12/code/day12_String/src/cn/itcast_02/StringDemo2.java",
    "content": "package cn.itcast_02;\n\n/*\n * String s = new String(hello)String s = hello;\n * \n * ==:ȽͣȽϵǵֵַ\n * equal():ĬϱȽϵǵֵַStringдequals()÷ǱȽַǷͬ\n */\npublic class StringDemo2 {\n\tpublic static void main(String[] args) {\n\t\tString s1 = new String(\"hello\");\n\t\tString s2 = \"hello\";\n\n\t\tSystem.out.println(s1 == s2); // false\n\t\tSystem.out.println(s1.equals(s2)); // true\n\t}\n}\n"
  },
  {
    "path": "day12/code/day12_String/src/cn/itcast_02/StringDemo3.java",
    "content": "package cn.itcast_02;\n\n/*\n * д\n */\npublic class StringDemo3 {\n\tpublic static void main(String[] args) {\n\t\tString s1 = new String(\"hello\");\n\t\tString s2 = new String(\"hello\");\n\t\tSystem.out.println(s1 == s2); // false\n\t\tSystem.out.println(s1.equals(s2)); // true\n\n\t\tString s3 = new String(\"hello\");\n\t\tString s4 = \"hello\";\n\t\tSystem.out.println(s3 == s4); // false\n\t\tSystem.out.println(s3.equals(s4)); // true\n\n\t\tString s5 = \"hello\";\n\t\tString s6 = \"hello\";\n\t\tSystem.out.println(s5 == s6);// true\n\t\tSystem.out.println(s5.equals(s6));// true\n\t}\n}\n"
  },
  {
    "path": "day12/code/day12_String/src/cn/itcast_02/StringDemo4.java",
    "content": "package cn.itcast_02;\n\n/*\n * д\n * ַӣȿռ䣬ټ\n * ַӣȼӣңûٿռ\n */\npublic class StringDemo4 {\n\tpublic static void main(String[] args) {\n\t\tString s1 = \"hello\";\n\t\tString s2 = \"world\";\n\t\tString s3 = \"helloworld\";\n\t\tString s4 = s1 + s2;\n\t\tString s5 = \"hello\"+\"world\";\n\t\tSystem.out.println(s4);\n\t\tSystem.out.println(s5);\n//\t\tSystem.out.println(s3 == s1 + s2);// false\n//\t\tSystem.out.println(s3.equals(s1 + s2));// true\n//\t\tSystem.out.println(s3 == \"hello\" + \"world\");// true\n\t}\n}\n"
  },
  {
    "path": "day12/code/day12_String/src/cn/itcast_03/StringDemo.java",
    "content": "package cn.itcast_03;\n\n/*\n * StringжϹܣ\n * boolean equals(Object obj):ȽַǷͬϸִСд\n * boolean equalsIgnoreCase(String str):ȽַǷͬǴСд\n * boolean contains(String str):жǷָС\n * boolean startsWith(String str):жǷַָͷ\n * boolean endsWith(String str):жǷַָβ\n * boolean isEmpty():жַǷΪ\n */\npublic class StringDemo {\n\tpublic static void main(String[] args) {\n\t\tString s = \"helloworld\";\n\n\t\t// boolean equals(Object obj):ȽַǷͬϸִСд\n\t\tSystem.out.println(\"equals():\" + s.equals(\"helloworld\"));\n\t\tSystem.out.println(\"equals():\" + s.equals(\"HelloWorld\"));\n\t\tSystem.out.println(\"----------------------------------\");\n\n\t\t// boolean equalsIgnoreCase(String str):ȽַǷͬǴСд\n\t\tSystem.out.println(\"equalsIgnoreCase():\"\n\t\t\t\t+ s.equalsIgnoreCase(\"helloworld\"));\n\t\tSystem.out.println(\"equalsIgnoreCase():\"\n\t\t\t\t+ s.equalsIgnoreCase(\"HelloWorld\"));\n\t\tSystem.out.println(\"----------------------------------\");\n\n\t\t// boolean contains(String str):жǷָС\n\t\tSystem.out.println(\"contains():\" + s.contains(\"owo\"));\n\t\tSystem.out.println(\"contains():\" + s.contains(\"hw\"));\n\t\tSystem.out.println(\"----------------------------------\");\n\n\t\t// boolean startsWith(String str):жǷַָͷ\n\t\tSystem.out.println(\"startsWith():\" + s.startsWith(\"hw\"));\n\t\tSystem.out.println(\"startsWith():\" + s.startsWith(\"owo\"));\n\t\tSystem.out.println(\"startsWith():\" + s.startsWith(\"h\"));\n\t\tSystem.out.println(\"----------------------------------\");\n\n\t\t// boolean endsWith(String str):жǷַָβ:Լϰ\n\n\t\t// boolean isEmpty():жַǷΪ\n\t\tSystem.out.println(\"isEmpty():\" + s.isEmpty());\n\t\t// System.out.println(\"isEmpty():\"+null.isEmpty());\n\t\t// //󣬶Ϊnull˵󲻴ڣ󲻴ڣͲܵ÷\n\t\tSystem.out.println(\"isEmpty():\" + \"\".isEmpty());\n\t}\n}\n"
  },
  {
    "path": "day12/code/day12_String/src/cn/itcast_03/StringTest.java",
    "content": "package cn.itcast_03;\n\nimport java.util.Scanner;\n\n/*\n * ģ¼,λ,ʾмΡ\n * \n * \n * \t\tA:̶û\n * \t\tB:¼û\n * \t\tC:Ƚû\n * \t\tD:λ\n */\npublic class StringTest {\n\tpublic static void main(String[] args) {\n\t\t// ̶û\n\t\t// String username = \"admin\";\n\t\t// String password = \"admin\";\n\n\t\tfor (int x = 0; x < 3; x++) {\n\t\t\t// x=0,1,2\n\n\t\t\t// ¼û\n\t\t\tScanner sc = new Scanner(System.in);\n\t\t\tSystem.out.println(\"û\");\n\t\t\tString name = sc.nextLine();\n\t\t\tSystem.out.println(\"룺\");\n\t\t\tString pwd = sc.nextLine();\n\n\t\t\t// Ƚû\n\t\t\tif (\"admin\".equals(name) && \"admin\".equals(pwd)) {\n\t\t\t\tSystem.out.println(\"¼ɹ\");\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\tif (2 - x == 0) {\n\t\t\t\t\tSystem.out.println(\"ʺű೤ϵ\");\n\t\t\t\t} else {\n\t\t\t\t\t// 2,1,0\n\t\t\t\t\tSystem.out.println(\"¼ʧܣ㻹\" + (2 - x) + \"λ\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}"
  },
  {
    "path": "day12/code/day12_String/src/cn/itcast_04/StringDemo.java",
    "content": "package cn.itcast_04;\n\n/*\n * StringĻȡܣ\n * int length():ַĳȡַĸ\n * char charAt(int index):ַָλõַ\n * int indexOf(int ch):ַַָеһγֵλ\n * \t\t97,'a'\n * int indexOf(String str):ַַָеһγֵλ\n * int indexOf(int ch,int fromIndex):ַָָλÿʼַеһγֵλ\n * int indexOf(String str,int fromIndex):ַָָλÿʼַеһγֵλ\n * String substring(int start):شָλÿʼĩβӴ\n * String substring(int start,int end):شָλÿʼָλýӴ----עҲ\n */\npublic class StringDemo {\n\tpublic static void main(String[] args) {\n\t\tString s = \"helloworld\";\n\n\t\t// int length():ַĳȡַĸ\n\t\tSystem.out.println(\"length():\" + s.length());\n\t\tSystem.out.println(\"----------------------\");\n\n\t\t// char charAt(int index):ַָλõַ\n\t\tSystem.out.println(\"charAt():\" + s.charAt(0));\n\t\tSystem.out.println(\"charAt():\" + s.charAt(3));\n\t\t// System.out.println(\"charAt():\" + s.charAt(13)); //\n\t\t// StringIndexOutOfBoundsException\n\t\tSystem.out.println(\"----------------------\");\n\n\t\t// int indexOf(int ch):ַַָеһγֵλ\n\t\tSystem.out.println(\"indexOf():\" + s.indexOf('l'));\n\t\t// int indexOf(int ch,int fromIndex):ַָָλÿʼַеһγֵλ\n\t\tSystem.out.println(\"indexOf():\" + s.indexOf('l', 4));\n\n\t\t// Լѧϰ\n\t\t// int indexOf(String str):ַַָеһγֵλ\n\t\t// int indexOf(String str,int fromIndex):ַָָλÿʼַеһγֵλ\n\t\tSystem.out.println(\"----------------------\");\n\n\t\t// String substring(int start):شָλÿʼĩβӴ\n\t\tSystem.out.println(\"substring():\" + s.substring(0));\n\t\tSystem.out.println(\"substring():\" + s.substring(5));\n\t\t// String substring(int start,int end):شָλÿʼָλýӴ\n\t\t// Ҫõowoд\n\t\tSystem.out.println(\"substring():\" + s.substring(4, 7)); // ߣұ\n\t}\n}\n"
  },
  {
    "path": "day12/code/day12_String/src/cn/itcast_04/StringTest.java",
    "content": "package cn.itcast_04;\n\n/*\n * ַı:ȡַеÿһַ\n */\npublic class StringTest {\n\tpublic static void main(String[] args) {\n\t\tString s = \"java\";\n\n\t\t// ͨcharAt()λȡַ\n\t\t// System.out.println(s.charAt(0));\n\t\t// System.out.println(s.charAt(1));\n\t\t// System.out.println(s.charAt(2));\n\t\t// System.out.println(s.charAt(3));\n\n\t\t// ǣַĸȽ϶࣬ͻ鷳ظȺܸ\n\t\t// for (int x = 0; x < 4; x++) {\n\t\t// System.out.println(s.charAt(x));\n\t\t// }\n\n\t\t// ַݽ϶࣬ԣҪһȡַķ\n\t\t// length();\n\t\tfor (int x = 0; x < s.length(); x++) {\n\t\t\t// System.out.println(s.charAt(x));\n\t\t\t\n\t\t\tchar ch = s.charAt(x);\n\t\t\tSystem.out.println(ch);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day12/code/day12_String/src/cn/itcast_04/StringTest2.java",
    "content": "package cn.itcast_04;\n\nimport java.util.Scanner;\n\n/*\n * ͳһַддĸַСдĸֵַַĴ(ַ)\n * Hello123World\n * \n * \t\tд2\n * \t\tСд8\n * \t\t֣3\n * \n * \n * \t\tA:¼һַ\n * \t\tB:ͳƱ\n * \t\t\tint bigCount = 0;\n * \t\t\tint smallCount = 0;\n * \t\t\tint numberCount = 0;\n * \t\tC:ַõÿһַ\n * \t\tD:жַǴдСд?\n * \t\t\tchar ch = ???;\n * \n * \t\t\tASCII\n * \t\t\t\ta\t97\tz=122\n * \t\t\t\tA\t65  Z=90\n * \t\t\t\t0\t48\t9=57\n * \n * \t\t\t\tch>=97 && ch<=122\n * \t\t\t\t...\n * \n * \t\t\tch>='a' && ch<='z'\n * \t\t\tch>='A'\t&& ch<='Z'\n * \t\t\tch>='0'\t&& ch<='9'\n * \t\tE:\n */\npublic class StringTest2 {\n\tpublic static void main(String[] args) {\n\t\t// ¼һַ\n\t\tScanner sc = new Scanner(System.in);\n\t\tSystem.out.println(\"һַ\");\n\t\tString s = sc.nextLine();\n\n\t\t// ͳƱ\n\t\tint bigCount = 0;\n\t\tint smallCount = 0;\n\t\tint numberCount = 0;\n\n\t\t// ַõÿһַ\n\t\tfor (int x = 0; x < s.length(); x++) {\n\t\t\tchar ch = s.charAt(x);\n\n\t\t\t// жַǴдСд?\n\t\t\tif (ch >= 'A' && ch <= 'Z') {\n\t\t\t\tbigCount++;\n\t\t\t} else if (ch >= 'a' && ch <= 'z') {\n\t\t\t\tsmallCount++;\n\t\t\t} else if (ch >= '0' && ch <= '9') {\n\t\t\t\tnumberCount++;\n\t\t\t}\n\t\t}\n\n\t\t// \n\t\tSystem.out.println(\"д\" + bigCount);\n\t\tSystem.out.println(\"Сд\" + smallCount);\n\t\tSystem.out.println(\"֣\" + numberCount);\n\t}\n}\n"
  },
  {
    "path": "day12/code/day12_String/src/cn/itcast_05/StringDemo.java",
    "content": "package cn.itcast_05;\n\n/*\n * Stringתܣ\n * byte[] getBytes():ַתΪֽ\n * char[] toCharArray():ַתΪַ\n * static String valueOf(char[] chs):ַתַ\n * static String valueOf(int i):int͵תַ\n * \t\tתΪַķ\n * String toLowerCase():ַתСд\n * String toUpperCase():ַתд\n * String concat(String str):ַ\n */\npublic class StringDemo {\n\tpublic static void main(String[] args) {\n\t\t// һַ\n\t\tString s = \"abcde\";\n\n\t\t// byte[] getBytes():ַתΪֽ\n\t\tbyte[] bys = s.getBytes();\n\t\tfor (int x = 0; x < bys.length; x++) {\n\t\t\tSystem.out.println(bys[x]);\n\t\t}\n\t\tSystem.out.println(\"----------------\");\n\n\t\t// char[] toCharArray():ַתΪַ\n\t\tchar[] chs = s.toCharArray();\n\t\tfor (int x = 0; x < chs.length; x++) {\n\t\t\tSystem.out.println(chs[x]);\n\t\t}\n\t\tSystem.out.println(\"----------------\");\n\n\t\t// static String valueOf(char[] chs):ַתַ\n\t\tString s2 = String.valueOf(chs);\n\t\tSystem.out.println(\"s2:\" + s2);\n\t\tSystem.out.println(\"----------------\");\n\n\t\t// static String valueOf(int i):int͵תַ\n\t\tint number = 100;\n\t\tString s3 = number + \"\";\n\t\tString s4 = String.valueOf(number);\n\t\tSystem.out.println(\"s3:\" + s3);\n\t\tSystem.out.println(\"s4:\" + s4);\n\t\tSystem.out.println(\"----------------\");\n\n\t\t// String toLowerCase():ַתСд\n\t\t// String toUpperCase():ַתд\n\t\tSystem.out.println(\"toLowerCase():\" + \"HelloWorld\".toLowerCase());\n\t\tSystem.out.println(\"toUpperCase():\" + \"HelloWorld\".toUpperCase());\n\t\tSystem.out.println(\"----------------\");\n\n\t\t// String concat(String str):ַ\n\t\tString s5 = \"hello\";\n\t\tString s6 = \"world\";\n\t\tString s7 = s5.concat(s6);\n\t\tString s8 = s5 + s6;\n\t\tSystem.out.println(\"s7:\" + s7);\n\t\tSystem.out.println(\"s8:\" + s8);\n\t}\n}\n"
  },
  {
    "path": "day12/code/day12_String/src/cn/itcast_05/StringTest.java",
    "content": "package cn.itcast_05;\n\nimport java.util.Scanner;\n\n/*\n * һַĸתɴдΪСд(ֻӢĴСдĸַ)\n * helloWorldAbCde\n * Helloworldabcde\n * \n * \n * \t\tA:¼һַ\n * \t\tB:ȡĸõs1\n * \t\tC:ȡĸַõs2\n * \t\tD:s1תд+s2תСд\n */\npublic class StringTest {\n\tpublic static void main(String[] args) {\n\t\t// ¼һַ\n\t\tScanner sc = new Scanner(System.in);\n\t\tSystem.out.println(\"һַ\");\n\t\tString s = sc.nextLine();\n\n\t\t// ȡĸõs1\n\t\tString s1 = s.substring(0, 1);\n\t\t// ȡĸַõs2\n\t\tString s2 = s.substring(1);\n\t\t// s1תд+s2תСд\n\t\tString result = s1.toUpperCase().concat(s2.toLowerCase());\n\t\tSystem.out.println(result);\n\n\t\t// String result = s.substring(0, 1).toUpperCase()\n\t\t// .concat(s.substring(1).toLowerCase());\n\t\t// System.out.println(result);\n\t}\n}\n"
  },
  {
    "path": "day12/code/day12_String/src/cn/itcast_06/StringDemo.java",
    "content": "package cn.itcast_06;\n\n/*\n * 滻\n *\tString replace(char old,char new)\n *\tString replace(String old,String new)\n */\npublic class StringDemo {\n\tpublic static void main(String[] args) {\n\t\t// ַ\n\t\tString s = \"helloworld\";\n\n\t\tString s2 = s.replace('l', 'b');\n\t\tSystem.out.println(\"s:\" + s);\n\t\tSystem.out.println(\"s2:\" + s2);\n\n\t\tString s3 = s.replace(\"owo\", \"ak47\");\n\t\tSystem.out.println(\"s3:\" + s3);\n\t}\n}\n"
  },
  {
    "path": "day12/code/day12_String/src/cn/itcast_06/StringDemo2.java",
    "content": "package cn.itcast_06;\n\n/*\n * ȥַո\t\n * String trim()\n */\npublic class StringDemo2 {\n\tpublic static void main(String[] args) {\n\t\tString s = \"     hello  world           \";\n\n\t\tSystem.out.println(\"---\" + s + \"---\");\n\t\tSystem.out.println(\"---\" + s.trim() + \"---\");\n\t}\n}"
  },
  {
    "path": "day12/code/day12_String/src/cn/itcast_06/StringDemo3.java",
    "content": "package cn.itcast_06;\n\n/*\n * ֵ˳Ƚַ  a-z\n * int compareTo(String str)\n * int compareToIgnoreCase(String str) \n */\npublic class StringDemo3 {\n\tpublic static void main(String[] args) {\n\t\tString s = \"hello\";\n\n\t\tSystem.out.println(s.compareTo(\"hello\")); // 0\n\t\tSystem.out.println(s.compareTo(\"Hello\")); // 32\n\t\tSystem.out.println(s.compareTo(\"mello\")); // -5\n\t\tSystem.out.println(s.compareTo(\"hgllo\"));//һͬĸ֮\n\t}\n}\n"
  },
  {
    "path": "day12/code/day12_String/src/cn/itcast_07/StringTest.java",
    "content": "package cn.itcast_07;\n\n/*\n * еݰָʽƴӳһַ\n * int[] arr = {1,2,3};\t\n * [1, 2, 3] \n */\npublic class StringTest {\n\tpublic static void main(String[] args) {\n\t\t// һ\n\t\tint[] arr = { 1, 2, 3 };\n\t\t\n\t\tString result = arrayToString(arr);\n\t\tSystem.out.println(result);\n\t}\n\n\t// дʵ\n\t// ʽ\n\t// ֵͣString\n\tpublic static String arrayToString(int[] arr) {\n\t\tString s = \"\";\n\n\t\ts += \"[\";\n\t\tfor (int x = 0; x < arr.length; x++) {\n\t\t\tif (x == arr.length - 1) {\n\t\t\t\ts += arr[x];\n\t\t\t} else {\n\t\t\t\ts += arr[x];\n\t\t\t\ts += \", \";\n\t\t\t}\n\t\t}\n\t\ts += \"]\";\n\n\t\treturn s;\n\t}\n}\n"
  },
  {
    "path": "day12/code/day12_String/src/cn/itcast_07/StringTest2.java",
    "content": "package cn.itcast_07;\n\nimport java.util.Scanner;\n\n/*\n * ַת\n * ¼롱abc\t\tcba\n */\npublic class StringTest2 {\n\tpublic static void main(String[] args) {\n\t\tScanner sc = new Scanner(System.in);\n\t\tSystem.out.println(\"һַ\");\n\t\tString s = sc.nextLine();\n\n\t\tString result = reverse(s);\n\t\tSystem.out.println(result);\n\t}\n\n\t// дʵ\n\tpublic static String reverse(String s) {\n\t\tString result = \"\";\n\n\t\tchar[] chs = s.toCharArray();\n\t\tfor (int x = chs.length - 1; x >= 0; x--) {\n\t\t\tresult += chs[x];\n\t\t}\n\n\t\treturn result;\n\t}\n}\n"
  },
  {
    "path": "day12/code/day12_String/src/cn/itcast_07/StringTest3.java",
    "content": "package cn.itcast_07;\n\n/*\n * ͳƴСֵĴ\n * ַ woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagunjava5\n */\npublic class StringTest3 {\n\tpublic static void main(String[] args) {\n\t\tString maxString = \"woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun\";\n\t\tString minString = \"java\";\n\n\t\tint count = getCount(maxString, minString);\n\t\tSystem.out.println(count);\n\t}\n\n\t// дʵ֣\n\t// ʽ:String maxString,String minString;\n\t// ֵ:int\n\tpublic static int getCount(String maxString, String minString) {\n\t\t// ͳƱ\n\t\tint count = 0;\n\n\t\t// Ȳһ\n\t\tint index = maxString.indexOf(minString);\n\t\t// һڼ¼ÿµĲλ\n\t\tint startIndex = 0;\n\n\t\t// жλǲ-1ǣͲ\n\t\twhile (index != -1) {\n\t\t\t// ͳƱ1\n\t\t\tcount++;\n\t\t\t// µĲλ\n\t\t\tstartIndex = index + minString.length();\n\t\t\t// µĲλãٲһСڴгֵλ\n\t\t\tindex = maxString.indexOf(minString, startIndex);\n\t\t}\n\n\t\treturn count;\n\t}\n}\n"
  },
  {
    "path": "day12/code/day12_String/src/cn/itcast_07/StringTest4.java",
    "content": "package cn.itcast_07;\n\npublic class StringTest4 {\n\tpublic static void main(String[] args) {\n\t\tString maxString = \"woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun\";\n\t\tString minString = \"java\";\n\n\t\tint count = getCount(maxString, minString);\n\t\tSystem.out.println(count);\n\t}\n\n\t// дʵ֣\n\t// ʽ:String maxString,String minString;\n\t// ֵ:int\n\tpublic static int getCount(String maxString, String minString) {\n\t\t// ͳƱ\n\t\tint count = 0;\n\n\t\t// һβ\n\t\tint index = maxString.indexOf(minString);\n\n\t\twhile (index != -1) {\n\t\t\tcount++;\n\t\t\t// ȡõµĴ\n\t\t\tmaxString = maxString.substring(index + minString.length());\n\t\t\t// \n\t\t\tindex = maxString.indexOf(minString);\n\t\t}\n\n\t\treturn count;\n\t}\n}\n"
  },
  {
    "path": "day12/code/day12_String/src/cn/itcast_08/StringTest.java",
    "content": "package cn.itcast_08;\n\n/*\n * ԼдһܣȽַǷȡ\n * \n * \n * \t\tA:ַ\n * \t\tB:ȽϳǷͬͬ򷵻false\n * \t\t      ͬͼ\n * \t\tC:ÿַתΪַ顣\n * \t\tD:飬ÿһλϵַбȽϡ\n * \t\t  һвͬģͷfalse\n * \t\tE:true\n */\npublic class StringTest {\n\tpublic static void main(String[] args) {\n\t\tSystem.out.println(compare(\"admin\", \"admin\"));\n\t\tSystem.out.println(compare(\"admin\", \"Admin\"));\n\t\tSystem.out.println(compare(\"admin\", \"hello\"));\n\n\t\tSystem.out.println(\"admin\".equals(\"admin\"));\n\t}\n\n\t// ǿе÷\n\t// public static boolean compare(String s1, String s2) {\n\t// return s1.equals(s2);\n\t// }\n\n\t// 뿼\n\tpublic static boolean compare(String s1, String s2) {\n\t\t// ȽϳǷͬ\n\t\tif (s1.length() != s2.length()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tchar[] chs1 = s1.toCharArray();\n\t\tchar[] chs2 = s2.toCharArray();\n\n\t\tfor (int x = 0; x < chs1.length; x++) {\n\t\t\tif (chs1[x] != chs2[x]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n}\n"
  },
  {
    "path": "day12/code/day12_String/src/cn/itcast_08/String类的equals()方法源码.txt",
    "content": "String s1 = \"admin\";\nString s2 = \"admin\";\nSystem.out.println(s1.equals(s2));\n\n\tprivate final char value[]; //ַ䱾ʾһַ顣ײԼʵת\n\n\tpublic boolean equals(Object anObject) {\n\t\t//this\t--\ts1\n\t\t//anObject\t--\ts2\n\t\n\t\t//Ƚ϶ĵַǷͬ\n        if (this == anObject) {\n            return true;\n        }\n        \n        //жanObjectǲַһ\n        if (anObject instanceof String) {\n        \t//anObjectַ󣬾תΪһַ\n            String anotherString = (String) anObject;\n            \n            int n = value.length; \n            //value.length --> this.value.length --> s1.toCharArray().length\n            \n            if (n == anotherString.value.length) {\n                char v1[] = value; //--> this.value --> s1.toCharArray()\n                char v2[] = anotherString.value; //--> s2.toCharArray()\n                int i = 0;\n                while (n-- != 0) {\n                    if (v1[i] != v2[i])\n                            return false;\n                    i++;\n                }\n                return true;\n            }\n        }\n        \n        return false;\n    }\n"
  },
  {
    "path": "day12/day12总结.txt",
    "content": "1Scanner()\n\t(1)JDK5Ժ󣬰ʵּ¼ݵġ\n\t(2)췽\n\t\tpublic Scanner(InputStream is)\n\n\t\tScanner sc = new Scanner(System.in);\n\t(3)Ա\n\t\tA:hasNextXxx() жǷxxx͵Ԫ\n\t\tB:nextXxx() ȡxxx͵Ԫ\n\t(4)õ\n\t\tnextInt():ȡһint͵\n\t\tnextLine():ȡһString͵\n\t(5)עС⣺\n\t\tint--int\n\t\tString--String\n\t\tString--int\n\n\t\tint--String \n\n\t\tν?\n\t\t\tA:ݶΪString,ҪʲôתΪʲô\n\t\t\tB:´һµScanner\n\n2String()\n\t(1)ַɶַɵһ\n\t(2)췽\n\t\tpublic String():String\n\t\tpublic String(byte[] bytes):ֽתַ\n\t\tpublic String(byte[] bytes,int index,int length):ֽеһתַ\n\t\tpublic String(char[] value):ַתַ\n\t\tpublic String(char[] value,int index,int count):ַһתַ\n\t\tpublic String(String original):ַתַ\n\n\t\tString s = \"hello\";\n\t(3)ַص\n\t\tA:һֵͲܷı\n\t\tB:String s = new String(\"hello\")String s = \"hello\"\n\t\tC:д ==equals()\n\t\tD:д ַӺͳӵ\n\t(4)\n\t\tA:жϹ\n\t\t\tboolean equals(Object obj):ȽַǷͬϸִСд\n\t\t\tboolean equalsIgnoreCase(String str):ȽַǷͬǴСд\n\t\t\tboolean contains(String str):жǷָС\n\t\t\tboolean startsWith(String str):жǷַָͷ\n\t\t\tboolean endsWith(String str):жǷַָβ\n\t\t\tboolean isEmpty():жַǷΪ\n\t\tB:ȡ\n\t\t\tint length():ַĳȡַĸ\n\t\t\tchar charAt(int index):ַָλõַ\n\t\t\tint indexOf(int ch):ַַָеһγֵλ\n\t\t\t\t\t97,'a'\n\t\t\tint indexOf(String str):ַַָеһγֵλ\n\t\t\tint indexOf(int ch,int fromIndex):ַָָλÿʼַеһγֵλ\n\t\t\tint indexOf(String str,int fromIndex):ַָָλÿʼַеһγֵλ\n\t\t\tString substring(int start):شָλÿʼĩβӴ\n\t\t\tString substring(int start,int end):شָλÿʼָλýӴ\n\t\tC:ת\n\t\t\tbyte[] getBytes():ַתΪֽ\n\t\t\tchar[] toCharArray():ַתΪַ\n\t\t\tstatic String valueOf(char[] chs):ַתַ\n\t\t\tstatic String valueOf(int i):int͵תַ\n\t\t\t\t\tתΪַķ\n\t\t\tString toLowerCase():ַתСд\n\t\t\tString toUpperCase():ַתд\n\t\t\tString concat(String str):ַ\n\t\tD:\n\t\t\ta:滻\n\t\t\t\tString replace(char old,char new)\n\t\t\t\tString replace(String old,String new)\n\t\t\tb:ȥַո\t\n\t\t\t\tString trim()\n\t\t\tc:ֵ˳Ƚַ\n\t\t\t\tint compareTo(String str)\n\t\t\t\tint compareToIgnoreCase(String str)\n\t(5)\n\t\tA:ģû¼\n\t\tB:ַ\n\t\t\ta:charAt()length()\n\t\t\tb:ת\n\t\tC:ͳÿ͵ַ\n\t\tD:ַĸתдСд\n\t\tE:תָʽַ\n\t\tF:ַת\n\t\tG:ͳƴСֵĴ\n\t\t\ta:ָλÿʼ\n\t\t\tb:ѲĽȡ\n\t\tH:ԼʵַıȽԼStringequals()Դ"
  },
  {
    "path": "day13/code/day13_Array_Arrays/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day13/code/day13_Array_Arrays/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day13_Array_Arrays</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day13/code/day13_Array_Arrays/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day13/code/day13_Array_Arrays/bin/cn/itcast_05/Arrays工具类的源码.txt",
    "content": "1:public static String toString(int[] a)\n\n \tpublic static String toString(int[] a) {\n \t\t//a -- arr -- { 24, 13, 69, 80, 57 };\n \t\t\n        if (a == null)\n            return \"null\";\n            \n        int iMax = a.length - 1; //4\n        \n        if (iMax == -1)\t//ûԪ\n            return \"[]\";\n\n        StringBuilder b = new StringBuilder();\n        b.append('['); //[24, 13, 69, 80, 57]\n        for (int i = 0; ; i++) {\n            b.append(a[i]);\n            if (i == iMax)\n                return b.append(']').toString();\n            b.append(\", \");\n        }\n    }\n    \n    int[] arr = { 24, 13, 69, 80, 57 };\n    System.out.println(Arrays.toString(arr));\n----------------------------------------------------------\n\n2:public static int binarySearch(int[] a,int key)\n\n\tpublic static int binarySearch(int[] a, int key) {\n\t\t//a -- arr -- { 24, 13, 69, 80, 57 }\n\t\t//key -- 244\n        return binarySearch0(a, 0, a.length, key);\n    }\n    \n    private static int binarySearch0(int[] a, int fromIndex, int toIndex,\n                                     int key) {\n        //a -- { 13, 24, 5769 80}\n        //fromIndex = 0\n        //toIndex = 5\n        //key = 244;                  \n                                                  \n        int low = fromIndex; //0\n        int high = toIndex - 1; //4\n\n        while (low <= high) {\n            int mid = (low + high) >>> 1; //2,3,4\n            int midVal = a[mid];  //57,69,80\n\n            if (midVal < key)\n                low = mid + 1; //345\n            else if (midVal > key)\n                high = mid - 1;\n            else\n                return mid; // key found\n        }\n        return -(low + 1);  // key not found.\n    }\n    \n    int[] arr = { 24, 13, 69, 80, 57 };\n    System.out.println(Arrays.binarySearch(arr, 244));"
  },
  {
    "path": "day13/code/day13_Array_Arrays/src/cn/itcast_01/ArrayDemo.java",
    "content": "package cn.itcast_01;\n\n/*\n * ð\n */\npublic class ArrayDemo {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\tint[] arr = { 24, 69, 80, 57, 13 };\n\n\t\t/*\n\t\t * // һαȽ // 1Ϊ˷ֹԽ for (int x = 0; x < arr.length - 1 - 0; x++) {\n\t\t * if (arr[x] > arr[x + 1]) { int temp = arr[x]; arr[x] = arr[x + 1];\n\t\t * arr[x + 1] = temp; } } //  System.out.println(\"һ\");\n\t\t * printArray(arr);\n\t\t * \n\t\t * // ڶαȽ // 1Ϊ˷ֹԽ for (int x = 0; x < arr.length - 1 - 1; x++) {\n\t\t * if (arr[x] > arr[x + 1]) { int temp = arr[x]; arr[x] = arr[x + 1];\n\t\t * arr[x + 1] = temp; } } //  System.out.println(\"ڶ\");\n\t\t * printArray(arr);\n\t\t * \n\t\t * // αȽ // 1Ϊ˷ֹԽ for (int x = 0; x < arr.length - 1 - 2; x++) {\n\t\t * if (arr[x] > arr[x + 1]) { int temp = arr[x]; arr[x] = arr[x + 1];\n\t\t * arr[x + 1] = temp; } } //  System.out.println(\"\");\n\t\t * printArray(arr);\n\t\t * \n\t\t * // ĴαȽ // 1Ϊ˷ֹԽ for (int x = 0; x < arr.length - 1 - 3; x++) {\n\t\t * if (arr[x] > arr[x + 1]) { int temp = arr[x]; arr[x] = arr[x + 1];\n\t\t * arr[x + 1] = temp; } } //  System.out.println(\"Ĵ\");\n\t\t * printArray(arr);\n\t\t */\n\n\t\t// for (int y = 0; y < arr.length - 1; y++) {\n\t\t// // ? 0,1,2,3\n\t\t// for (int x = 0; x < arr.length - 1 - y; x++) {\n\t\t// if (arr[x] > arr[x + 1]) {\n\t\t// int temp = arr[x];\n\t\t// arr[x] = arr[x + 1];\n\t\t// arr[x + 1] = temp;\n\t\t// }\n\t\t// }\n\t\t// }\n\n\t\t// ð\n\t\tbubbleSort(arr);\n\t\t// \n\t\tprintArray(arr);\n\t}\n\n\t// \n\tpublic static void printArray(int[] arr) {\n\t\tSystem.out.print(\"[\");\n\t\tfor (int x = 0; x < arr.length; x++) {\n\t\t\tif (x == arr.length - 1) {\n\t\t\t\tSystem.out.print(arr[x]);\n\t\t\t} else {\n\t\t\t\tSystem.out.print(arr[x] + \", \");\n\t\t\t}\n\t\t}\n\t\tSystem.out.println(\"]\");\n\t}\n\n\t// \n\tpublic static void bubbleSort(int[] arr) {\n\t\tfor (int x = 0; x < arr.length - 1; x++) {\n\t\t\tfor (int y = 0; y < arr.length - 1 - x; y++) {\n\t\t\t\tif (arr[y] > arr[y + 1]) {\n\t\t\t\t\tint temp = arr[y];\n\t\t\t\t\tarr[y] = arr[y + 1];\n\t\t\t\t\tarr[y + 1] = temp;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day13/code/day13_Array_Arrays/src/cn/itcast_02/ArrayDemo.java",
    "content": "package cn.itcast_02;\n\n/*\n * ѡ\n */\npublic class ArrayDemo {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\tint[] arr = { 24, 69, 80, 57, 13 };\n\n\t\t/*\n\t\t * // һ int x = 0; for (int y = x + 1; y < arr.length; y++) { if\n\t\t * (arr[y] < arr[x]) { int temp = arr[x]; arr[x] = arr[y]; arr[y] =\n\t\t * temp; } } System.out.println(\"һαȽϣ\"); //  printArray(arr);\n\t\t * \n\t\t * // ڶ x = 1; for (int y = x + 1; y < arr.length; y++) { if (arr[y] <\n\t\t * arr[x]) { int temp = arr[x]; arr[x] = arr[y]; arr[y] = temp; } }\n\t\t * System.out.println(\"ڶαȽϣ\"); //  printArray(arr);\n\t\t * \n\t\t * //  x = 2; for (int y = x + 1; y < arr.length; y++) { if (arr[y] <\n\t\t * arr[x]) { int temp = arr[x]; arr[x] = arr[y]; arr[y] = temp; } }\n\t\t * System.out.println(\"αȽϣ\"); //  printArray(arr);\n\t\t * \n\t\t * // Ĵ x = 3; for (int y = x + 1; y < arr.length; y++) { if (arr[y] <\n\t\t * arr[x]) { int temp = arr[x]; arr[x] = arr[y]; arr[y] = temp; } }\n\t\t * System.out.println(\"ĴαȽϣ\"); //  printArray(arr);\n\t\t */\n\n\t\t// for (int x = 0; x < arr.length - 1; x++) {\n\t\t// for (int y = x + 1; y < arr.length; y++) {\n\t\t// if (arr[y] < arr[x]) {\n\t\t// int temp = arr[x];\n\t\t// arr[x] = arr[y];\n\t\t// arr[y] = temp;\n\t\t// }\n\t\t// }\n\t\t// }\n\n\t\t// ѡ\n\t\tselectSort(arr);\n\t\t// \n\t\tprintArray(arr);\n\t}\n\n\t// ѡ\n\tpublic static void selectSort(int[] arr) {\n\t\tfor (int x = 0; x < arr.length - 1; x++) {\n\t\t\tfor (int y = x + 1; y < arr.length; y++) {\n\t\t\t\tif (arr[y] < arr[x]) {\n\t\t\t\t\tint temp = arr[x];\n\t\t\t\t\tarr[x] = arr[y];\n\t\t\t\t\tarr[y] = temp;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// \n\tpublic static void printArray(int[] arr) {\n\t\tSystem.out.print(\"[\");\n\t\tfor (int x = 0; x < arr.length; x++) {\n\t\t\tif (x == arr.length - 1) {\n\t\t\t\tSystem.out.print(arr[x]);\n\t\t\t} else {\n\t\t\t\tSystem.out.print(arr[x] + \", \");\n\t\t\t}\n\t\t}\n\t\tSystem.out.println(\"]\");\n\t}\n}\n"
  },
  {
    "path": "day13/code/day13_Array_Arrays/src/cn/itcast_03/ArrayDemo.java",
    "content": "package cn.itcast_03;\n\n/*\n * Ԫأ\n * \t\t  Ԫ\n *\t\tֲ  Ԫ(۰)\n */\npublic class ArrayDemo {\n\tpublic static void main(String[] args) {\n\t\t// int[] arr = { 24, 69, 80, 57, 13 };\n\t\t// Ҫ80е\n\n\t\t// µ\n\t\tint[] arr = { 13, 24, 57, 69, 80 };\n\t\t// Ҫ80е\n\t\tint index = getIndex(arr, 57);\n\t\tSystem.out.println(index);\n\n\t\tindex = getIndex(arr, 88);\n\t\tSystem.out.println(index);\n\n\t}\n\n\tpublic static int getIndex(int[] arr, int value) {\n\t\tint minIndex = 0;\n\t\tint maxIndex = arr.length - 1;\n\t\tint middleIndex = (minIndex + maxIndex) / 2;\n\n\t\twhile (value != arr[middleIndex]) {\n\t\t\tif (value > arr[middleIndex]) {\n\t\t\t\tminIndex = middleIndex + 1;\n\t\t\t} else if (value < arr[middleIndex]) {\n\t\t\t\tmaxIndex = middleIndex - 1;\n\t\t\t}\n\n\t\t\t// һж\n\t\t\tif (maxIndex < minIndex) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// дмֵ\n\t\t\tmiddleIndex = (minIndex + maxIndex) / 2;\n\t\t}\n\n\t\treturn middleIndex;\n\t}\n\n\t// ͨ\n\t// public static int getIndex(int[] arr, int value) {\n\t// int index = -1;\n\t//\n\t// for (int x = 0; x < arr.length; x++) {\n\t// if (arr[x] == value) {\n\t// index = x;\n\t// break;\n\t// }\n\t// }\n\t//\n\t// return index;\n\t// }\n}\n"
  },
  {
    "path": "day13/code/day13_Array_Arrays/src/cn/itcast_04/ArrayDemo.java",
    "content": "package cn.itcast_04;\n\n/*\n * ַеַ\n *dacgebf\n *abcdefg\n */\npublic class ArrayDemo {\n\tpublic static void main(String[] args) {\n\t\t// ַ\n\t\tString s = \"dacgebf\";\n\n\t\t// ַתַ\n\t\tchar[] chs = s.toCharArray();\n\n\t\t// ַ\n\t\tbubbleSort(chs);\n\n\t\t// ַתַ\n\t\tString result = String.valueOf(chs);\n\n\t\tSystem.out.println(result);\n\t}\n\n\tpublic static void bubbleSort(char[] chs) {\n\t\tfor (int x = 0; x < chs.length - 1; x++) {\n\t\t\tfor (int y = 0; y < chs.length - 1 - x; y++) {\n\t\t\t\tif (chs[y] > chs[y + 1]) {\n\t\t\t\t\tchar temp = chs[y];\n\t\t\t\t\tchs[y] = chs[y + 1];\n\t\t\t\t\tchs[y + 1] = temp;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day13/code/day13_Array_Arrays/src/cn/itcast_05/ArraysDemo.java",
    "content": "package cn.itcast_05;\n\nimport java.util.Arrays;\n\n/*\n * Arrays:вĹࡣṩ򣬲ҵȹܡ\n * \n * Ա\n * \t\tpublic static String toString(int[] a):תַ\n *\t\tpublic static void sort(int[] a):()\n *\t\tpublic static int binarySearch(int[] a,int key):ֲ\n *\n * ע⣺\n * \t\t鱾ģֱʹöֲҡ\n * \t\tңٶҲģΪ͸ıԪԭʼλá\n */\npublic class ArraysDemo {\n\tpublic static void main(String[] args) {\n\t\tint[] arr = { 24, 13, 69, 80, 57 };\n\n\t\t// System.out.println(arr);// [I@a0834e7\n\n\t\t// public static String toString(int[] a):תַ\n\t\tSystem.out.println(Arrays.toString(arr)); // [24, 13, 69, 80, 57]\n\n\t\t// public static void sort(int[] a):()\n\t\tArrays.sort(arr);\n\t\tSystem.out.println(Arrays.toString(arr)); // [13, 24, 57, 69, 80]\n\n\t\t// public static int binarySearch(int[] a,int key):ֲ\n\t\t// [13, 24, 57, 69, 80]\n\t\tSystem.out.println(Arrays.binarySearch(arr, 24));\n\t\tSystem.out.println(Arrays.binarySearch(arr, 244)); // ??? -6\n\t}\n}\n"
  },
  {
    "path": "day13/code/day13_Array_Arrays/src/cn/itcast_05/Arrays工具类的源码.txt",
    "content": "1:public static String toString(int[] a)\n\n \tpublic static String toString(int[] a) {\n \t\t//a -- arr -- { 24, 13, 69, 80, 57 };\n \t\t\n        if (a == null)\n            return \"null\";\n            \n        int iMax = a.length - 1; //4\n        \n        if (iMax == -1)\t//ûԪ\n            return \"[]\";\n\n        StringBuilder b = new StringBuilder();\n        b.append('['); //[24, 13, 69, 80, 57]\n        for (int i = 0; ; i++) {\n            b.append(a[i]);\n            if (i == iMax)\n                return b.append(']').toString();\n            b.append(\", \");\n        }\n    }\n    \n    int[] arr = { 24, 13, 69, 80, 57 };\n    System.out.println(Arrays.toString(arr));\n----------------------------------------------------------\n\n2:public static int binarySearch(int[] a,int key)\n\n\tpublic static int binarySearch(int[] a, int key) {\n\t\t//a -- arr -- { 24, 13, 69, 80, 57 }\n\t\t//key -- 244\n        return binarySearch0(a, 0, a.length, key);\n    }\n    \n    private static int binarySearch0(int[] a, int fromIndex, int toIndex,\n                                     int key) {\n        //a -- { 13, 24, 5769 80}\n        //fromIndex = 0\n        //toIndex = 5\n        //key = 244;                  \n                                                  \n        int low = fromIndex; //0\n        int high = toIndex - 1; //4\n\n        while (low <= high) {\n            int mid = (low + high) >>> 1; //2,3,4\n            int midVal = a[mid];  //57,69,80\n\n            if (midVal < key)\n                low = mid + 1; //345\n            else if (midVal > key)\n                high = mid - 1;\n            else\n                return mid; // key found\n        }\n        return -(low + 1);  // key not found.\n    }\n    \n    int[] arr = { 24, 13, 69, 80, 57 };\n    System.out.println(Arrays.binarySearch(arr, 244));"
  },
  {
    "path": "day13/code/day13_Character/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day13/code/day13_Character/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day13_Character</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day13/code/day13_Character/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day13/code/day13_Character/src/cn/itcast_01/CharacterDemo.java",
    "content": "package cn.itcast_01;\n\n/*\n * Character ڶаװһ char ֵ,⣬ṩ˼ַȷַСдĸ֣ȵȣַӴдתСд֮Ȼ\n */\npublic class CharacterDemo {\n\tpublic static void main(String[] args) {\n\t\t// 췽\n\t\t// Character(char value)\n\t\tCharacter ch = new Character('a');\n\t\tSystem.out.println(ch);\n\t}\n}\n"
  },
  {
    "path": "day13/code/day13_Character/src/cn/itcast_02/CharacterDemo.java",
    "content": "package cn.itcast_02;\n\npublic class CharacterDemo {\n\tpublic static void main(String[] args) {\n\t\t// public static boolean isUpperCase(char ch)\n\t\tSystem.out.println(Character.isUpperCase('a'));\n\t\tSystem.out.println(Character.isUpperCase('A'));\n\t\tSystem.out.println(Character.isUpperCase('0'));\n\t\t// public static boolean isLowerCase(char ch)\n\t\tSystem.out.println(Character.isLowerCase('a'));\n\t\tSystem.out.println(Character.isLowerCase('A'));\n\t\tSystem.out.println(Character.isLowerCase('0'));\n\t\t// public static boolean isDigit(char ch)\n\t\tSystem.out.println(Character.isDigit('a'));\n\t\tSystem.out.println(Character.isDigit('A'));\n\t\tSystem.out.println(Character.isDigit('0'));\n\t\t// public static char toUpperCase(char ch)\n\t\tSystem.out.println(Character.toUpperCase('a'));\n\t\tSystem.out.println(Character.toUpperCase('A'));\n\t\t// public static char toLowerCase(char ch)\n\t\tSystem.out.println(Character.toLowerCase('a'));\n\t\tSystem.out.println(Character.toLowerCase('A'));\n\t}\n}\n"
  },
  {
    "path": "day13/code/day13_Integer/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day13/code/day13_Integer/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day13_Integer</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day13/code/day13_Integer/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day13/code/day13_Integer/src/cn/itcast_01/IntegerDemo.java",
    "content": "package cn.itcast_01;\n\n/*\n * 1ҸһݣҪжǲintΧ?ô?\n * 2Ҹһ100ҪõĶƣ˽ƣʮ? ƣƣ߽???\n * ôûбȽϼ򵥵ķʽʵ?С\n * ģΪûйܿʹáԣֵĲйʵ֡\n * Ȼǵùܼɡ\n * Ϊ˼ԻݵĸӵĲjavaÿֻṩһװͣͰװࡣ\n * byte\t\tByte\n * short\tShort\n * int\t\tInteger\n * long\t\tLong\n * float\tFloat\n * double\tDouble\n * char\t\tCharacter\n * boolean\tBoolean\n */\npublic class IntegerDemo {\n\tpublic static void main(String[] args) {\n\t\t// public static final int MAX_VALUE\n\t\t// public static final int MIN_VALUE\n\t\t// if(>=Integer.MIN_VALUE && <=Integer.MAX_VALUE){}\n\n\t\t// public static String toBinaryString(int i)\n\t\tSystem.out.println(Integer.toBinaryString(100));\n\t\t// public static String toOctalString(int i)\n\t\tSystem.out.println(Integer.toOctalString(100));\n\t\t// public static String toHexString(int i)\n\t\tSystem.out.println(Integer.toHexString(100));\n\t}\n}\n"
  },
  {
    "path": "day13/code/day13_Integer/src/cn/itcast_02/IntegerDemo.java",
    "content": "package cn.itcast_02;\n\n/*\n * IntegerĹ췽\n * Integer(int value) int͵ֵװInteger\n * Integer(String s): ͵ַתInteger\n */\npublic class IntegerDemo {\n\tpublic static void main(String[] args) {\n\t\t// ʽ1\n\t\tint number = 100;\n\t\tInteger i = new Integer(number);\n\t\tSystem.out.println(\"i:\" + i);\n\n\t\t// ʽ2\n\t\tString s = \"100\";\n\t\t// String s = \"abc\"; // NumberFormatException:Ϊݲʽַ\n\t\tInteger i2 = new Integer(s);\n\t\tSystem.out.println(\"i2:\" + i2);\n\t}\n}"
  },
  {
    "path": "day13/code/day13_Integer/src/cn/itcast_03/IntegerDemo.java",
    "content": "package cn.itcast_03;\n\n/*\n * intString͵໥תɡ\n * \n * int -- String\n * \t\tString.valueOf(number)\n * \t\tInteger.toString(number)\n * \n * String -- int\n * \t\tInteger.parseInt(s);\n */\npublic class IntegerDemo {\n\tpublic static void main(String[] args) {\n\t\t// int -- String\n\t\tint number = 100;\n\t\t// 1\n\t\tString s1 = number + \"\";\n\t\t//ʽ2\n\t\tString s2 = String.valueOf(number);\n\t\t//ʽ3\n\t\t//int -- Integer -- String\n\t\tInteger i = new Integer(number);\n\t\tString s3 = i.toString();\n\t\t//ʽ4\n\t\tString s4 = Integer.toString(number);\n\t\tSystem.out.println(\"--------------\");\n\n\t\tString s = \"100\";\n\t\t//ʽ1\n\t\t//String -- Integer -- int\n\t\tInteger ii = new Integer(s);\n\t\t//public int intValue()\n\t\tint num = ii.intValue();\n\t\t//ʽ2\n\t\t//public static int parseInt(String s)\n\t\tint num2 = Integer.parseInt(s);\n\t}\n}\n"
  },
  {
    "path": "day13/code/day13_Integer/src/cn/itcast_04/IntegerDemo.java",
    "content": "package cn.itcast_04;\n\n/*\n * õĻת\n *\t\tpublic static String toBinaryString(int i)\n *\t\tpublic static String toOctalString(int i)\n *\t\tpublic static String toHexString(int i)\n * ʮƵ\n *\t\tpublic static String toString(int i,int radix)\n *Ƶʮ\n *\t\tpublic static int parseInt(String s,int radix)\n */\npublic class IntegerDemo {\n\tpublic static void main(String[] args) {\n\t\t// public static String toString(int i,int radix):\n\t\t// ͨ򵥵Ĳԣ֪˽ƵķΧ2-36\n\t\tSystem.out.println(Integer.toString(100, 2));\n\t\tSystem.out.println(Integer.toString(100, 8));\n\t\tSystem.out.println(Integer.toString(100, 16));\n\t\tSystem.out.println(Integer.toString(100, 1));\n\t\tSystem.out.println(Integer.toString(100, 100));\n\t\tSystem.out.println(Integer.toString(100, 50));\n\t\tSystem.out.println(Integer.toString(100, 25));\n\t\tSystem.out.println(Integer.toString(100, 37));\n\t\tSystem.out.println(Integer.toString(100, 32));\n\t\tSystem.out.println(Integer.toString(100, 35));\n\t\tSystem.out.println(Integer.toString(100, 36));\n\t\tSystem.out.println(Integer.toString(100, 7));\n\t\tSystem.out.println(\"----------------------\");\n\n\t\t// Ƶʮ\n\t\t// public static int parseInt(String s,int radix)\n\t\tSystem.out.println(Integer.parseInt(\"100\", 2));\n\t\tSystem.out.println(Integer.parseInt(\"100\", 8));\n\t\tSystem.out.println(Integer.parseInt(\"100\", 16));\n\t\tSystem.out.println(Integer.parseInt(\"300\", 12));\n\n\t}\n}\n"
  },
  {
    "path": "day13/code/day13_Integer/src/cn/itcast_05/IntegerDemo.java",
    "content": "package cn.itcast_05;\n\n/*\n * JDK5ԣ\n * \t\tԶװ:int -- Integer\n * \t\t\t\tײ㷽public static Integer valueOf(int i)\n * \t\tԶ䣺Integer -- int\n * \t\t\t\tײ㷽public int intValue()\n * \n * ע⣺Ϊnull\n * ԭֻҪǶ϶ж϶ǷΪnullΪnullż\n */\npublic class IntegerDemo {\n\tpublic static void main(String[] args) {\n\t\t// Integer i = new Integer(100);\n\t\tInteger i = 100; // Զװ\n\t\t// Integer i = Integer.valueOf(100);\n\n\t\ti += 200; // i = i + 200\n\t\t// i = Integer.valueOf(i.intValue() + 200);\n\n\t\tSystem.out.println(i);\n\t}\n}\n"
  },
  {
    "path": "day13/code/day13_Integer/src/cn/itcast_06/IntegerDemo.java",
    "content": "package cn.itcast_06;\n\n//д:byteΧĻ\npublic class IntegerDemo {\n\tpublic static void main(String[] args) {\n\t\tInteger i1 = new Integer(127);\n\t\tInteger i2 = new Integer(127);\n\t\tSystem.out.println(i1 == i2);// false\n\t\tSystem.out.println(i1.equals(i2));// true\n\n\t\tInteger i3 = new Integer(128);\n\t\tInteger i4 = new Integer(128);\n\t\tSystem.out.println(i3 == i4);// false\n\t\tSystem.out.println(i3.equals(i4));// true\n\n\t\tInteger i5 = 127;\n\t\tInteger i6 = 127;\n\t\tSystem.out.println(i5 == i6);// true\n\t\tSystem.out.println(i5.equals(i6));// true\n\n\t\tInteger i7 = 128;\n\t\tInteger i8 = 128;\n\t\tSystem.out.println(i7 == i8);// false\n\t\tSystem.out.println(i7.equals(i8));// true\n\n\t\t// Ҫ֪Ϊʲôͱ뿴Դ롣\n\t\t// public static Integer valueOf(int i)\n\t\t//char ch = 127;\n\t\t//Integer i = Integer.valueOf(ch);\n\t\t// ͨ鿴Դ֪-128127֮䣬Ǵһзصġ\n\t\t// Χڣ´newĶ\n\t}\n}\n"
  },
  {
    "path": "day13/code/day13_StringBuffer/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day13/code/day13_StringBuffer/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day13_StringBuffer</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day13/code/day13_StringBuffer/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day13/code/day13_StringBuffer/src/cn/itcast_01/StringBufferDemo.java",
    "content": "package cn.itcast_01;\n\n/*\n * StringBuffer:̰߳ȫĿɱַ\n * ͨ鿴API֪ˣǿԸıݺͳȵġ\n * \n * StringBufferString?\n * A:StringBufferĳȿɱ\n * B:Stringĳȹ̶\n * \n * 췽\n * \t\tStringBuffer() һвַַʼΪ 16 ַ\n * \t\tStringBuffer(int capacity)һַָʼַ\n * \t\tStringBuffer(String str):һַݳʼΪַָݡ\n * \n * Ա\n * \t\tpublic int length():سȣַʵֵ\n * \t\tpublic int capacity():صǰ\tֵ\n */\npublic class StringBufferDemo {\n\tpublic static void main(String[] args) {\n\t\t// StringBuffer() һвַַʼΪ 16 ַ\n\t\tStringBuffer sb = new StringBuffer();\n\t\tSystem.out.println(\"sb:\" + sb);\n\t\tSystem.out.println(\"sb.length():\" + sb.length());\n\t\tSystem.out.println(\"sb.capacity():\" + sb.capacity());\n\t\tSystem.out.println(\"----------------------------\");\n\n\t\t// StringBuffer(int capacity)һַָʼַ\n\t\tStringBuffer sb2 = new StringBuffer(20);\n\t\tSystem.out.println(\"sb2:\" + sb2);\n\t\tSystem.out.println(\"sb2.length():\" + sb2.length());\n\t\tSystem.out.println(\"sb2.capacity():\" + sb2.capacity());\n\t\tSystem.out.println(\"----------------------------\");\n\n\t\t// StringBuffer(String str):һַݳʼΪַָݡ\n\t\tStringBuffer sb3 = new StringBuffer(\"helloworld\");\n\t\tSystem.out.println(\"sb3:\" + sb3);\n\t\tSystem.out.println(\"sb3.length():\" + sb3.length());\n\t\tSystem.out.println(\"sb3.capacity():\" + sb3.capacity());\n\t}\n}\n"
  },
  {
    "path": "day13/code/day13_StringBuffer/src/cn/itcast_02/StringBufferDemo.java",
    "content": "package cn.itcast_02;\n\n/*\n * ӹܣ\n * public StringBuffer append(String str)׷ݣݵĺ档\n * public StringBuffer insert(int offset,String str):ݣָλݡ\n */\npublic class StringBufferDemo {\n\tpublic static void main(String[] args) {\n\t\t// ַ\n\t\tStringBuffer sb = new StringBuffer();\n\n\t\t// \n\t\t// public StringBuffer append(String str)׷ݣݵĺ档\n\t\t// StringBuffer sb2 = sb.append(\"hello\");\n\t\t// System.out.println(sb == sb2); // true\n\t\t// System.out.println(\"sb:\" + sb);\n\t\t// System.out.println(\"sb2:\" + sb2);\n\n\t\t// sb.append(\"hello\");\n\t\t// sb.append(\"world\");\n\t\t// sb.append(\"java\");\n\n\t\t// ʽ\n\t\tsb.append(\"hello\").append(\"world\").append(\"java\");\n\n\t\t// public StringBuffer insert(int offset,String str):ݣָλݡ\n\t\tsb.insert(5, \"ak47\");\n\n\t\tSystem.out.println(\"sb:\" + sb);\n\t}\n}\n"
  },
  {
    "path": "day13/code/day13_StringBuffer/src/cn/itcast_02/StringBufferDemo2.java",
    "content": "package cn.itcast_02;\n\n/*\n * ɾܣ \n * public StringBuffer deleteCharAt(int index)ɾָλõַ\n * public StringBuffer delete(int start,int end):ɾָλÿʼָλý\n */\npublic class StringBufferDemo2 {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\tStringBuffer buffer = new StringBuffer();\n\n\t\t// \n\t\tbuffer.append(\"hello\");\n\t\tbuffer.append(\"world\");\n\t\tbuffer.append(\"java\");\n\n\t\t// public StringBuffer deleteCharAt(int index)ɾָλõַ\n\t\t// buffer.deleteCharAt(5);\n\n\t\t// public StringBuffer delete(int start,int end):ɾָλÿʼָλý\n\t\t// buffer.delete(5, 10);\n\t\tbuffer.delete(0, buffer.length());\n\n\t\tSystem.out.println(\"buffer:\" + buffer);\n\t}\n}\n"
  },
  {
    "path": "day13/code/day13_StringBuffer/src/cn/itcast_02/StringBufferDemo3.java",
    "content": "package cn.itcast_02;\n\n/*\n * public StringBuffer replace(int start,int end,String str):øַ滻ָλÿʼָλý\n */\npublic class StringBufferDemo3 {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\tStringBuffer buffer = new StringBuffer();\n\n\t\tbuffer.append(\"hello\").append(\"world\").append(\"java\");\n\n\t\t// public StringBuffer replace(int start,int end,String\n\t\t// str):øַ滻ָλÿʼָλý\n\t\tbuffer.replace(3, 8, \"haha\");\n\n\t\tSystem.out.println(\"buffer:\" + buffer);\n\t}\n}\n"
  },
  {
    "path": "day13/code/day13_StringBuffer/src/cn/itcast_02/StringBufferDemo4.java",
    "content": "package cn.itcast_02;\n\n/*\n * ת\t public StringBuffer reverse()\n */\npublic class StringBufferDemo4 {\n\tpublic static void main(String[] args) {\n\t\tStringBuffer buffer = new StringBuffer();\n\n\t\tbuffer.append(\"java\").append(\"ϼְ\");\n\n\t\tbuffer.reverse();\n\n\t\tSystem.out.println(\"buffer:\" + buffer);\n\t}\n}\n"
  },
  {
    "path": "day13/code/day13_StringBuffer/src/cn/itcast_02/StringBufferDemo5.java",
    "content": "package cn.itcast_02;\n\n/*\n * ȡ:ֵStringͣûзı\n * public String substring(int start):ָλÿʼĩβ\n * public String substring(int start,int end):ָλÿʼָλý\n */\npublic class StringBufferDemo5 {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\tStringBuffer buffer = new StringBuffer();\n\t\tbuffer.append(\"helloworldjava\");\n\n\t\t// public String substring(int start):ָλÿʼĩβ\n\t\tString s = buffer.substring(5);\n\n\t\tSystem.out.println(\"s:\" + s);\n\t\tSystem.out.println(\"buffer:\" + buffer);\n\t}\n}\n"
  },
  {
    "path": "day13/code/day13_StringBuffer/src/cn/itcast_03/StringBufferDemo.java",
    "content": "package cn.itcast_03;\n\n/*\n * תStringBufferйܣStringûС\n * StringҪת΢鷳һ㡣ܹʹStringBufferĹܾͺˡ\n * ôǵܲһȥʹһĹ?ԡ\n * ǰ᣺֮ʵ໥ת\n */\npublic class StringBufferDemo {\n\tpublic static void main(String[] args) {\n\t\t//String -- StringBuffer;\n\t\t//StringBuffer sb = \"hello\";\n\t\t//StringBuffer(String str) \n\t\tString s = \"hello\";\n\t\tStringBuffer sb = new StringBuffer(s);\n\t\t\n\t\t//StringBuffer -- String\n\t\t//String(StringBuffer buffer) \n\t\tString ss = new String(sb);\n\t}\n}\n"
  },
  {
    "path": "day13/code/day13_StringBuffer/src/cn/itcast_04/StringBufferTest.java",
    "content": "package cn.itcast_04;\n\n/*\n * ƴӳһַ\n */\npublic class StringBufferTest {\n\tpublic static void main(String[] args) {\n\t\tint[] arr = { 11, 22, 33, 44, 55 };\n\t\t\n\t\tString result = arrayToString(arr);\n\t\tSystem.out.println(result);\n\t}\n\n\tpublic static String arrayToString(int[] arr) {\n\t\tStringBuffer sb = new StringBuffer();\n\n\t\tsb.append(\"[\");\n\t\tfor (int x = 0; x < arr.length; x++) {\n\t\t\tif (x == arr.length - 1) {\n\t\t\t\tsb.append(arr[x]);\n\t\t\t} else {\n\t\t\t\tsb.append(arr[x]).append(\", \");\n\t\t\t}\n\t\t}\n\t\tsb.append(\"]\");\n\n\t\treturn new String(sb);\n\t}\n}\n"
  },
  {
    "path": "day13/code/day13_StringBuffer/src/cn/itcast_04/StringBufferTest2.java",
    "content": "package cn.itcast_04;\n\n/*\n * ַת\n */\npublic class StringBufferTest2 {\n\tpublic static void main(String[] args) {\n\t\tString s = \"ϼְ\";\n\n\t\t// Էʽ1\n\t\t// String s2 = reverse(s);\n\t\t// System.out.println(s2);\n\n\t\t// Էʽ2\n\t\t// String s3 = reverse(s);\n\t\t// System.out.println(s3);\n\n\t\t// Էʽ3\n\t\tString s4 = reverse(s);\n\t\tSystem.out.println(s4);\n\t}\n\n\t// ʽ1\n\t// public static String reverse(String str) {\n\t// String s = \"\";\n\t//\n\t// char[] chs = str.toCharArray();\n\t// for (int x = chs.length - 1; x >= 0; x--) {\n\t// s += chs[x];\n\t// }\n\t//\n\t// return s;\n\t// }\n\n\t// ʽ2\n\t// public static String reverse(String str) {\n\t// // ַת\n\t// char[] chs = str.toCharArray();\n\t// // Ԫطת\n\t// for (int start = 0, end = chs.length - 1; start <= end; start++, end--) {\n\t// char temp = chs[start];\n\t// chs[start] = chs[end];\n\t// chs[end] = temp;\n\t// }\n\t// // תַ\n\t// return String.valueOf(chs);\n\t// }\n\n\t// ʽ3\n\tpublic static String reverse(String str) {\n\t\tStringBuffer sb = new StringBuffer(str);\n\t\tsb.reverse();\n\t\treturn new String(sb);\n\t\t\n\t\t//return new String(new StringBuffer(str).reverse());\n\t}\n}\n"
  },
  {
    "path": "day13/code/day13_StringBuffer/src/cn/itcast_04/StringBufferTest3.java",
    "content": "package cn.itcast_04;\n\n/*\n * жһַǷǶԳַ\n * \"abc\"ǶԳַ\"aba\"\"abba\"\"aaa\"\"mnanm\"ǶԳַ\n */\npublic class StringBufferTest3 {\n\tpublic static void main(String[] args) {\n\t\tString s = \"mnanm\";\n\t\t// String s = \"abcde\";\n\n\t\t// ʽ1\n\t\t// boolean b = isDuiCheng(s);\n\t\t// System.out.println(b);\n\n\t\t// ʽ2\n\t\tboolean b2 = isDuiCheng(s);\n\t\tSystem.out.println(b2);\n\n\t}\n\n\t// ʽ1\n\t// public static boolean isDuiCheng(String s) {\n\t// // ַת\n\t// char[] chs = s.toCharArray();\n\t// // Ԫطת\n\t// for (int start = 0, end = chs.length - 1; start <= end; start++, end--) {\n\t// if (chs[start] != chs[end]) {\n\t// return false;\n\t// }\n\t// }\n\t// return true;\n\t// }\n\n\t// public static boolean isDuiCheng(String s) {\n\t// boolean flag = true;\n\t// // ַת\n\t// char[] chs = s.toCharArray();\n\t// // Ԫطת\n\t// for (int start = 0, end = chs.length - 1; start <= end; start++, end--) {\n\t// if (chs[start] != chs[end]) {\n\t// flag = false;\n\t// break;\n\t// }\n\t// }\n\t// return flag;\n\t// }\n\n\t// ʽ2\n\tpublic static boolean isDuiCheng(String s) {\n\t\t// ת\n\t\tStringBuffer sb = new StringBuffer(s);\n\t\tsb.reverse();\n\t\tString ss = new String(sb);\n\t\t// if (ss.equals(s)) {\n\t\t// return true;\n\t\t// } else {\n\t\t// return false;\n\t\t// }\n\t\treturn ss.equals(s);\n\n\t\t// һ仰㶨\n\t\t// return new String(new StringBuffer(s).reverse()).equals(s);\n\t}\n}\n"
  },
  {
    "path": "day13/code/day13_StringBuffer/src/cn/itcast_05/StringBufferDemo.java",
    "content": "package cn.itcast_05;\n\n/*\n * 1:String,StringBuffer,StringBuilder?\n * A:Stringȹ̶StringBufferStringBuilderĳȿɱ䡣\n * B:StringBuffer̰߳ȫЧʵ͡StringBuilder̲߳ȫЧʸߡ\n * \n * 2:StringBuffer\n * A:StringBufferĳȿɱ䣬Դ洢ͣսʵһַ\n * B:鳤ȹ̶洢ͬһ͵Ԫء\n * \n * 3:д\n * \t\tStringΪݣStringBufferΪ\n * \n * \t\tStringһͣΪݵʱ򣬿ԵΪݵҲǳֵ\n * \t\t\n */\npublic class StringBufferDemo {\n\tpublic static void main(String[] args) {\n\t\tString s1 = \"hello\";\n\t\tString s2 = \"world\";\n\t\tSystem.out.println(s1 + \"---\" + s2); // hello---world\n\t\tchange(s1, s2);\n\t\tSystem.out.println(s1 + \"---\" + s2);// world---worldworld???\n\n\t\tStringBuffer sb1 = new StringBuffer(\"hello\");\n\t\tStringBuffer sb2 = new StringBuffer(\"world\");\n\t\tSystem.out.println(sb1 + \"---\" + sb2);// hello---world\n\t\tchange(sb1, sb2);\n\t\tSystem.out.println(sb1 + \"---\" + sb2); // world---worldworld???\n\t}\n\n\tpublic static void change(StringBuffer sb1, StringBuffer sb2) {\n\t\tSystem.out.println(sb1 + \"---\" + sb2);// hello---world\n\t\tsb1 = sb2;// sb1=\"world\"\n\t\tsb2 = sb1.append(sb2); // sb2=worldworld\n\t\tSystem.out.println(sb1 + \"---\" + sb2);// world---worldworld ???\n\t}\n\n\tpublic static void change(String s1, String s2) {\n\t\tSystem.out.println(s1 + \"---\" + s2);// hello---world\n\t\ts1 = s2; // s1=world\n\t\ts2 = s1 + s2; // s2=worldworld\n\t\tSystem.out.println(s1 + \"---\" + s2); // world---worldworld\n\t}\n}\n"
  },
  {
    "path": "day13/day13总结.txt",
    "content": "1StringBuffer/StringBuilder()\n\t(1)StringBuffer̰߳ȫĿɱַ\n\t   StringBuilder̲߳ȫĿɱַ\n\t   StringBufferĹһЧʸһЩǲȫ\n\t(2)췽\n\t\tA:StringBuffer sb = new StringBuffer();\n\t\tB:StringBuffer sb = new StringBuffer(50);\n\t\tC:StringBuffer sb = new StringBuffer(\"hello\");\n\t(3)Ա(Լ뷽˼)\n\t\tA:ӹ\n\t\t\tpublic StringBuffer append(String str):׷ַ\n\t\t\tpublic StringBuffer insert(int offset,String str):ָλòַ\n\t\tB:ɾ\n\t\t\tpublic StringBuffer deleteCharAt(int index):ɾָλַ\n\t\t\tpublic StringBuffer delete(int start,int end):ɾָʼַҲ\n\t\tC:滻\n\t\t\tpublic StringBuffer replace(int start,int end,String str):ַָʼַ\n\t\tD:ת\n\t\t\tpublic StringBuffer reverse():ת\n\t\tE:ȡ\n\t\t\tpublic String substring(int start):ָĩβַ\n\t\t\tpublic String substring(int start,int end):ָʼַָ\n\t(4)\n\t\tA:StringStringBuffer໥ת\n\t\t\tͨ켴ɡ\n\t\tB:תַָʽ\n\t\tC:ַת\n\t\tD:жһַǷǶԳַ\n\n2߼()\n\t(1)\n\t\tA:ð\n\t\t\tԪأȽϣš\n\n\t\t\tpublic static void bubbleSort(int[] arr) {\n\t\t\t\tfor(int x=0; x<arr.length-1; x++) {\n\t\t\t\t\tfor(int y=0; y<arr.length-1-x; y++) {\n\t\t\t\t\t\tif(arr[y]>arr[y+1]) {\n\t\t\t\t\t\t\tint temp = arr[y];\n\t\t\t\t\t\t\tarr[y] = arr[y+1];\n\t\t\t\t\t\t\tarr[y+1] = temp;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\tB:ѡ\n\t\t\t0ʼκͺıȽϣСǰš\n\n\t\t\tpublic static void selectSort(int[] arr) {\n\t\t\t\tfor(int x=0; x<arr.length-1; x++) {\n\t\t\t\t\tfor(int y=x+1; y<arr.length; y++) {\n\t\t\t\t\t\tif(arr[y] < arr[x]) {\n\t\t\t\t\t\t\tint temp = arr[x];\n\t\t\t\t\t\t\tarr[x] = arr[y];\n\t\t\t\t\t\t\t arr[y] = temp;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t(2)\n\t\tA:\n\t\t\t\n\t\tB:ֲ\n\t\t\t\n\n\t\t\tpublic static int getIndex(int[] arr,int value) {\n\t\t\t\tint max = arr.length-1;\n\t\t\t\tint min = 0;\n\t\t\t\tint mid = (max+min)/2;\n\n\t\t\t\twhile(arr[mid] != value) {\n\t\t\t\t\tif(arr[mid] > value) {\n\t\t\t\t\t\tmax = mid - 1;\n\t\t\t\t\t}else if(arr[mid] < value) {\n\t\t\t\t\t\tmin = mid + 1;\n\t\t\t\t\t}\n\n\t\t\t\t\tif(max < min) {\n\t\t\t\t\t\treturn -1;\n\t\t\t\t\t}\n\n\t\t\t\t\tmid = (max+min)/2;\n\t\t\t\t}\n\n\t\t\t\treturn mid;\n\t\t\t}\n\n3Arrays()\n\t(1)ArraysвĹ࣬ṩͲҵȹ\n\t(2)Ա(Լ뷽˼)\n\t\tA:תַ\n\t\t\tpublic static String toString():תַ\n\t\tB:\n\t\t\tpublic static void sort()\n\t\tC:ֲ\n\t\t\tpublic static int binarySearch(int[] arr,int key)\n\t(3)\n\t\tַеַ\n\n4Ͱװ()\n\t(1)ΪǶԻͽиĲjavaÿֻṩ˶Ӧİװ͡\n\t(2)ֱЩ?\n\t\tbyte\t\tByte\n\t\tshort\t\tShort\n\t\tint\t\tInteger\n\t\tlong\t\tLong\n\t\tfloat\t\tFloat\n\t\tdouble\t\tDouble\n\t\tchar\t\tCharacter\n\t\tboolean\t\tBoolean\n\t⣺  void\t\tVoid\n\t(3)Integer\n\t\tA:췽\n\t\t\ta:Integer i = new Integer(100);\n\t\t\tb:Integer i = new Integer(\"100\");\n\t\tB:Ա(Լ뷽˼)\n\t\t\ta:ַתint\n\t\t\t\tString-int:Integer.parseInt()\n\t\t\t\tint-String:String.valueOf()\n\t\t\t\t\t   Integer.toString()\n\t\tC:JDK5\n\t\t\tԶװ䣺\n\t\t\t\tint -- Integer\t\t//Integer.valueOf()\n\t\t\tԶ䣺\n\t\t\t\tInteger -- int\t\t//Integer.intValue()\n\n\t\t\tͣ\n\t\t\t\tInteger i = 100;\n\t\t\t\ti+=200;\n\t\t\t\tSystem.out.println(i);\n\t\tD:byte\n\t\t\tbyte,short,char--->С127-6Ĵ(鿴JDK)\n\t(4)Character\n\t\tA:췽\n\t\t\tCharacter ch = new Character('a');\n\t\tB:Ա(Լ뷽˼)\n\t\t\ta:жַǷǴдĸ\n\t\t\t\tpublic boolean isUpperCase(char ch)\n\t\t\tb:жַǷСдĸ\n\t\t\t\tpublic boolean isLowerCase(Char ch)\n\t\t\tc:жַǷַ\n\t\t\t\tpublic boolean isDigit(Char ch)\n\t\t\td:ַתɴд\n\t\t\t\tpublic Char toUpperCase(Char ch)\n\n\t\t\te:ַתСд\n\t\t\t\tpublic Char toLowerCase(Char ch)"
  },
  {
    "path": "day14/code/day14_BigInteger_BigDecimal/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day14/code/day14_BigInteger_BigDecimal/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day14_BigInteger_BigDecimal</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day14/code/day14_BigInteger_BigDecimal/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day14/code/day14_BigInteger_BigDecimal/src/cn/itcast_01/BigIntegerDemo.java",
    "content": "package cn.itcast_01;\n\nimport java.math.BigInteger;\n\n/*\n * BigInteger:ʵִļ\n * 췽BigInteger(String val)\n */\npublic class BigIntegerDemo {\n\tpublic static void main(String[] args) {\n\t\t// System.out.println(Integer.MAX_VALUE); // 2147483647\n\n\t\t// Integer i = new Integer(\"2147483648\"); // NumberFormatException\n\t\t// System.out.println(i);\n\n\t\tBigInteger bi = new BigInteger(\"2147483648\");\n\t\tSystem.out.println(bi);\n\t}\n}\n"
  },
  {
    "path": "day14/code/day14_BigInteger_BigDecimal/src/cn/itcast_01/BigIntegerDemo2.java",
    "content": "package cn.itcast_01;\n\nimport java.math.BigInteger;\n\npublic class BigIntegerDemo2 {\n\tpublic static void main(String[] args) {\n\t\tBigInteger bi1 = new BigInteger(\"20\");\n\t\tBigInteger bi2 = new BigInteger(\"10\");\n\n\t\t// public BigInteger add(BigInteger val)\n\t\tSystem.out.println(\"add:\" + bi1.add(bi2));\n\n\t\t// public BigInteger subtract(BigInteger val)\n\t\tSystem.out.println(\"subtract:\" + bi1.subtract(bi2));\n\n\t\t// public BigInteger multiply(BigInteger val)\n\t\tSystem.out.println(\"multiply:\" + bi1.multiply(bi2));\n\n\t\t// public BigInteger divide(BigInteger val)\n\t\tSystem.out.println(\"divide:\" + bi1.divide(bi2));\n\n\t\t// public BigInteger[] divideAndRemainder(BigInteger val)\n\t\tBigInteger[] bis = bi1.divideAndRemainder(bi2);\n\t\tfor (int x = 0; x < bis.length; x++) {\n\t\t\tSystem.out.println(bis[x]);\n\t\t}\n\n\t}\n}\n"
  },
  {
    "path": "day14/code/day14_BigInteger_BigDecimal/src/cn/itcast_02/BigDecimalDemo.java",
    "content": "package cn.itcast_02;\n\npublic class BigDecimalDemo {\n\tpublic static void main(String[] args) {\n\t\t// д\n\t\tSystem.out.println(0.09 + 0.01); // 0.1\n\t\tSystem.out.println(1.0 - 0.32); // 0.68\n\t\tSystem.out.println(1.015 * 100); // 101.5\n\t\tSystem.out.println(1.301 / 100);// 0.01301\n\t\t\n\t\t//0.5 1/2\n\t\t//0.25 1/4\n\t\t//0.125\t1/8\n\t\t//0.0625 1/16\n\t\t//0.4 = 0.25 + 0.125 + ...\n\t}\n}"
  },
  {
    "path": "day14/code/day14_BigInteger_BigDecimal/src/cn/itcast_02/BigDecimalDemo2.java",
    "content": "package cn.itcast_02;\n\nimport java.math.BigDecimal;\n\n/*\n * ʱfloatͺdouble׶ʧȣʾԣΪܾȷıʾ㸡JavaṩBigDecimal\n * \n * public BigDecimal(String val)\n */\npublic class BigDecimalDemo2 {\n\tpublic static void main(String[] args) {\n\t\t// System.out.println(0.09 + 0.01); // 0.1\n\t\t// System.out.println(1.0 - 0.32); // 0.68\n\t\t// System.out.println(1.015 * 100); // 101.5\n\t\t// System.out.println(1.301 / 100);// 0.01301\n\n\t\t// public BigDecimal add(BigDecimal augend)\n\t\tBigDecimal bd1 = new BigDecimal(\"0.09\");\n\t\tBigDecimal bd2 = new BigDecimal(\"0.01\");\n\t\tSystem.out.println(\"add:\" + bd1.add(bd2));\n\n\t\t// public BigDecimal subtract(BigDecimal subtrahend)\n\t\tBigDecimal bd3 = new BigDecimal(\"1.0\");\n\t\tBigDecimal bd4 = new BigDecimal(\"0.32\");\n\t\tSystem.out.println(\"subtract:\" + bd3.subtract(bd4));\n\n\t\t// public BigDecimal multiply(BigDecimal multiplicand)\n\t\tBigDecimal bd5 = new BigDecimal(\"1.015\");\n\t\tBigDecimal bd6 = new BigDecimal(\"100\");\n\t\tSystem.out.println(\"subtract:\" + bd5.multiply(bd6));\n\n\t\t// public BigDecimal divide(BigDecimal divisor)\n\t\tBigDecimal bd7 = new BigDecimal(\"1.301\");\n\t\tBigDecimal bd8 = new BigDecimal(\"100\");\n\t\tSystem.out.println(\"divide:\" + bd7.divide(bd8));\n\t\t// public BigDecimal divide(BigDecimal divisor,int scale,\n\t\t// int roundingMode)\n\t\tSystem.out.println(bd7.divide(bd8, 2, BigDecimal.ROUND_HALF_UP));\n\t\tSystem.out.println(bd7.divide(bd8, 3, BigDecimal.ROUND_HALF_UP));\n\t\tSystem.out.println(bd7.divide(bd8, 4, BigDecimal.ROUND_HALF_UP));\n\t}\n}\n"
  },
  {
    "path": "day14/code/day14_Date_DateFormat_Calendar/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day14/code/day14_Date_DateFormat_Calendar/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day14_Date_DateFormat_Calendar</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day14/code/day14_Date_DateFormat_Calendar/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day14/code/day14_Date_DateFormat_Calendar/src/cn/itcast_01/DateDemo.java",
    "content": "package cn.itcast_01;\n\nimport java.util.Date;\n\n/*\n *  Date ʾض˲䣬ȷ롣 \n * \n * 췽\n * \t\tpublic Date():ĬϾǵǰʱ\n *\t\tpublic Date(long date):Ѹĺֵֵڶ\n *\n * Ա\n * \t\tpublic long getTime()ȡֵ\n *\t\tpublic void setTime(long time):ѺֵΪ\n */\npublic class DateDemo {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\tDate d = new Date();\n\t\tSystem.out.println(\"d:\" + d);\n\n\t\t// try {\n\t\t// Thread.sleep(1000);\n\t\t// } catch (InterruptedException e) {\n\t\t// e.printStackTrace();\n\t\t// }\n\n\t\tlong time = System.currentTimeMillis(); // ȡǰʱĺֵ\n\t\tDate d2 = new Date(time);// ѺֵתΪڱʾ\n\t\tSystem.out.println(\"d2:\" + d2);\n\n\t\tDate d3 = new Date(3600000);\n\t\t// 3600000/1000/60/60 = 1Сʱ\n\t\tSystem.out.println(\"d3:\" + d3);\n\t\tSystem.out.println(\"--------------------\");\n\n\t\tDate d4 = new Date();\n\t\t// long t = d4.getTime();\n\t\t// long t2 = System.currentTimeMillis();\n\t\t// System.out.println(t);\n\t\t// System.out.println(t2);\n\n\t\td4.setTime(36000000);\n\t\tSystem.out.println(\"d4:\" + d4);\n\n\t}\n}\n"
  },
  {
    "path": "day14/code/day14_Date_DateFormat_Calendar/src/cn/itcast_02/DateFormatDemo.java",
    "content": "package cn.itcast_02;\n\nimport java.text.ParseException;\nimport java.text.SimpleDateFormat;\nimport java.util.Date;\n\n/*\n * DateFormat:ڽиʽͽĳࡣ\n * ԣѧϰಢʹá\n * SimpleDateForamt\n * ʽ -> ı\n * \t\tDate\t--\tString\n * \t\t\t\tpublic final String format(Date date)\n * \t\t\t\tģʽҪʲôдʲô\n * ı -> ڣ\n * \t\tString \t-- \tDate\n * \t\t\t\tpublic Date parse(String source)\n * \t\t\t\tģʽ͸ַƥ䡣\n */\npublic class DateFormatDemo {\n\tpublic static void main(String[] args) throws ParseException {\n\t\t// Date -- String\n\t\tDate d = new Date();\n\t\t// public SimpleDateFormat()\n\t\t// SimpleDateFormat sdf = new SimpleDateFormat();\n\t\t// SimpleDateFormat(String pattern)\n\t\t// SimpleDateFormat sdf = new SimpleDateFormat(\"yyyyMMdd HH:mm:ss\");\n\t\t// SimpleDateFormat sdf = new SimpleDateFormat(\"yyyyMMdd\");\n\t\tSimpleDateFormat sdf = new SimpleDateFormat(\"HH:mm:ss\");\n\t\t// public final String format(Date date)\n\t\tString result = sdf.format(d);\n\t\tSystem.out.println(result);\n\t\tSystem.out.println(\"-------------------------------------------------\");\n\n\t\tString s = \"2008-08-08 12:23:34\";\n\t\tSimpleDateFormat sdf2 = new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\");\n\t\t// public Date parse(String source)\n\t\tDate dd = sdf2.parse(s);\n\t\tSystem.out.println(dd);\n\t}\n}\n"
  },
  {
    "path": "day14/code/day14_Date_DateFormat_Calendar/src/cn/itcast_02/DateTool.java",
    "content": "package cn.itcast_02;\n\nimport java.text.SimpleDateFormat;\nimport java.util.Date;\n\n/**\n * ǲڵĹ\n * \n * @author fqy\n * @version V1.0\n */\npublic class DateTool {\n\tprivate DateTool() {\n\t}\n\n\t/**\n\t * ǻȡʱķ ʽ1997-06-01 12:23:34\n\t * \n\t * @param d\n\t * @return\n\t */\n\tpublic static String getRiQi(Date d) {\n\t\t// SimpleDateFormat sdf = new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\");\n\t\t// String s = sdf.format(d);\n\t\t// return s;\n\t\treturn new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\").format(d);\n\t}\n\n\t/**\n\t * ǻȡյķ ʽ1997-06-01\n\t * \n\t * @param d\n\t * @return\n\t */\n\tpublic static String getNYR(Date d) {\n\t\t// SimpleDateFormat sdf = new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\");\n\t\t// String s = sdf.format(d);\n\t\t// return s;\n\t\treturn new SimpleDateFormat(\"yyyy-MM-dd\").format(d);\n\t}\n\n\t/**\n\t * ǻȡʱķ ʽ12:23:34\n\t * \n\t * @param d\n\t * @return\n\t */\n\tpublic static String getSFM(Date d) {\n\t\t// SimpleDateFormat sdf = new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\");\n\t\t// String s = sdf.format(d);\n\t\t// return s;\n\t\treturn new SimpleDateFormat(\"HH:mm:ss\").format(d);\n\t}\n}\n"
  },
  {
    "path": "day14/code/day14_Date_DateFormat_Calendar/src/cn/itcast_02/DateToolTest.java",
    "content": "package cn.itcast_02;\n\nimport java.util.Date;\n\npublic class DateToolTest {\n\tpublic static void main(String[] args) {\n\t\tDate d = new Date();\n\n\t\t// Ҫȡʱ\n\t\tSystem.out.println(DateTool.getRiQi(d));\n\t\tSystem.out.println(DateTool.getNYR(d));\n\t\tSystem.out.println(DateTool.getSFM(d));\n\t}\n}"
  },
  {
    "path": "day14/code/day14_Date_DateFormat_Calendar/src/cn/itcast_02/MyDayDemo.java",
    "content": "package cn.itcast_02;\n\nimport java.text.ParseException;\nimport java.text.SimpleDateFormat;\nimport java.util.Date;\nimport java.util.Scanner;\n\n/*\n * һ?\n * \n * \t\tA:¼ĳ\n * \t\tB:ַתΪһ\n * \t\tC:ͨڻȡһֵ\n * \t\tD:ȡǰʱĺֵ\n * \t\tE:D-Cõһֵ\n * \t\tF:Eõĺֵһ켴\n */\n\npublic class MyDayDemo {\n\tpublic static void main(String[] args) throws ParseException {\n\t\t// ¼ĳ\n\t\tScanner sc = new Scanner(System.in);\n\t\tSystem.out.println(\"ĳڣ(yyyy-mm-dd)\");\n\t\tString s = sc.nextLine();\n\n\t\t// ַתΪһ\n\t\tSimpleDateFormat sdf = new SimpleDateFormat(\"yyyy-mm-dd\");\n\t\tDate d = sdf.parse(s);\n\n\t\t// ͨڻȡһֵ\n\t\tlong myTime = d.getTime();\n\n\t\t// ȡǰʱĺֵ\n\t\tlong time = System.currentTimeMillis();\n\n\t\t// D-Cõһֵ\n\t\tlong dateTime = time - myTime;\n\n\t\t// ѵõĺֵһ켴\n\t\tSystem.out.println(\"Ѿ\" + (dateTime / 1000 / 60 / 60 / 24)\n\t\t\t\t+ \"\");\n\t}\n}\n"
  },
  {
    "path": "day14/code/day14_Date_DateFormat_Calendar/src/cn/itcast_03/CalendarDemo.java",
    "content": "package cn.itcast_03;\n\nimport java.util.Calendar;\n\n/*\n * Calendar:ʱָһ꣬£գʱ֣ȡҪõһʱ룬ҪԼƴݡ\n * \n * \t---\t\t꣬£գʱ֣\n * \n * public int get(int field):ظֶεֵ\n */\npublic class CalendarDemo {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\t// ֶɵǰںʱʼ\n\t\tCalendar rightNow = Calendar.getInstance(); // ̬\n\n\t\t// ȡ\n\t\tint year = rightNow.get(Calendar.YEAR);\n\t\tSystem.out.println(year);\n\t\t// ȡ\n\t\tint month = rightNow.get(Calendar.MONTH);\n\t\tSystem.out.println(month + 1);\n\t\t// ȡ\n\t\tint date = rightNow.get(Calendar.DATE);\n\t\tSystem.out.println(date);\n\t\t// ȡʱ\n\t\tint hour = rightNow.get(Calendar.HOUR);\n\t\tSystem.out.println(hour);\n\t\t// ȡ\n\t\tint minute = rightNow.get(Calendar.MINUTE);\n\t\tSystem.out.println(minute);\n\t\t// ȡ\n\t\tint second = rightNow.get(Calendar.SECOND);\n\t\tSystem.out.println(second);\n\t}\n}\n"
  },
  {
    "path": "day14/code/day14_Date_DateFormat_Calendar/src/cn/itcast_03/CalendarDemo2.java",
    "content": "package cn.itcast_03;\n\nimport java.util.Calendar;\n\n/*\n * public void add(int field,int amount):ݸԶֵıʱ\n * public final void set(int year,int month,int date):\n */\npublic class CalendarDemo2 {\n\tpublic static void main(String[] args) {\n\t\t// ȡ\n\t\tCalendar c = Calendar.getInstance();\n\t\tSystem.out.println(c.get(Calendar.YEAR) + \"---\"\n\t\t\t\t+ (c.get(Calendar.MONTH) + 1) + \"---\" + c.get(Calendar.DATE));\n\t\tc.add(Calendar.YEAR, -3);\n\t\tc.add(Calendar.MONTH, 2);\n\t\tc.add(Calendar.DATE, -12);\n\t\tSystem.out.println(c.get(Calendar.YEAR) + \"---\"\n\t\t\t\t+ (c.get(Calendar.MONTH) + 1) + \"---\" + c.get(Calendar.DATE));\n\n\t\t// дcֵ\n\t\tc.set(2012, 3, 4);\n\t\tSystem.out.println(c.get(Calendar.YEAR) + \"---\"\n\t\t\t\t+ (c.get(Calendar.MONTH) + 1) + \"---\" + c.get(Calendar.DATE));\n\t}\n}\n"
  },
  {
    "path": "day14/code/day14_Date_DateFormat_Calendar/src/cn/itcast_03/CalendarTest.java",
    "content": "package cn.itcast_03;\n\nimport java.util.Calendar;\nimport java.util.Scanner;\n\npublic class CalendarTest {\n\tpublic static void main(String[] args) {\n\t\t// ȡһĶж?\n\t\tCalendar c = Calendar.getInstance();\n\n\t\t// \n\t\tScanner sc = new Scanner(System.in);\n\t\tSystem.out.println(\"Ҫȡһ2·ݣ\");\n\t\tint year = sc.nextInt();\n\n\t\tc.set(year, 2, 1); // һ31\n\t\tc.add(Calendar.DATE, -1); // һ2һ\n\n\t\tSystem.out.println(c.get(Calendar.DATE));\n\t}\n}\n"
  },
  {
    "path": "day14/code/day14_Math_Random_System/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day14/code/day14_Math_Random_System/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day14_Math_Random_System</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day14/code/day14_Math_Random_System/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day14/code/day14_Math_Random_System/src/cn/itcast_01/MathDemo.java",
    "content": "package cn.itcast_01;\n\n/*\n * MathѧࡣǾ̬\n */\npublic class MathDemo {\n\tpublic static void main(String[] args) {\n\t\t// public static int abs(int a):ֵ\n\t\tSystem.out.println(\"abs:\" + Math.abs(12));\n\t\tSystem.out.println(\"abs:\" + Math.abs(-12));\n\t\tSystem.out.println(\"--------------------\");\n\n\t\t// public static double ceil(double a):ڵڲСֵ\n\t\tSystem.out.println(\"ceil:\" + Math.ceil(12.34));\n\t\tSystem.out.println(\"ceil:\" + Math.ceil(12.56));\n\t\tSystem.out.println(\"--------------------\");\n\n\t\t// public static double floor(double a):Сڵڲֵ\n\t\tSystem.out.println(\"floor:\" + Math.floor(12.34));\n\t\tSystem.out.println(\"floor:\" + Math.floor(12.56));\n\t\tSystem.out.println(\"--------------------\");\n\n\t\t// public static int max(int a,int b) minѧ\n\t\tSystem.out.println(\"max:\" + Math.max(12, 23));\n\t\t// Ƕ׵\n\t\tSystem.out.println(\"max:\" + Math.max(Math.max(24, 47), 23));\n\t\tSystem.out.println(\"--------------------\");\n\n\t\t// public static double pow(double a,double b)\n\t\tSystem.out.println(\"pow:\" + Math.pow(2, 3));\n\t\tSystem.out.println(\"pow:\" + Math.pow(5, 5));\n\t\tSystem.out.println(\"--------------------\");\n\n\t\t// public static double random():[0.0,1.0)\n\n\t\t// public static int round(float a) Ϊdoubleѧ\n\t\tSystem.out.println(\"round:\" + Math.round(12.34f));\n\t\tSystem.out.println(\"round:\" + Math.round(12.56f));\n\t\tSystem.out.println(\"--------------------\");\n\n\t\t// public static double sqrt(double a):ƽ\n\t\tSystem.out.println(\"sqrt:\" + Math.sqrt(16));\n\t}\n}\n"
  },
  {
    "path": "day14/code/day14_Math_Random_System/src/cn/itcast_02/RandomDemo.java",
    "content": "package cn.itcast_02;\n\nimport java.util.Random;\n\n/*\n * Random:\n * \n * 췽\n * \t\tpublic Random()ĬӣҺͷ׼ȷĿϵͳʱĵǰֵԺ΢Ϊλ\n *\t\tpublic Random(long seed)ָ\n *\n * Ա\n * \t\tpublic int nextInt()intΧڵ\n *\t\tpublic int nextInt(int n)[0,n)\n *\n * ⣺\n * \t\t췽ӵ?\n * \t\t\tӲͬͬ\n * \t\t\tͬͬ\n */\npublic class RandomDemo {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\t// Random r = new Random();\n\t\tRandom r = new Random(17);\n\n\t\tfor (int x = 0; x < 10; x++) {\n\t\t\t// System.out.println(r.nextInt());\n\t\t\tSystem.out.println(r.nextInt(100));\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day14/code/day14_Math_Random_System/src/cn/itcast_03/SystemDemo.java",
    "content": "package cn.itcast_03;\n\n/*\n * System:System һЩõֶκͷܱʵ \n * \tpublic static void gc(): \n * \tpublic static void exit(int status):ֹǰе Java ״̬룻ݹ 0 ״̬ʾ쳣ֹ \n * \tpublic static long currentTimeMillis():ԺΪλĵǰʱ\n * \n * \tpublic static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)\n */\npublic class SystemDemo {\n\tpublic static void main(String[] args) {\n\t\t// System.out.println(\"hello\");\n\t\t// System.exit(0);\n\t\t// System.out.println(\"world\");\n\n\t\t// System.out.println(System.currentTimeMillis()); // 1427427569016\n\n\t\tlong start = System.currentTimeMillis();\n\t\tfor (int x = 0; x < 1000000; x++) {\n\t\t\tSystem.out.println(x);\n\t\t}\n\t\tlong end = System.currentTimeMillis();\n\t\tSystem.out.println(\"ʱ\" + (end - start) + \"\");\n\t}\n}\n"
  },
  {
    "path": "day14/code/day14_Math_Random_System/src/cn/itcast_03/SystemDemo2.java",
    "content": "package cn.itcast_03;\n\nimport java.util.Arrays;\n\n/*\n * public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)\n */\npublic class SystemDemo2 {\n\tpublic static void main(String[] args) {\n\t\tint[] arr = { 1, 2, 3, 4, 5 };\n\t\tint[] arr2 = { 6, 7, 8, 9, 10 };\n\n\t\tSystem.arraycopy(arr, 1, arr2, 2, 2);\n\n\t\tSystem.out.println(Arrays.toString(arr));\n\t\tSystem.out.println(Arrays.toString(arr2));\n\t}\n}\n"
  },
  {
    "path": "day14/code/day14_Regex/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day14/code/day14_Regex/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day14_Regex</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day14/code/day14_Regex/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day14/code/day14_Regex/bin/正则表达式的规则.txt",
    "content": "1:ַ\n\tx ַx\n\t\\\\ бַ\n\t\\n з\n\t\\r س\n\t\n2:ַ\n\t[abc] ab  c\n\t[^abc] κַ ab  c\n\t[a-zA-Z] a z A Zͷĸ \n\t[0-9] ַ0-9\n\t\n3:Ԥַ\n\t. κַ\n\t\\d ֣[0-9]\n\t\\w ַ[a-zA-Z_0-9]\n\t\n4:߽ƥ\n\t^ еĿͷ \n\t$ еĽβ \n\t\\b ʱ߽(ǵַ)\n\t\thello?hao are you.\n\t\t\n5.\nX? XһλһҲû \nX* Xλ \nX+ Xһλ \nX{n} Xǡ n  \nX{n,} X n  \nX{n,m} X n Σǲ m  "
  },
  {
    "path": "day14/code/day14_Regex/src/cn/itcast_01/RegexDemo.java",
    "content": "package cn.itcast_01;\n\nimport java.util.Scanner;\n\n/*\n * ʽһַ\n * \n * ϰ\n * \t\tУqq.\n *\t\t\t1:Ҫ5-15λ\n *\t\t\t2:0ܿͷ\n */\npublic class RegexDemo {\n\tpublic static void main(String[] args) {\n\t\t//¼\n\t\tScanner sc = new Scanner(System.in);\n\n\t\tSystem.out.println(\"qq룺\");\n\t\tString qq = sc.nextLine();\n\t\t\n\t\tboolean flag = checkQQ(qq);\n\t\tSystem.out.println(\"flag:\"+flag);\n\t\t\n\t\t//ʹʽʵ\n\t\tboolean flag2 = checkQQ2(qq);\n\t\tSystem.out.println(\"flag2:\"+flag2);\n\t}\n\t\n\tpublic static boolean checkQQ2(String qq){\n\t\t//ʽ\n\t\t// String regex = \"[1-9][0-9]{4,14}\";\n\t\t// //public boolean matches(String regex)\n\t\t// boolean flag = qq.matches(regex);\n\t\t// return flag;\n\t\t\n\t\treturn qq.matches(\"[1-9][0-9]{4,14}\");\n\t}\n\n\t/*\n\t * ֵͣboolean бString qq\n\t */\n\tpublic static boolean checkQQ(String qq) {\n\t\tboolean flag = true;\n\n\t\t// У鳤\n\t\tif (qq.length() >= 5 && qq.length() <= 15) {\n\t\t\t// 0ܿͷ\n\t\t\tif (!qq.startsWith(\"0\")) {\n\t\t\t\t// Ƿַ\n\t\t\t\tchar[] chs = qq.toCharArray();\n\t\t\t\tfor (int x = 0; x < chs.length; x++) {\n\t\t\t\t\tchar ch = chs[x];\n\t\t\t\t\tif (!Character.isDigit(ch)) {\n\t\t\t\t\t\tflag = false;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tflag = false;\n\t\t\t}\n\t\t} else {\n\t\t\tflag = false;\n\t\t}\n\n\t\treturn flag;\n\t}\n}\n"
  },
  {
    "path": "day14/code/day14_Regex/src/cn/itcast_02/RegexDemo.java",
    "content": "package cn.itcast_02;\n\nimport java.util.Scanner;\n\n/*\n * жϹ\n * Stringķ\n * \t\tpublic boolean matches(String regex)\n */\npublic class RegexDemo {\n\tpublic static void main(String[] args) {\n\t\t/*\n\t\t * У绰\n\t\t * \t\t\n\t\t * \n\t\t * \t\t绰\n\t\t *\t\t13812345678\n\t\t *\t\t13999998888\n\t\t *\t\t13123456789\n\t\t *\t\t18912345678\n\t\t *\t\t18811112222\n\t\t */\n\t\t//\n\t\tString regex = \"1[38][0-9]{9}\";\n\t\t\n\t\t//¼ֻ\n\t\tScanner sc = new Scanner(System.in);\n\t\tSystem.out.println(\"ֻ룺\");\n\t\tString phone = sc.nextLine();\n\t\t\n\t\t//жϹ\n\t\tboolean flag = phone.matches(regex);\n\t\tSystem.out.println(flag);\n\t}\n}\n"
  },
  {
    "path": "day14/code/day14_Regex/src/cn/itcast_02/RegexTest.java",
    "content": "package cn.itcast_02;\n\nimport java.util.Scanner;\n\n/*\n * У\n * \n * liuyi@163.com\n * linqingxia@126.com\n * 123456@qq.com\n * zhangsan123@sina.cn\n * zhang456@sina.com.cn\n * fqy@itcast.cn\n */\npublic class RegexTest {\n\tpublic static void main(String[] args) {\n\t\t//\n\t\t//String regex = \"[a-zA-Z_0-9]+@[a-zA-Z_0-9]{2,8}(\\\\.[a-z]{2,3})+\";\n\t\tString regex = \"\\\\w+@\\\\w{2,8}(\\\\.[a-z]{2,3})+\";\n\t\t\n\t\t//¼\n\t\tScanner sc=  new Scanner(System.in);\n\t\tSystem.out.println(\"䣺\");\n\t\tString email = sc.nextLine();\n\t\t\n\t\t//У\n\t\tboolean flag = email.matches(regex);\n\t\tSystem.out.println(flag);\n\t}\n}\n"
  },
  {
    "path": "day14/code/day14_Regex/src/cn/itcast_03/RegexDemo.java",
    "content": "package cn.itcast_03;\n\n/*\n * ָ\n *\t\tStringĹܣ\n *\t\t\tpublic String[] split(String regex)\n */\npublic class RegexDemo {\n\tpublic static void main(String[] args) {\n\t\t// aa,bb,cc\n\t\tString s1 = \"aa,bb,cc\";\n\t\tString regex1 = \",\";\n\t\tString[] strArray1 = s1.split(regex1);\n\t\tfor (int x = 0; x < strArray1.length; x++) {\n\t\t\tSystem.out.println(strArray1[x]);\n\t\t}\n\t\tSystem.out.println(\"---------------\");\n\t\t// aa.bb.cc\n\t\tString s2 = \"aa.bb.cc\";\n\t\tString regex2 = \"\\\\.\";\n\t\tString[] strArray2 = s2.split(regex2);\n\t\tfor (int x = 0; x < strArray2.length; x++) {\n\t\t\tSystem.out.println(strArray2[x]);\n\t\t}\n\t\tSystem.out.println(\"---------------\");\n\t\t// aa bb cc\n\t\tString s3 = \"aa bb cc\";\n\t\tString regex3 = \" \";\n\t\tString[] strArray3 = s3.split(regex3);\n\t\tfor (int x = 0; x < strArray3.length; x++) {\n\t\t\tSystem.out.println(strArray3[x]);\n\t\t}\n\t\tSystem.out.println(\"---------------\");\n\t\t// aa bb cc\n\t\tString s4 = \"aa             bb    cc\";\n\t\tString regex4 = \" +\";\n\t\tString[] strArray4 = s4.split(regex4);\n\t\tfor (int x = 0; x < strArray4.length; x++) {\n\t\t\tSystem.out.println(strArray4[x]);\n\t\t}\n\t\tSystem.out.println(\"---------------\");\n\t\t// D:\\develop\\eclipse-SDK-3.7.2-win64\\workspace\\day14_Regex\n\t\tString s5 = \"D:\\\\develop\\\\eclipse-SDK-3.7.2-win64\\\\workspace\\\\day14_Regex\";\n\t\tString regex5 = \"\\\\\\\\\";\n\t\tString[] strArray5 = s5.split(regex5);\n\t\tfor (int x = 0; x < strArray5.length; x++) {\n\t\t\tSystem.out.println(strArray5[x]);\n\t\t}\n\t\tSystem.out.println(\"---------------\");\n\t}\n}\n"
  },
  {
    "path": "day14/code/day14_Regex/src/cn/itcast_03/RegexTest.java",
    "content": "package cn.itcast_03;\n\nimport java.util.Arrays;\n\n/*\n * һַ:91 27 46 38 50\n * дʵǣ27 38 46 50 91\n * \n * \n * \t\tA:һַ\n * \t\tB:տոзַָõһַ\n * \t\tC:ַתΪ\n * \t\tD:\n * \t\tE:תַ\n */\npublic class RegexTest {\n\tpublic static void main(String[] args) {\n\t\t// һַ\n\t\tString s = \"91 27 46 38 50\";\n\n\t\t// տոзַָõһַ\n\t\tString[] strArray = s.split(\" \");\n\n\t\t// ַתΪ\n\t\tint[] arr = new int[strArray.length];\n\t\tfor (int x = 0; x < arr.length; x++) {\n\t\t\tarr[x] = Integer.parseInt(strArray[x]);\n\t\t}\n\n\t\t// \n\t\tArrays.sort(arr);\n\n\t\t// תַ\n\t\tStringBuilder sb = new StringBuilder();\n\t\tfor (int x = 0; x < arr.length; x++) {\n\t\t\tif (x == arr.length - 1) {\n\t\t\t\tsb.append(arr[x]);\n\t\t\t} else {\n\t\t\t\tsb.append(arr[x]).append(\" \");\n\t\t\t}\n\t\t}\n\t\tString result = sb.toString();\n\t\t\n\t\tSystem.out.println(result);\n\t}\n}\n"
  },
  {
    "path": "day14/code/day14_Regex/src/cn/itcast_04/RegexDemo.java",
    "content": "package cn.itcast_04;\n\n/*\n * 滻\n *\t\tStringĹܣ\n *\t\t\tpublic String replaceAll(String regex,String replacement)\n */\npublic class RegexDemo {\n\tpublic static void main(String[] args) {\n\t\t// ̳вַܳ*滻\n\t\tString s = \"hellowodekahaoshi62212934564347892nikyidaqiangeiwoxiexie13212345678gaowoyishen\";\n\n\t\t// String ss = s.replaceAll(\"\\\\d\", \"*\");\n\t\t// String ss = s.replaceAll(\"\\\\d\", \"\");\n\t\tString ss = s.replaceAll(\"\\\\d+\", \"***\");\n\n\t\tSystem.out.println(ss);\n\t}\n}"
  },
  {
    "path": "day14/code/day14_Regex/src/cn/itcast_05/RegexDemo.java",
    "content": "package cn.itcast_05;\n\nimport java.util.regex.Matcher;\nimport java.util.regex.Pattern;\n\n/*\n * ȡ\n * \t\tPatternMatcherʹ\n * \n */\npublic class RegexDemo {\n\tpublic static void main(String[] args) {\n\t\t// ģʽƥĻʹ\n\t\t// // ѹתΪģʽ\n\t\t// Pattern p = Pattern.compile(\"a*b\");\n\t\t// // ͨģʽõƥ\n\t\t// Matcher m = p.matcher(\"aaaaab\");\n\t\t// // ͨƥù\n\t\t// boolean b = m.matches();\n\t\t// System.out.println(b);\n\n\t\t// Ϊж˵\n\t\t// String s = \"aaaaab\";\n\t\t// String regex = \"a*b\";\n\t\t// boolean flag = s.matches(regex);\n\t\t// System.out.println(flag);\n\n\t\t// 󣺻ȡ\n\t\t// ȡַɵĵ\n\t\tString s = \"da jia hao,wo men dou hen ai java.\";\n\t\t// \n\t\tString regex = \"\\\\b[a-z]{3}\\\\b\";\n\n\t\tPattern p = Pattern.compile(regex);\n\t\tMatcher m = p.matcher(s);\n\n\t\t// public boolean find():Ƿƥ\n\t\t// boolean b = m.find();\n\t\t// System.out.println(b);\n\t\t// ǵó\n\t\t// public String group()\n\t\t// String ss = m.group();\n\t\t// System.out.println(ss);\n\n\t\t// b = m.find();\n\t\t// System.out.println(b);\n\t\t// // ǵó\n\t\t// // public String group()\n\t\t// ss = m.group();\n\t\t// System.out.println(ss);\n\n\t\twhile (m.find()) {\n\t\t\tSystem.out.println(m.group());\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day14/code/day14_Regex/src/正则表达式的规则.txt",
    "content": "1:ַ\n\tx ַx\n\t\\\\ бַ\n\t\\n з\n\t\\r س\n\t\n2:ַ\n\t[abc] ab  c\n\t[^abc] κַ ab  c\n\t[a-zA-Z] a z A Zͷĸ \n\t[0-9] ַ0-9\n\t\n3:Ԥַ\n\t. κַ\n\t\\d ֣[0-9]\n\t\\w ַ[a-zA-Z_0-9]\n\t\n4:߽ƥ\n\t^ еĿͷ \n\t$ еĽβ \n\t\\b ʱ߽(ǵַ)\n\t\thello?hao are you.\n\t\t\n5.\nX? XһλһҲû \nX* Xλ \nX+ Xһλ \nX{n} Xǡ n  \nX{n,} X n  \nX{n,m} X n Σǲ m  "
  },
  {
    "path": "day14/day14总结.txt",
    "content": "1ʽ()\n\t(1)һַ\n\t(2)\n\t\tA:жϹ(Stringķ)\n\t\t\tpublic boolean matches(String regex)\n\t\tB:ָ(Stringķ)\n\t\t\tpublic String[] split(String regex)\n\t\tC:滻(Stringķ)\n\t\t\tpublic String replaceAll(String regex,String replacement)\n\t\tD:ȡ(PatternMatcherĹ)\n\t\t\ta:Pattern\n\t\t\t\tpublic static Pattern compile(String regex)\n\t\t\t\tpublic Matcher matcher(String s)\n\t\t\tb:Matcher\n\t\t\t\tpublic boolean find()\n\t\t\t\tpublic String group()\n\t(3)()\n\t\tA:Уֻ\n\t\tB:У\n\t\tC:һַ:91 27 46 38 50\n\t\t  дʵǣ27 38 46 50 91\n\t\tD:ȡַɵĵ\n\n2Math()\n\t(1)ѧ࣬һЩǺ\n\t(2)ܣ\n\t\tpublic static int abs(int a)\n\t\tpublic static double ceil(double a)\n\t\tpublic static double floor(double a)\n\t\tpublic static int max(int a,int b) minѧ\n\t\tpublic static double pow(double a,double b)\n\t\tpublic static double random()\n\t\tpublic static int round(float a) Ϊdoubleѧ\n\t\tpublic static double sqrt(double a)\n\t(3)()\n\t\tСϷ\n\n3Random()\n\t(1)Randomڲ\n\t(2)췽\n\t\tpublic Random()\n\t\tpublic Random(long seed)\n\n\t\tͬҲͬ\n\t(3)Ա\n\t\tpublic int nextInt():intΧڵ\n\t\tpublic int nextInt(int n):[0,n)Χڵ\n\n\t\t1-100֮\n\t\t\tRandom r = new Random();\n\t\t\tint number = r.nextInt(100) + 1;\n\n4System()\n\t(1)ṩһЩõֶκͷ\n\t(2)Ա\n\t\tpublic static void gc()\n\t\tpublic static void exit(int status)\n\t\tpublic static long currentTimeMillis()\n\t\tpublic static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)\n\n5BigInteger/BigDecimal()\n\t(1)BigInteger\n\t\tA:췽\n\t\t\tpublic BigInteger(String val)\n\t\tB:Ա\n\t\t\tpublic BigInteger add(BigInteger val)\n\t\t\tpublic BigInteger subtract(BigInteger val)\n\t\t\tpublic BigInteger multiply(BigInteger val)\n\t\t\tpublic BigInteger divide(BigInteger val)\n\t\t\tpublic BigInteger[] divideAndRemainder(BigInteger val)\n\t(2)BigDecimal()\n\t\tA:췽\n\t\t\tpublic BigDecimal(String val)\n\t\tB:Ա\n\t\t\tpublic BigDecimal add(BigDecimal augend)\n\t\t\tpublic BigDecimal subtract(BigDecimal subtrahend)\n\t\t\tpublic BigDecimal multiply(BigDecimal multiplicand)\n\t\t\tpublic BigDecimal divide(BigDecimal divisor)\n\t\t\tpublic BigDecimal divide(BigDecimal divisor,int scale,\n\t\t\t     int roundingMode)\n\n6Date/DateFormat/Calendar()\n\t(1)Date\n\t\tA:췽\n\t\t\tpublic Date()\n\t\t\tpublic Date(long date)\n\t\tB:Ա\n\t\t\tpublic long getTime()\n\t\t\tpublic void setTime(long time)\n\t(2)SimpleDateFormat\n\t\tA:췽\n\t\t\tpublic SimpleDateFormat(String pattern)\n\t\t\tģʽyyyy-MM--dd HH:mm:ss\n\t\tB:Ա\n\t\t\tpublic final String format(Date date)\n\t\t\tpublic Date parse(String source)\n\t(3)Calendar\n\t\tA:εõ?\n\t\t\tpublic static Calendar getInstance()\n\t\tB:Ա\n\t\t\tpublic int get(int field)\n\t\t\tpublic void add(int field,int amount)\n\t\t\tpublic final void set(int year,int month,int date)\n\t(4)\n\t\tA:?\n\t\tB:һ2·ж?"
  },
  {
    "path": "day15/code/day15_Collection/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day15/code/day15_Collection/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day15_Collection</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day15/code/day15_Collection/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day15/code/day15_Collection/bin/cn/itcast_04/迭代器的源码解析.txt",
    "content": "public interface Iterator {\n\tboolean hasNext();\n\tObject next();\n}\n\npublic interface Iterable {\n\tIterator iterator();\n}\n\npublic interface Collection extends Iterable {\n\t\n}\n\npublic interface List extends Collection {\n\t\n}\n\npublic class ArrayList implements List {\n\tpublic Iterator iterator() {\n        return new Itr();\n    }\n    \n     private class Itr implements Iterator {\n     \tpublic boolean hasNext() {...}\n     \t\n\t\tpublic Object next(){...}\n     }\n}\n\nCollection c = new ArrayList();\n\nIterator it = c.iterator(); //new Itr()\n\nwhile(it.hasNext()) {\n\tit.next();\n}"
  },
  {
    "path": "day15/code/day15_Collection/src/cn/itcast_01/Student.java",
    "content": "package cn.itcast_01;\n\npublic class Student {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Student() {\n\t\tsuper();\n\t}\n\n\tpublic Student(String name, int age) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\t@Override\n\tpublic String toString() {\n\t\treturn \"Student [name=\" + name + \", age=\" + age + \"]\";\n\t}\n\n}\n"
  },
  {
    "path": "day15/code/day15_Collection/src/cn/itcast_01/StudentDemo.java",
    "content": "package cn.itcast_01;\n\n/*\n * 붨һ飬洢ѧȻ飬õÿһѧĳԱֵ\n * \n * Student[]\t顣\n */\npublic class StudentDemo {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\tStudent[] students = new Student[3];\n\n\t\t// Ĭֵnull\n\t\tfor (int x = 0; x < students.length; x++) {\n\t\t\tSystem.out.println(students[x]);\n\t\t}\n\n\t\t// ѧԪ\n\t\tStudent s1 = new Student(\"ϼ\", 28);\n\t\tStudent s2 = new Student(\"\", 31);\n\t\tStudent s3 = new Student(\"־\", 18);\n\n\t\t// Ԫطŵ\n\t\tstudents[0] = s1;\n\t\tstudents[1] = s2;\n\t\tstudents[2] = s3;\n\n\t\t// ֵѧ\n\t\tfor (int x = 0; x < students.length; x++) {\n\t\t\t// System.out.println(students[x]);\n\t\t\tStudent s = students[x];\n\t\t\tSystem.out.println(s.getName() + \"---\" + s.getAge());\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day15/code/day15_Collection/src/cn/itcast_02/CollectionDemo.java",
    "content": "package cn.itcast_02;\n\nimport java.util.ArrayList;\nimport java.util.Collection;\n\n/*\n * Ϊʲôּ?\n * \t\tԶֶԶʽΪ˷ԶĲǰѧ֪ʶֻܲöʵ֡\n * \t\tǣĳǹ̶ģӦ˱仯ԣjavaṩ˼๩ʹá\n * \n * ص㣺\n * \t\tA:ȿɱ\n * \t\tB:ֻܴ洢\n * \t\tC:Դ洢ͬ͵Ķ\n * \n * ⣺ͼϵ?\n * \t\tA:ϳȿɱ䣻ֻܴ洢ͣϿԴ洢ͬ͵Ԫ\n * \t\tB:鳤ȹ̶Դ洢ͣҲԴ洢ͣ洢ͬһ͵Ԫ\n * \n * ǵĹ̫һԣjavaṩ˶ּ๩ʹáЩıʵǵײݽṹͬ\n * ݽṹݵĴ洢ʽ\n * \n * CollectionĹܣ\n * A:ӹ\n * \t\tboolean add(Object obj):һԪ\n * \t\tboolean addAll(Collection c):ӶԪء\n * B:ȡ\n * \t\tIterator iterator():\n * \t\tint size():ϵԪظ\n * C:ɾ\n * \t\tvoid clear():ռϵԪ\n * \t\tboolean remove(Object obj):ӼƳһԪ\n * \t\tboolean removeAll(Collection c):ӼƳԪ\n * D:жϹ\n * \t\tboolean contains(Object obj):жϼǷָԪ\n * \t\tboolean containsAll(Collection c):жϼǷָĶԪ\n * \t\tboolean isEmpty():жϼǷΪ\n * E:Ԫ\n * \t\tboolean retainAll(Collection c)\n * F:ת\n * \t\tObject[] toArray():Ѽתɶ\n */\npublic class CollectionDemo {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tCollection c = new ArrayList();\n\n\t\t// boolean add(Object obj):һԪ\n\t\t// System.out.println(\"add:\" + c.add(\"hello\"));\n\t\t// System.out.println(\"add:\" + c.add(\"world\"));\n\t\tc.add(\"hello\");\n\t\tc.add(\"world\");\n\t\tc.add(\"java\");\n\n\t\t// void clear():ռϵԪ\n\t\t// c.clear();\n\n\t\t// boolean remove(Object obj):ӼƳһԪ\n\t\t// System.out.println(\"remove:\" + c.remove(\"world\"));\n\t\t// System.out.println(\"remove:\" + c.remove(\"javaee\"));\n\n\t\t// boolean contains(Object obj):жϼǷָԪ\n\t\t// System.out.println(\"contains:\" + c.contains(\"hello\"));\n\t\t// System.out.println(\"contains:\" + c.contains(\"javaee\"));\n\n\t\t// boolean isEmpty():жϼǷΪ\n\t\t// System.out.println(\"isEmpty:\" + c.isEmpty());\n\n\t\t// int size():ϵԪظ\n\t\tSystem.out.println(\"size:\" + c.size());\n\n\t\tSystem.out.println(\"c:\" + c);\n\t}\n}"
  },
  {
    "path": "day15/code/day15_Collection/src/cn/itcast_02/CollectionDemo2.java",
    "content": "package cn.itcast_02;\n\nimport java.util.ArrayList;\nimport java.util.Collection;\n\n/*\n * boolean addAll(Collection c)\n * boolean removeAll(Collection c):ɾһɾtrue\n * boolean containsAll(Collection c):ȫǰ\n * boolean retainAll(Collection c)\n */\npublic class CollectionDemo2 {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\tCollection c1 = new ArrayList();\n\t\tc1.add(\"abc1\");\n\t\tc1.add(\"abc2\");\n\t\tc1.add(\"abc3\");\n\t\tc1.add(\"abc4\");\n\n\t\t// \n\t\tCollection c2 = new ArrayList();\n\t\t// c2.add(\"abc1\");\n\t\t// c2.add(\"abc2\");\n\t\t// c2.add(\"abc3\");\n\t\t// c2.add(\"abc4\");\n\t\tc2.add(\"abc5\");\n\t\tc2.add(\"abc6\");\n\t\tc2.add(\"abc7\");\n\n\t\t// boolean addAll(Collection c)\n\t\t// System.out.println(\"addAll:\" + c1.addAll(c2));\n\n\t\t// boolean removeAll(Collection c)\n\t\t// System.out.println(\"removeAll:\" + c1.removeAll(c2));\n\n\t\t// boolean containsAll(Collection c)\n\t\t// System.out.println(\"containsAll:\" + c1.containsAll(c2));\n\n\t\t// boolean retainAll(Collection c)\n\t\tSystem.out.println(\"retainAll:\" + c1.retainAll(c2));\n\t\t/*\n\t\t * ABAB Ԫش洢AϣBϲı䡣 ֵAǷı䡣\n\t\t */\n\n\t\tSystem.out.println(\"c1:\" + c1);\n\t\tSystem.out.println(\"c2:\" + c2);\n\t}\n}\n"
  },
  {
    "path": "day15/code/day15_Collection/src/cn/itcast_02/CollectionDemo3.java",
    "content": "package cn.itcast_02;\n\nimport java.util.ArrayList;\nimport java.util.Collection;\n\n/*\n * Object[] toArray():Ѽתɶ\n * \n * ϰüϴ洢ѧ󣬲\n */\npublic class CollectionDemo3 {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tCollection c = new ArrayList();\n\n\t\t// Ԫ\n\t\t// String s = \"hello\";\n\t\tc.add(\"hello\");\n\t\tc.add(\"world\");\n\t\tc.add(\"java\");\n\n\t\t// Object[] toArray():Ѽתɶ\n\t\tObject[] objs = c.toArray();\n\t\t// \n\t\tfor (int x = 0; x < objs.length; x++) {\n\t\t\t// System.out.println(objs[x]);\n\t\t\tString s = (String) objs[x];\n\t\t\tSystem.out.println(s);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day15/code/day15_Collection/src/cn/itcast_03/CollectionTest.java",
    "content": "package cn.itcast_03;\n\nimport java.util.ArrayList;\nimport java.util.Collection;\n\n/*\n * Object[] toArray():Ѽתɶ\n * \n * ϰüϴ洢ѧ󣬲\n * \n * ܽ᣺ϵʹò\n * A:϶\n * B:Ԫض\n * C:Ԫӵ\n * D:\n */\npublic class CollectionTest {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tCollection c = new ArrayList();\n\n\t\t// Ԫض\n\t\tStudent s1 = new Student(\"\", 18);\n\t\tStudent s2 = new Student(\"ؿ\", 20);\n\t\tStudent s3 = new Student(\"\", 22);\n\n\t\t// ѧӵ\n\t\tc.add(s1);\n\t\tc.add(s2);\n\t\tc.add(s3);\n\t\t// c.add(new Student(\"ֱ\", 20));\n\n\t\t// \n\t\tObject[] objs = c.toArray();\n\t\tfor (int x = 0; x < objs.length; x++) {\n\t\t\tStudent s = (Student) objs[x];\n\t\t\tSystem.out.println(s.getName() + \"---\" + s.getAge());\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day15/code/day15_Collection/src/cn/itcast_03/Student.java",
    "content": "package cn.itcast_03;\n\npublic class Student {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Student() {\n\t\tsuper();\n\t}\n\n\tpublic Student(String name, int age) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n}\n"
  },
  {
    "path": "day15/code/day15_Collection/src/cn/itcast_04/IteratorDemo.java",
    "content": "package cn.itcast_04;\n\nimport java.util.ArrayList;\nimport java.util.Collection;\nimport java.util.Iterator;\n\n/*\n * Iterator iterator()\n * \t\tboolean hasNext():ǷһԪ\n * \t\tObject next():ȡһԪ,Զƶһλõȴ\n * \n * \t\tNoSuchElementException:ûԪ쳣\n * \t\tԭǣѾȡԪصĩβˣ㻹ҪȡԪأѾûԪˣԱ\n */\npublic class IteratorDemo {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tCollection c = new ArrayList();\n\n\t\t// ԪزԪ\n\t\tc.add(\"hello\");\n\t\tc.add(\"world\");\n\t\tc.add(\"java\");\n\n\t\t// еķIterator iterator()\n\t\tIterator it = c.iterator();// ұʵǽӿڵʵǶ̬Ӧ\n\n\t\t// System.out.println(it.next());\n\t\t// System.out.println(it.next());\n\t\t// System.out.println(it.next());\n\t\t// System.out.println(it.next());\n\t\t// һѭʵ\n\t\twhile (it.hasNext()) {\n\t\t\t// System.out.println(it.next());\n\t\t\tString s = (String) it.next();\n\t\t\tSystem.out.println(s);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day15/code/day15_Collection/src/cn/itcast_04/IteratorDemo2.java",
    "content": "package cn.itcast_04;\n\nimport java.util.ArrayList;\nimport java.util.Collection;\n\npublic class IteratorDemo2 {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tCollection c = new ArrayList();\n\n\t\t// ԪزԪ\n\t\tc.add(\"hello\");\n\t\tc.add(\"world\");\n\t\tc.add(\"java\");\n\n\t\t// \n\t\t// Iterator it = c.iterator();\n\t\t// while (it.hasNext()) {\n\t\t// String s = (String) it.next();\n\t\t// System.out.println(s);\n\t\t// }\n\n\t\t// forѭĽ\n\t\t// for (Iterator it = c.iterator(); it.hasNext();) {\n\t\t// String s = (String) it.next();\n\t\t// System.out.println(s);\n\t\t// }\n\t}\n}\n"
  },
  {
    "path": "day15/code/day15_Collection/src/cn/itcast_04/IteratorTest.java",
    "content": "package cn.itcast_04;\n\nimport java.util.ArrayList;\nimport java.util.Collection;\nimport java.util.Iterator;\n\n/*\n * ϰüϴ洢ѧ󣬲ʹõ\n */\npublic class IteratorTest {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tCollection c = new ArrayList();\n\n\t\t// Ԫض\n\t\tStudent s1 = new Student(\"\", 30);\n\t\tStudent s2 = new Student(\"ϼ\", 26);\n\t\tStudent s3 = new Student(\"϶\", 22);\n\n\t\t// Ԫӵ\n\t\tc.add(s1);\n\t\tc.add(s2);\n\t\tc.add(s3);\n\n\t\t// \n\t\t// ͨ϶iterator()ȡ\n\t\tIterator it = c.iterator();\n\t\t// ͨhasNext()жǷԪ\n\t\twhile (it.hasNext()) {\n\t\t\t// ͨnext()ȡԪ,תΪ洢Ԫ\n\t\t\tStudent s = (Student) it.next();\n\t\t\t// ֱƣǵֵַûʲô塣\n\t\t\t// ν?A:дtoString()B:ͨgetXxx()\n\t\t\tSystem.out.println(s.getName() + \"---\" + s.getAge());\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day15/code/day15_Collection/src/cn/itcast_04/IteratorTest2.java",
    "content": "package cn.itcast_04;\n\nimport java.util.ArrayList;\nimport java.util.Collection;\nimport java.util.Iterator;\n\n/*\n * ע⣺next()ûһεãȡһ󣬲ƶһλõȴ\n */\npublic class IteratorTest2 {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tCollection c = new ArrayList();\n\n\t\t// Ԫض\n\t\tStudent s1 = new Student(\"\", 30);\n\t\tStudent s2 = new Student(\"ϼ\", 26);\n\t\tStudent s3 = new Student(\"϶\", 22);\n\t\tStudent s4 = new Student(\"˽\", 18);\n\n\t\t// Ԫӵ\n\t\tc.add(s1); // Object obj = s1; ת\n\t\tc.add(s2);\n\t\tc.add(s3);\n\t\tc.add(s4);\n\n\t\tIterator it = c.iterator();\n\t\twhile (it.hasNext()) {\n\t\t\t// System.out.println(((Student) (it.next())).getName() + \"---\"\n\t\t\t// + ((Student) (it.next())).getAge());\n\t\t\tStudent s = (Student) it.next();\n\t\t\tSystem.out.println(s.getName() + \"---\" + s.getAge());\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day15/code/day15_Collection/src/cn/itcast_04/Student.java",
    "content": "package cn.itcast_04;\n\npublic class Student {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Student() {\n\t\tsuper();\n\t}\n\n\tpublic Student(String name, int age) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n}\n"
  },
  {
    "path": "day15/code/day15_Collection/src/cn/itcast_04/迭代器的源码解析.txt",
    "content": "public interface Iterator {\n\tboolean hasNext();\n\tObject next();\n}\n\npublic interface Iterable {\n\tIterator iterator();\n}\n\npublic interface Collection extends Iterable {\n\t\n}\n\npublic interface List extends Collection {\n\t\n}\n\npublic class ArrayList implements List {\n\tpublic Iterator iterator() {\n        return new Itr();\n    }\n    \n     private class Itr implements Iterator {\n     \tpublic boolean hasNext() {...}\n     \t\n\t\tpublic Object next(){...}\n     }\n}\n\nCollection c = new ArrayList();\n\nIterator it = c.iterator(); //new Itr()\n\nwhile(it.hasNext()) {\n\tit.next();\n}"
  },
  {
    "path": "day15/code/day15_List/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day15/code/day15_List/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day15_List</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day15/code/day15_List/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day15/code/day15_List/src/cn/itcast_01/ListDemo.java",
    "content": "package cn.itcast_01;\n\nimport java.util.ArrayList;\nimport java.util.Iterator;\nimport java.util.List;\n\n/*\n * Collection\n *\t \tList:Ԫ(洢˳ȡ˳һ),Ԫؿظ\n *\t\tSet:Ԫ,ԪΨһ\n * Listϴ洢ַ\n */\npublic class ListDemo {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tList list = new ArrayList();\n\n\t\t// Ԫ\n\t\tlist.add(\"\");\n\t\tlist.add(\"˾ܲ\");\n\t\tlist.add(\"ܲ\");\n\n\t\t// \n\t\tIterator it = list.iterator();\n\t\twhile (it.hasNext()) {\n\t\t\tString s = (String) it.next();\n\t\t\tSystem.out.println(s);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day15/code/day15_List/src/cn/itcast_01/ListDemo2.java",
    "content": "package cn.itcast_01;\n\nimport java.util.ArrayList;\nimport java.util.Iterator;\nimport java.util.List;\n\n/*\n * ϰListϴ洢Զ岢\n * Student:name,age\n */\npublic class ListDemo2 {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tList list = new ArrayList();\n\n\t\t// ѧ\n\t\tStudent s1 = new Student(\"˽\", 18);\n\t\tStudent s2 = new Student(\"\", 19);\n\t\tStudent s3 = new Student(\"\", 20);\n\t\tStudent s4 = new Student(\"ʦʦ\", 21);\n\n\t\t// Ԫӵ\n\t\tlist.add(s1);\n\t\tlist.add(s2);\n\t\tlist.add(s3);\n\t\tlist.add(s4);\n\n\t\t// \n\t\tIterator it = list.iterator();\n\t\twhile (it.hasNext()) {\n\t\t\tStudent s = (Student) it.next();\n\t\t\tSystem.out.println(s.getName() + \"---\" + s.getAge());\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day15/code/day15_List/src/cn/itcast_01/Student.java",
    "content": "package cn.itcast_01;\n\npublic class Student {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Student() {\n\t\tsuper();\n\t}\n\n\tpublic Student(String name, int age) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n}\n"
  },
  {
    "path": "day15/code/day15_List/src/cn/itcast_02/ListDemo.java",
    "content": "package cn.itcast_02;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\n/*\n * Listϵйܣ\n * \t\tvoid add(int index,Object obj):ָλԪ\n *\t\tObject remove(int index):ɾָλõԪأɾԪֵ\n *\t\tObject get(int index):ݸԪ\n *\t\tObject set(int index,E element):޸ָԪΪԪأر޸ĵֵ\n */\npublic class ListDemo {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\t// Collection c = new ArrayList();\n\t\tList list = new ArrayList();\n\n\t\t// Թ\n\t\tlist.add(\"hello\");\n\t\tlist.add(\"world\");\n\t\tlist.add(\"java\");\n\n\t\t// void add(int index,Object obj):ָλԪ\n\t\t// list.add(1, \"android\");\n\t\t// list.add(3, \"android\");\n\t\t// list.add(4, \"android\"); //\n\n\t\t// Object remove(int index):ɾָλõԪأɾԪֵ\n\t\t// System.out.println(\"remove:\" + list.remove(1));\n\n\t\t// Object get(int index):ݸԪ\n\t\t// System.out.println(\"get:\" + list.get(1));\n\n\t\t// Object set(int index,E element):޸ָԪΪԪأر޸ĵֵ\n\t\tSystem.out.println(\"set:\" + list.set(1, \"android\"));\n\n\t\tSystem.out.println(\"list:\" + list);\n\t}\n}\n"
  },
  {
    "path": "day15/code/day15_List/src/cn/itcast_02/ListDemo2.java",
    "content": "package cn.itcast_02;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\n/*\n * Listϵбͨforѭ\n * size()get()ʹ\n */\npublic class ListDemo2 {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tList list = new ArrayList();\n\n\t\t// Թ\n\t\tlist.add(\"hello\");\n\t\tlist.add(\"world\");\n\t\tlist.add(\"java\");\n\n\t\t// get(int index)\n\t\t// System.out.println(list.get(0));\n\t\t// System.out.println(list.get(1));\n\t\t// System.out.println(list.get(2));\n\t\t// System.out.println(list.get(3)); // IndexOutOfBoundsException\n\n\t\tfor (int x = 0; x < list.size(); x++) {\n\t\t\t// System.out.println(list.get(x));\n\t\t\tString s = (String) list.get(x);\n\t\t\tSystem.out.println(s);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day15/code/day15_List/src/cn/itcast_03/ListDemo.java",
    "content": "package cn.itcast_03;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\n/*\n * ϰListϴ洢Զ岢\n * Student:name,age\n * ʹͨforѭ\n */\npublic class ListDemo {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tList list = new ArrayList();\n\n\t\t// ѧ\n\t\tStudent s1 = new Student(\"Ѿ\", 18);\n\t\tStudent s2 = new Student(\"ʩ\", 19);\n\t\tStudent s3 = new Student(\"\", 20);\n\t\tStudent s4 = new Student(\"\", 17);\n\n\t\t// Ԫӵ\n\t\tlist.add(s1);\n\t\tlist.add(s2);\n\t\tlist.add(s3);\n\t\tlist.add(s4);\n\n\t\t// \n\t\tfor (int x = 0; x < list.size(); x++) {\n\t\t\tStudent s = (Student) list.get(x);\n\t\t\tSystem.out.println(s.getName() + \"---\" + s.getAge());\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day15/code/day15_List/src/cn/itcast_03/Student.java",
    "content": "package cn.itcast_03;\n\npublic class Student {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Student() {\n\t\tsuper();\n\t}\n\n\tpublic Student(String name, int age) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n}\n"
  },
  {
    "path": "day15/code/day15_List/src/cn/itcast_04/ListIteratorDemo.java",
    "content": "package cn.itcast_04;\n\nimport java.util.ArrayList;\nimport java.util.List;\nimport java.util.ListIterator;\n\n/*\n * ListIterator listIterator()\n * ͨ鿴API֪б̳Եԣ;hasNext()next()\n */\npublic class ListIteratorDemo {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tList list = new ArrayList();\n\n\t\t// Թ\n\t\tlist.add(\"hello\");\n\t\tlist.add(\"world\");\n\t\tlist.add(\"java\");\n\n\t\t// ʹ÷\n\t\t// ListIterator listIterator()\n\t\tListIterator lit = list.listIterator(); // ̬\n\t\twhile (lit.hasNext()) {\n\t\t\tString s = (String) lit.next();\n\t\t\tSystem.out.println(s);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day15/code/day15_List/src/cn/itcast_04/ListIteratorDemo2.java",
    "content": "package cn.itcast_04;\n\nimport java.util.ArrayList;\nimport java.util.List;\nimport java.util.ListIterator;\n\n/*\n * ListIterator listIterator()\n * Ȼйܣûʲô壬ΪҪ\n */\npublic class ListIteratorDemo2 {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tList list = new ArrayList();\n\n\t\t// Թ\n\t\tlist.add(\"hello\");\n\t\tlist.add(\"world\");\n\t\tlist.add(\"java\");\n\n\t\t// \n\t\tListIterator lit = list.listIterator();\n\t\t// while (lit.hasNext()) {\n\t\t// String s = (String) lit.next();\n\t\t// System.out.println(s);\n\t\t// }\n\t\tSystem.out.println(\"---------------\");\n\n\t\t// \n\t\twhile (lit.hasPrevious()) {\n\t\t\tString s = (String) lit.previous();\n\t\t\tSystem.out.println(s);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day15/code/day15_List/src/cn/itcast_04/ListIteratorDemo3.java",
    "content": "package cn.itcast_04;\n\nimport java.util.ArrayList;\nimport java.util.List;\nimport java.util.ListIterator;\n\n/*\n * һϣԪ\"hello\",\"world\",\"java\",дʵ²\n * \t         жûԪΪworldģУһԪAndroid\n * \n * \n * \t\tA:һϣӶԪ\n * \t\tB:ϣȡÿһԪ\n * \t\tC:жԪû\"world\"ģУһԪandroid\n * \t\tD:ֱ\n * \n * ConcurrentModificationException:޸쳣\n * \n * ԭ\n * \t\tڼ϶ڵģõϵʱģ\n * \t\tǾͨϵadd()һԪأҲ˵ʱ򣬼Ϸ˸ı䣬\n * \t\tûзı䣬Ͳ⡣\n * \t\tҪԭͨȥϵʱ򣬲ͨȥ\n * \n * \n * \t\tA:õͨforѭ\n * \t\t\tԪӵ˼ϵĩβ\n * \t\tB:ʹбʹõҲʹõ\n * \t\t\tԪؾӵ\n */\npublic class ListIteratorDemo3 {\n\tpublic static void main(String[] args) {\n\t\t// һϣӶԪ\n\t\tList list = new ArrayList();\n\t\tlist.add(\"hello\");\n\t\tlist.add(\"world\");\n\t\tlist.add(\"java\");\n\n\t\t// ϣȡÿһԪ\n\t\t// Iterator it = list.iterator();\n\t\t// while (it.hasNext()) {\n\t\t// String s = (String) it.next();\n\t\t// // жԪû\"world\"ģУһԪandroid\n\t\t// if (\"world\".equals(s)) {\n\t\t// list.add(\"android\");\n\t\t// // it = list.iterator();\n\t\t// }\n\t\t// }\n\n\t\t// ͨfor\n\t\t// for (int x = 0; x < list.size(); x++) {\n\t\t// String s = (String) list.get(x);\n\t\t// if (\"world\".equals(s)) {\n\t\t// list.add(\"android\");\n\t\t// }\n\t\t// }\n\n\t\t// ʹб\n\t\tListIterator lit = list.listIterator();\n\t\twhile (lit.hasNext()) {\n\t\t\tString s = (String) lit.next();\n\t\t\tif (\"world\".equals(s)) {\n\t\t\t\tlit.add(\"android\");\n\t\t\t}\n\t\t}\n\n\t\t// ֱ\n\t\tSystem.out.println(\"list:\" + list);\n\t}\n}\n"
  },
  {
    "path": "day15/day15总结.txt",
    "content": "1()\n\t(1)飺\n\t\t͵飺int[]\n\t\t͵飺Student[]\n\t(2)\n\t\tö洢ѧ󣬲\n\n\t\tѧĴ룬дܶˡ\n\t\tҪ룺\n\t\t\tStudent[] students = new Student[3];\n\n\t\t\tStudent s1 = new Student(\"ϼ\",18);\n\t\t\tStudent s2 = new Student(\"\",21);\n\t\t\tStudent s3 = new Student(\"֥\",60);\n\n\t\t\tstudents[0] = s1;\n\t\t\tstudents[1] = s2;\n\t\t\tstudents[2] = s3;\n\n\t\t\tfor(int x=0; x<students.length; x++) {\n\t\t\t\tStudent s = students[x];\n\t\t\t\tSystem.out.println(s.getName()+\"---\"+s.getAge());\n\t\t\t}\n\n2Collection()\n\t(1)ϵ\n\t\tѧϰԣԳĲǲ\n\t\tΪ˷ǶԶвǿʹöС\n\t\tǶĳǹ̶ģӦ仯ԣjavaṩ˼\n\t\tʹá\n\t(2)ϵص\n\t\tA:ȿɱ\n\t\tB:ֻܴ洢\n\t\tC:Դ洢\n\t(3)ͼϵ\n\t\tA:ĳȹ̶;Դ洢ͣҲԴ洢;洢ͬһ͵Ԫ\n\t\tB:ϵĳȿɱ;ֻܴ洢;ϿԴ洢͡\n\t(4)ϵļ̳ϵṹ\n\t\tּݽṹͬǹƣԣǲϵϳȡγ˼ϵļ̳ϵṹ\n\t\t\tCollection\n\t\t\t\t|--List\n\t\t\t\t\t|--ArrayList\n\t\t\t\t\t|--Vector\n\t\t\t\t\t|--LinkedList\n\t\t\t\t|--Set\n\t\t\t\t\t|--HashSet\n\t\t\t\t\t|--TreeSet\n\t\n\t\tļ̳ϵṹ,Ǹѧϰ˭,ʹ˭?\n\t\t\tѧϰ㣬Ϊ㶨ǹԹܡ\n\t\t\tʹãײ㣬ΪײǾʵ࣬ҾĹܡ\n\t(5)CollectionĹܸ(Լ˼)\n\t\tA:ӹ\n\t\t\tadd(Object obj)\n\t\t\taddAll(Collection c)\n\t\tB:Ƴ\n\t\t\tremove(Object obj)\n\t\t\tremoveAll(Collection c)\n\t\t\tclear()\n\t\tC:жϹ\n\t\t\tcontains(Object obj)\n\t\t\tcontainsAll(Collection c)\n\t\t\tisEmpty()\n\t\tD:ȡ\n\t\t\titerator()\n\t\t\tsize()\n\t\tE:\n\t\t\tretainAll(Collection c)\n\t\tF:ת鹦\n\t\t\ttoArray()\n\n\t\tע⣺\n\t\t\tдallĲ\n\t\t\tת鲻\n\t(6)ʹ\n\t\tA:ʹ\n\t\t\tڼϴ,\n\t\t\ta:hasNext()\n\t\t\tb:next()\n\t\tB:ϵʹò\n\t\t\ta:϶\n\t\t\tb:Ԫض\n\t\t\tc:Ԫӵ\n\t\t\td:\n\t\t\t\tͨ϶ȡ\n\t\t\t\tͨhasNext()жǷԪ\n\t\t\t\tͨnext()ȡԪأƶһλ\n\t\tC:ԭ\n\t\t\tΪ˽ӿڣɾļͨڲķʽṩʵ֡\n\t(7)\n\t\tA:Collection洢ַ\n\t\t\tCollection c = new ArrayList();\n\n\t\t\tc.add(\"hello\");\n\t\t\tc.add(\"world\");\n\t\t\tc.add(\"java\");\n\n\t\t\tIterator it = c.iterator();\n\t\t\twhile(it.hasNext()) {\n\t\t\t\tString s = (String) it.next();\n\t\t\t\tSystem.out.println(s);\n\t\t\t}\n\t\tB:Collection洢Զ󲢱\n\t\t\tCollection c = new ArrayList();\n\n\t\t\tStudent s1 = new Student(\"ϼ\",18);\n\t\t\tStudent s2 = new Student(\"\",21);\n\t\t\tStudent s3 = new Student(\"֥\",60);\n\n\t\t\tc.add(s1);\n\t\t\tc.add(s2);\n\t\t\tc.add(s3);\n\n\t\t\tIterator it = c.iterator();\n\t\t\twhile(it.hasNext()) {\n\t\t\t\tStudent s = (Student) it.next();\n\t\t\t\tSystem.out.println(s.getName()+\"---\"+s.getAge());\n\t\t\t}\n\n3List()\n\t(1)Listϵص\n\t\tԪ(洢˳ȡ˳һ),ظ\n\t(2)Listϵйܣ(Լ˼)\n\t\tA:add(int index,Object obj)\n\t\tB:remove(int index)\n\t\tC:get(int index)\n\t\tD:set(int index,Object obj)\n\t\tE:listIterator()\n\t(3)Listϵб\n\t\tͨsize()get()ϼ\n\t(4)ListIteratorĸʹ()\n\t\tA:ListIteratorIteratorӽӿ\n\t\tB:ListIterator岻\n\t\t\tΪҪ\n\t\tC:޸쳣ԭͽ\n\t\t\ta:ԭ\n\t\t\t\tõϵʱüȥ޸˼ϵԪء\n\t\t\tb:\n\t\t\t\tͨforüȥԪ\n\t\t\t\tббȥԪ\n\t(5)\n\t\tA:List洢ַ\n\t\t\tList list = new ArrayList();\n\n\t\t\tlist.add(\"hello\");\n\t\t\tlist.add(\"world\");\n\t\t\tlist.add(\"java\");\n\n\t\t\tIterator it = list.iterator();\n\t\t\twhile(it.hasNext()) {\n\t\t\t\tString s = (String) it.next();\n\t\t\t\tSystem.out.println(s);\n\t\t\t}\n\n\t\t\tfor(int x=0; x<list.size(); x++) {\n\t\t\t\tString s = (String) list.get(x);\n\t\t\t\tSystem.out.println(s);\n\t\t\t}\n\t\tB:List洢Զ󲢱(Լ)"
  },
  {
    "path": "day16/code/day16_ArrayList_Vector_LinkedList/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day16/code/day16_ArrayList_Vector_LinkedList/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day16_ArrayList_Vector_LinkedList</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day16/code/day16_ArrayList_Vector_LinkedList/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day16/code/day16_ArrayList_Vector_LinkedList/src/cn/itcast_01/ArrayListDemo.java",
    "content": "package cn.itcast_01;\n\nimport java.util.ArrayList;\nimport java.util.Iterator;\n\n/*\n * List:\n * \t\tArrayList:\n * \t\t\tײݽṹ飬ѯ죬ɾ\n * \t\t\t̲߳ȫЧʸ\n * \t\tVector:\n * \t\t\tײݽṹ飬ѯ죬ɾ\n * \t\t\t̰߳ȫЧʵ\n * \t\tLinkedList:\n * \t\t\tײݽṹѯɾ\n * \t\t\t̲߳ȫЧʸ\n * \n * ⣺ArrayListVectorLinkedListĸص?\n * \n * ˼⣺ArrayListVectorLinkedListǵʹ˭?\n * \t\t\t\n * \t\t\t\n * \t\t\tҪȫ?\n * \t\t\t\tҪVector(ҲãCollectionsµķʽ)\n * \t\t\t\tҪArrayListLinkedList\n * \t\t\t\t\tѯࣺArrayList\n * \t\t\t\t\tɾࣺLinkedList\n * \n * \t\t֪ĸArrayList\n * \n * ArrayList洢ַ\n */\npublic class ArrayListDemo {\n\tpublic static void main(String[] args) {\n\t\tArrayList array = new ArrayList();\n\n\t\tarray.add(\"hello\");\n\t\tarray.add(\"world\");\n\t\tarray.add(\"java\");\n\n\t\t// \n\t\tIterator it = array.iterator();\n\t\twhile (it.hasNext()) {\n\t\t\tString s = (String) it.next();\n\t\t\tSystem.out.println(s);\n\t\t}\n\t\tSystem.out.println(\"--------------\");\n\n\t\t// ͨfor\n\t\tfor (int x = 0; x < array.size(); x++) {\n\t\t\tString s = (String) array.get(x);\n\t\t\tSystem.out.println(s);\n\t\t}\n\n\t}\n}\n"
  },
  {
    "path": "day16/code/day16_ArrayList_Vector_LinkedList/src/cn/itcast_01/ArrayListTest.java",
    "content": "package cn.itcast_01;\n\nimport java.util.ArrayList;\nimport java.util.Iterator;\n\n/*\n * 󣺴洢ѧ󣬲ַʽ\n * \n * ϰ\n * \t\tVectorLinkedList\n * \t\t洢ַ\n * \t\t洢Զ󲢱\n */\npublic class ArrayListTest {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tArrayList array = new ArrayList();\n\n\t\t// Ԫض\n\t\tStudent s1 = new Student(\"Ԫ\", 50);\n\n\t\tStudent s2 = new Student();\n\t\ts2.setName(\"\");\n\t\ts2.setAge(60);\n\n\t\tStudent s3 = new Student(\"ʼ\", 40);\n\n\t\t// Ԫӵ\n\t\tarray.add(s1);\n\t\tarray.add(s2);\n\t\tarray.add(s3);\n\n\t\t// \n\t\tIterator it = array.iterator();\n\t\twhile (it.hasNext()) {\n\t\t\tStudent s = (Student) it.next();\n\t\t\tSystem.out.println(s.getName() + \"---\" + s.getAge());\n\t\t}\n\t\tSystem.out.println(\"-----------------\");\n\n\t\tfor (int x = 0; x < array.size(); x++) {\n\t\t\tStudent s = (Student) array.get(x);\n\t\t\tSystem.out.println(s.getName() + \"---\" + s.getAge());\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day16/code/day16_ArrayList_Vector_LinkedList/src/cn/itcast_01/Student.java",
    "content": "package cn.itcast_01;\n\npublic class Student {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Student() {\n\t\tsuper();\n\t}\n\n\tpublic Student(String name, int age) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n}\n"
  },
  {
    "path": "day16/code/day16_ArrayList_Vector_LinkedList/src/cn/itcast_02/VectorDemo.java",
    "content": "package cn.itcast_02;\n\nimport java.util.Enumeration;\nimport java.util.Vector;\n\n/*\n * йܣ\n * \t\tA:Ԫ\n * \t\t\tpublic void addElement(Object obj)\t\t--\t\tadd(Object obj)\n * \t\tB:ȡԪ\n *\t\t\tpublic Object elementAt(int index)\t\t--\t\tget(int index)\n *\t\t\tpublic Enumeration elements()\t\t\t--\t\tIterator iterator()\n *\t\t\t\t\t\thasMoreElements()\t\t\t\t\t\t\thasNext()\n *\t\t\t\t\t\tnextElement()\t\t\t\t\t\t\t\tnext()\n *\n *\t\tJDK汾\n *\t\t\tA:ȫ\n *\t\t\tB:Ч\n *\t\t\tC:д\n */\npublic class VectorDemo {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\t// Collection c = new Vector();\n\t\t// List list = new Vector();\n\n\t\tVector v = new Vector();\n\n\t\t// public void addElement(Object obj)\n\t\tv.addElement(\"hello\");\n\t\tv.addElement(\"world\");\n\t\tv.addElement(\"java\");\n\n\t\t// public Object elementAt(int index)\n\t\t// System.out.println(v.elementAt(0));\n\t\t// System.out.println(v.elementAt(1));\n\t\t// System.out.println(v.elementAt(2));\n\t\t// ͨfor\n\t\t// for (int x = 0; x < v.size(); x++) {\n\t\t// String s = (String) v.elementAt(x);\n\t\t// System.out.println(s);\n\t\t// }\n\n\t\t// Ƶķʽ\n\t\tEnumeration en = v.elements();\n\t\twhile (en.hasMoreElements()) {\n\t\t\tString s = (String) en.nextElement();\n\t\t\tSystem.out.println(s);\n\t\t}\n\n\t\tSystem.out.println(\"v:\" + v);\n\t}\n}\n"
  },
  {
    "path": "day16/code/day16_ArrayList_Vector_LinkedList/src/cn/itcast_03/LinkedListDemo.java",
    "content": "package cn.itcast_03;\n\nimport java.util.LinkedList;\n\n/*\n * LinkedListйܣ\n * \t\tA:ӹ\n * \t\t\tvoid addFirst()\n * \t\t\tvoid addLast()\n * \t\tB:Ƴ\n * \t\t\tObject removeFirst()\n * \t\t\tObject removeLast()\n * \t\tC:ȡ\n * \t\t\tObject getFirst()\n * \t\t\tObject getLast()\n */\npublic class LinkedListDemo {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tLinkedList link = new LinkedList();\n\n\t\t// Ԫ\n\t\tlink.add(\"hello\");\n\t\tlink.add(\"world\");\n\t\tlink.add(\"java\");\n\n\t\t// void addFirst()\n\t\t// void addLast()\n\t\t// link.addFirst(\"android\");\n\t\t// link.addLast(\"javaee\");\n\n\t\t// Object removeFirst()\n\t\t// Object removeLast()\n\t\t// System.out.println(\"removeFirst:\" + link.removeFirst());\n\t\t// System.out.println(\"removeLast:\" + link.removeLast());\n\n\t\t// Object getFirst()\n\t\t// Object getLast()\n\t\tSystem.out.println(\"getFirst:\" + link.getFirst());\n\t\tSystem.out.println(\"getLast:\" + link.getLast());\n\n\t\tSystem.out.println(\"link:\" + link);\n\t}\n}\n"
  },
  {
    "path": "day16/code/day16_ArrayList_Vector_LinkedList/src/cn/itcast_04/ArrayListTest.java",
    "content": "package cn.itcast_04;\n\nimport java.util.ArrayList;\nimport java.util.Iterator;\n\n/*\n * ȥַظֵ(ַͬ)\n * \n * \t\thello,world,java,android,world,java,javaee,java,java,java,android\n * \n * \t\thello,world,java,android,javaee\n * \n * ¼ϵķʽ\n * \t\tA:弯ϣ洢ظԪ\n * \t\tB:¼\n * \t\tC:ɼϣȡɼеÿһԪ\n * \t\tD:ǾɼϵÿһԪص¼ȥңû\n * \t\t\tУͲ()\n * \t\t\tľУ\n * \t\tE:¼\n */\npublic class ArrayListTest {\n\tpublic static void main(String[] args) {\n\t\t// 弯ϣ洢ظԪ\n\t\tArrayList array = new ArrayList();\n\t\tarray.add(\"hello\");\n\t\tarray.add(\"world\");\n\t\tarray.add(\"java\");\n\t\tarray.add(\"android\");\n\t\tarray.add(\"world\");\n\t\tarray.add(\"java\");\n\t\tarray.add(\"javaee\");\n\t\tarray.add(\"java\");\n\t\tarray.add(\"java\");\n\t\tarray.add(\"java\");\n\t\tarray.add(\"android\");\n\n\t\t// ¼\n\t\tArrayList newArrayList = new ArrayList();\n\n\t\t// ɼϣȡɼеÿһԪ\n\t\tfor (int x = 0; x < array.size(); x++) {\n\t\t\tString s = (String) array.get(x);\n\t\t\t// ǾɼϵÿһԪص¼ȥңû\n\t\t\tif (!newArrayList.contains(s)) {\n\t\t\t\t// ľУ\n\t\t\t\tnewArrayList.add(s);\n\t\t\t}\n\t\t}\n\n\t\t// ¼\n\t\tIterator it = newArrayList.iterator();\n\t\twhile (it.hasNext()) {\n\t\t\tString s = (String) it.next();\n\t\t\tSystem.out.println(s);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day16/code/day16_ArrayList_Vector_LinkedList/src/cn/itcast_04/ArrayListTest2.java",
    "content": "package cn.itcast_04;\n\nimport java.util.ArrayList;\nimport java.util.Iterator;\n\n/*\n * ȥַظֵ(ַͬ)\n * \n * \t\thello,world,java,android,world,java,javaee,java,java,java,android\n * \n * \t\thello,world,java,android,javaee\n * \n * ѡ˼һ\n */\npublic class ArrayListTest2 {\n\tpublic static void main(String[] args) {\n\t\t// 弯ϣ洢ظԪ\n\t\tArrayList array = new ArrayList();\n\t\tarray.add(\"hello\");\n\t\tarray.add(\"world\");\n\t\tarray.add(\"java\");\n\t\tarray.add(\"android\");\n\t\tarray.add(\"world\");\n\t\tarray.add(\"java\");\n\t\tarray.add(\"javaee\");\n\t\tarray.add(\"java\");\n\t\tarray.add(\"java\");\n\t\tarray.add(\"java\");\n\t\tarray.add(\"android\");\n\n\t\tfor (int x = 0; x < array.size() - 1; x++) {\n\t\t\tfor (int y = x + 1; y < array.size(); y++) {\n\t\t\t\tif (array.get(y).equals(array.get(x))) {\n\t\t\t\t\tarray.remove(y);\n\t\t\t\t\ty--; // Ԫɾ󣬻Ҫ͵ǰλõıȽһ\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// \n\t\tIterator it = array.iterator();\n\t\twhile (it.hasNext()) {\n\t\t\tString s = (String) it.next();\n\t\t\tSystem.out.println(s);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day16/code/day16_ArrayList_Vector_LinkedList/src/cn/itcast_04/ArrayListTest3.java",
    "content": "package cn.itcast_04;\n\nimport java.util.ArrayList;\nimport java.util.Iterator;\n\n/*\n * ȥԶظֵ(ĳԱֵͬ)\n * Student:name,age\n * ͨ򵥵ķ֪Ӧж⡣\n * ԣӦνжϵġ\n * Ҫ֪жϵģͱ뿴жϵķԴ\n * ͨ鿴Դ룬֪ϵcontains()ײԴԪضequals()\n * Ĭ£Ԫ̳Objectequals()Ƚϵǵֵַ\n * ԣҪȽ϶ĳԱֵͬͱдequals()\n */\npublic class ArrayListTest3 {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tArrayList array = new ArrayList();\n\n\t\t// ѧ\n\t\tStudent s1 = new Student(\"ϼ\", 28);\n\t\tStudent s2 = new Student(\"\", 27);\n\t\tStudent s3 = new Student(\"\", 27);\n\t\tStudent s4 = new Student(\"ͮ\", 25);\n\t\tStudent s5 = new Student(\"Ż\", 40);\n\t\tStudent s6 = new Student(\"֥\", 60);\n\t\tStudent s7 = new Student(\"ϼ\", 20);\n\t\tStudent s8 = new Student(\"ϼ\", 28);\n\n\t\t// ѧӵ\n\t\tarray.add(s1);\n\t\tarray.add(s2);\n\t\tarray.add(s3);\n\t\tarray.add(s4);\n\t\tarray.add(s5);\n\t\tarray.add(s6);\n\t\tarray.add(s7);\n\t\tarray.add(s8);\n\n\t\t// ¼\n\t\tArrayList newArrayList = new ArrayList();\n\n\t\t// ɼϣȡɼеÿһԪ\n\t\tfor (int x = 0; x < array.size(); x++) {\n\t\t\tStudent s = (Student) array.get(x);\n\t\t\t// ǾɼϵÿһԪص¼ȥңû\n\t\t\tif (!newArrayList.contains(s)) {\n\t\t\t\t// ľУ\n\t\t\t\tnewArrayList.add(s);\n\t\t\t}\n\t\t}\n\n\t\t// ¼\n\t\tIterator it = newArrayList.iterator();\n\t\twhile (it.hasNext()) {\n\t\t\tStudent s = (Student) it.next();\n\t\t\tSystem.out.println(s.getName() + \"---\" + s.getAge());\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day16/code/day16_ArrayList_Vector_LinkedList/src/cn/itcast_04/LinkedListDemo.java",
    "content": "package cn.itcast_04;\n\n\n/*\n * LinkedList\n *\t\tLinkedListģջݽṹļϣ\n *\t\tĿ˼ǣҪԼһ࣬ṩԪغͻȡԪصĹܣȻļࡣṩLinkedListʹá\n * ջȽ\n */\npublic class LinkedListDemo {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\t// LinkedList link = new LinkedList();\n\t\t//\n\t\t// // Ԫ\n\t\t// link.addFirst(\"hello\");\n\t\t// link.addFirst(\"world\");\n\t\t// link.addFirst(\"java\");\n\t\t//\n\t\t// Iterator it = link.iterator();\n\t\t// while (it.hasNext()) {\n\t\t// String s = (String) it.next();\n\t\t// System.out.println(s);\n\t\t// }\n\t\t\n\t\t//\n\t\tMyStack my = new MyStack();\n\t\t\n\t\t//Ԫ\n\t\tmy.add(\"hello\");\n\t\tmy.add(\"world\");\n\t\tmy.add(\"java\");\n\t\t\n\t\t//ȡ\n\t\t// System.out.println(my.get());\n\t\t// System.out.println(my.get());\n\t\t// System.out.println(my.get());\n\t\t// System.out.println(my.get());\n\t\t\n\t\twhile(!my.isEmpty()){\n\t\t\tSystem.out.println(my.get());\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day16/code/day16_ArrayList_Vector_LinkedList/src/cn/itcast_04/MyStack.java",
    "content": "package cn.itcast_04;\n\nimport java.util.LinkedList;\n\n/*\n * Լļ\n */\npublic class MyStack {\n\tprivate LinkedList link;\n\n\tpublic MyStack() {\n\t\tlink = new LinkedList();\n\t}\n\n\tpublic void add(Object obj) {\n\t\tlink.addFirst(obj);\n\t}\n\n\tpublic Object get() {\n\t\t// return link.getFirst();\n\t\treturn link.removeFirst();\n\t}\n\n\tpublic boolean isEmpty() {\n\t\treturn link.isEmpty();\n\t}\n}\n"
  },
  {
    "path": "day16/code/day16_ArrayList_Vector_LinkedList/src/cn/itcast_04/Student.java",
    "content": "package cn.itcast_04;\n\npublic class Student {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Student() {\n\t\tsuper();\n\t}\n\n\tpublic Student(String name, int age) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\t@Override\n\tpublic boolean equals(Object obj) {\n\t\tif (this == obj)\n\t\t\treturn true;\n\t\tif (obj == null)\n\t\t\treturn false;\n\t\tif (getClass() != obj.getClass())\n\t\t\treturn false;\n\t\tStudent other = (Student) obj;\n\t\tif (age != other.age)\n\t\t\treturn false;\n\t\tif (name == null) {\n\t\t\tif (other.name != null)\n\t\t\t\treturn false;\n\t\t} else if (!name.equals(other.name))\n\t\t\treturn false;\n\t\treturn true;\n\t}\n\n}\n"
  },
  {
    "path": "day16/code/day16_ArrayList_Vector_LinkedList/src/cn/itcast_05/ArrayListDemo.java",
    "content": "package cn.itcast_05;\n\nimport java.util.ArrayList;\n\n/*\n * Ĵ\n * \n * \t\tΤ\n * ¥\n * \t\tֱؿ\n * ˮ䰴\n * \t\tɣ³ӣ¬壬\n * μ\n * \t\t׹Ǿ㣬գţħ캢\n * \n * ҹĴÿкܶԽɫ\n */\npublic class ArrayListDemo {\n\tpublic static void main(String[] args) {\n\t\t// С\n\t\tArrayList<String> sgyy = new ArrayList<String>();\n\t\tsgyy.add(\"\");\n\t\tsgyy.add(\"Τ\");\n\t\tsgyy.add(\"\");\n\n\t\t// ¥С\n\t\tArrayList<String> hlm = new ArrayList<String>();\n\t\thlm.add(\"ֱ\");\n\t\thlm.add(\"\");\n\t\thlm.add(\"\");\n\t\thlm.add(\"ؿ\");\n\n\t\t// ˮ䰴С\n\t\tArrayList<String> shz = new ArrayList<String>();\n\t\tshz.add(\"\");\n\t\tshz.add(\"³\");\n\t\tshz.add(\"\");\n\t\tshz.add(\"¬\");\n\t\tshz.add(\"\");\n\t\tshz.add(\"\");\n\n\t\t// μС\n\t\tArrayList<String> xyj = new ArrayList<String>();\n\t\txyj.add(\"׹Ǿ\");\n\t\txyj.add(\"\");\n\t\txyj.add(\"\");\n\t\txyj.add(\"ţħ\");\n\t\txyj.add(\"캢\");\n\n\t\t// Ĵ󼯺\n\t\tArrayList<ArrayList<String>> sdmz = new ArrayList<ArrayList<String>>();\n\t\tsdmz.add(sgyy);\n\t\tsdmz.add(hlm);\n\t\tsdmz.add(shz);\n\t\tsdmz.add(xyj);\n\n\t\t// \n\t\tfor (ArrayList<String> array : sdmz) {\n\t\t\tfor (String s : array) {\n\t\t\t\tSystem.out.print(s + \" \");\n\t\t\t}\n\t\t\tSystem.out.println();\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day16/code/day16_Generic/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day16/code/day16_Generic/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day16_Generic</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day16/code/day16_Generic/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day16/code/day16_Generic/src/cn/itcast_01/ArrayListDemo.java",
    "content": "package cn.itcast_01;\n\nimport java.util.ArrayList;\nimport java.util.Iterator;\n\n/*\n * ⣺\n * \t\t1:лɫߣ̫ѿ\n * \t\t2:ʵɫ߾Ǹ㣬üһ\n * \t\t3:㿴˻͵ԪأʵԶװ䣬ӵҲһ\n * \n * ǾҪɫ⣬ʵǽϵİȫ?\n * ν?\n * \t\tǿԲ\n * \t\tString[] strArray = new String[3];\n *\t\tstrArray[0] = \"hello\";\n *\t\tstrArray[1] = \"world\";\n * \t\tstrArray[2] = 100;\n * \t\tڶʱҾȷԪصͣԺӵʱ򣬾Ͳκ⡣\n */\npublic class ArrayListDemo {\n\tpublic static void main(String[] args) {\n\t\t// 洢ַ\n\t\tArrayList array = new ArrayList();\n\n\t\tarray.add(\"hello\");\n\t\tarray.add(\"world\");\n\t\tarray.add(\"java\");\n\t\t// array.add(new Integer(100));\n\t\t// array.add(100); // Զװ\n\n\t\tIterator it = array.iterator();\n\t\twhile (it.hasNext()) {\n\t\t\tString s = (String) it.next();\n\t\t\tSystem.out.println(s);\n\t\t\t// Object obj = it.next();\n\t\t\t// // if (obj instanceof String) {\n\t\t\t// // String s = (String) obj;\n\t\t\t// // System.out.println(s);\n\t\t\t// // } else if (obj instanceof Integer) {\n\t\t\t// // Integer i = (Integer) obj;\n\t\t\t// // System.out.println(i);\n\t\t\t// // }\n\t\t\t// System.out.println(obj);\n\t\t}\n\n//\t\tString[] strArray = new String[3];\n//\t\tstrArray[0] = \"hello\";\n//\t\tstrArray[1] = \"world\";\n//\t\tstrArray[2] = 100;\n\t}\n}\n"
  },
  {
    "path": "day16/code/day16_Generic/src/cn/itcast_01/ArrayListDemo2.java",
    "content": "package cn.itcast_01;\n\nimport java.util.ArrayList;\nimport java.util.Iterator;\n\n/*\n * ڶ弯ϵʱȥȷϵԪ?\n * ʱ򣬴JDK5Ժ󣬾ṩһµļ\n * ͣȷ͵ĹƳٵ˴ߵ÷ʱȥġ\n * ʽ\n * \t\t<> ͡\n * Щطʹ÷?\n * \t\tһڼг鿴API࣬࣬ӿں<?>˵Ҫ÷͡\n * \n * ͵ĺô\n * \t\tA:˳İȫ\n * \t\tB:תƵ˱\n * \t\tC:ʡȥǿת鷳\n * \n * ϰ\n * \t\tArrayList洢Զ󣬲뷺͡\n */\npublic class ArrayListDemo2 {\n\tpublic static void main(String[] args) {\n\t\t// 洢ַ\n\t\tArrayList<String> array = new ArrayList<String>();\n\n\t\t// Ӽ\n\t\tarray.add(\"hello\");\n\t\tarray.add(\"world\");\n\t\tarray.add(\"java\");\n\t\t// array.add(100);\n\n\t\t// \n\t\tIterator<String> it = array.iterator();\n\t\twhile (it.hasNext()) {\n\t\t\t// String s = (String) it.next();\n\t\t\tString s = it.next();\n\t\t\tSystem.out.println(s);\n\t\t}\n\t\tSystem.out.println(\"-----------------\");\n\n\t\tfor (int x = 0; x < array.size(); x++) {\n\t\t\tString s = array.get(x);\n\t\t\tSystem.out.println(s);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day16/code/day16_Generic/src/cn/itcast_01/ArrayListTest.java",
    "content": "package cn.itcast_01;\n\nimport java.util.ArrayList;\nimport java.util.Iterator;\n\n/*\n * ArrayList洢Զ󲢱Ҫ뷺\n */\npublic class ArrayListTest {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tArrayList<Student> array = new ArrayList<Student>();\n\t\t// JDK7ԣηͣƶ\n\t\t// ArrayList<Student> array = new ArrayList<>();\n\n\t\t// Ԫ\n\t\tStudent s1 = new Student(\"\", 18);\n\t\tStudent s2 = new Student(\"١\", 20);\n\t\tStudent s3 = new Student(\"\", 19);\n\t\tStudent s4 = new Student(\"\", 21);\n\n\t\t// Ԫ\n\t\tarray.add(s1);\n\t\tarray.add(s2);\n\t\tarray.add(s3);\n\t\tarray.add(s4);\n\n\t\t// \n\t\tIterator<Student> it = array.iterator();\n\t\twhile (it.hasNext()) {\n\t\t\tStudent s = it.next();\n\t\t\tSystem.out.println(s.getName() + \"---\" + s.getAge());\n\t\t}\n\t\tSystem.out.println(\"------------------\");\n\n\t\tfor (int x = 0; x < array.size(); x++) {\n\t\t\tStudent s = array.get(x);\n\t\t\tSystem.out.println(s.getName() + \"---\" + s.getAge());\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day16/code/day16_Generic/src/cn/itcast_01/Student.java",
    "content": "package cn.itcast_01;\n\npublic class Student {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Student() {\n\t\tsuper();\n\t}\n\n\tpublic Student(String name, int age) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n}\n"
  },
  {
    "path": "day16/code/day16_Generic/src/cn/itcast_02/Inter.java",
    "content": "package cn.itcast_02;\n\n/*\n * ͽӿڣѷͶڽӿ\n * \n * ʽ\n * \t\tinterface ӿ<,...>\n */\npublic interface Inter<YY> {\n\tpublic abstract void show(YY yy);\n}\n"
  },
  {
    "path": "day16/code/day16_Generic/src/cn/itcast_02/InterImpl.java",
    "content": "package cn.itcast_02;\n\n/*\n * ʵʵַͽӿڵʱ\n * A:ʵֽӿڵʱѾȷ˽ӿڵķͲ\n * B:ʵֽӿڵʱһ֪ӿڵķͲ\n */\n//public class InterImpl implements Inter<String> {\n//\t@Override\n//\tpublic void show(String yy) {\n//\t\tSystem.out.println(yy);\n//\t}\n// }\n\npublic class InterImpl<YY> implements Inter<YY> {\n\t@Override\n\tpublic void show(YY yy) {\n\t\tSystem.out.println(yy);\n\t}\n}\n\n// new InterImpl<String>();"
  },
  {
    "path": "day16/code/day16_Generic/src/cn/itcast_02/InterTest.java",
    "content": "package cn.itcast_02;\n\npublic class InterTest {\n\tpublic static void main(String[] args) {\n\t\t\n\t}\n}\n"
  },
  {
    "path": "day16/code/day16_Generic/src/cn/itcast_02/Tool.java",
    "content": "package cn.itcast_02;\n\npublic class Tool {\n//\tprivate Student student;\n//\tpublic Student getStudent() {\n//\t\treturn student;\n//\t}\n//\tpublic void setStudent(Student student) {\n//\t\tthis.student = student;\n//\t}\n\t\n\t//⹤ߣҪTeacherֻҪStudentΪTeacherͿ\n\t//ǣǼҪTeacherҪStudentô?\n\t\n\tprivate Object obj;\n\n\tpublic Object getObj() {\n\t\treturn obj;\n\t}\n\n\tpublic void setObj(Object obj) {\n\t\tthis.obj = obj;\n\t}\n}\n\nclass Student {\n\tpublic void love() {\n\t\tSystem.out.println(\"ѧѧϰ\");\n\t}\n}\n\nclass Teacher {\n\tpublic void love() {\n\t\tSystem.out.println(\"ʦϼ\");\n\t}\n}"
  },
  {
    "path": "day16/code/day16_Generic/src/cn/itcast_02/Tool2.java",
    "content": "package cn.itcast_02;\n\n/*\n * ࣺѷͶϡ\n * ʽ\n * \t\tclass <,...> {}\n */\npublic class Tool2<QQ> {\n\tprivate QQ qq;\n\n\tpublic QQ getQq() {\n\t\treturn qq;\n\t}\n\n\tpublic void setQq(QQ qq) {\n\t\tthis.qq = qq;\n\t}\n}\n"
  },
  {
    "path": "day16/code/day16_Generic/src/cn/itcast_02/Tool2Test.java",
    "content": "package cn.itcast_02;\n\n/*\n * Ĭ£Object͡\n */\npublic class Tool2Test {\n\tpublic static void main(String[] args) {\n\t\tStudent s = new Student();\n\t\tTeacher t = new Teacher();\n\n\t\t// Tool2 tool = new Tool2();\n\t\t// // ΪStudent\n\t\t// tool.setQq(s);\n\t\t// Student ss = (Student) tool.getQq();\n\t\t// ss.love();\n\t\t// // ΪTeacher\n\t\t// tool.setQq(t);\n\t\t// Teacher tt = (Teacher) tool.getQq();\n\t\t// tt.love();\n\t\t// Student sss = (Student) tool.getQq();\n\t\t// sss.love();\n\n\t\tTool2<Student> tool = new Tool2<Student>();\n\t\ttool.setQq(s);\n\t\tStudent ss = tool.getQq();\n\t\tss.love();\n\n\t\t// tool.setQq(t); // ڼ͸㣬ˣѾȷˣStudent\n\n\t\tTool2<Teacher> tool2 = new Tool2<Teacher>();\n\t\ttool2.setQq(t);\n\t\tTeacher tt = tool2.getQq();\n\t\ttt.love();\n\t}\n}\n"
  },
  {
    "path": "day16/code/day16_Generic/src/cn/itcast_02/Tool3.java",
    "content": "package cn.itcast_02;\n\n/*\n * ͷѷӵϡ\n * ʽ\n * \t\tpublic <>  ( .)\n */\npublic class Tool3 {\n\t// public void print(String s) {\n\t// System.out.println(s);\n\t// }\n\t//\n\t// public void print(Integer i) {\n\t// System.out.println(i);\n\t// }\n\t//\n\t// public void print(Boolean b) {\n\t// System.out.println(b);\n\t// }\n\n\tpublic <BMW> void print(BMW bmw) {\n\t\tSystem.out.println(bmw);\n\t}\n}\n"
  },
  {
    "path": "day16/code/day16_Generic/src/cn/itcast_02/Tool3Test.java",
    "content": "package cn.itcast_02;\n\npublic class Tool3Test {\n\tpublic static void main(String[] args) {\n\t\tTool3 t = new Tool3();\n\n\t\tt.print(\"hello\");\n\t\tt.print(100);\n\t\tt.print(true);\n\t}\n}\n"
  },
  {
    "path": "day16/code/day16_Generic/src/cn/itcast_02/ToolTest.java",
    "content": "package cn.itcast_02;\n\n/*\n * Objectǵĳչԡ\n * ǣת쳣\n * ԣֽرĺá\n * ʱjavaṩ˷ͼ\n */\npublic class ToolTest {\n\tpublic static void main(String[] args) {\n\t\tStudent s = new Student();\n\t\tTeacher t = new Teacher();\n\n\t\t// Tool t = new Tool();\n\t\t// t.setStudent(s);\n\t\t// Student ss = t.getStudent();\n\t\t// ss.love();\n\n\t\tTool tool = new Tool();\n\t\t// ΪStudent\n\t\ttool.setObj(s);\n\t\tStudent ss = (Student) tool.getObj();\n\t\tss.love();\n\n\t\t// ΪTeacher\n\t\ttool.setObj(t);\n\t\tTeacher tt = (Teacher) tool.getObj();\n\t\ttt.love();\n\n\t\tStudent sss = (Student) tool.getObj();\n\t\tsss.love();\n\t}\n}\n"
  },
  {
    "path": "day16/code/day16_Generic/src/cn/itcast_03/GenericeDemo.java",
    "content": "package cn.itcast_03;\n\nimport java.util.ArrayList;\nimport java.util.Collection;\n\n/*\n *͸߼\n *ͨ<?>\n *\t\tͣûȷôObjectԼJava\n *? extends E\n *\t\t޶E\n *? super E\n *\t\t޶E丸\n */\npublic class GenericeDemo {\n\tpublic static void main(String[] args) {\n\t\t// ͨ<?>\n\t\tCollection<?> c1 = new ArrayList<Animal>();\n\t\tCollection<?> c2 = new ArrayList<Dog>();\n\t\tCollection<?> c3 = new ArrayList<Cat>();\n\t\tCollection<?> c4 = new ArrayList<Object>();\n\t\tSystem.out.println(\"--------------------\");\n\n\t\t// ? extends E\n\t\tCollection<? extends Animal> c5 = new ArrayList<Animal>();\n\t\tCollection<? extends Animal> c6 = new ArrayList<Dog>();\n\t\tCollection<? extends Animal> c7 = new ArrayList<Cat>();\n\t\t// Collection<? extends Animal> c8 = new ArrayList<Object>();\n\t\tSystem.out.println(\"--------------------\");\n\n\t\t// ? super E\n\t\tCollection<? super Animal> c9 = new ArrayList<Animal>();\n\t\t// Collection<? super Animal> c10 = new ArrayList<Dog>();\n\t\t// Collection<? super Animal> c11 = new ArrayList<Cat>();\n\t\tCollection<? super Animal> c12 = new ArrayList<Object>();\n\t}\n}\n\nclass Animal {\n}\n\nclass Dog extends Animal {\n}\n\nclass Cat extends Animal {\n}"
  },
  {
    "path": "day16/code/day16_JDK5News/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day16/code/day16_JDK5News/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day16_JDK5News</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day16/code/day16_JDK5News/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day16/code/day16_JDK5News/src/cn/itcast_01/ArrayListTest.java",
    "content": "package cn.itcast_01;\n\nimport java.util.ArrayList;\n\n/*\n * ArrayList洢Զ󲢱Ҫ뷺ͣʹַʽ\n */\npublic class ArrayListTest {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tArrayList<Student> array = new ArrayList<Student>();\n\n\t\t// Ԫ\n\t\tStudent s1 = new Student(\"\", 18);\n\t\tStudent s2 = new Student(\"١\", 20);\n\t\tStudent s3 = new Student(\"\", 19);\n\t\tStudent s4 = new Student(\"\", 21);\n\n\t\t// Ԫ\n\t\tarray.add(s1);\n\t\tarray.add(s2);\n\t\tarray.add(s3);\n\t\tarray.add(s4);\n\n\t\tfor (Student s : array) {\n\t\t\tSystem.out.println(s.getName() + \"---\" + s.getAge());\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day16/code/day16_JDK5News/src/cn/itcast_01/ForDemo.java",
    "content": "package cn.itcast_01;\n\nimport java.util.ArrayList;\n\n/*\n * ǿforforѭһָʽ\n * ʽ\n * \t\tfor(Ԫ  : Collection) {\n * \t\t\tֱʹñͿˣıʵ߼еԪء\n * \t\t}\n * ô\n * \t\tCollectionϵı\n * \n * עǿforĿҪжǷΪnull\n * ǿforϣʵ\n * \n * Collectionǿfor\n * Listࣺǿforͨfor\n */\npublic class ForDemo {\n\tpublic static void main(String[] args) {\n\t\t// int\n\t\tint[] arr = { 1, 2, 3, 4, 5 };\n\t\t// ǿfor\n\t\tfor (int x : arr) {\n\t\t\tSystem.out.println(x);\n\t\t}\n\t\tSystem.out.println(\"-----------------\");\n\n\t\tString[] strArray = { \"hello\", \"world\", \"java\" };\n\t\t// ǿfor\n\t\tfor (String str : strArray) {\n\t\t\tSystem.out.println(str);\n\t\t}\n\t\tSystem.out.println(\"-----------------\");\n\n\t\tArrayList<String> array = new ArrayList<String>();\n\t\tarray.add(\"hello\");\n\t\tarray.add(\"world\");\n\t\tarray.add(\"java\");\n\t\t// ǿfor\n\t\tfor (String s : array) {\n\t\t\tSystem.out.println(s);\n\t\t}\n\t\t\n\t\t//NullPointerException\n\t\t// array = null;\n\t\t// for (String s : array) {\n\t\t// System.out.println(s);\n\t\t// }\n\t\t\n\t\t\n\t\t// for (String s : array) {\n\t\t// //ConcurrentModificationException\n\t\t// array.add(\"hello\");\n\t\t// }\n\t}\n}\n"
  },
  {
    "path": "day16/code/day16_JDK5News/src/cn/itcast_01/Student.java",
    "content": "package cn.itcast_01;\n\npublic class Student {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Student() {\n\t\tsuper();\n\t}\n\n\tpublic Student(String name, int age) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n}\n"
  },
  {
    "path": "day16/code/day16_JDK5News/src/cn/itcast_02/StaticImportDemo.java",
    "content": "package cn.itcast_02;\n\n/*\n * ̬룺\n * \t\tʽimport static xxx.xxx.xxx..;\n * \n * ע⣺\t\t\n * \t\tA:Ǿ̬\n * \t\tB:жͬľ̬ײ֪ʹ˭?ʱҪʹãǰ׺ɴ˿ɼ岻һ㲻ãҪܿ\n */\nimport static java.lang.Math.abs;\nimport static java.lang.Math.max;\n\npublic class StaticImportDemo {\n\tpublic static void main(String[] args) {\n\t\t// System.out.println(java.lang.Math.abs(-12));\n\t\t// System.out.println(java.lang.Math.max(12, 23));\n\n\t\t// System.out.println(Math.abs(-12));\n\t\t// System.out.println(Math.max(12, 23));\n\n\t\tSystem.out.println(abs(-12));\n\t\tSystem.out.println(java.lang.Math.max(12, 23));\n\t}\n\n\tpublic static boolean max(int a, int b) {\n\t\treturn a == b;\n\t}\n}\n"
  },
  {
    "path": "day16/code/day16_JDK5News/src/cn/itcast_03/ArgsDemo.java",
    "content": "package cn.itcast_03;\n\n/*\n * ɱ巽ʱ֪öٸ\n * ʽ\n * \t\tη ֵ (͡  ){\n * \n * \t\t}\n * ע\n * \t\tA:ıʵһ顣ԶѲװһȥ\n * \t\tB:һеĿɱֻܳʽ\n */\npublic class ArgsDemo {\n\tpublic static void main(String[] args) {\n//\t\tSystem.out.println(sum());\n\n\t\tint a = 10;\n\t\tint b = 20;\n\t\tint result = sum(a, b);\n\t\tSystem.out.println(result);\n\n\t\tint c = 30;\n\t\tresult = sum(a, b, c);\n\t\tSystem.out.println(result);\n\n\t\tint d = 40;\n\t\tresult = sum(a, b, c, d);\n\t\tSystem.out.println(result);\n\n\t\t// Ҫ͹ܣ2-100ĿǰҲ֪ٸ?õʱҾ֪ˣṩ?\n\t\t// ô?2ʼһֱ100ԣ̫鷳\n\t\t// ûиõķ?СԲȷjavaṩһɱ÷\n\t\tresult = sum(10, 20, 30, 40, 50);\n\t\tSystem.out.println(result);\n\t\tresult = sum(10, 20, 30, 40, 50, 60, 70, 80, 90);\n\t\tSystem.out.println(result);\n\t}\n\n\tpublic static int sum(int b,int... a) {\n\t\t// [I@7821f46a\n\t\t// System.out.println(a);\n\t\tint result = 0;\n\t\tfor (int i : a) {\n\t\t\tresult += i;\n\t\t}\n\t\treturn result;\n\t}\n\n\t// public static int sum(int a, int b) {\n\t// return a + b;\n\t// }\n\t//\n\t// public static int sum(int a, int b, int c) {\n\t// return a + b + c;\n\t// }\n\t//\n\t// public static int sum(int a, int b, int c, int d) {\n\t// return a + b + c + d;\n\t// }\n\n}\n"
  },
  {
    "path": "day16/code/day16_JDK5News/src/cn/itcast_03/ArraysDemo.java",
    "content": "package cn.itcast_03;\n\nimport java.util.Arrays;\nimport java.util.List;\n\n/*\n * public static <T> List<T> asList(T... a):һֵָ֧Ĺ̶Сб\n */\npublic class ArraysDemo {\n\tpublic static void main(String[] args) {\n\t\tList<String> list = Arrays.asList(\"hello\", \"world\", \"java\");\n\n\t\t// list.add(\"haha\"); // UnsupportedOperationException\n\t\t// list.remove(1);\n\t\tlist.set(1, \"haha\");\n\n\t\tfor (String s : list) {\n\t\t\tSystem.out.println(s);\n\t\t}\n\t}\n}"
  },
  {
    "path": "day16/day16总结.txt",
    "content": "1ϰϰʲô()\n\t(1)ϰ\n\t(2)ϰ\n\t(3)ϰ\n\t\n2ݽṹ()\n\t(1)⣺ݽṹЩ?Լÿݽṹȱ?\n\t(2)ݽṹ\n\t\tA:ջ\n\t\t\tȽ\n\t\tB:\n\t\t\tȽȳ\n\t\tC:\n\t\t\tѯ죬ɾ\n\t\tD:\n\t\t\tѯɾ\n\n3Listʵ()\n\t(1)Listʵص\n\t\tA:ArrayList\n\t\t\tײݽṹ飬ѯ죬ɾ\n\t\t\t̲߳ȫЧʸ\n\t\tB:Vector\n\t\t\tײݽṹ飬ѯ죬ɾ\n\t\t\t̰߳ȫЧʵ\n\t\tC:LinkedList\n\t\t\tײݽṹѯɾ\n\t\t\t̲߳ȫЧʸ\n\t(2)ѡĸӽʹ?\n\t\t\n\n\t\tҪȫ?\n\t\t\tҪVector(ʵҲиõķʽ潲)\n\t\t\tҪArrayListLinkedList\n\t\t\t\tѯࣺArrayList\n\t\t\t\tɾࣺLinkedList\n\t\t\n\t\tʲô֪ArrayList\n\t(3)ArrayList\n\t\tA:洢ַ\n\t\tB:洢Զ󲢱\n\t(4)Vector\n\t\tA:й(˽)\n\t\t\ta:addElement(object obj)\t--\tadd()\n\t\t\tb:elementAt(int index)\t\t--\tget()\n\t\t\tc:elements()\t\t\t--\titerator()\n\t\tB:洢ַ\n\t\tC:洢Զ󲢱\n\t(5)LinkedList\n\t\tA:й(˽)\n\t\t\ta:addFirst(),addLast()\n\t\t\tb:removeFirst(),removeLast()\n\t\t\tc:getFirst(),getLast()\n\t\tB:洢ַ\n\t\tC:洢Զ󲢱\n\t(6)\n\t\tA:ȥArrayListظַ\n\t\tB:ȥArrayListظԶ\n\t\t\tcontains()ĵײԴequals()\n\t\tC:LinkedListģջݽṹļϣ\n\n4:()\n\t(1)ͣһְȷ͵ĹƳٵߵ÷ʱȡȷ͡\n\t(2)ʽ\n\t\t<>\n\t(3)ô\n\t\tA:˳İȫ\n\t\tB:ʱ쳣ǰ˱\n\t\tC:ǿת\n\t(4)Щطʹ÷?\n\t\tAPIɣ࣬࣬ӿں<...>˵Ҫʹ\n\t(5)͵()\n\t\tA:͵\n\t\tB:\n\t\tC:ͷ\n\t\tD:ͽӿ\n\t\tE:͸߼\n\t(6)\n\t\tǰļϰ÷͸Ľ\n\n5:JDK5()\n\t(1)ǿfor()\n\t\tA:ʽ\n\t\t\tfor(Ԫص  : Collection϶) {\n\t\t\t\tʹñ\n\t\t\t}\n\t\tB:ô\n\t\t\t߼ϵı\n\t\tC:ע\n\t\t\tǿforĿ겻Ϊnull\n\t(2)̬(˽)\n\t\tA:ʽ\n\t\t\timport static xxx.yyy.zzz..;\n\t\t\t뵽˷ļ\n\t\tB:ע\n\t\t\ta:Ǿ̬\n\t\t\tb:ͬķʹõʱҪǰ׺岻һ㲻á\n\t(3)ɱ()\n\t\tA:дܵʱ򣬲ȷ\n\t\tB:ʽ\n\t\t\tη ֵ (ʽ... ) {}\n\t\tC:עʵ\n\t\t\ta:ʵ飬ԶѶԪװһ\n\t\t\tb:һжʽɱһ"
  },
  {
    "path": "day16/练习.txt",
    "content": "window±ʵ֣洢ַ\nҪCollectionõõͨforַʽ\n\nCollection(1,2,3)\nList(4,5,6)\nArrayList(7,8)\nVector(9,10)\nLinkedList(11,12)"
  },
  {
    "path": "day16/练习和自习到底做什么.txt",
    "content": "1ϰ(A,BǱҪ,Bû50Գ)\n\tA:ܽῴһ顣()10\n\tB:Ԥϰppt˽Ҫʲô()\n\tC:Լ\n\t\t룬ô룬\n\n2ϰ\n\tA:ѽܽῴһ\n\tB:ҵ\n\tC:ܽҵ\n\t\tңɳͬѧ\n\tD:ûͨģÿ10\n\tE:ϰ\n\t\t\n\n3ϰһ\n\tA:һ׶εܽῴһ\n\t\ta:java֪ʶ\t\t\n\t\tb:\t\t\n\t\tc:API\t\t\n\t\td:\t\t\t\n\t\te:IO\t\t\t\n\t\tf:GUI\t\t\t˽\n\t\tg:߳\t\t\n\t\th:\t\t\n\t\ti:+JDKܽ+ģʽ\t\n\tB:һ׶εĿһ\n\tC:һ׶εҵһ\n\n࿴á"
  },
  {
    "path": "day17/Collection集合总结.txt",
    "content": "1Collectionϵṹ\n\tCollection\n\t\t|--List(Ԫ򣬿ظ)\n\t\t\t|--ArrayList\n\t\t\t\tײݽṹ飬ѯ,ɾ\n\t\t\t\t̲߳ȫ,Чʸ\n\t\t\t|--Vector\n\t\t\t\tײݽṹ飬ѯ,ɾ\n\t\t\t\t̰߳ȫ,Чʵ\n\t\t\t|--LinkedList\n\t\t\t\tײݽṹѯ,ɾ\n\t\t\t\t̲߳ȫ,Чʸ\n\t\t|--Set(ԪΨһ)\n\t\t\t|--HashSet\n\t\t\t\tײݽṹǹϣ\n\t\t\t\t֤ԪصΨһ?\n\t\t\t\t\thashCode()equals()\n\t\t\t\t|--LinkedHashSet\n\t\t\t\t\tײݽṹǹϣ\n\t\t\t\t\t\tɹϣ֤ԪΨһ\n\t\t\t\t\t\t֤Ԫ\n\t\t\t|--TreeSet\n\t\t\t\tײݽṹǶ()\n\t\t\t\t֤ԪصΨһ?\n\t\t\t\t\tݱȽϵķֵǷ0\n\t\t\t\t֤Ԫص?\n\t\t\t\t\tȻ\n\t\t\t\t\tȽ\n\n2Collection׼ʹ˭?\n\tԪΨһ?\n\t\tǣSet\n\t\t\tҪ?\n\t\t\t\tǣTreeSet\n\t\t\t\tHashSet\n\n\t\t\t֪HashSet\n\t\tList\n\t\t\tҪȫ?\n\t\t\t\tҪVector(ʵҲãиõķʽ潲)\n\t\t\t\tҪArrayListLinkedList\n\t\t\t\t\tѯࣺArrayList\n\t\t\t\t\tɾࣺLinkedList\n\n\t\t\t֪ArrayList\n\n\t֪ArrayList\n\n3еݽṹ\n\tArrayXxx:ײݽṹ飬ѯ죬ɾ\n\tLinkedXxx:ײݽṹѯɾ\n\tHashXxx:ײݽṹǹϣhashCode()equals()ѡǷԶд\n\tTreeXxx:ײݽṹǶַȻ򣬱Ƚ"
  },
  {
    "path": "day17/code/day17_List_test/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day17/code/day17_List_test/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day17_List_test</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day17/code/day17_List_test/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day17/code/day17_List_test/src/cn/itcast_01/RandomNumberDemo.java",
    "content": "package cn.itcast_01;\n\nimport java.util.ArrayList;\n\n/*\n * 󣺻ȡ101-20֮Ҫظ\n * \n * \n * \t\tA:һϣڴ洢\n * \t\tB:һͳƱʼֵ0\n * \t\tC:жͳƱǷС10\n * \t\t\tǣ\n * \t\t\t\tһȻжڼ\n * \t\t\t\t\tǣ\n * \t\t\t\t\tӵ\n * \t\t\t񣺽\n * \t\tD:\n */\npublic class RandomNumberDemo {\n\tpublic static void main(String[] args) {\n\t\t// һϣڴ洢\n\t\tArrayList<Integer> array = new ArrayList<Integer>();\n\n\t\t// һͳƱʼֵ0\n\t\tint count = 0;\n\n\t\t// жͳƱǷС10\n\t\twhile (count < 10) {\n\t\t\t// һȻжڼ\n\t\t\tint randomNumber = (int) (Math.random() * 20) + 1;\n\n\t\t\tif (!array.contains(randomNumber)) {\n\t\t\t\tarray.add(randomNumber);\n\t\t\t\tcount++;\n\t\t\t}\n\t\t}\n\n\t\t// \n\t\tfor (Integer i : array) {\n\t\t\tSystem.out.println(i);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day17/code/day17_List_test/src/cn/itcast_02/GetMaxNumberDemo.java",
    "content": "package cn.itcast_02;\n\nimport java.util.ArrayList;\nimport java.util.Arrays;\nimport java.util.Scanner;\n\n/*\n * ¼ݣ0Ҫڿ̨еֵ\n * \n * \n * \t\tA:弯ϣڴ洢\n * \t\tB:ѭ¼ݣwhile(true){}\n * \t\tC:жϼ¼Ƿ0\n * \t\t\tǣbreak\n * \t\t\tӵ\n * \t\tD:Ѽת\n * \t\tE:()\n * \t\tF:ȡеһԪؼ\n * \t\t\n */\npublic class GetMaxNumberDemo {\n\tpublic static void main(String[] args) {\n\t\t// 弯ϣڴ洢\n\t\tArrayList<Integer> array = new ArrayList<Integer>();\n\n\t\t// ѭ¼ݣwhile(true){}\n\t\tScanner sc = new Scanner(System.in);\n\t\twhile (true) {\n\t\t\tint number = sc.nextInt();\n\n\t\t\t// жϼ¼Ƿ0\n\t\t\tif (number == 0) {\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\tarray.add(number);\n\t\t\t}\n\t\t}\n\n\t\t// Ѽת\n\t\t// <T> T[] toArray(T[] a)\n\t\tInteger[] i = new Integer[array.size()];\n\t\tInteger[] iArray = array.toArray(i);\n\n\t\t// ()\n\t\tArrays.sort(iArray);\n\n\t\t// ȡеһԪؼ\n\t\tSystem.out.println(\"ֵǣ\" + iArray[iArray.length - 1]);\n\t}\n}\n"
  },
  {
    "path": "day17/code/day17_List_test/src/cn/itcast_03/ArrayListDemo.java",
    "content": "package cn.itcast_03;\n\nimport java.util.ArrayList;\nimport java.util.Iterator;\n\n/*\n * ϶toString()ʵֵ\n */\npublic class ArrayListDemo {\n\tpublic static void main(String[] args) {\n\t\tArrayList<String> array = new ArrayList<String>();\n\n\t\tarray.add(\"hello\");\n\t\tarray.add(\"world\");\n\t\tarray.add(\"java\");\n\n\t\tSystem.out.println(array.toString()); // [hello, world, java]\n\t}\n}\n/*\npublic String toString() {\n\t//this -- array\n    Iterator<E> it = this.iterator();\n    if (! it.hasNext())\n        return \"[]\";\n\n    StringBuilder sb = new StringBuilder();\n    sb.append('[');\n    for (;;) {\n        E e = it.next();\n        sb.append(e == this ? \"(this Collection)\" : e);\n        if (! it.hasNext())\n            return sb.append(']').toString();\n        sb.append(',').append(' ');\n    }\n}\n*/"
  },
  {
    "path": "day17/code/day17_Set_HashSet_TreeSet/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day17/code/day17_Set_HashSet_TreeSet/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day17_Set_HashSet_TreeSet</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day17/code/day17_Set_HashSet_TreeSet/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day17/code/day17_Set_HashSet_TreeSet/src/cn/itcast_01/SetDemo.java",
    "content": "package cn.itcast_01;\n\nimport java.util.HashSet;\nimport java.util.Set;\n\n/*\n * Collection:\n * \t\tList:Ԫ(洢ȡ˳һ)ظ\n * \t\tSet:Ԫ,Ψһ\n */\npublic class SetDemo {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tSet<String> set = new HashSet<String>();\n\n\t\tset.add(\"hello\");\n\t\tset.add(\"aaaa\");\n\t\tset.add(\"java\");\n\t\tset.add(\"world\");\n\t\tset.add(\"bbbb\");\n\t\tset.add(\"aaaa\");\n\n\t\tfor (String s : set) {\n\t\t\tSystem.out.println(s);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day17/code/day17_Set_HashSet_TreeSet/src/cn/itcast_02/HashSetDemo.java",
    "content": "package cn.itcast_02;\n\nimport java.util.HashSet;\n\n/*\n * HashSet֤ set ĵ˳ر֤˳ò䡣\n */\npublic class HashSetDemo {\n\tpublic static void main(String[] args) {\n\t\t// HashSet洢ַԪ\n\t\tHashSet<String> hs = new HashSet<String>();\n\n\t\tSystem.out.println(hs.add(\"hello\"));\n\t\tSystem.out.println(hs.add(\"world\"));\n\t\tSystem.out.println(hs.add(\"java\"));\n\t\tSystem.out.println(hs.add(\"hello\"));\n\n\t\tSystem.out.println(\"hs:\" + hs);\n\t}\n}\n"
  },
  {
    "path": "day17/code/day17_Set_HashSet_TreeSet/src/cn/itcast_02/HashSetDemo2.java",
    "content": "package cn.itcast_02;\n\nimport java.util.HashSet;\n\n/*\n * 󣺴洢Զ󲢱(ĳԱֵͬǾΪͬһҲظԪ)\n * Ǵ洢Ԫغ󣬷ûдﵽҪЧ\n * дequals()ֻǲС\n * ô?ǾӦ˼?\n * ͨ򵥵ķ֪϶add()\n * ԣҪ֪ʲô,ǾӦÿadd()Դ\n * ͨ鿴Դ룬ǿµһжϣ\n * \t\tif (e.hash == hash && ((k = e.key) == key || key.equals(k))){}\n * \t\t\tA:e.hash == hash\n * \t\t\t\tȽϵǶĹϣֵǷͬ\n * \t\t\tB:((k = e.key) == key || key.equals(k))\n * \t\t\t\t߱ȽϵǵַǷͬ\n * \t\t\t\tұ߱ȽϵǷͬ\n * HashSetϵײݽṹǹϣϣhashCode()equals()֤ԪصΨһԡ\n * \t\tȽ϶hashCode()ֵǷͬ\n * \t\t\tǣȽequals()Ƿͬ\n * \t\t\t\ttrueͲӵ\n * \t\t\t\tfalseӵ\n * \t\t\tֱӵ\n * \n * ѧϰϺֻҪ֪HashSetα֤ԪصΨһԵġ\n * ʵʿУǿֽṹļϣҪдhashCode()equals()\n * ǴҲõģΪԶɡ\n */\npublic class HashSetDemo2 {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tHashSet<Person> hs = new HashSet<Person>();\n\n\t\t// Ԫض\n\t\tPerson p1 = new Person(\"\", 30);\n\t\tPerson p2 = new Person(\"ɹ\", 22);\n\t\tPerson p3 = new Person(\"ܹ\", 25);\n\t\tPerson p4 = new Person(\"\", 35);\n\t\tPerson p5 = new Person(\"Ź\", 33);\n\t\tPerson p6 = new Person(\"ɺ\", 22);\n\t\tPerson p7 = new Person(\"ɹ\", 22);\n\t\tPerson p8 = new Person(\"\", 18);\n\n\t\t// Ԫӵ\n\t\ths.add(p1);\n\t\t// hs.add(p1);\n\t\ths.add(p2);\n\t\ths.add(p3);\n\t\ths.add(p4);\n\t\ths.add(p5);\n\t\ths.add(p6);\n\t\ths.add(p7);\n\t\ths.add(p8);\n\n\t\t// \n\t\tfor (Person p : hs) {\n\t\t\tSystem.out.println(p.getName() + \"---\" + p.getAge());\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day17/code/day17_Set_HashSet_TreeSet/src/cn/itcast_02/Person.java",
    "content": "package cn.itcast_02;\n\npublic class Person {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Person() {\n\t\tsuper();\n\t}\n\n\tpublic Person(String name, int age) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\t// @Override\n\t// public int hashCode() {\n\t// // return 0;\n\t// // return this.name.hashCode() + this.age;\n\t// // this.name.hashCode(): 20,40\n\t// // this.age: 50,30\n\t// return this.name.hashCode() + this.age * 13;\n\t// }\n\n\t@Override\n\tpublic int hashCode() {\n\t\tfinal int prime = 31;\n\t\tint result = 1;\n\t\tresult = prime * result + age;\n\t\tresult = prime * result + ((name == null) ? 0 : name.hashCode());\n\t\treturn result;\n\t}\n\n\t@Override\n\tpublic boolean equals(Object obj) {\n\t\tif (this == obj)\n\t\t\treturn true;\n\t\tif (obj == null)\n\t\t\treturn false;\n\t\tif (getClass() != obj.getClass())\n\t\t\treturn false;\n\t\tPerson other = (Person) obj;\n\t\tif (age != other.age)\n\t\t\treturn false;\n\t\tif (name == null) {\n\t\t\tif (other.name != null)\n\t\t\t\treturn false;\n\t\t} else if (!name.equals(other.name))\n\t\t\treturn false;\n\t\treturn true;\n\t}\n\n\t@Override\n\tpublic String toString() {\n\t\treturn \"Person [name=\" + name + \", age=\" + age + \"]\";\n\t}\n\n}\n"
  },
  {
    "path": "day17/code/day17_Set_HashSet_TreeSet/src/cn/itcast_03/LinkedHashSetDemo.java",
    "content": "package cn.itcast_03;\n\nimport java.util.LinkedHashSet;\n\n/*\n * LinkedHashSetײݽṹǹϣ\n * ϣܹ֤ԪصΨһ\n * ܹ֤Ԫ\n */\npublic class LinkedHashSetDemo {\n\tpublic static void main(String[] args) {\n\t\tLinkedHashSet<String> link = new LinkedHashSet<String>();\n\n\t\tlink.add(\"ccc\");\n\t\tlink.add(\"hello\");\n\t\tlink.add(\"bbb\");\n\t\tlink.add(\"world\");\n\t\tlink.add(\"aaa\");\n\t\tlink.add(\"java\");\n\t\tlink.add(\"aaa\");\n\t\tlink.add(\"java\");\n\n\t\tSystem.out.println(\"link:\" + link);\n\t}\n}\n"
  },
  {
    "path": "day17/code/day17_Set_HashSet_TreeSet/src/cn/itcast_04/Person.java",
    "content": "package cn.itcast_04;\n\n/*\n * ȻǾӦöʵȻӿComparable\n */\npublic class Person implements Comparable<Person> {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Person() {\n\t\tsuper();\n\t}\n\n\tpublic Person(String name, int age) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\t@Override\n\tpublic int compareTo(Person p) {\n\t\t// ĿѵԼҪȷȽϵĴҪ\n\t\t// ҪȽ\n\t\t// ҪͬȽҪԼܹ\n\n\t\t// this\n\t\t// p\n\t\t// \n\t\tint num = this.age - p.age;\n\t\t// \n\t\t// int num = p.age - this.age;\n\n\t\tint num2 = (num == 0) ? (this.name.compareTo(p.name)) : num;\n\n\t\treturn num2;\n\t}\n}\n"
  },
  {
    "path": "day17/code/day17_Set_HashSet_TreeSet/src/cn/itcast_04/TreeSetDemo.java",
    "content": "package cn.itcast_04;\n\nimport java.util.TreeSet;\n\n/*\n * TreeSet:ײݽṹǶ\n * ԪֱַǣȻԼComparator(Ƚ),ʹʹõĹ췽\n */\npublic class TreeSetDemo {\n\tpublic static void main(String[] args) {\n\t\t// 20,18,23,22,17,24,19,18,24\n\t\t// һµĿ set set ԪصȻ˳\n\t\tTreeSet<Integer> ts = new TreeSet<Integer>();\n\n\t\t// 洢Ԫ\n\t\tts.add(20);\n\t\tts.add(18);\n\t\tts.add(23);\n\t\tts.add(22);\n\t\tts.add(17);\n\t\tts.add(24);\n\t\tts.add(19);\n\t\tts.add(18);\n\t\tts.add(24);\n\n\t\t// \n\t\tfor (Integer i : ts) {\n\t\t\tSystem.out.println(i);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day17/code/day17_Set_HashSet_TreeSet/src/cn/itcast_04/TreeSetDemo2.java",
    "content": "package cn.itcast_04;\n\nimport java.util.TreeSet;\n\n/*\n * TreeSetα֤Ԫ?α֤ԪΨһ?\n * \n * TreeSet洢Զ󣬲Ҫȥظֵ\n * a:ԱֵͬҾΪظԪ\n * b:밴ĴС\n * \n * ͨ۲Ǵһ˼\n * ӵڶԪؿʼӵʱ򣬻ǰԪؽбȽϣߵcompareTo()\n * \t\tص\n * \t\tصǸСǰ\n * \t\tص0˵ظš\n */\npublic class TreeSetDemo2 {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tTreeSet<Person> ts = new TreeSet<Person>();\n\n\t\t// ˶\n\t\tPerson p1 = new Person(\"tangseng\", 30);\n\t\tPerson p2 = new Person(\"jiapingwa\", 25);\n\t\tPerson p3 = new Person(\"zhangyimou\", 25);\n\t\tPerson p4 = new Person(\"xijinping\", 26);\n\t\tPerson p5 = new Person(\"yanni\", 27);\n\t\tPerson p6 = new Person(\"wenzhang\", 30);\n\t\tPerson p7 = new Person(\"tianliang\", 28);\n\t\tPerson p8 = new Person(\"xijinping\", 26);\n\n\t\t// Ԫ\n\t\tts.add(p1);\n\t\tts.add(p2);\n\t\tts.add(p3);\n\t\tts.add(p4);\n\t\tts.add(p5);\n\t\tts.add(p6);\n\t\tts.add(p7);\n\t\tts.add(p8);\n\n\t\t// \n\t\tfor (Person p : ts) {\n\t\t\tSystem.out.println(p.getName() + \"---\" + p.getAge());\n\t\t}\n\n\t}\n}\n"
  },
  {
    "path": "day17/code/day17_Set_HashSet_TreeSet/src/cn/itcast_05/Person.java",
    "content": "package cn.itcast_05;\n\npublic class Person implements Comparable<Person> {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Person() {\n\t\tsuper();\n\t}\n\n\tpublic Person(String name, int age) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\t@Override\n\tpublic int compareTo(Person p) {\n\t\t// Ҫ\n\t\t// ĳȽ\n\t\tint num = this.name.length() - p.name.length();\n\t\t// Ҫ\n\t\t// һһԣҪ\n\t\tint num2 = num == 0 ? this.name.compareTo(p.name) : num;\n\t\t// һһӦñȽ\n\t\tint num3 = num2 == 0 ? this.age - p.age : num2;\n\t\treturn num3;\n\t}\n}\n"
  },
  {
    "path": "day17/code/day17_Set_HashSet_TreeSet/src/cn/itcast_05/TreeSetDemo.java",
    "content": "package cn.itcast_05;\n\nimport java.util.TreeSet;\n\n/*\n * TreeSetα֤Ԫ?α֤ԪΨһ?\n * \n * TreeSet洢Զ󣬲Ҫȥظֵ\n * a:ԱֵͬҾΪظԪ\n * b:밴ĳȽ\n */\npublic class TreeSetDemo {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tTreeSet<Person> ts = new TreeSet<Person>();\n\n\t\t// ˶\n\t\tPerson p1 = new Person(\"tangseng\", 30);\n\t\tPerson p2 = new Person(\"jiapingwa\", 25);\n\t\tPerson p3 = new Person(\"zhangyimou\", 25);\n\t\tPerson p4 = new Person(\"xijinping\", 26);\n\t\tPerson p5 = new Person(\"yanni\", 27);\n\t\tPerson p6 = new Person(\"wenzhang\", 30);\n\t\tPerson p7 = new Person(\"tianliang\", 28);\n\t\tPerson p8 = new Person(\"xijinping\", 26);\n\t\tPerson p9 = new Person(\"tianliang\", 24);\n\n\t\t// Ԫ\n\t\tts.add(p1);\n\t\tts.add(p2);\n\t\tts.add(p3);\n\t\tts.add(p4);\n\t\tts.add(p5);\n\t\tts.add(p6);\n\t\tts.add(p7);\n\t\tts.add(p8);\n\t\tts.add(p9);\n\n\t\t// \n\t\tfor (Person p : ts) {\n\t\t\tSystem.out.println(p.getName() + \"---\" + p.getAge());\n\t\t}\n\n\t}\n}\n"
  },
  {
    "path": "day17/code/day17_Set_HashSet_TreeSet/src/cn/itcast_06/Person.java",
    "content": "package cn.itcast_06;\n\npublic class Person implements Comparable<Person> {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Person() {\n\t\tsuper();\n\t}\n\n\tpublic Person(String name, int age) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\t@Override\n\tpublic int compareTo(Person p) {\n\t\t// Ҫ\n\t\t// ĳȽ\n\t\tint num = this.name.length() - p.name.length();\n\t\t// Ҫ\n\t\t// һһԣҪ\n\t\tint num2 = num == 0 ? this.name.compareTo(p.name) : num;\n\t\t// һһӦñȽ\n\t\tint num3 = num2 == 0 ? this.age - p.age : num2;\n\t\treturn num3;\n\t}\n}\n"
  },
  {
    "path": "day17/code/day17_Set_HashSet_TreeSet/src/cn/itcast_06/TreeSetDemo.java",
    "content": "package cn.itcast_06;\n\nimport java.util.Comparator;\nimport java.util.TreeSet;\n\n/*\n * TreeSetα֤Ԫ?α֤ԪΨһ?\n * \n * TreeSet洢Զ󣬲Ҫȥظֵ\n * a:ԱֵͬҾΪظԪ\n * b:밴ĴС\n * \n * ܽ᣺TreeSet֤ԪΨһ \n * ΨһԣݱȽϵķֵǷ0жԪǷΨһ\n * ַʽ\n * \t\tA:Ȼ\t(Ԫؾ߱Ƚ)\n * \t\t\töʵComparableӿ\n * \t\tB:Ƚ (Ͼ߱Ƚ)\n * \t\t\t϶ʱ򣬽Comparatorӿڵʵһʹõڲʵ֡\n */\npublic class TreeSetDemo {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\t// TreeSet<Person> ts = new TreeSet<Person>();\n\t\t// TreeSet(Comparator comparator)\n\t\t// һµĿ TreeSetָȽ\n\t\tTreeSet<Person> ts = new TreeSet<Person>(new Comparator<Person>() {\n\t\t\t@Override\n\t\t\tpublic int compare(Person p1, Person p2) {\n\t\t\t\t// this -- p1\n\t\t\t\t// p -- p2\n\t\t\t\tint num = p1.getAge() - p2.getAge();\n\t\t\t\tint num2 = num == 0 ? p1.getName().compareTo(p2.getName())\n\t\t\t\t\t\t: num;\n\t\t\t\treturn num2;\n\t\t\t}\n\t\t});\n\n\t\t// ˶\n\t\tPerson p1 = new Person(\"tangseng\", 30);\n\t\tPerson p2 = new Person(\"jiapingwa\", 25);\n\t\tPerson p3 = new Person(\"zhangyimou\", 25);\n\t\tPerson p4 = new Person(\"xijinping\", 26);\n\t\tPerson p5 = new Person(\"yanni\", 27);\n\t\tPerson p6 = new Person(\"wenzhang\", 30);\n\t\tPerson p7 = new Person(\"tianliang\", 28);\n\t\tPerson p8 = new Person(\"xijinping\", 26);\n\n\t\t// Ԫ\n\t\tts.add(p1);\n\t\tts.add(p2);\n\t\tts.add(p3);\n\t\tts.add(p4);\n\t\tts.add(p5);\n\t\tts.add(p6);\n\t\tts.add(p7);\n\t\tts.add(p8);\n\n\t\t// \n\t\tfor (Person p : ts) {\n\t\t\tSystem.out.println(p.getName() + \"---\" + p.getAge());\n\t\t}\n\n\t}\n}\n"
  },
  {
    "path": "day17/code/day17_Set_HashSet_TreeSet/src/cn/itcast_07/GetRandomNumerDemo.java",
    "content": "package cn.itcast_07;\n\nimport java.util.HashSet;\n\n/*\n * Setǽࡣһʹ˭?\n * \t\tҪ?\n * \t\t\tҪTreeSet\n * \t\t\tҪHashSet\n * Ҳ֪ǲҪHashSet\n * \n * дһ򣬻ȡ10120Ҫظ\n * \n * \n * \t\tA:HashSetϣ洢Integer͵\n * \t\tB:ֱжϼϵĳ\n * \t\t\tС10洢\n * \t\tC:\n */\npublic class GetRandomNumerDemo {\n\tpublic static void main(String[] args) {\n\t\t// HashSetϣ洢Integer͵\n\t\tHashSet<Integer> hs = new HashSet<Integer>();\n\n\t\t// ֱжϼϵĳ\n\t\twhile (hs.size() < 10) {\n\t\t\t// \n\t\t\tint number = (int) (Math.random() * 20) + 1;\n\t\t\ths.add(number);\n\t\t}\n\n\t\t// \n\t\tfor (Integer i : hs) {\n\t\t\tSystem.out.println(i);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day17/code/day17_Set_HashSet_TreeSet/src/cn/itcast_07/Student.java",
    "content": "package cn.itcast_07;\n\npublic class Student {\n\tprivate String name;\n\tprivate int chinese;\n\tprivate int math;\n\tprivate int english;\n\n\tpublic Student() {\n\t\tsuper();\n\t}\n\n\tpublic Student(String name, int chinese, int math, int english) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.chinese = chinese;\n\t\tthis.math = math;\n\t\tthis.english = english;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic int getChinese() {\n\t\treturn chinese;\n\t}\n\n\tpublic void setChinese(int chinese) {\n\t\tthis.chinese = chinese;\n\t}\n\n\tpublic int getMath() {\n\t\treturn math;\n\t}\n\n\tpublic void setMath(int math) {\n\t\tthis.math = math;\n\t}\n\n\tpublic int getEnglish() {\n\t\treturn english;\n\t}\n\n\tpublic void setEnglish(int english) {\n\t\tthis.english = english;\n\t}\n\n\tpublic int getSum() {\n\t\treturn chinese + math + english;\n\t}\n}\n"
  },
  {
    "path": "day17/code/day17_Set_HashSet_TreeSet/src/cn/itcast_07/StudentDemo.java",
    "content": "package cn.itcast_07;\n\nimport java.util.Comparator;\nimport java.util.Scanner;\nimport java.util.TreeSet;\n\n/*\n * ¼5ѧϢ(,ĳɼ,ѧɼ,Ӣɼ),ִܷӸߵ̨\n * \n * \n * \t\tA:һѧ࣬гԱ,ĳɼ,ѧɼ,Ӣɼ\n * \t\tB:ΪҪֽܷ˵ҪԣѡTreeSet\n * \t\tC:ַʽʵ֣ѡһ֣ñȽʵ\n * \t\tD:¼ѧ洢TreeSet\n * \t\tE:\n */\npublic class StudentDemo {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\tTreeSet<Student> ts = new TreeSet<Student>(new Comparator<Student>() {\n\t\t\t@Override\n\t\t\tpublic int compare(Student s1, Student s2) {\n\t\t\t\t// Ҫ\n\t\t\t\tint num = s2.getSum() - s1.getSum();\n\t\t\t\t// ҪһαȽĳɼѧɼӢɼ\n\t\t\t\tint num2 = num == 0 ? s1.getName().compareTo(s2.getName())\n\t\t\t\t\t\t: num;\n\t\t\t\treturn num2;\n\t\t\t}\n\t\t});\n\t\tSystem.out.println(\"ѧ¼뿪ʼ\");\n\t\tScanner sc = new Scanner(System.in);\n\t\t// 5\n\t\tfor (int x = 1; x <= 5; x++) {\n\t\t\t// ¼ѧϢ\n\t\t\tSystem.out.println(\"\" + x + \"ѧ\");\n\t\t\tString name = sc.nextLine();\n\t\t\tSystem.out.println(\"\" + x + \"ѧĳɼ\");\n\t\t\tint chinese = Integer.parseInt(sc.nextLine());\n\t\t\tSystem.out.println(\"\" + x + \"ѧѧɼ\");\n\t\t\tint math = Integer.parseInt(sc.nextLine());\n\t\t\tSystem.out.println(\"\" + x + \"ѧӢɼ\");\n\t\t\tint english = Integer.parseInt(sc.nextLine());\n\n\t\t\t// ѧ\n\t\t\tStudent s = new Student();\n\t\t\ts.setName(name);\n\t\t\ts.setChinese(chinese);\n\t\t\ts.setMath(math);\n\t\t\ts.setEnglish(english);\n\n\t\t\t// ӵ\n\t\t\tts.add(s);\n\t\t}\n\n\t\t// һ仰\n\t\tSystem.out.println(\"ѧ¼\");\n\n\t\t// \n\t\tfor (Student s : ts) {\n\t\t\tSystem.out.println(s.getName() + \"---\" + s.getChinese() + \"---\"\n\t\t\t\t\t+ s.getMath() + \"---\" + s.getEnglish());\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day17/code/day17_login_regist/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day17/code/day17_login_regist/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day17_login_regist</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day17/code/day17_login_regist/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day17/code/day17_login_regist/src/cn/itcast/dao/UserDao.java",
    "content": "package cn.itcast.dao;\n\nimport cn.itcast.pojo.User;\n\n/**\n * ûĽӿ\n * \n * @author fqy\n * @version V1.0\n */\npublic interface UserDao {\n\t/**\n\t * û¼\n\t * \n\t * @param username\n\t *            û\n\t * @param password\n\t *            \n\t * @return ¼Ƿɹ\n\t */\n\tpublic abstract boolean isLogin(String username, String password);\n\n\t// ˵עҲӦ÷booleanͣǵListϵļϣԪԶtrueأҾͷvoid\n\t// 뷨ҲӦû룬?Ҵһûû롣\n\t// һĲ3ʱ򣬽鴫ݶ\n\t/**\n\t * ûעṦ\n\t * \n\t * @param user\n\t *            û\n\t */\n\tpublic abstract void regist(User user);\n}\n"
  },
  {
    "path": "day17/code/day17_login_regist/src/cn/itcast/dao/impl/UserDaoImpl.java",
    "content": "package cn.itcast.dao.impl;\n\nimport java.util.ArrayList;\n\nimport cn.itcast.dao.UserDao;\nimport cn.itcast.pojo.User;\n\npublic class UserDaoImpl implements UserDao {\n\tprivate static ArrayList<User> array = new ArrayList<User>();\n\n\t@Override\n\tpublic boolean isLogin(String username, String password) {\n\t\tboolean flag = false;\n\n\t\tfor (User user : array) {\n\t\t\tif (user.getUsername().equals(username)\n\t\t\t\t\t&& user.getPassword().equals(password)) {\n\t\t\t\tflag = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn flag;\n\t}\n\n\t@Override\n\tpublic void regist(User user) {\n\t\tarray.add(user);\n\t}\n\n}\n"
  },
  {
    "path": "day17/code/day17_login_regist/src/cn/itcast/game/GuessNumber.java",
    "content": "package cn.itcast.game;\n\nimport java.util.Scanner;\n\n/**\n * СϷ\n * \n * @author fqy\n * @version V1.0\n */\npublic class GuessNumber {\n\tprivate GuessNumber() {\n\t}\n\n\tpublic static void start() {\n\t\t// \n\t\tint number = (int) (Math.random() * 100) + 1;\n\n\t\twhile (true) {\n\t\t\t// ¼\n\t\t\tScanner sc = new Scanner(System.in);\n\t\t\tSystem.out.println(\"Ҫµݣ\");\n\t\t\tint guessNumber = sc.nextInt();\n\n\t\t\t// ж\n\t\t\tif (guessNumber > number) {\n\t\t\t\tSystem.out.println(\"µ\" + guessNumber + \"\");\n\t\t\t} else if (guessNumber < number) {\n\t\t\t\tSystem.out.println(\"µ\" + guessNumber + \"С\");\n\t\t\t} else {\n\t\t\t\tSystem.out.println(\"ϲ㣬\");\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}"
  },
  {
    "path": "day17/code/day17_login_regist/src/cn/itcast/pojo/User.java",
    "content": "package cn.itcast.pojo;\n\n/**\n * û\n * \n * @author fqy\n * @version V1.0\n */\npublic class User {\n\t// û\n\tprivate String username;\n\t// \n\tprivate String password;\n\n\tpublic User() {\n\t\tsuper();\n\t}\n\n\tpublic User(String username, String password) {\n\t\tsuper();\n\t\tthis.username = username;\n\t\tthis.password = password;\n\t}\n\n\tpublic String getUsername() {\n\t\treturn username;\n\t}\n\n\tpublic void setUsername(String username) {\n\t\tthis.username = username;\n\t}\n\n\tpublic String getPassword() {\n\t\treturn password;\n\t}\n\n\tpublic void setPassword(String password) {\n\t\tthis.password = password;\n\t}\n}\n"
  },
  {
    "path": "day17/code/day17_login_regist/src/cn/itcast/test/UserTest.java",
    "content": "package cn.itcast.test;\n\nimport java.util.Scanner;\n\nimport cn.itcast.dao.UserDao;\nimport cn.itcast.dao.impl.UserDaoImpl;\nimport cn.itcast.game.GuessNumber;\nimport cn.itcast.pojo.User;\n\n/*\n * ǲ\n */\npublic class UserTest {\n\tpublic static void main(String[] args) {\n\t\twc: while (true) {\n\t\t\t// ӭ\n\t\t\tSystem.out.println(\"-----------ӭ------------\");\n\t\t\tSystem.out.println(\"1 ¼\");\n\t\t\tSystem.out.println(\"2 ע\");\n\t\t\tSystem.out.println(\"3 ˳\");\n\t\t\tSystem.out.println(\"ѡ\");\n\t\t\t// ¼\n\t\t\tScanner sc = new Scanner(System.in);\n\t\t\tString choiceString = sc.nextLine();\n\n\t\t\t// ദʹ\n\t\t\tUserDao ud = new UserDaoImpl();\n\n\t\t\tswitch (choiceString) {\n\t\t\tcase \"1\":\n\t\t\t\tSystem.out.println(\"-----------¼------------\");\n\t\t\t\t// ¼û\n\t\t\t\tSystem.out.println(\"û\");\n\t\t\t\tString username = sc.nextLine();\n\t\t\t\tSystem.out.println(\"룺\");\n\t\t\t\tString password = sc.nextLine();\n\t\t\t\t// ù\n\t\t\t\t// UserDao ud = new UserDaoImpl();\n\t\t\t\tboolean flag = ud.isLogin(username, password);\n\t\t\t\tif (flag) {\n\t\t\t\t\tSystem.out.println(\"¼ɹ\");\n\n\t\t\t\t\tString yn;\n\t\t\t\t\tdo {\n\t\t\t\t\t\t// Ϸ\n\t\t\t\t\t\tGuessNumber.start();\n\t\t\t\t\t\tSystem.out.println(\"㻹Ҫ?y:\");\n\t\t\t\t\t\tyn = sc.nextLine();\n\t\t\t\t\t} while (\"y\".equals(yn));\n\n\t\t\t\t\t// break wc;\n\t\t\t\t} else {\n\t\t\t\t\tSystem.out.println(\"¼ʧ,صѡ\");\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"2\":\n\t\t\t\tSystem.out.println(\"-----------ע------------\");\n\t\t\t\t// ¼û\n\t\t\t\tSystem.out.println(\"û\");\n\t\t\t\tString newUsername = sc.nextLine();\n\t\t\t\tSystem.out.println(\"룺\");\n\t\t\t\tString newPassword = sc.nextLine();\n\t\t\t\t// ù\n\t\t\t\t// UserDao ud = new UserDaoImpl();\n\t\t\t\t// ݷװ\n\t\t\t\t// User user = new User(newUsername, newPassword);\n\t\t\t\tUser user = new User();\n\t\t\t\tuser.setUsername(newUsername);\n\t\t\t\tuser.setPassword(newPassword);\n\n\t\t\t\tud.regist(user);\n\t\t\t\tSystem.out.println(\"עɹ,صѡ\");\n\t\t\t\tbreak;\n\t\t\tcase \"3\":\n\t\t\tdefault:\n\t\t\t\tSystem.out.println(\"лл٣ӭ\");\n\t\t\t\tSystem.exit(0);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day17/code/day17_login_regist/登录注册案例分析.txt",
    "content": "󲿷֣ǵĳǷ˼?\n\tA:ҸóЩ\n\tB:ÿЩԱ\n\tC:Ĺϵ\n\t\n󣺵¼ע᰸\n\tA:ҸóЩ\n\t\tû\n\t\t\tû\tcn.itcast.pojo(ʵ,һ׼ Ա췽getXxx/setXxx)\n\t\t\t\tûӿ\tcn.itcast.dao (ӿ)\n\t\t\tû\t\t\tcn.itcast.dao.impl (ӿʵ)\n\t\t\tcn.itcast.test\n\tB:ÿЩԱ\n\t\tûࣺ\n\t\t\tû\n\t\tûࣺ\n\t\t\t¼ע\n\t\tࣺ\n\t\t\tmain\n\tC:Ĺϵ\n\t\tmainдûû󣬲ʹá"
  },
  {
    "path": "day17/day17总结.txt",
    "content": "1ϰ\n\t(1)ȡ1-20֮10Ҫظ\n\t(2)¼ݣ0ȡ¼еֵ\n\t(3)CollectionϵtoString()Դ\n\t(4)¼ע᰸ϰ\n\n2Set()\n\t(1)Setϵص\n\t\tΨһ\n\t(2)HashSet()\n\t\tA:ԪΨһ\n\t\tB:α֤ԪΨһ?\n\t\t\tHashSetϵĵײݽṹǹϣ\n\t\t\tϣ֤ԪΨһhashCode()equals()\n\t\t\t裺\n\t\t\t\ta:ж϶ĹϣֵǷͬ\n\t\t\t\tb:ֱͬӵ\n\t\t\t\t  ͬͼִequals()бȽ\n\t\t\t\tc:falseֱӵ\n\t\t\t\t  true˵Ԫظӡ\n\t\tC:õ\n\t\t\tHashXxxʽļϣҪסдɡңǿԶɵ\n\t(3)LinkedHashSet\n\t\tײݽṹǹϣ\n\t\tɹϣ֤ԪصΨһԡ\n\t\t֤Ԫص(洢˳ȡ˳һ)\n\t(4)TreeSet()\n\t\tײݽṹǺƽ\n\t\tA:ԪΨһҪ\n\t\tB:α֤ԪΨһ?\n\t\t\tݱȽϵķֵǷ0ж\n\t\tC:α֤Ԫ?\n\t\t\tַʽ\n\t\t\t\ta:Ȼ(Ԫؾ߱Ƚ)\n\t\t\t\t\tԪʵComparableӿ\n\t\t\t\tb:Ƚ(Ͼ߱Ƚ)\n\t\t\t\t\t϶ʱ򣬽ComparatorӿڵʵΪ\n\t(5)\n\t\tA:HashSet\n\t\t\t洢ַ\n\t\t\t洢Զ󲢱(ĳԱֵͬΪͬһֵ)\n\t\tB:TreeSet\n\t\t\t洢ַ\n\t\t\t洢Զ󲢱(ĳԱֵͬΪͬһֵ,С)\n\t\tC:ȡ1-20֮10Ҫظ\n\t\tD:¼5ѧ󣬲ֽܷ"
  },
  {
    "path": "day17/要练习的代码.txt",
    "content": "ϵĲ裺\n\tA:϶\n\tB:Ԫض\n\tC:Ԫӵ\n\tD:\n\nϵıʽ\n\tCollection:,ǿfor\n\t\t|--List:ͨfor\n\t\t|--Set:\n\nַ( hello,world,java)\nԶ(ѧ)\n\tclass Student {\n\t\tprivate String name;\n\t\tprivate int age;\n\n\t\tpublic Student() {}\n\n\t\tpublic Student(String name,int age) {\n\t\t\tthis.name = name;\n\t\t\tthis.age = age;\n\t\t}\n\n\t\tpublic void setName(String name) {\n\t\t\tthis.name = name;\n\t\t}\n\n\t\tpublic String getName() {\n\t\t\treturn name;\n\t\t}\n\n\t\tpublic void setAge(int age) {\n\t\t\tthis.age = age;\n\t\t}\n\n\t\tpublic int getAge() {\n\t\t\treturn age;\n\t\t}\n\t}\n\n1Collection\n\tA:ַ\n\t\tCollection<String> c = new ArrayList<String>();\n\n\t\tc.add(\"hello\");\n\t\tc.add(\"world\");\n\t\tc.add(\"java\");\n\n\t\tIterator<String> it = c.iterator();\n\t\twhile(it.hasNext()) {\n\t\t\tString s = it.next();\n\t\t\tSystem.out.println(s);\n\t\t}\n\n\t\tfor(String s : c) {\n\t\t\tSystem.out.println(s);\n\t\t}\n\n\tB:Զ\n\t\tCollection<Student> c = new ArrayList<Student>();\n\n\t\tStudent s1 = new Student(\"\",50);\n\t\tStudent s2 = new Student(\"׿\",40);\n\t\tStudent s3 = new Student(\"⾩\",30);\n\n\t\tc.add(s1);\n\t\tc.add(s2);\n\t\tc.add(s3);\n\n\t\tIterator<Student> it = c.iterator();\n\t\twhile(it.hasNext()) {\n\t\t\tStudent s = it.next();\n\t\t\tSystem.out.println(s.getName()+\"---\"+s.getAge());\n\t\t}\n\n\t\tfor(Student s : c) {\n\t\t\tSystem.out.println(s.getName()+\"---\"+s.getAge());\n\t\t}\n\n2List\n\tA:ַ\n\t\tList<String> list = new ArrayList<String>();\n\n\t\tlist.add(\"hello\");\n\t\tlist.add(\"world\");\n\t\tlist.add(\"java\");\n\n\t\tIterator<String> it = list.iterator();\n\t\twhile(it.hasNext()) {\n\t\t\tString s = it.next();\n\t\t\tSystem.out.println(s);\n\t\t}\n\n\t\tfor(String s : list) {\n\t\t\tSystem.out.println(s);\n\t\t}\n\n\t\tfor(int x=0; x<list.size(); x++) {\n\t\t\tString s = list.get(x);\n\t\t\tSystem.out.println(s);\n\t\t}\n\n\tB:Զ\n\t\tList<Student> list = new ArrayList<Student>();\n\n\t\tStudent s1 = new Student(\"\",50);\n\t\tStudent s2 = new Student(\"׿\",40);\n\t\tStudent s3 = new Student(\"⾩\",30);\n\n\t\tlist.add(s1);\n\t\tlist.add(s2);\n\t\tlist.add(s3);\n\n\t\tIterator<Student> it = list.iterator();\n\t\twhile(it.hasNext()) {\n\t\t\tStudent s = it.next();\n\t\t\tSystem.out.println(s.getName()+\"---\"+s.getAge());\n\t\t}\n\n\t\tfor(Student s : list) {\n\t\t\tSystem.out.println(s.getName()+\"---\"+s.getAge());\n\t\t}\n\n\t\tfor(int x=0; x<list.size(); x++) {\n\t\t\tStudent s = list.get(x);\n\t\t\tSystem.out.println(s.getName()+\"---\"+s.getAge());\n\t\t}\n\n3ArrayList( Լ)\n\tA:ַ\n\t\tArrayList<String> array  = new ArrayList<String>();\n\n\t\tarray.add(\"java\");\n\t\tarray.add(\"hello\");\n\t\tarray.add(\"world\");\n\n\t\t//ͨforѭ\n\t\tfor(int i =0; i<array.size(); i++) {\n\t\t\tString s = array.get(i);\n\t\t\tSystem.out.println(s);\n\t\t}\n\n\t\t//ǿfor\n\t\tfor(String s : array) {\n\t\t\tSystem.out.println(s);\n\t\t}\n\n\t\t//\n\t\tIterator<String> it = array.iterator();\n\t\twhile(it.hasNext()) {\n\t\t\tString s = it.next();\n\t\t\tSystem.out.println(s);\n\t\t}\n\tB:Զ\n\t\tArrayList<Student> array = new ArrayList<Student>();\n\n\t\tStudent s1 = new Student(\"laozi\",1000);\n\t\tStudent s2 = new Student(\"kongzi\",100);\n\t\tStudent s3 = new Student(\"zhuangzi\",10);\n\n\t\tarray.add(s1);\n\t\tarray.add(s2);\n\t\tarray.add(s3);\n\n\t\t//ͨforѭ\n\t\tfor (int i = 0; i<array.size(); i++) {\n\t\t\tStudent s = array.get(i);\n\t\t\tSystem.out.println(s.getName()+\"---\"+s.getAge());\n\t\t}\n\n\t\t//ǿforѭ\n\t\tfor (Student s : array) {\n\t\t\tSystem.out.println(s.getName()+\"---\"+s.getAge());\n\t\t}\n\n\t\t//ѭ\n\t\tfor(Iterator<Student> it = array.iterator(); it.hasNext();) {\n\t\t\tStudent s = it.next();\n\t\t\tSystem.out.println(s.getName()+\"---\"+s.getAge());\n\t\t}\n\t\t\n\n4Vector(Լ)\nA:ַ\n\t\tVector<String> vector = new Voctor<String>();\n\n\t\tvector.add(\"java\");\n\t\tvector.add(\"hello\");\n\t\tvector.add(\"world\");\n\n\t\t//ͨforѭ\n\t\tfor(int i =0; i<vector.size(); i++) {\n\t\t\tString s = vector.get(i);\n\t\t\tSystem.out.println(s);\n\t\t}\n\n\t\t//ǿfor\n\t\tfor(String s : vector) {\n\t\t\tSystem.out.println(s);\n\t\t}\n\n\t\t//\n\t\tIterator<String> it = vector.iterator();\n\t\twhile(it.hasNext()) {\n\t\t\tString s = it.next();\n\t\t\tSystem.out.println(s);\n\t\t}\n\tB:Զ\n\t\tvectorList<Student> array = new vectorList<Student>();\n\n\t\tStudent s1 = new Student(\"laozi\",1000);\n\t\tStudent s2 = new Student(\"kongzi\",100);\n\t\tStudent s3 = new Student(\"zhuangzi\",10);\n\n\t\tvector.add(s1);\n\t\tvector.add(s2);\n\t\tvector.add(s3);\n\n\t\t//ͨforѭ\n\t\tfor (int i = 0; i<vector.size(); i++) {\n\t\t\tStudent s = vector.get(i);\n\t\t\tSystem.out.println(s.getName()+\"---\"+s.getAge());\n\t\t}\n\n\t\t//ǿforѭ\n\t\tfor (Student s : vector) {\n\t\t\tSystem.out.println(s.getName()+\"---\"+s.getAge());\n\t\t}\n\n\t\t//ѭ\n\t\tfor(Iterator<Student> it = vector.iterator(); it.hasNext();) {\n\t\t\tStudent s = it.next();\n\t\t\tSystem.out.println(s.getName()+\"---\"+s.getAge());\n\t\t}\n\n5LinkedList( Լ)\n\n6Set\n\tA:ַ\n\t\tSet<String> set = new HashSet<String>();\n\n\t\tset.add(\"hello\");\n\t\tset.add(\"world\");\n\t\tset.add(\"java\");\n\n\t\tIterator<String> it = set.iterator();\n\t\twhile(it.hasNext()) {\n\t\t\tString s = it.next();\n\t\t\tSystem.out.println(s);\n\t\t}\n\n\t\tfor(String s : set) {\n\t\t\tSystem.out.println(s);\n\t\t}\n\n\tB:Զ\n\t\tSet<Student> set = new HashSet<Student>();\n\n\t\tStudent s1 = new Student(\"\",50);\n\t\tStudent s2 = new Student(\"׿\",40);\n\t\tStudent s3 = new Student(\"⾩\",30);\n\n\t\tset.add(s1);\n\t\tset.add(s2);\n\t\tset.add(s3);\n\n\t\tIterator<Student> it = set.iterator();\n\t\twhile(it.hasNext()) {\n\t\t\tStudent s = it.next();\n\t\t\tSystem.out.println(s.getName()+\"---\"+s.getAge());\n\t\t}\n\n\t\tfor(Student s : set) {\n\t\t\tSystem.out.println(s.getName()+\"---\"+s.getAge());\n\t\t}\n\n7HashSet( Լ)\n\t洢ԶʱԱֵͬǾΪͬһԪء\n\n8TreeSet( Լ)\n\t洢ԶʱԱֵͬǾΪͬһԪء\n\tȸСڸĳ"
  },
  {
    "path": "day18/code/day18_Collections/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day18/code/day18_Collections/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day18_Collections</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day18/code/day18_Collections/.settings/org.eclipse.core.resources.prefs",
    "content": "eclipse.preferences.version=1\nencoding//src/cn/itcast_03/PokerDemo.java=UTF-8\nencoding//src/cn/itcast_04/PokerDemo.java=UTF-8\n"
  },
  {
    "path": "day18/code/day18_Collections/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day18/code/day18_Collections/src/cn/itcast_01/CollectionsDemo.java",
    "content": "package cn.itcast_01;\n\nimport java.util.ArrayList;\nimport java.util.Collections;\n\n/*\n * CollectionsԼϽвĹࡣͲҵȷ\n * ?\n * \t\tCollectionsCollection?\n * \t\tCollections:ԼϽвĹ࣬Ͳҵȹܡ\n * \t\tCollection:ǵмϵĶӿڣ˵мϵĹԹܡ\n * \n * յĹܣ\n * \t\tpublic static <T> void sort(List<T> list):\n *\t\tpublic static <T> int binarySearch(List<?> list,T key):ֲ\n *\t\tpublic static <T> T max(Collection<?> coll):ֵ\n *\t\tpublic static void reverse(List<?> list):ת\n *\t\tpublic static void shuffle(List<?> list):û\n */\npublic class CollectionsDemo {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tArrayList<Integer> array = new ArrayList<Integer>();\n\n\t\t// Ԫ\n\t\tarray.add(30);\n\t\tarray.add(20);\n\t\tarray.add(50);\n\t\tarray.add(10);\n\t\tarray.add(40);\n\n\t\tSystem.out.println(\"array:\" + array);\n\n\t\t// public static <T> void sort(List<T> list):\n\t\t// Collections.sort(array);\n\t\t// System.out.println(\"array:\" + array);\n\t\t// [10, 20, 30, 40, 50]\n\n\t\t// public static <T> int binarySearch(List<?> list,T key):ֲ\n\t\t// int index = Collections.binarySearch(array, 30);\n\t\t// System.out.println(index);\n\n\t\t// public static <T> T max(Collection<?> coll):ֵ\n\t\t// Integer max = Collections.max(array);\n\t\t// System.out.println(max);\n\n\t\t// public static void reverse(List<?> list):ת\n\t\t// Collections.reverse(array);\n\t\t// System.out.println(\"array:\" + array);\n\n\t\t// public static void shuffle(List<?> list):û\n\t\tCollections.shuffle(array);\n\t\tSystem.out.println(\"array:\" + array);\n\t}\n}\n"
  },
  {
    "path": "day18/code/day18_Collections/src/cn/itcast_02/ArrayListDemo.java",
    "content": "package cn.itcast_02;\n\nimport java.util.ArrayList;\nimport java.util.Collections;\nimport java.util.Comparator;\n\n/*\n * ArrayList洢Զ󣬲\n */\npublic class ArrayListDemo {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tArrayList<Person> array = new ArrayList<Person>();\n\n\t\t// Ԫض(ɵ)\n\t\tPerson p1 = new Person(\"ܲ\", 35);// ֪\n\t\tPerson p2 = new Person(\"\", 33);// ֪\n\t\tPerson p3 = new Person(\"\", 34); // ֪Ⱦ\n\n\t\t// Ԫ\n\t\tarray.add(p1);\n\t\tarray.add(p2);\n\t\tarray.add(p3);\n\n\t\t// \n\t\t// Collections.sort(array);\n\t\tCollections.sort(array, new Comparator<Person>() {\n\t\t\t@Override\n\t\t\tpublic int compare(Person p1, Person p2) {\n\t\t\t\treturn p2.getAge() - p1.getAge();\n\t\t\t}\n\n\t\t});\n\n\t\t// \n\t\tfor (Person p : array) {\n\t\t\tSystem.out.println(p.getName() + \"---\" + p.getAge());\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day18/code/day18_Collections/src/cn/itcast_02/Person.java",
    "content": "package cn.itcast_02;\n\npublic class Person implements Comparable<Person> {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Person() {\n\t\tsuper();\n\t}\n\n\tpublic Person(String name, int age) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\t@Override\n\tpublic int compareTo(Person p) {\n\t\treturn this.age - p.age;\n\t}\n}\n"
  },
  {
    "path": "day18/code/day18_Collections/src/cn/itcast_03/PokerDemo.java",
    "content": "package cn.itcast_03;\n\nimport java.util.ArrayList;\nimport java.util.Collections;\n\n/*\n * 模拟斗地主洗牌和发牌\n * \n * 扑克牌：54\n * 小王\n * 大王\n * 黑桃A,黑桃2,黑桃3,黑桃4,黑桃...,黑桃10,黑桃J,黑桃Q,黑桃K\n * 红桃...\n * 梅花...\n * 方块...\n * \n * 分析：\n * \t\tA:造一个牌盒(集合)\n * \t\tB:造每一张牌，然后存储到牌盒里面去\n * \t\tC:洗牌\n * \t\tD:发牌\n * \t\tE:看牌\n */\npublic class PokerDemo {\n\tpublic static void main(String[] args) {\n\t\t// 造一个牌盒(集合)\n\t\tArrayList<String> array = new ArrayList<String>();\n\n\t\t// 造每一张牌，然后存储到牌盒里面去\n\t\t// 定义花色数组\n\t\tString[] colors = { \"♠\", \"♥\", \"♣\", \"♦\" };\n\t\t// 定义点数数组\n\t\tString[] numbers = { \"A\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\",\n\t\t\t\t\"J\", \"Q\", \"K\" };\n\t\tfor (String color : colors) {\n\t\t\tfor (String number : numbers) {\n\t\t\t\tarray.add(color.concat(number));\n\t\t\t}\n\t\t}\n\t\tarray.add(\"小王\");\n\t\tarray.add(\"大王\");\n\n\t\t// 看牌\n\t\t// System.out.println(array);\n\n\t\t// 洗牌\n\t\tCollections.shuffle(array);\n\n\t\t// 发牌\n\t\t// 三个选手\n\t\tArrayList<String> linQingXia = new ArrayList<String>();\n\t\tArrayList<String> fengQingYang = new ArrayList<String>();\n\t\tArrayList<String> liuYi = new ArrayList<String>();\n\t\t// 底牌\n\t\tArrayList<String> diPai = new ArrayList<String>();\n\n\t\tfor (int x = 0; x < array.size(); x++) {\n\t\t\tif (x >= array.size() - 3) {\n\t\t\t\tdiPai.add(array.get(x));\n\t\t\t} else if (x % 3 == 0) {\n\t\t\t\tlinQingXia.add(array.get(x));\n\t\t\t} else if (x % 3 == 1) {\n\t\t\t\tfengQingYang.add(array.get(x));\n\t\t\t} else if (x % 3 == 2) {\n\t\t\t\tliuYi.add(array.get(x));\n\t\t\t}\n\t\t}\n\n\t\t// 看牌\n\t\tlookPoker(\"林青霞\", linQingXia);\n\t\tlookPoker(\"风清扬\", fengQingYang);\n\t\tlookPoker(\"刘意\", liuYi);\n\t\tlookPoker(\"底牌\", diPai);\n\n\t}\n\n\t// 写一个功能实现遍历\n\tpublic static void lookPoker(String name, ArrayList<String> array) {\n\t\tSystem.out.print(name + \"的牌是：\");\n\t\tfor (String s : array) {\n\t\t\tSystem.out.print(s + \" \");\n\t\t}\n\t\tSystem.out.println();\n\t}\n}\n"
  },
  {
    "path": "day18/code/day18_Collections/src/cn/itcast_04/PokerDemo.java",
    "content": "package cn.itcast_04;\n\nimport java.util.ArrayList;\nimport java.util.Collections;\nimport java.util.HashMap;\nimport java.util.TreeSet;\n\n/*\n * A:创建一个HashMap集合\n * B:创建一个ArrayList集合\n * C:装牌\n * D:洗牌\n * E:发牌\n * F:看牌\n */\npublic class PokerDemo {\n\tpublic static void main(String[] args) {\n\t\t// 创建一个HashMap集合\n\t\tHashMap<Integer, String> hm = new HashMap<Integer, String>();\n\n\t\t// 创建一个ArrayList集合\n\t\tArrayList<Integer> array = new ArrayList<Integer>();\n\n\t\t// 存储牌\n\t\t// 定义花色数组\n\t\tString[] colors = { \"♠\", \"♥\", \"♣\", \"♦\" };\n\t\t// 定义点数数组\n\t\tString[] numbers = { \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"J\", \"Q\",\n\t\t\t\t\"K\", \"A\", \"2\" };\n\n\t\t// 定义一个索引\n\t\tint key = 0;\n\n\t\tfor (String number : numbers) {\n\t\t\tfor (String color : colors) {\n\t\t\t\tString value = color.concat(number);\n\t\t\t\thm.put(key, value);\n\t\t\t\tarray.add(key);\n\t\t\t\tkey++;\n\t\t\t}\n\t\t}\n\n\t\thm.put(key, \"小王\");\n\t\tarray.add(key);\n\t\tkey++;\n\t\thm.put(key, \"大王\");\n\t\tarray.add(key);\n\n\t\t// 洗牌\n\t\tCollections.shuffle(array);\n\n\t\t// 发牌\n\t\tTreeSet<Integer> caoCao = new TreeSet<Integer>();\n\t\tTreeSet<Integer> liuBei = new TreeSet<Integer>();\n\t\tTreeSet<Integer> sunQuan = new TreeSet<Integer>();\n\t\tTreeSet<Integer> diPai = new TreeSet<Integer>();\n\n\t\tfor (int x = 0; x < array.size(); x++) {\n\t\t\tif (x >= array.size() - 3) {\n\t\t\t\tdiPai.add(array.get(x));\n\t\t\t} else if (x % 3 == 0) {\n\t\t\t\tcaoCao.add(array.get(x));\n\t\t\t} else if (x % 3 == 1) {\n\t\t\t\tliuBei.add(array.get(x));\n\t\t\t} else if (x % 3 == 2) {\n\t\t\t\tsunQuan.add(array.get(x));\n\t\t\t}\n\t\t}\n\n\t\t// 看牌\n\t\tlookPoker(\"曹操\", caoCao, hm);\n\t\tlookPoker(\"刘备\", liuBei, hm);\n\t\tlookPoker(\"孙权\", sunQuan, hm);\n\t\tlookPoker(\"底牌\", diPai, hm);\n\t}\n\n\t// 写一个功能实现遍历\n\tpublic static void lookPoker(String name, TreeSet<Integer> ts,\n\t\t\tHashMap<Integer, String> hm) {\n\t\tSystem.out.print(name + \"的牌是：\");\n\t\tfor (Integer key : ts) {\n\t\t\tString value = hm.get(key);\n\t\t\tSystem.out.print(value + \" \");\n\t\t}\n\t\tSystem.out.println();\n\t}\n}\n"
  },
  {
    "path": "day18/code/day18_Map_HashMap_TreeMap/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day18/code/day18_Map_HashMap_TreeMap/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day18_Map_HashMap_TreeMap</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day18/code/day18_Map_HashMap_TreeMap/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day18/code/day18_Map_HashMap_TreeMap/src/cn/itcast_01/MapDemo.java",
    "content": "package cn.itcast_01;\n\nimport java.util.HashMap;\nimport java.util.Map;\n\n/*\n * ǵѧѧźϢġ\n * it001\tϼ\n * it002\t\n * it003\t\n * Ŀǰѧ֪ʶʵ֡\n * ΪһĳԱȻCollectionϵļϴ洢󼴿ɡ\n * أѧֱӾҵˣʵ?ҲǿʵֵģʱαȽѧżɡȻѧȷģȡö\n * ȻǿԵģе鷳ΪǲÿҪһˣͷһ顣\n * һּϣܹʵѧźĶӦϵǾܼ򵥺ܶˡ\n * һѧŶӦһȻѧž֪ΪjavaṩһµļϣMap\n * \n * MapԪǰռֵʽ洢ġÿһԪɡֱмֵ\n * \t          Ψһģֵǿظġ\n * \t         MapϵĵײݽṹԼЧֵ޹ء\n * \n * MapӿںCollectionӿڵĲͬ?()\n * \t\tA:Map˫мϣMapϵļΨһģֵǿظġʵҲԼ򵥵ΪMapϵļֵSetListɣݽṹԼЧ\n * \t\tB:CollectionǵмϣCollectionϵĶSetΨһģListǿظģݽṹԪЧ\n * \n * MapϵĹܣ\n * \t\tA:ӹ\n * \t\t\tV put(K key,V value):ӣ滻޸ġͬӵϡֵͬ滻\n * \t\tB:Ƴ\n * \t\t\tvoid clear():Ƴӳϵ\n * \t\t\tV remove(Object key):ݼƳֵԪأصǼӦֵ\n * \t\tC:жϹ\n * \t\t\tboolean containsKey(Object key):жMapǷָļ\n * \t\t\tboolean containsValue(Object value):жMapǷֵָ\n * \t\t\tboolean isEmpty():жϼǷΪ\n * \t\tD:ȡ\n * \t\t\tSet<Map.Entry<K,V>> entrySet():صǼֵԶSetϡ\n * \t\t\tV get(Object key):ݼȡֵ\n * \t\t\tSet<K> keySet():еļļ\n * \t\t\tCollection<V> values():ֵļ\n * \t\t\tint size():ϵĳ\n */\npublic class MapDemo {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\t// Ԫ\n\t\t// Ԫ\n\t\t// \n\n\t\t// ϶\n\t\tMap<String, String> map = new HashMap<String, String>();\n\n\t\t// Ԫ\n\t\t// V put(K key,V value)\n\t\t// System.out.println(\"put:\" + map.put(\"\", \"\"));\n\t\t// System.out.println(\"put:\" + map.put(\"\", \"Ҧ\"));\n\t\tmap.put(\"\", \"\");\n\t\tmap.put(\"л\", \"Ű֥\");\n\t\tmap.put(\"\", \"Ҷһ\");\n\t\tmap.put(\"\", \"\");\n\n\t\t// void clear():Ƴӳϵ\n\t\t// map.clear();\n\n\t\t// V remove(Object key):ݼƳֵԪأصǼӦֵ\n\t\t// System.out.println(\"remove:\" + map.remove(\"\"));\n\t\t// System.out.println(\"remove:\" + map.remove(\"2\"));\n\n\t\t// boolean containsKey(Object key):жMapǷָļ\n\t\t// System.out.println(\"containsKey:\" + map.containsKey(\"\"));\n\t\t// System.out.println(\"containsKey:\" + map.containsKey(\"ɭ\"));\n\n\t\t// boolean isEmpty():жϼǷΪ\n\t\t// System.out.println(\"isEmpty:\" + map.isEmpty());\n\n\t\t// int size():ϵĳ\n\t\tSystem.out.println(\"size:\" + map.size());\n\n\t\tSystem.out.println(\"map:\" + map);\n\t}\n}\n"
  },
  {
    "path": "day18/code/day18_Map_HashMap_TreeMap/src/cn/itcast_01/MapDemo2.java",
    "content": "package cn.itcast_01;\n\nimport java.util.Collection;\nimport java.util.HashMap;\nimport java.util.Map;\nimport java.util.Set;\n\n/*\n * V get(Object key)\n * Set<K> keySet()\n * Collection<V> values()\n */\npublic class MapDemo2 {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tMap<String, String> map = new HashMap<String, String>();\n\n\t\t// Ԫ\n\t\tmap.put(\"\", \"\");\n\t\tmap.put(\"л\", \"Ű֥\");\n\t\tmap.put(\"\", \"Ҷһ\");\n\t\tmap.put(\"\", \"\");\n\n\t\t// V get(Object key)\n\t\tSystem.out.println(\"get:\" + map.get(\"\"));\n\t\tSystem.out.println(\"get:\" + map.get(\"\"));\n\t\tSystem.out.println(\"---------------------\");\n\n\t\t// Set<K> keySet()\n\t\tSet<String> set = map.keySet();\n\t\tfor (String key : set) {\n\t\t\tSystem.out.println(key);\n\t\t}\n\t\tSystem.out.println(\"---------------------\");\n\n\t\t// Collection<V> values()\n\t\tCollection<String> cons = map.values();\n\t\tfor (String value : cons) {\n\t\t\tSystem.out.println(value);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day18/code/day18_Map_HashMap_TreeMap/src/cn/itcast_01/MapDemo3.java",
    "content": "package cn.itcast_01;\n\nimport java.util.HashMap;\nimport java.util.Map;\nimport java.util.Set;\n\n/*\n * Mapϵı(Mapϰ߿ɷ޶)\n * \t\t˼·\n * \t\t\tA:ɷȡеļkeySet()\n * \t\t\tB:ɷ򣬵õÿһɷǿfor\n * \t\t\tC:ɷȥԼӡV get(key key)\n * \n * \t\tӦ\n * \t\t\tA:ȡMapϵеļSet\n * \t\t\tB:Setϣȡÿһ\n * \t\t\tC:ݼMapҶӦֵ\n */\npublic class MapDemo3 {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tMap<String, String> map = new HashMap<String, String>();\n\n\t\t// Ԫ\n\t\tmap.put(\"\", \"\");\n\t\tmap.put(\"л\", \"Ű֥\");\n\t\tmap.put(\"\", \"Ҷһ\");\n\t\tmap.put(\"\", \"\");\n\n\t\t// \n\t\t// ȡMapϵеļSet\n\t\tSet<String> set = map.keySet();\n\t\t// Setϣȡÿһ\n\t\tfor (String key : set) {\n\t\t\t// ݼMapҶӦֵ\n\t\t\tString value = map.get(key);\n\t\t\tSystem.out.println(key + \"---\" + value);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day18/code/day18_Map_HashMap_TreeMap/src/cn/itcast_01/MapDemo4.java",
    "content": "package cn.itcast_01;\n\nimport java.util.HashMap;\nimport java.util.Map;\nimport java.util.Set;\n\n/*\n * Mapϵı(Mapϰ߿ɷ޶)\n * \t\tȻǷ޶ԣôӦн֤\n * \t\t֤֤Ӧɷӵ֡\n * \t\tԣǿ԰ѽ֤һ֤࣬࣬Աһɷһӡ\n * \t\tclass ֤ <ɷ,>{\n * \t\t\tprivate ɷ zf;\n * \t\t\tprivate  qz;\n * \n * \t\t\t//췽setXxx()...ʡ\n * \n * \t\t\tpublic ɷ getZf() {\n * \t\t\t\treturn zf;\n * \t\t\t}\n * \n * \t\t\tpublic  getQz() {\n * \t\t\t\treturn qz;\n * \t\t\t}\n * \t\t}\n * \n * \t\t˼·\n * \t\t\tA:ȡеĽ֤Setϡ\n * \t\t\tB:֤Setϣõÿһ֤\n * \t\t\tC:Ž֤ɷӵ֡\n * \n * \t\tӦ\n * \t\t\tA:ȡеļֵԶSetϡ\tSet<ֵԶ>\t--Set<֤ <ɷ,>>--Set<Map.Entry<K,V>> entrySet()\n * \t\t\tB:ֵԶSetϣõÿһֵԶMap.Entry<K,V>\n * \t\t\tC:ݼֵԶȥȡֵgetKey(),getValue()\n */\npublic class MapDemo4 {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tMap<String, String> map = new HashMap<String, String>();\n\n\t\t// Ԫ\n\t\tmap.put(\"\", \"\");\n\t\tmap.put(\"л\", \"Ű֥\");\n\t\tmap.put(\"\", \"Ҷһ\");\n\t\tmap.put(\"\", \"\");\n\n\t\t// \n\t\t// ȡеļֵԶSetϡ\n\t\tSet<Map.Entry<String, String>> set = map.entrySet();\n\t\t// ֵԶSetϣõÿһֵԶ\n\t\tfor (Map.Entry<String, String> me : set) {\n\t\t\t// ݼֵԶȥȡֵgetKey(),getValue()\n\t\t\tString key = me.getKey();\n\t\t\tString value = me.getValue();\n\t\t\tSystem.out.println(key + \"---\" + value);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day18/code/day18_Map_HashMap_TreeMap/src/cn/itcast_02/HashMapDemo.java",
    "content": "package cn.itcast_02;\n\nimport java.util.HashMap;\nimport java.util.Map;\nimport java.util.Set;\n\n/*\n * HashMap<String,String>\n * ѧ\n * ֵַ\n * 洢ԪأȻ\n */\npublic class HashMapDemo {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tHashMap<String, String> hm = new HashMap<String, String>();\n\n\t\t// Ԫ\n\t\thm.put(\"ޱ\", \"\");\n\t\thm.put(\"\", \"\");\n\t\thm.put(\"\", \"ɽ\");\n\n\t\t// \n\t\t// ʽ1\n\t\tSet<String> keySet = hm.keySet();\n\t\tfor (String key : keySet) {\n\t\t\tString value = hm.get(key);\n\t\t\tSystem.out.println(key + \"---\" + value);\n\t\t}\n\t\tSystem.out.println(\"---------------------\");\n\n\t\t// ʽ2\n\t\t// Set<Map.Entry<String, String>> entrySet = hm.entrySet();\n\t\t// for (Map.Entry<String, String> me : entrySet) {\n\t\t// String key = me.getKey();\n\t\t// String value = me.getValue();\n\t\t// System.out.println(key + \"---\" + value);\n\t\t// }\n\n//\t\tSet<Entry<String, String>> entrySet = hm.entrySet();\n//\t\tfor (Entry<String, String> me : entrySet) {\n//\t\t\tString key = me.getKey();\n//\t\t\tString value = me.getValue();\n//\t\t\tSystem.out.println(key + \"---\" + value);\n//\t\t}\n\t}\n}\n"
  },
  {
    "path": "day18/code/day18_Map_HashMap_TreeMap/src/cn/itcast_02/HashMapDemo2.java",
    "content": "package cn.itcast_02;\n\nimport java.util.HashMap;\nimport java.util.Set;\n\n/*\n * HashMap<Integer,String>\n * Integer\tѧ\n * ֵString\t\t\n */\npublic class HashMapDemo2 {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tHashMap<Integer, String> hm = new HashMap<Integer, String>();\n\n\t\t// Ԫ\n\t\t// Integer i1 = 1;\n\t\t// String s1 = \"\";\n\t\t// hm.put(i1, s1);\n\n\t\thm.put(1, \"\");\n\t\thm.put(2, \"\");\n\t\thm.put(3, \"\");\n\n\t\t// \n\t\tSet<Integer> set = hm.keySet();\n\t\tfor (Integer key : set) {\n\t\t\tString value = hm.get(key);\n\t\t\tSystem.out.println(key + \"---\" + value);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day18/code/day18_Map_HashMap_TreeMap/src/cn/itcast_02/HashMapDemo3.java",
    "content": "package cn.itcast_02;\n\nimport java.util.HashMap;\nimport java.util.Set;\n\n/*\n * HashMap<String,Student>\n * String\t\tѧ \teg:itcast001\n * ֵStudent\tѧ (ϼ,28)\n * \t\tname,age\n * Ҫ洢ѧĽǣ\n * \t\titcast001--ϼ---28\n * \t\t...\n */\npublic class HashMapDemo3 {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tHashMap<String, Student> hm = new HashMap<String, Student>();\n\n\t\t// \n\t\tStudent s1 = new Student(\"ϼ\", 28);\n\t\tStudent s2 = new Student(\"\", 31);\n\t\tStudent s3 = new Student(\"\", 200);\n\n\t\t// Ԫ\n\t\thm.put(\"itcast001\", s1);\n\t\thm.put(\"itcast002\", s2);\n\t\thm.put(\"itcast003\", s3);\n\n\t\t// \n\t\tSet<String> set = hm.keySet();\n\t\tfor (String key : set) {\n\t\t\tStudent value = hm.get(key);\n\t\t\tSystem.out.println(key + \"---\" + value.getName() + \"---\"\n\t\t\t\t\t+ value.getAge());\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day18/code/day18_Map_HashMap_TreeMap/src/cn/itcast_02/HashMapDemo4.java",
    "content": "package cn.itcast_02;\n\nimport java.util.HashMap;\nimport java.util.Set;\n\n/*\n * HashMap<Student,String>\n * Student\tѧ (ϼ,28)\n * \t\tname,age\n * ֵString\t\tѧ \teg:it001\n * Ҫ洢ѧĽǣ\n * \t\tϼ---28---it001\n * ѧĳԱֵͬǾΪͬһҲ˵ظļ\n */\npublic class HashMapDemo4 {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\tHashMap<Student, String> hm = new HashMap<Student, String>();\n\n\t\t// \n\t\tStudent s1 = new Student(\"ϼ\", 28);\n\t\tStudent s2 = new Student(\"\", 31);\n\t\tStudent s3 = new Student(\"\", 200);\n\t\tStudent s4 = new Student(\"ϼ\", 28);\n\t\tStudent s5 = new Student(\"\", 20);\n\t\tStudent s6 = new Student(\"\", 100);\n\n\t\t// Ԫ\n\t\thm.put(s1, \"it001\");\n\t\thm.put(s2, \"it002\");\n\t\thm.put(s3, \"it003\");\n\t\thm.put(s4, \"it004\");\n\t\thm.put(s5, \"it005\");\n\t\thm.put(s6, \"it006\");\n\n\t\t// \n\t\tSet<Student> set = hm.keySet();\n\t\tfor (Student key : set) {\n\t\t\tString value = hm.get(key);\n\t\t\tSystem.out.println(key.getName() + \"---\" + key.getAge() + \"---\"\n\t\t\t\t\t+ value);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day18/code/day18_Map_HashMap_TreeMap/src/cn/itcast_02/Student.java",
    "content": "package cn.itcast_02;\n\npublic class Student {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Student() {\n\t\tsuper();\n\t}\n\n\tpublic Student(String name, int age) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\t@Override\n\tpublic int hashCode() {\n\t\tfinal int prime = 31;\n\t\tint result = 1;\n\t\tresult = prime * result + age;\n\t\tresult = prime * result + ((name == null) ? 0 : name.hashCode());\n\t\treturn result;\n\t}\n\n\t@Override\n\tpublic boolean equals(Object obj) {\n\t\tif (this == obj)\n\t\t\treturn true;\n\t\tif (obj == null)\n\t\t\treturn false;\n\t\tif (getClass() != obj.getClass())\n\t\t\treturn false;\n\t\tStudent other = (Student) obj;\n\t\tif (age != other.age)\n\t\t\treturn false;\n\t\tif (name == null) {\n\t\t\tif (other.name != null)\n\t\t\t\treturn false;\n\t\t} else if (!name.equals(other.name))\n\t\t\treturn false;\n\t\treturn true;\n\t}\n\n}\n"
  },
  {
    "path": "day18/code/day18_Map_HashMap_TreeMap/src/cn/itcast_03/LinkedHashMapDemo.java",
    "content": "package cn.itcast_03;\n\nimport java.util.LinkedHashMap;\nimport java.util.Set;\n\n/*\n * Map ӿڵĹϣбʵ֣пԤ֪ĵ˳\n */\npublic class LinkedHashMapDemo {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tLinkedHashMap<String, String> map = new LinkedHashMap<String, String>();\n\n\t\t// Ԫ\n\t\tmap.put(\"\", \"\");\n\t\tmap.put(\"л\", \"Ű֥\");\n\t\tmap.put(\"\", \"Ҷһ\");\n\t\tmap.put(\"\", \"\");\n\n\t\t// \n\t\tSet<String> set = map.keySet();\n\t\tfor (String key : set) {\n\t\t\tString value = map.get(key);\n\t\t\tSystem.out.println(key + \"---\" + value);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day18/code/day18_Map_HashMap_TreeMap/src/cn/itcast_04/Student.java",
    "content": "package cn.itcast_04;\n\npublic class Student {\n\tprivate String name;\n\tprivate int age;\n\n\tpublic Student() {\n\t\tsuper();\n\t}\n\n\tpublic Student(String name, int age) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n}\n"
  },
  {
    "path": "day18/code/day18_Map_HashMap_TreeMap/src/cn/itcast_04/TreeMapDemo.java",
    "content": "package cn.itcast_04;\n\nimport java.util.Set;\nimport java.util.TreeMap;\n\n/*\n * TreeMap<String,String>\n */\npublic class TreeMapDemo {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tTreeMap<String, String> tm = new TreeMap<String, String>();\n\n\t\t// Ԫ\n\t\ttm.put(\"zhangsan\", \"\");\n\t\ttm.put(\"lisi\", \"\");\n\t\ttm.put(\"wangwu\", \"Ϻ\");\n\t\ttm.put(\"zhaoliu\", \"\");\n\t\ttm.put(\"tianqi\", \"\");\n\t\ttm.put(\"lisi\", \"人\");\n\n\t\t// \n\t\tSet<String> set = tm.keySet();\n\t\tfor (String key : set) {\n\t\t\tString value = tm.get(key);\n\t\t\tSystem.out.println(key + \"---\" + value);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day18/code/day18_Map_HashMap_TreeMap/src/cn/itcast_04/TreeMapDemo2.java",
    "content": "package cn.itcast_04;\n\nimport java.util.Comparator;\nimport java.util.Set;\nimport java.util.TreeMap;\n\n/*\n * HashMap<Student,String>\n */\npublic class TreeMapDemo2 {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\tTreeMap<Student, String> tm = new TreeMap<Student, String>(\n\t\t\t\tnew Comparator<Student>() {\n\t\t\t\t\t@Override\n\t\t\t\t\tpublic int compare(Student s1, Student s2) {\n\t\t\t\t\t\t// Ҫ\n\t\t\t\t\t\tint num = s2.getName().length() - s1.getName().length();\n\t\t\t\t\t\t// Ҫ\n\t\t\t\t\t\tint num2 = num == 0 ? s1.getName().compareTo(\n\t\t\t\t\t\t\t\ts2.getName()) : num;\n\t\t\t\t\t\tint num3 = num2 == 0 ? s2.getAge() - s1.getAge() : num2;\n\t\t\t\t\t\treturn num3;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t// \n\t\tStudent s1 = new Student(\"linqingxia\", 28);\n\t\tStudent s2 = new Student(\"fengqingyang\", 31);\n\t\tStudent s3 = new Student(\"wangchongyang\", 200);\n\t\tStudent s4 = new Student(\"linqingxia\", 28);\n\t\tStudent s5 = new Student(\"fengqingyang\", 20);\n\t\tStudent s6 = new Student(\"wangyang\", 100);\n\n\t\t// Ԫ\n\t\ttm.put(s1, \"it001\");\n\t\ttm.put(s2, \"it002\");\n\t\ttm.put(s3, \"it003\");\n\t\ttm.put(s4, \"it004\");\n\t\ttm.put(s5, \"it005\");\n\t\ttm.put(s6, \"it006\");\n\n\t\t// \n\t\tSet<Student> set = tm.keySet();\n\t\tfor (Student key : set) {\n\t\t\tString value = tm.get(key);\n\t\t\tSystem.out.println(key.getName() + \"---\" + key.getAge() + \"---\"\n\t\t\t\t\t+ value);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day18/code/day18_Map_HashMap_TreeMap/src/cn/itcast_05/ArrayListAndHashMapTest.java",
    "content": "package cn.itcast_05;\n\nimport java.util.ArrayList;\nimport java.util.HashMap;\nimport java.util.Set;\n\n/*\n \n ArrayListϵԪHashMap3\n ÿһHashMapϵļֵַ\n\n ԪѾɣ\n \n ---С\n ---\n\n ---\n ---СŮ\n\n ---ӯӯ\n ƽ֮---ɺ\n */\npublic class ArrayListAndHashMapTest {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\tArrayList<HashMap<String, String>> array = new ArrayList<HashMap<String, String>>();\n\n\t\t// Ԫ\n\t\tHashMap<String, String> sgyy = new HashMap<String, String>();\n\t\tsgyy.put(\"\", \"С\");\n\t\tsgyy.put(\"\", \"\");\n\n\t\t// Ԫ\n\t\tHashMap<String, String> sdxl = new HashMap<String, String>();\n\t\tsdxl.put(\"\", \"\");\n\t\tsdxl.put(\"\", \"СŮ\");\n\n\t\t// Ԫ\n\t\tHashMap<String, String> xajh = new HashMap<String, String>();\n\t\txajh.put(\"\", \"ӯӯ\");\n\t\txajh.put(\"ƽ֮\", \"ɺ\");\n\n\t\t// Ԫӵ\n\t\tarray.add(sgyy);\n\t\tarray.add(sdxl);\n\t\tarray.add(xajh);\n\n\t\t// \n\t\tfor (HashMap<String, String> hm : array) {\n\t\t\tSet<String> set = hm.keySet();\n\t\t\tfor (String key : set) {\n\t\t\t\tString value = hm.get(key);\n\t\t\t\tSystem.out.println(key + \"---\" + value);\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day18/code/day18_Map_HashMap_TreeMap/src/cn/itcast_05/HashMapAndArrayListTest.java",
    "content": "package cn.itcast_05;\n\nimport java.util.ArrayList;\nimport java.util.HashMap;\nimport java.util.Set;\n\n/*\n \n HashMapϵԪֵArrayList3\n ÿһArrayListϵֵַ\n\n ԪѾɣ\n \n \n \n \n Ц\n \n ƽ֮\n \n \n   \n */\npublic class HashMapAndArrayListTest {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tHashMap<String, ArrayList<String>> hm = new HashMap<String, ArrayList<String>>();\n\n\t\t// Ԫ\n\t\tArrayList<String> sgyy = new ArrayList<String>();\n\t\tsgyy.add(\"\");\n\t\tsgyy.add(\"\");\n\n\t\t// Ԫ\n\t\tArrayList<String> xajh = new ArrayList<String>();\n\t\txajh.add(\"\");\n\t\txajh.add(\"ƽ֮\");\n\n\t\t// Ԫ\n\t\tArrayList<String> sdxl = new ArrayList<String>();\n\t\tsdxl.add(\"\");\n\t\tsdxl.add(\"\");\n\n\t\t// Ԫ\n\t\thm.put(\"\", sgyy);\n\t\thm.put(\"Ц\", xajh);\n\t\thm.put(\"\", sdxl);\n\n\t\t// \n\t\tSet<String> hmSet = hm.keySet();\n\t\tfor (String key : hmSet) {\n\t\t\tSystem.out.println(key);\n\t\t\tArrayList<String> value = hm.get(key);\n\t\t\tfor (String s : value) {\n\t\t\t\tSystem.out.println(\"\\t\" + s);\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day18/code/day18_Map_HashMap_TreeMap/src/cn/itcast_05/HashMapTest.java",
    "content": "package cn.itcast_05;\n\nimport java.util.HashMap;\nimport java.util.Set;\n\n/*\n * HashMapǶHashMap\n * \n * У\n * \tjc\t\n * \t\t\t\t31\n * \t\t\tɳʫ\t18\n * \tjy\tҵ\n * \t\t\tȷ\t30\n * \t\t\t\t29\n * \tdsj\t\n * \t\t\t\t30\n * \t\t\t\t\t22\n */\npublic class HashMapTest {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tHashMap<String, HashMap<String, Integer>> xaxq = new HashMap<String, HashMap<String, Integer>>();\n\n\t\t// \n\t\tHashMap<String, Integer> jc = new HashMap<String, Integer>();\n\t\tjc.put(\"\", 31);\n\t\tjc.put(\"ɳʫ\", 18);\n\t\t// ӵ\n\t\txaxq.put(\"\", jc);\n\n\t\t// ҵ\n\t\tHashMap<String, Integer> jy = new HashMap<String, Integer>();\n\t\tjy.put(\"ȷ\", 30);\n\t\tjy.put(\"\", 29);\n\t\t// ӵ\n\t\txaxq.put(\"ҵ\", jy);\n\n\t\t// ݰ\n\t\tHashMap<String, Integer> dsj = new HashMap<String, Integer>();\n\t\tdsj.put(\"\", 30);\n\t\tdsj.put(\"\", 22);\n\t\t// ӵ\n\t\txaxq.put(\"ݰ\", dsj);\n\n\t\t// xaxq\n\t\tSet<String> xaxqSet = xaxq.keySet();\n\t\tfor (String xaxqKey : xaxqSet) {\n\t\t\tSystem.out.println(xaxqKey);\n\t\t\tHashMap<String, Integer> xaxqValue = xaxq.get(xaxqKey);\n\t\t\tSet<String> xaxqValueSet = xaxqValue.keySet();\n\t\t\tfor (String xaxqValuekey : xaxqValueSet) {\n\t\t\t\tInteger xaxqValueValue = xaxqValue.get(xaxqValuekey);\n\t\t\t\tSystem.out\n\t\t\t\t\t\t.println(\"\\t\" + xaxqValuekey + \"---\" + xaxqValueValue);\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day18/code/day18_Map_HashMap_TreeMap/src/cn/itcast_05/TreeMapTest.java",
    "content": "package cn.itcast_05;\n\nimport java.util.Scanner;\nimport java.util.Set;\nimport java.util.TreeMap;\n\n/*\n * \"dabcdababcabcea\",ȡַÿһĸֵĴҪ:a(5)b(4)c(3)d(2)e(1)\n * \n * ҵԼϵһ\n */\npublic class TreeMapTest {\n\tpublic static void main(String[] args) {\n\t\t// ¼һַ\n\t\tScanner sc = new Scanner(System.in);\n\t\tSystem.out.println(\"һַ\");\n\t\tString s = sc.nextLine();\n\n\t\t// һMapϣCharacterֵIntegerTreeMap\n\t\tTreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();\n\n\t\t// ַתַ\n\t\tchar[] chs = s.toCharArray();\n\n\t\t// ַõÿһַ\n\t\tfor (char ch : chs) {\n\t\t\t// ַΪmapֵ\n\t\t\tInteger i = tm.get(ch);\n\t\t\t// null\n\t\t\tif (i == null) {\n\t\t\t\t// 洢\n\t\t\t\ttm.put(ch, 1);\n\t\t\t} else {\n\t\t\t\t// ֵ++´洢\n\t\t\t\ti++;\n\t\t\t\ttm.put(ch, i);\n\t\t\t}\n\t\t}\n\n\t\t// һStringBuilderַ\n\t\tStringBuilder sb = new StringBuilder();\n\n\t\t// TreeMap\n\t\tSet<Character> set = tm.keySet();\n\t\tfor (Character key : set) {\n\t\t\tInteger value = tm.get(key);\n\t\t\tsb.append(key).append(\"(\").append(value).append(\")\");\n\t\t}\n\n\t\t// StringBuilderתΪַ\n\t\tString result = sb.toString();\n\n\t\tSystem.out.println(result);\n\t}\n}\n"
  },
  {
    "path": "day18/code/day18_Map_HashMap_TreeMap/src/cn/itcast_06/HashtableDemo.java",
    "content": "package cn.itcast_06;\n\nimport java.util.Hashtable;\n\n/*\n * ⣺\n * 1:HashMapHashtable?\n * A:HashMap̲߳ȫģЧʸߡʹ null ֵ null \n * B:Hashtablḛ߳ȫģЧʵ͡ʹ null ֵ null \n * \n * 2:List,Set,MapȽӿǷ񶼼̳Mapӿ\n * List,Set̳Collectionӿڡ\n * MapǶӿ\n * \n * 3:㳣ļЩʲô?\n * \t\tCollection\n * \t\t\t|--List\n * \t\t\t\t|--ArrayList\n * \t\t\t\t|--Vector\n * \t\t\t\t|--LinkedList\n * \t\t\t|--Set\n * \t\t\t\t|--HashSet\n * \t\t\t\t\t|--LinkedHashSet\n * \t\t\t\t|--TreeSet\n * \t\tMap\n * \t\t\t|--HashMap\n * \t\t\t\t|--LinkedHashMap\n * \t\t\t|--Hashtable\n * \t\t\t|--TreeMap\n * \n * \t\tArrayList\n * \t\t\tӹܣƳܣжϹܣȡ\n * \t\tHashSet\n * \t\t\tӹܣƳܣжϹܣȡ\n * \t\tHashMap\n * \t\t\tӹܣƳܣжϹܣȡ\n */\npublic class HashtableDemo {\n\tpublic static void main(String[] args) {\n\t\t// HashMap<String, String> hm = new HashMap<String, String>();\n\t\tHashtable<String, String> hm = new Hashtable<String, String>();\n\n\t\thm.put(\"007\", \"ǳ\");\n\t\t// hm.put(null, \"\"); // NullPointerException\n\t\t// hm.put(null, \"\");\n\t\t// hm.put(\"9527\", null); // NullPointerException\n\n\t\tSystem.out.println(hm);\n\t}\n}\n"
  },
  {
    "path": "day18/day18总结.txt",
    "content": "1:Map()\n\t(1)Mapص\n\t\tɼֵɵġÿһԪһֵԣɡ\n\t\tΨһֵظ\n\t\tʵݽṹֻԼЧֵ޹ء\n\t(2)MapCollection?\n\t\tA:Map˫мϣɼֵɣΨһֵظݽṹԼЧ\n\t\tB:CollectionмϣеԪɣSetΨһListظݽṹԪЧ\n\t(3)MapĹܸ(Լ뷽˼)\n\t\tA:ӹ\n\t\t\tput\n\t\tB:Ƴ\n\t\t\tremove\n\t\t\tclear\n\t\tC:жϹ\n\t\t\tcontainsKey,containsValue\n\t\t\tisEmpty\n\t\tD:ȡ\n\t\t\tsize\n\t\t\tget\n\t\t\tkeySet\n\t\t\tvalues\n\t\t\tentrySet\n\t(4)Mapı\n\t\tA:ݼֵ\n\t\t\tȡмļ\n\t\t\tļϣõÿһ\n\t\t\tݼֵ\n\t\tB:ݼֵԶҼֵ\n\t\t\tȡеļֵԶļ\n\t\t\tֵԶļϣõÿһֵԶ\n\t\t\tݼֵԶȡֵ\n\t(5)HashMap\n\t\tHashMap<String,String>\n\t\tHashMap<Integer,String>\n\t\tHashMap<String,Student>\n\t\tHashMap<Student,String>\n\t(6)LinkedHashMap\n\t\tΨһ\n\t(7)TreeMap\n\t\tTreeMap<String,String>\n\t\tTreeMap<Student,String>\n\t(8)\n\t\tA:HashMaphashtable?\n\t\t\tHashMapͬȫЧʸ\n\t\t\t߳Ƿȫ\n\t\t\tǷnullֵ\n\t\tB:ListSetMapǷ񶼼̳Collection\n\t\tC:֪ĳЩ?Щ?\n\t\t\tArrayList,HashSet,HashMap\n\t(9)\n\t\tA:ͳַÿֵַĴ\n\t\tB:ϵǶױ\n\n2:Collections()\n\t(1)CollectionsԼϽвĹ\n\t(2)⣺CollectionCollections\n\t\tA:CollectionǵϵĶӿڣ˵ϵĹԹ\n\t\tB:CollectionsԼϽвĹ\n\t(3)Collections(Լ뷽)\n\t\tA:\n\t\tB:ֲ\n\t\tC:ֵ\n\t\tD:ת\n\t\tE:û\n\t(4)\n\t\tA:ArrayList洢Զ󲢰չ\n\t\t\tArrayListģҿȥظԪصġ\n\t\tB:ģ⶷ϴƺͷ\n\t\tC:ģ⶷ϴƺͷƲƽ"
  },
  {
    "path": "day19/File总结.txt",
    "content": "1File()\n\t(1)FileӲϵļļе\n\t(2)FileĹ췽\n\t\tA:File file = new File(\"d:\\\\demo\\\\a.txt\");\n\t\tB:File file = new File(\"d:\\\\demo\",\"a.txt\");\n\t\tC:File file = new File(\"d:\\\\demo\");\n\t\t  File file2 = new File(file,\"a.txt\");\n\t(3)FileĳԱ(Լ뷽˼)\n\t\tA:\n\t\t\tCreateNewFile()\n\t\t\tmkdir()\n\t\t\tmkdirs()\n\t\tB:ɾ\n\t\t\tdelete()\n\t\tC:\n\t\t\trenameTo()\n\t\tD:жϹ\n\t\t\tisDirectory()\n\t\t\tisFile()\n\t\t\texists()\n\t\t\tisHidden()\n\t\t\tcanWrite()\n\t\t\tcanRead()\n\t\tE:ȡ\n\t\t\tget\n\t\t\tlastModifiedTime\n\t\t\tlength\n\t\tF:߼ȡ\n\t\t\tString[] filename = file.list()\n\t\t\tFile[] fileArray = file.listFiles()\n\t\tG:ļƹ\n\t(4)\n\t\tָĿ¼ָ׺βļ"
  },
  {
    "path": "day19/code/day19_Exception/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day19/code/day19_Exception/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day19_Exception</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day19/code/day19_Exception/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day19/code/day19_Exception/src/cn/itcast_01/ExceptionDemo.java",
    "content": "package cn.itcast_01;\n\n/*\n * 쳣еĹУ˲\n * \n * \t\t೤гȥ\n * \t\tһʼҪģ©ˣӵ\n * \t\tû⣬·һ·˳硣\n * \t\tɽ·м̺õˮ·мСʯӣ\n * \t\tĻˮ·ͺˣ϶ûκģ\n * \t\tأƫƫѰ·Сʯӣ̥ˡ\n * \t\t±̥ûʯ·ߵˮ·ߵһ룬ɽ·ˣ೤ֻûˡ\n * ࣺ\n * \t\t\tError\tӦóӦͼ⡣˵ǲҪ⣬˵ڴ\n * \t\t쳣\tException\tӦóҪ˵Ҫǽдġ\n * \t\t\tʱ쳣\tRuntimeException\tǱҪ쳣\n * \t\t\tʱ쳣\tRuntimeException\t쳣һҲǲҪġһ⣬ӦдĴˡ\n * \n * JVMĬϴ:\n * \t\t쳣ûκδjvmĬϵĴ\n * \t\t쳣ԭԼֵλõϢʾ˿̨\n * \t\tóˡ\n */\npublic class ExceptionDemo {\n\tpublic static void main(String[] args) {\n\t\tSystem.out.println(\"hello\");\n\n\t\tint a = 10;\n\t\t// int b = 4;\n\t\tint b = 0; // java.lang.ArithmeticException: / by zero\n\t\tSystem.out.println(a / b);\n\n\t\tSystem.out.println(\"world\");\n\t}\n}"
  },
  {
    "path": "day19/code/day19_Exception/src/cn/itcast_02/ExceptionDemo.java",
    "content": "package cn.itcast_02;\n\n/*\n * javaδ쳣?\n * A:trycatchfinally\n * B:throws\n * \n * trycatchfinallyʽ\n * try {\n * \t\tܳĴ\n * }catch(쳣 ) {\n * \t\tĴ\n * }finally {\n * \t\tͷԴĴ\n * }\n * \n * finallyȻڽԣʱʹü򵥵ĸʽ\n * try {\n * \t\tܳĴ\n * }catch(쳣 ) {\n * \t\tĴ\n * }\n * \n * ܵİѿܳĴtryжϲЩ⣬ԶһЩ\n */\npublic class ExceptionDemo {\n\tpublic static void main(String[] args) {\n\t\tSystem.out.println(\"hello\");\n\n\t\tint a = 10;\n\t\tint b = 0;\n\t\ttry {\n\t\t\tSystem.out.println(a / b);\n\t\t} catch (ArithmeticException e) {\n\t\t\tSystem.out.println(\"Ϊ0\");\n\t\t\t// ʵʿʱӦøҳʽʾ\n\t\t}\n\n\t\tSystem.out.println(\"world\");\n\t}\n}\n"
  },
  {
    "path": "day19/code/day19_Exception/src/cn/itcast_02/ExceptionDemo2.java",
    "content": "package cn.itcast_02;\n\n/*\n * 쳣\n * A:ÿ쳣һ\n * B:try...catch...catch...catch...\n * \t\tע⣺\n * \t\t\ta:һtryĴ⣬Ͳִtryݣcatchεƥ䣬һһƥ䣬ĲִС\n * \t\t\tb:쳣ƽϵ˭˭ν\n *            쳣ƽϵȸ\n *            \n * JDK7ԣƽϵ\n * \t\tcatch(쳣1 | 쳣2 | 쳣3 ... e) {}\n */\npublic class ExceptionDemo2 {\n\tpublic static void main(String[] args) {\n\t\t// method1();\n\n\t\t// method2();\n\n\t\tmethod3();\n\t}\n\n\tpublic static void method3() {\n\t\tint a = 10;\n\t\tint b = 0;\n\t\tint[] arr = { 1, 2, 3 };\n\n\t\ttry {\n\t\t\tSystem.out.println(a / b);\n\t\t\tSystem.out.println(arr[3]);\n\t\t} catch (ArithmeticException | ArrayIndexOutOfBoundsException e) {\n\t\t\tSystem.out.println(\"\");\n\t\t}\n\t\tSystem.out.println(\"over\");\n\t}\n\n\tpublic static void method2() {\n\t\tint a = 10;\n\t\tint b = 0;\n\t\tint[] arr = { 1, 2, 3 };\n\n\t\ttry {\n\t\t\tSystem.out.println(a / b);\n\t\t\tSystem.out.println(arr[3]);\n\t\t} catch (ArithmeticException e) {\n\t\t\tSystem.out.println(\"Ϊ0\");\n\t\t} catch (ArrayIndexOutOfBoundsException e) {\n\t\t\tSystem.out.println(\"Խ쳣\");\n\t\t} catch (Exception e) {\n\t\t\tSystem.out.println(\"\");\n\t\t}\n\n\t\tSystem.out.println(\"over\");\n\t}\n\n\tpublic static void method1() {\n\t\tint a = 10;\n\t\tint b = 0;\n\t\ttry {\n\t\t\tSystem.out.println(a / b); // ArithmeticException: / by zero\n\t\t} catch (ArithmeticException e) {\n\t\t\tSystem.out.println(\"Ϊ0\");\n\t\t}\n\n\t\tint[] arr = { 1, 2, 3 };\n\t\ttry {\n\t\t\tSystem.out.println(arr[3]); // ArrayIndexOutOfBoundsException: 3\n\t\t} catch (ArrayIndexOutOfBoundsException e) {\n\t\t\tSystem.out.println(\"Խ쳣\");\n\t\t}\n\n\t\tSystem.out.println(\"over\");\n\t}\n}\n"
  },
  {
    "path": "day19/code/day19_Exception/src/cn/itcast_02/ExceptionDemo3.java",
    "content": "package cn.itcast_02;\n\n/*\n * throwsڷ쳣㣬⡣ʹõʱҪעˡ\n */\npublic class ExceptionDemo3 {\n\tpublic static void main(String[] args) {\n\t\t// try {\n\t\t// method();\n\t\t// } catch (ArithmeticException e) {\n\t\t// System.out.println(\"Ϊ0\");\n\t\t// }\n\t\tmethod();\n\n\t\tSystem.out.println(\"haha\");\n\t}\n\n\tpublic static void method() throws ArithmeticException {\n\t\tSystem.out.println(\"hello\");\n\n\t\tint a = 10;\n\t\tint b = 0;\n\t\tSystem.out.println(a / b);\n\n\t\tSystem.out.println(\"world\");\n\t}\n\n}\n"
  },
  {
    "path": "day19/code/day19_Exception/src/cn/itcast_03/ExceptionDemo.java",
    "content": "package cn.itcast_03;\n\nimport java.text.ParseException;\nimport java.text.SimpleDateFormat;\nimport java.util.Date;\n\n/*\n * Javaе쳣Ϊࣺʱ쳣ʱ쳣еRuntimeException༰ʵΪʱ쳣쳣Ǳʱ쳣\n *\tʱ쳣\n *\t\tJavaʾͻᷢ޷ͨ\n *\tʱ쳣\n *\t\tʾҲԺͱʱ쳣һ\n *\n * 쳣ķʽرļ򵥣꼴ɡ\n */\npublic class ExceptionDemo {\n\tpublic static void main(String[] args) {\n\t\tString s = \"2015-04-03 10:37:45\";\n\t\t// дʵ\n\t\tDate d = null;\n\t\ttry {\n\t\t\t// System.out.println(10/0);\n\t\t\td = stringToDate(s);\n\t\t} catch (ParseException e) {\n\t\t\te.printStackTrace();\n\t\t}\n\t\tSystem.out.println(d);\n\n\t\tSystem.out.println(\"haha\");\n\n\t\t// System.out.println(10/0);\n\t}\n\n\tpublic static Date stringToDate(String s) throws ParseException{\n\t\tSimpleDateFormat sdf = new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\");\n\t\tDate d = sdf.parse(s);\n\t\treturn d;\n\t}\n}\n"
  },
  {
    "path": "day19/code/day19_Exception/src/cn/itcast_04/ExceptionDemo.java",
    "content": "package cn.itcast_04;\n\n/*\n *getMessage():ȡ쳣Ϣַ\n *toString():ȡ쳣쳣Ϣַ\n *printStackTrace():ȡ쳣쳣ϢԼ쳣ڳеλáֵvoid\n */\npublic class ExceptionDemo {\n\tpublic static void main(String[] args) {\n\t\tint a = 10;\n\t\tint b = 0;\n\t\ttry {\n\t\t\tSystem.out.println(a / b); // 쳣ͻﴴһ쳣Ķnew\n\t\t\t\t\t\t\t\t\t\t// ArithmeticException();\n\t\t\t\t\t\t\t\t\t\t// ȻŸ쳣󣬵catchȥƥ䡣\n\n\t\t} catch (ArithmeticException e) { // ArithmeticException e = new\n\t\t\t\t\t\t\t\t\t\t\t// ArithmeticException();\n\t\t\t// System.out.println(e.toString());\n\t\t\t// System.out.println(\"Ϊ0\");\n\n\t\t\t// System.out.println(e.getMessage()); // by zero\n\t\t\t// System.out.println(e.toString());\n\t\t\te.printStackTrace();\n\t\t}\n\n\t\tSystem.out.println(\"over\");\n\t}\n}\n"
  },
  {
    "path": "day19/code/day19_Exception/src/cn/itcast_05/ThrowDemo.java",
    "content": "package cn.itcast_05;\n\nimport java.text.ParseException;\nimport java.util.Arrays;\n\n/*\n * throw:ڷУóתġ\n */\npublic class ThrowDemo {\n\tpublic static void main(String[] args) {\n\t\t// show(10, 0);\n\n\t\t// show();\n\t}\n\n\tpublic static void show() throws ParseException, ArithmeticException,\n\t\t\tNullPointerException {\n\t\tif (\"hello\".equals(\"world\")) {\n\t\t\tthrow new ParseException(null, 0);\n\t\t} else {\n\t\t\tSystem.out.println(\"over\");\n\t\t}\n\t}\n\n\tpublic static void show(int a, int b) {\n\t\tif (b == 0) {\n\t\t\t// System.out.println(\"\");\n\t\t\tthrow new ArithmeticException();\n\t\t} else {\n\t\t\tSystem.out.println(a / b);\n\t\t}\n\n\t\tSystem.out.println(\"haha\");\n\t}\n}\n"
  },
  {
    "path": "day19/code/day19_Exception/src/cn/itcast_05/ThrowsDemo.java",
    "content": "package cn.itcast_05;\n\nimport java.text.ParseException;\nimport java.text.SimpleDateFormat;\nimport java.util.Date;\n\n/*\n * throws:ڷϣ׳쳣õȥ\n */\npublic class ThrowsDemo {\n\tpublic static void main(String[] args) {\n\t\t// show();\n\t\ttry {\n\t\t\tshow2();\n\t\t} catch (ParseException e) {\n\t\t\te.printStackTrace();\n\t\t}\n\t}\n\n\tpublic static void show() throws ArithmeticException {\n\t\tint a = 10;\n\t\tint b = 0;\n\t\tSystem.out.println(a / b);\n\t}\n\n\tpublic static void show2() throws ParseException {\n\t\tSimpleDateFormat sdf = new SimpleDateFormat(\"yyyy-MM-dd\");\n\t\tDate d = sdf.parse(\"2012-03-04\");\n\t\tSystem.out.println(d);\n\t}\n}\n"
  },
  {
    "path": "day19/code/day19_Exception/src/cn/itcast_06/FinallyDemo.java",
    "content": "package cn.itcast_06;\n\n/*\n * finally:finallyƵһִС\n * ӦãݿӣIOʱ\n * ע\n * \t\tִеfinally֮ǰjvm˳\n */\npublic class FinallyDemo {\n\tpublic static void main(String[] args) {\n\t\ttry {\n\t\t\tSystem.out.println(10 / 0);\n\t\t} catch (ArithmeticException e) {\n\t\t\te.printStackTrace();\n\t\t\tSystem.exit(0);\n\t\t} finally {\n\t\t\t// ͷԴĲ\n\t\t\tSystem.out.println(\"over\");\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day19/code/day19_Exception/src/cn/itcast_06/FinallyTest.java",
    "content": "package cn.itcast_06;\n\n/*\n * ⣺\n * final,finallyfinalize?\n * final:࣬γԱγԱ\n * \t\t,಻ܱ̳\t\n * \t\tγԱǳ\n * \t\tγԱܱд\n * finally:finallyƵĴԶִУͷԴ\n * \t\tעִеfinally֮ǰjvm˳ˡ\n * finalize:Objectķڻ\n * \n * catchreturn䣬finallyĴ뻹ִ?ᣬreturnǰreturn\n * ִС\n * ǰ\n * ׼ȷ˵м䡣\n * \n * \t\t1ִеreturn 40;ʱ򣬾ڴγһ·\n * \t\t2:ֻһfinallyԣִfinallyn=50\n * \t\t3:finallyٴλصǰķ·Էص40\n */\npublic class FinallyTest {\n\tpublic static void main(String[] args) {\n\t\tSystem.out.println(returnInt()); // 40\n\t}\n\n\tpublic static int returnInt() {\n\t\tint n = 10;\n\t\ttry {\n\t\t\tn = 20;\n\t\t\tSystem.out.println(10 / 0);\n\t\t\tn = 30;\n\t\t} catch (ArithmeticException e) {\n\t\t\tn = 40;\n\t\t\treturn n;\n\t\t} finally {\n\t\t\tn = 50;\n\t\t\treturn n;\n\t\t}\n\t\t// return 0;\n\t}\n}\n"
  },
  {
    "path": "day19/code/day19_Exception/src/cn/itcast_07/MyException.java",
    "content": "package cn.itcast_07;\n\n/*\n * java APIȻṩ˴쳣࣬ܿǵе\n * أԼ쳣ҪԼ쳣\n * ҪԼһ࣬Ϊ쳣࣬ôҪ̳쳣ࡣ\n * ̳ĸ?\n * \t\t̳Exception\n *\t\t̳RuntimeException\n */\npublic class MyException extends Exception {\n\tpublic MyException() {\n\t\tsuper();\n\t}\n\n\tpublic MyException(String message) {\n\t\tsuper(message);\n\t}\n}\n"
  },
  {
    "path": "day19/code/day19_Exception/src/cn/itcast_07/Teacher.java",
    "content": "package cn.itcast_07;\n\npublic class Teacher {\n\tpublic void check(int score) throws MyException {\n\t\tif (score < 0 || score > 100) {\n\t\t\tthrow new MyException(\"0-100֮\");\n\t\t} else {\n\t\t\tSystem.out.println(\"\");\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day19/code/day19_Exception/src/cn/itcast_07/TeacherTest.java",
    "content": "package cn.itcast_07;\n\nimport java.util.Scanner;\n\npublic class TeacherTest {\n\tpublic static void main(String[] args) {\n\t\tScanner sc = new Scanner(System.in);\n\t\tSystem.out.println(\"뿼Գɼ \");\n\t\tint score = sc.nextInt();\n\n\t\tTeacher t = new Teacher();\n\t\ttry {\n\t\t\tt.check(score);\n\t\t} catch (MyException e) {\n\t\t\t// System.out.println(e.toString()); // cn.itcast_07.MyException:\n\t\t\t// 0-100֮\n\t\t\te.printStackTrace();\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day19/code/day19_File/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day19/code/day19_File/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day19_File</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day19/code/day19_File/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day19/code/day19_File/aaa/bbb/b.txt",
    "content": "hello"
  },
  {
    "path": "day19/code/day19_File/demo.txt",
    "content": "hello"
  },
  {
    "path": "day19/code/day19_File/src/cn/itcast_01/FileDemo.java",
    "content": "package cn.itcast_01;\n\nimport java.io.File;\n\n/*\n * File:ļĿ¼·ĳʾʽ\n * ⣺ļĿ¼һڡ\n * \n * 췽\n * \t\tFile(String pathname)ͨһ·File\n * \t\tFile(String parent, String child) ͨ··File\n * \t\tFile(File parent, String child)ͨ·File·File\n */\npublic class FileDemo {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\t// File(String pathname)ͨһ·File\n\t\tFile file = new File(\"d:\\\\demo\\\\a.txt\");\n\n\t\t// File(String parent, String child) ͨ··File\n\t\tFile file2 = new File(\"d:\\\\demo\", \"a.txt\");\n\n\t\t// File(File parent, String child)ͨ·File·File\n\t\tFile file3 = new File(\"d:\\\\demo\");\n\t\tFile file4 = new File(file3, \"a.txt\");\n\t}\n}\n"
  },
  {
    "path": "day19/code/day19_File/src/cn/itcast_02/FileDemo.java",
    "content": "package cn.itcast_02;\n\nimport java.io.File;\nimport java.io.IOException;\n\n/*\n * ܣ\n * A:ļ,ļڣʹڣͲ\n * \t\tpublic boolean createNewFile() throws IOException\n * \t\t\n * B:ļУļвڣʹڣͲ\n * \t public boolean mkdir() ļ\n *   public boolean mkdirs() ༶ļ\n *   \n * ״ļļУȡʹõķȡں׺\n * Ĳһǰ೤鳤\n */\npublic class FileDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// Fileļ\n\t\tFile file = new File(\"d:\\\\a.txt\");\n\n\t\t// public boolean createNewFile() throws IOException\n\t\tSystem.out.println(\"createNewFile:\" + file.createNewFile());\n\n\t\t// ļ\n\t\tFile file2 = new File(\"d:\\\\demo\");\n\t\tSystem.out.println(\"mkdir:\" + file2.mkdir());\n\n\t\t// ༶ļ\n\t\t// File file3 = new File(\"d:\\\\aaa\\\\bbb\");\n\t\t// System.out.println(\"mkdir:\" + file3.mkdir());\n\n\t\tFile file4 = new File(\"d:\\\\aaa\");\n\t\tFile file5 = new File(\"d:\\\\aaa\\\\bbb\");\n\t\t// File file5 = new File(file4,\"bbb\");\n\t\tSystem.out.println(\"mkdir:\" + file4.mkdir());\n\t\tSystem.out.println(\"mkdir:\" + file5.mkdir());\n\t\t// ַʽȻԣǱȽ鷳\n\t\t// ô,һָ򵥵ķʽ\n\t\tFile file6 = new File(\"d:\\\\ccc\\\\dddd\\\\eee\\\\fff\");\n\t\tSystem.out.println(\"mkdirs:\" + file6.mkdirs());\n\n\t\t// ҵ״ʲô?\n\t\tFile file7 = new File(\"d:\\\\aaa\\\\bbb\\\\ccc.txt\");\n\t\tSystem.out.println(\"mkdir:\" + file7.mkdir());\n\t}\n}\n"
  },
  {
    "path": "day19/code/day19_File/src/cn/itcast_02/FileDemo2.java",
    "content": "package cn.itcast_02;\n\nimport java.io.File;\nimport java.io.IOException;\n\n/*\n * ɾܣpublic boolean delete() ȿɾļҲɾļС\n * \n * ·̷ʼ·\n * ·̷ʼ·\n * \n * ע\n * \t\tA:һļݣǲֱɾġ\n * \t\tB:Javaɾ߻վֱɾ\n */\npublic class FileDemo2 {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// File\n\t\tFile file = new File(\"a.txt\");\n\t\tSystem.out.println(\"createNewFile:\" + file.createNewFile());\n\n\t\tFile file2 = new File(\"aaa\\\\bbb\");\n\t\tSystem.out.println(\"mkdirs:\" + file2.mkdirs());\n\n\t\tFile file3 = new File(file2, \"b.txt\");\n\t\tSystem.out.println(\"createNewFile:\" + file3.createNewFile());\n\n\t\t// ɾļ\n\t\tSystem.out.println(\"delete:\" + file.delete());\n\n\t\t// ɾļ\n\t\tFile file4 = new File(\"aaa\\\\bbb\\\\ccc\");\n\t\tSystem.out.println(\"delete:\" + file4.delete());\n\n\t\tFile file5 = new File(\"aaa\");\n\t\tSystem.out.println(\"delete:\" + file5.delete());\n\t}\n}\n"
  },
  {
    "path": "day19/code/day19_File/src/cn/itcast_02/FileDemo3.java",
    "content": "package cn.itcast_02;\n\nimport java.io.File;\n\n/*\n * :public boolean renameTo(File dest)\n * ·ͬ\n * ·ͬв\n */\npublic class FileDemo3 {\n\tpublic static void main(String[] args) {\n\t\t// Ҫa.txtļƸΪb.txt\n\t\t// \n\t\t// File file = new File(\"a.txt\");\n\t\t// // Ŀ\n\t\t// File dest = new File(\"b.txt\");\n\t\t// // ÷\n\t\t// System.out.println(\"renameTo:\" + file.renameTo(dest));\n\n\t\tFile file = new File(\"b.txt\");\n\t\tFile dest = new File(\"e:\\\\a.txt\");\n\t\tSystem.out.println(\"renameTo:\" + file.renameTo(dest));\n\t}\n}\n"
  },
  {
    "path": "day19/code/day19_File/src/cn/itcast_02/FileDemo4.java",
    "content": "package cn.itcast_02;\n\nimport java.io.File;\n\n/*\n *public boolean isDirectory():Ƿļ\n *public boolean isFile():Ƿļ\n *public boolean exists():Ƿ\n *public boolean canRead():Ƿɶ\n *public boolean canWrite():Ƿд\n *public boolean isHidden():Ƿ\n */\npublic class FileDemo4 {\n\tpublic static void main(String[] args) {\n\t\tFile file = new File(\"demo.txt\");\n\n\t\tSystem.out.println(\"isDirectory:\" + file.isDirectory());\n\t\tSystem.out.println(\"isFile:\" + file.isFile());\n\t\tSystem.out.println(\"exists:\" + file.exists());\n\t\tSystem.out.println(\"canRead:\" + file.canRead());\n\t\tSystem.out.println(\"canWrite:\" + file.canWrite());\n\t\tSystem.out.println(\"isHidden:\" + file.isHidden());\n\t}\n}\n"
  },
  {
    "path": "day19/code/day19_File/src/cn/itcast_02/FileDemo5.java",
    "content": "package cn.itcast_02;\n\nimport java.io.File;\nimport java.text.SimpleDateFormat;\nimport java.util.Date;\n\n/*\n *public String getAbsolutePath():ȡ·\n *public String getPath():ȡ·\n *public String getName():ȡ\n *public long length():ȡļĴС\n *public long lastModified():ȡһ޸ʱĺֵ\n */\npublic class FileDemo5 {\n\tpublic static void main(String[] args) {\n\t\tFile file = new File(\"aaa\\\\bbb\\\\b.txt\");\n\n\t\tSystem.out.println(\"getAbsolutePath:\" + file.getAbsolutePath());\n\t\tSystem.out.println(\"getPath:\" + file.getPath());\n\t\tSystem.out.println(\"getName:\" + file.getName());\n\t\tSystem.out.println(\"length:\" + file.length());\n\t\tSystem.out.println(\"lastModified:\" + file.lastModified());\n\n\t\t// 1428044959288\n\t\tDate d = new Date(1428044959288L);\n\t\tSimpleDateFormat sdf = new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\");\n\t\tString s = sdf.format(d);\n\t\tSystem.out.println(s);\n\t}\n}\n"
  },
  {
    "path": "day19/code/day19_File/src/cn/itcast_02/FileDemo6.java",
    "content": "package cn.itcast_02;\n\nimport java.io.File;\n\n/*\n * public String[] list():صǸĿ¼µļļе顣\n * public File[] listFiles():صǸĿ¼µļļеFile顣\n */\npublic class FileDemo6 {\n\tpublic static void main(String[] args) {\n\t\t// һĿ¼d:\\\\\n\t\tFile file = new File(\"d:\\\\\");\n\n\t\t// public String[] list():صǸĿ¼µļļе顣\n\t\tString[] strArray = file.list();\n\t\tfor (String str : strArray) {\n\t\t\tSystem.out.println(str);\n\t\t}\n\t\tSystem.out.println(\"-----------------\");\n\n\t\t// public File[] listFiles():صǸĿ¼µļļеFile顣\n\t\tFile[] fileArray = file.listFiles();\n\t\tfor (File f : fileArray) {\n\t\t\t// System.out.println(f);\n\t\t\tSystem.out.println(f.getName());\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day19/code/day19_File/src/cn/itcast_03/FileTest.java",
    "content": "package cn.itcast_03;\n\nimport java.io.File;\n\n/*\n * dĿ¼е.jpgβļƸ\n * \n * \n * \t\tA:װĿ¼\n * \t\tB:ȡĿ¼еļļеFile\n * \t\tC:File飬õÿһFile\n * \t\tD:жϸFile\n * \t\t\tжǷļ\n * \t\t\t\tǣ\n * \t\t\t\t\tжǷ.jpgβ\n * \t\t\t\t\t\tǣ\n */\npublic class FileTest {\n\tpublic static void main(String[] args) {\n\t\t// װĿ¼\n\t\tFile folder = new File(\"d:\\\\\");\n\n\t\t// ȡĿ¼еļļеFile\n\t\tFile[] fileArray = folder.listFiles();\n\n\t\t// File飬õÿһFile\n\t\tfor (File file : fileArray) {\n\t\t\t// жǷļ\n\t\t\tif (file.isFile()) {\n\t\t\t\t// жǷ.jpgβ\n\t\t\t\tif (file.getName().endsWith(\".jpg\")) {\n\t\t\t\t\tSystem.out.println(file.getName());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day19/code/day19_File/src/cn/itcast_03/FileTest2.java",
    "content": "package cn.itcast_03;\n\nimport java.io.File;\nimport java.io.FilenameFilter;\n\n/*\n * dĿ¼е.jpgβļƸ\n * A˼·:\n *\t\tȻȡеļļеFile飬ڱʱжϣ\n * B˼·\n * \t\tж?㣬淽ֱӱɡ\n * \n * ҪʵBͱ֪һFilenameFilter ļƹ\n */\npublic class FileTest2 {\n\tpublic static void main(String[] args) {\n\t\tFile folder = new File(\"d:\\\\\");\n\n\t\t// public String[] list(FilenameFilter filter)\n\t\t// public File[] listFiles(FilenameFilter filter)\n\n\t\t// String[] strArray = folder.list(new FilenameFilter() {\n\t\t// @Override\n\t\t// public boolean accept(File dir, String name) {\n\t\t// // return false;\n\t\t// // return true;\n\t\t// // System.out.println(dir + \"---\" + name);\n\t\t// // File file = new File(dir, name);\n\t\t// // boolean flag = file.isFile();\n\t\t// // boolean flag2 = name.endsWith(\".jpg\");\n\t\t// // return flag && flag2;\n\t\t//\n\t\t// return new File(dir, name).isFile() && name.endsWith(\".jpg\");\n\t\t// }\n\t\t// });\n\t\t//\n\t\t// for (String str : strArray) {\n\t\t// System.out.println(str);\n\t\t// }\n\n\t\t// public File[] listFiles(FilenameFilter filter)\n\t\tFile[] fileArray = folder.listFiles(new FilenameFilter() {\n\t\t\t@Override\n\t\t\tpublic boolean accept(File dir, String name) {\n\t\t\t\treturn new File(dir, name).isFile() && name.endsWith(\".jpg\");\n\t\t\t}\n\t\t});\n\n\t\tfor (File file : fileArray) {\n\t\t\tSystem.out.println(file.getName());\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day19/异常总结.txt",
    "content": "1쳣()\n\t(1)ֵĲ\n\t(2)쳣\n\t\tThrowable\n\t\t\t|--Error\tص⣬Ҫ\n\t\t\t|--Exception\n\t\t\t\t|--RuntimeException\tԴҲԲһǳˣҪó\n\t\t\t\t|--RuntimeException\tҪдģ벻ͨ\n\t\t೤ȥ\n\t(3)jvmĬϴ\n\t\t쳣ԭ򣬺λõϢ˿̨\n\t\tֹͣ\n\t(4)Լ쳣ķ\n\t\tA:try...catch...finally\n\t\t\t:\n\t\t\t\ttry...catch...\n\t\t\t\ttry...catch...catch...catch...\n\t\t\t\ttry...catch...finally\n\t\t\t\ttry...catch...catch...catch...finally\n\t\t\t\ttry...finally\n\t\tB:throws\n\t\t\t׳\n\t\n\t\tʹAʵڽˣʹB\n\t(5)ʱ쳣ʱ쳣?\n\t\tA:ʱ쳣\t봦ͨ\n\t\tB:ʱ쳣\tԴҲԲһ㲻\n\t(6)throwsthrow?\n\t\tA:throws\n\t\t\t,,öŸԸʾ쳣\n\t\tB:throw\n\t\t\t,Ƕ,ֻܸһʾһ쳣\n\t(7)finally?\n\t\tA:ص㼰ע\n\t\t\ta:finallyƵĴԶִ\n\t\t\tb:ע\n\t\t\t\tִfinally֮ǰjvm˳ˣͲִ\n\t\tB:final,finallyfinalize?\n\t\tC:catchreturnfinallyִ?ִУreturnǰǺ\n\t(8)Զ쳣 һϰһ顣\n\n\tд÷⣬ῴϢ͵꼴ɡ"
  },
  {
    "path": "day20/code/day20_DiGui/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day20/code/day20_DiGui/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day20_DiGui</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day20/code/day20_DiGui/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day20/code/day20_DiGui/src/cn/itcast_01/DiGuiDemo.java",
    "content": "package cn.itcast_01;\n\n/*\n * ݹ:е÷\n * \n * ע\n * \t\tA:ݹһҪгڣݹ\n * \t\tB:ݹĴܹ࣬ڴ\n * \t\tC:췽ܵݹʹ\n * \n * StackOverflowError:Ӧóݹ̫ջʱ׳ô \n * \n * \n * \t\tǰɽɽиϺУڸСн£ǣ\n * \t\t\tǰɽɽиϺУڸСн£ǣ\n * \t\t\t\tǰɽɽиϺУڸСн£ǣ\n * \t\t\t\t\tǰɽɽиϺУڸСн£ǣ\n * \t\t\t\t\t\t...\n * \n * \t\tѧjava -- ҹ -- Ǯ -- Ȣϱ --  --  -- Ǯ --\n * \t\t\tѧjava -- ҹ -- Ǯ -- Ȣϱ --  --  -- Ǯ --\n * \t\t\t\tѧjava -- ҹ -- Ǯ -- Ȣϱ --  --  -- Ǯ --\n * \t\t\t\t\t...\n */\npublic class DiGuiDemo {\n\tpublic void show() {\n\t\tshow();\n\t}\n\n\t// public DiGuiDemo() {\n\t// DiGuiDemo();\n\t// }\n\n\tpublic static void main(String[] args) {\n\t\tDiGuiDemo dgd = new DiGuiDemo();\n\t\tdgd.show();\n\t}\n}"
  },
  {
    "path": "day20/code/day20_DiGui/src/cn/itcast_02/DiGuiDemo.java",
    "content": "package cn.itcast_02;\n\n/*\n * 5Ľ׳\n */\npublic class DiGuiDemo {\n\tpublic static void main(String[] args) {\n\t\t// ѭʵֽ׳\n\t\tint jc = 1;\n\t\tfor (int x = 1; x <= 5; x++) {\n\t\t\tjc *= x;\n\t\t}\n\t\tSystem.out.println(\"5Ľ׳ǣ\" + jc);\n\n\t\t// õݹʵ׳\n\t\tSystem.out.println(\"5Ľ׳ǣ\"+jc(5));\n\t\t\n\t}\n\t\n\t/*һjc(int n),\n\t *jc(n)ʾnĽ׳ˣ\n\t *n-1Ľ׳αʾ?\n\t *jc(n-1)\n\t *\n\t *1= 1\n\t */\n\tpublic static int jc(int n){\n\t\tif(n==1){\n\t\t\treturn 1;\n\t\t}else {\n\t\t\treturn n*jc(n-1);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day20/code/day20_DiGui/src/cn/itcast_02/DiGuiTest.java",
    "content": "package cn.itcast_02;\n\n/*\n * (쳲):һӣӳ3ÿ¶һӣСӳºÿһӣӶʵ20µӶΪ٣\n * \t\t\tӶ\n *  һ£\t1\n *  ڶ£\t1\n *  £\t2\n *  ĸ£\t3\n *  £\t5\n *  £\t8\n *  ...\n *  \n *  쳲У1,1,2,3,5,8...\n *  \n *  ɣӵʼÿһǰ֮͡\t\n *  ڣǰӦ֪һ1ڶ1\n *  \n *  ڵabʾ\n *  һڣa=1,b=1\n *  ڶڣa=1,b=2\n *  ڣa=2,b=3\n *  ĸڣa=3,b=5\n *  ...\n *  ÿһڵaǰbbǰa+b\n */\npublic class DiGuiTest {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\tint[] arr = new int[20];\n\t\tarr[0] = 1;\n\t\tarr[1] = 1;\n\t\tfor (int x = 2; x < arr.length; x++) {\n\t\t\tarr[x] = arr[x - 1] + arr[x - 2];\n\t\t}\n\t\tSystem.out.println(\"20µӶǣ\" + arr[19]);\n\t\t\n\t\t//ñı仯\n\t\tint a = 1;\n\t\tint b = 1;\n\t\tfor(int x=0; x<18; x++){\n\t\t\tint temp = a;//ǰa\n\t\t\ta = b;\n\t\t\tb = temp + b;\n\t\t}\n\t\tSystem.out.println(\"20µӶǣ\"+b);\n\t\t\n\t\t//õݹʵ\n\t\tSystem.out.println(\"20µӶǣ\"+fib(20));\n\t}\n\t\n\t/*\n\t * 巽fib(int n)\n\t * fib(n)ʾǵnµӶ\n\t * ʣn-1n-2µӶαʾ?\n\t * fib(n-1),fib(n-2)\n\t */\n\tpublic static int fib(int n){\n\t\tif(n==1 || n==2){\n\t\t\treturn 1;\n\t\t}else {\n\t\t\treturn fib(n-1)+fib(n-2);\n\t\t}\n\t}\n}"
  },
  {
    "path": "day20/code/day20_DiGui/src/cn/itcast_03/DeleteFolderDemo.java",
    "content": "package cn.itcast_03;\n\nimport java.io.File;\n\n/*\n /*\n * ɾݵĿ¼\n * D:\\demo\n * \n * \n * \t\tA:װָĿ¼\n * \t\tB:ȡָĿ¼µļļеFile\n * \t\tC:File飬ȡõÿһFile\n * \t\tD:жϸFile\n * \t\t\tļУصB(ݹ)\n * \t\t\tļ\t\n * \t\t\t\tֱɾ\n * \t\tE:ɾļ\n */\npublic class DeleteFolderDemo {\n\tpublic static void main(String[] args) {\n\t\t// װָĿ¼\n\t\tFile srcFolder = new File(\"d:\\\\demo\");\n\t\t// ݹ鷽\n\t\tdeleteFolder(srcFolder);\n\t}\n\n\tpublic static void deleteFolder(File srcFolder) {\n\t\t// ȡָĿ¼µļļеFile\n\t\tFile[] fileArray = srcFolder.listFiles();\n\n\t\t// ɾϵͳļݣǿʵ\n\t\tif (fileArray != null) {\n\t\t\t// File飬ȡõÿһFile\n\t\t\tfor (File file : fileArray) {\n\t\t\t\tif (file.isDirectory()) {\n\t\t\t\t\tdeleteFolder(file);\n\t\t\t\t} else {\n\t\t\t\t\tSystem.out.println(file.getName() + \"---\" + file.delete());\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tSystem.out\n\t\t\t\t\t.println(srcFolder.getName() + \"---\" + srcFolder.delete());\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day20/code/day20_DiGui/src/cn/itcast_03/GetAllFileNameDemo.java",
    "content": "package cn.itcast_03;\n\nimport java.io.File;\n\n/*\n * ݹĿ¼ָ׺βļ· .java\n * D:\\itcast\\20150306\n * \n * \n * \t\tA:װָĿ¼\n * \t\tB:ȡָĿ¼µļļеFile\n * \t\tC:File飬ȡõÿһFile\n * \t\tD:жϸFile\n * \t\t\tļУصB(ݹ)\n * \t\t\tļ\n * \t\t\t\tжǷָĺ׺β\n * \t\t\t\t\tǣļľ·\n */\npublic class GetAllFileNameDemo {\n\tpublic static int count1 = 0;\n\tpublic static int count2 = 0;\n\n\tpublic static void main(String[] args) {\n\t\t// װָĿ¼\n\t\tFile srcFolder = new File(\"D:\\\\itcast\\\\20150306\");\n\t\t// ݹʵ\n\t\tgetAllJavaFilePath(srcFolder);\n\t\tSystem.out.println(\"ѧϰ\" + count1 + \"javaļ\");\n\t\tSystem.out.println(\"ѧϰ\" + count2 + \"aviļ\");\n\t}\n\n\tpublic static void getAllJavaFilePath(File srcFolder) {\n\t\t// ȡָĿ¼µļļеFile\n\t\tFile[] fileArray = srcFolder.listFiles();\n\t\t// File飬ȡõÿһFile\n\t\tfor (File file : fileArray) {\n\t\t\tif (file.isDirectory()) {\n\t\t\t\t// ļУصB(ݹ)\n\t\t\t\tgetAllJavaFilePath(file);\n\t\t\t} else {\n\t\t\t\t// жǷָĺ׺β\n\t\t\t\tif (file.getName().endsWith(\".java\")) {\n\t\t\t\t\tcount1++;\n\t\t\t\t\t// ļľ·\n\t\t\t\t\tSystem.out.println(file.getAbsolutePath());\n\t\t\t\t}else if(file.getName().endsWith(\".avi\")){\n\t\t\t\t\tcount2++;\n\t\t\t\t\tSystem.out.println(file.getName());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}"
  },
  {
    "path": "day20/code/day20_IO/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day20/code/day20_IO/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day20_IO</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day20/code/day20_IO/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day20/code/day20_IO/a.txt",
    "content": "package cn.itcast_02;\n\nimport java.io.FileInputStream;\nimport java.io.IOException;\n\n/*\n * ֽݲ裺\n * A:ֽ\n * B:÷ȡ\n * C:ͷԴ\n * \n * ֽȡַʽ:\n * A:һζȡһֽ\n * B:һζȡһֽ\n * \n * һζȡһֽڣpublic int read()\n */\npublic class FileInputStreamDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// ֽ\n\t\t// FileInputStream fis = new FileInputStream(\"fis.txt\");\n\t\tFileInputStream fis = new FileInputStream(\"FileOutputStreamDemo.java\");\n\n\t\t// ÷ȡ\n\t\t// һζȡ\n\t\t// int by = fis.read();\n\t\t// System.out.println(by);\n\t\t// System.out.println((char) by);\n\t\t//\n\t\t// // ڶζȡ\n\t\t// by = fis.read();\n\t\t// System.out.println(by);\n\t\t// System.out.println((char) by);\n\t\t//\n\t\t// // ζȡ\n\t\t// by = fis.read();\n\t\t// System.out.println(by);\n\t\t// System.out.println((char) by);\n\t\t// ǷĴһģԣǿҪѭĽ\n\t\t// ѭĽ?\n\t\t// ص\n\t\t// жѭʲôʱ\n\t\t// by = fis.read();\n\t\t// System.out.println(by);\n\t\t// by = fis.read();\n\t\t// System.out.println(by);\n\t\t// ͨǷ֣жֵ-1\n\n\t\t// int by = fis.read();\n\t\t// while (by != -1) {\n\t\t// System.out.print((char) by);\n\t\t// by = fis.read();\n\t\t// }\n\n\t\t// մ\n\t\tint by = 0;\n\t\t// ȡݣֵж\n\t\twhile ((by = fis.read()) != -1) {\n\t\t\tSystem.out.print((char) by);\n\t\t}\n\n\t\t// ͷԴ\n\t\tfis.close();\n\t}\n}\n"
  },
  {
    "path": "day20/code/day20_IO/b.txt",
    "content": "package cn.itcast_02;\n\nimport java.io.FileInputStream;\nimport java.io.IOException;\n\n/*\n * ֽݲ裺\n * A:ֽ\n * B:÷ȡ\n * C:ͷԴ\n * \n * ֽȡַʽ:\n * A:һζȡһֽ\n * B:һζȡһֽ\n * \n * һζȡһֽڣpublic int read()\n */\npublic class FileInputStreamDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// ֽ\n\t\t// FileInputStream fis = new FileInputStream(\"fis.txt\");\n\t\tFileInputStream fis = new FileInputStream(\"FileOutputStreamDemo.java\");\n\n\t\t// ÷ȡ\n\t\t// һζȡ\n\t\t// int by = fis.read();\n\t\t// System.out.println(by);\n\t\t// System.out.println((char) by);\n\t\t//\n\t\t// // ڶζȡ\n\t\t// by = fis.read();\n\t\t// System.out.println(by);\n\t\t// System.out.println((char) by);\n\t\t//\n\t\t// // ζȡ\n\t\t// by = fis.read();\n\t\t// System.out.println(by);\n\t\t// System.out.println((char) by);\n\t\t// ǷĴһģԣǿҪѭĽ\n\t\t// ѭĽ?\n\t\t// ص\n\t\t// жѭʲôʱ\n\t\t// by = fis.read();\n\t\t// System.out.println(by);\n\t\t// by = fis.read();\n\t\t// System.out.println(by);\n\t\t// ͨǷ֣жֵ-1\n\n\t\t// int by = fis.read();\n\t\t// while (by != -1) {\n\t\t// System.out.print((char) by);\n\t\t// by = fis.read();\n\t\t// }\n\n\t\t// մ\n\t\tint by = 0;\n\t\t// ȡݣֵж\n\t\twhile ((by = fis.read()) != -1) {\n\t\t\tSystem.out.print((char) by);\n\t\t}\n\n\t\t// ͷԴ\n\t\tfis.close();\n\t}\n}\n"
  },
  {
    "path": "day20/code/day20_IO/src/cn/itcast_01/FileOutputStreamDemo.java",
    "content": "package cn.itcast_01;\n\nimport java.io.FileNotFoundException;\nimport java.io.FileOutputStream;\nimport java.io.IOException;\nimport java.io.OutputStream;\n\n/*\n * IOࣺ\n * \t\tA:\n * \t\t\t\t\n * \t\t\t\tд\n * \t\tB:\n * \t\t\tֽ\n * \t\t\tַ\n * \t\tĬ£IO˵ǰͷ֡\n * \n * IOĸࣺ\n * \t\tֽ\n * \t\t\tֽ\tInputStream\n * \t\t\tֽ\tOutputStream\n * \t\tַ\n * \t\t\tַ\tReader\n * \t\t\tַ\tWriter\n * \n * һ仰\"helloworld\"дһıļ\n * ͨ򵥵ķҵOutputStream\n * OutputStreamһ࣬Ӧѧϰ\n * ѧϰǰȻһ⣬Ӳϵļjavaṩĸʾ?File\n * ٽڵֽOutputStreamƴһ¾һµ֣FileOutputStream\n * \n * FileOutputStreamĹ췽\n * \t\tFileOutputStream(File file)\n * \t\tFileOutputStream(String name)\n * \n * ֽ裺\n * \t\tA:ֽ\n * \t\tB:дݹд\n * \t\tC:ͷԴ\n * \n * ϰֽڵдһıļ\n */\npublic class FileOutputStreamDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// ֽ\n\t\t// FileOutputStream fos = new FileOutputStream(\"a.txt\");\n\n\t\t// ݵĲStringFile?\n\t\t// File file = new File(\"a.txt\");\n\t\t// FileOutputStream fos = new FileOutputStream(file);\n\n\t\tFileOutputStream fos = new FileOutputStream(\"a.txt\");\n\t\t// OutputStream os = new FileOutputStream(\"a.txt\");\n\t\t/*\n\t\t * ֽЩ? A:ϵͳܴһļa.txt B:һfos\n\t\t * C:fosָa.txtļ\n\t\t */\n  \n\t\t// д\n\t\t// public void write(int b):һдһֽڵ\n\t\t// fos.write(57);\n\t\t// fos.write(55);\n\t\t// fos.write(97);\n\n\t\t// public void write(byte[] b):һдһֽ\n\t\t// byte[] bys = {97,98,99,100,101};\n\t\t// fos.write(bys);\n\t\t// ǽͨStringõbyte[]\n\t\t// byte[] bys = \"abcde\".getBytes();\n\t\t// fos.write(bys);\n\t\tfos.write(\"helloworld\".getBytes());\n\n\t\t// public void write(byte[] b,int off,int len):һдһֽһ\n\t\t// fos.write(\"helloworld\".getBytes(), 0, 5);\n\t\t// fos.write(\"helloworld\".getBytes(), 0, \"helloworld\".length());\n\t\t\n\t\t//ͷԴ\n\t\tfos.close();\n\t\t//رմļͷйصϵͳԴ\n\t\t/*\n\t\t * 飺\n\t\t * A:ر(󲻿Լд)\n\t\t * B:ͷصԴ(֪ͨϵͳȥͷصԴ)\n\t\t */\n\t\t\n\t\t//java.io.IOException: Stream Closed\n\t\t//fos.write(\"haha\".getBytes());\n\t\t\n\t\t\n\t\t// while(true){}\n\t}\n}\n"
  },
  {
    "path": "day20/code/day20_IO/src/cn/itcast_01/FileOutputStreamDemo2.java",
    "content": "package cn.itcast_01;\n\nimport java.io.FileOutputStream;\nimport java.io.IOException;\n\n/*\n * С⣺\n * A:ʵݵĻ?\n * \t\tͬϵͳԻзŵʶǲһġ\n * \t\tMac:\t\t\\r\n * \t\tlinux:\t\t\\n\n * \t\twindows:\t\\r\\n\n * \t\tϵͳԴļ±ֻʶϵͳܹʶĻС\n * \t\tEclipseԴļ±ԼEditplusȴʶĻз\n * \n * B:ʵݵ׷д? \n * \t\tpublic FileOutputStream(String name,boolean append)\n * \t\tڶΪ trueֽдļĩβдļʼ\n */\npublic class FileOutputStreamDemo2 {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// ֽ\n\t\tFileOutputStream fos = new FileOutputStream(\"b.txt\",true);\n\n\t\t// д\n\t\tfor (int x = 0; x < 10; x++) {\n\t\t\t// // fos.write((\"hello\" + x).getBytes());\n\t\t\t// fos.write((\"hello\" + x + \"\\n\").getBytes());\n\t\t\t// fos.write((\"hello\" + x + \"\\r\").getBytes());\n\t\t\tfos.write((\"hello\" + x + \"\\r\\n\").getBytes());\n\t\t}\n\n\t\t// ͷԴ\n\t\tfos.close();\n\t}\n}\n"
  },
  {
    "path": "day20/code/day20_IO/src/cn/itcast_01/FileOutputStreamDemo3.java",
    "content": "package cn.itcast_01;\n\nimport java.io.FileNotFoundException;\nimport java.io.FileOutputStream;\nimport java.io.IOException;\n\n/*\n * FileOutputStremaдݵ쳣\n */\npublic class FileOutputStreamDemo3 {\n\tpublic static void main(String[] args) {\n\t\t// method1();\n\t\tmethod2();\n\t}\n\n\tpublic static void method2() {\n\t\t// ⣬finally濴\n\t\tFileOutputStream fos = null;\n\t\ttry {\n\t\t\tfos = new FileOutputStream(\"fos.txt\");\n\t\t\tfos.write(\"hello\".getBytes());\n\t\t} catch (FileNotFoundException e) {\n\t\t\te.printStackTrace();\n\t\t} catch (IOException e) {\n\t\t\te.printStackTrace();\n\t\t} finally {\n\t\t\t// жϲΪnullȥر\n\t\t\tif (fos != null) {\n\t\t\t\ttry {\n\t\t\t\t\tfos.close();\n\t\t\t\t} catch (IOException e) {\n\t\t\t\t\te.printStackTrace();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic static void method1() {\n\t\tFileOutputStream fos = null;\n\t\ttry {\n\t\t\t// System.out.println(10 / 0);\n\t\t\tfos = new FileOutputStream(\"fos.txt\");\n\t\t} catch (FileNotFoundException e) {\n\t\t\t// e.printStackTrace();\n\t\t\tSystem.out.println(\"ļʧ\");\n\t\t}\n\n\t\ttry {\n\t\t\tfos.write(\"hello\".getBytes());\n\t\t} catch (IOException e) {\n\t\t\t// e.printStackTrace();\n\t\t\tSystem.out.println(\"дʧ\");\n\t\t}\n\n\t\ttry {\n\t\t\tfos.close();\n\t\t} catch (IOException e) {\n\t\t\t// e.printStackTrace();\n\t\t\tSystem.out.println(\"ͷԴʧ\");\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day20/code/day20_IO/src/cn/itcast_02/FileInputStreamDemo.java",
    "content": "package cn.itcast_02;\n\nimport java.io.FileInputStream;\nimport java.io.IOException;\n\n/*\n * ֽݲ裺\n * A:ֽ\n * B:÷ȡ\n * C:ͷԴ\n * \n * ֽȡַʽ:\n * A:һζȡһֽ\n * B:һζȡһֽ\n * \n * һζȡһֽڣpublic int read()\n */\npublic class FileInputStreamDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// ֽ\n\t\t// FileInputStream fis = new FileInputStream(\"fis.txt\");\n\t\tFileInputStream fis = new FileInputStream(\"FileOutputStreamDemo.java\");\n\n\t\t// ÷ȡ\n\t\t// һζȡ\n\t\t// int by = fis.read();\n\t\t// System.out.println(by);\n\t\t// System.out.println((char) by);\n\t\t//\n\t\t// // ڶζȡ\n\t\t// by = fis.read();\n\t\t// System.out.println(by);\n\t\t// System.out.println((char) by);\n\t\t//\n\t\t// // ζȡ\n\t\t// by = fis.read();\n\t\t// System.out.println(by);\n\t\t// System.out.println((char) by);\n\t\t// ǷĴһģԣǿҪѭĽ\n\t\t// ѭĽ?\n\t\t// ص\n\t\t// жѭʲôʱ\n\t\t// by = fis.read();\n\t\t// System.out.println(by);\n\t\t// by = fis.read();\n\t\t// System.out.println(by);\n\t\t// ͨǷ֣жֵ-1\n\n\t\t// int by = fis.read();\n\t\t// while (by != -1) {\n\t\t// System.out.print((char) by);\n\t\t// by = fis.read();\n\t\t// }\n\n\t\t// մ\n\t\tint by = 0;\n\t\t// ȡݣֵж\n\t\twhile ((by = fis.read()) != -1) {\n\t\t\tSystem.out.print((char) by);\n\t\t}\n\n\t\t// ͷԴ\n\t\tfis.close();\n\t}\n}\n"
  },
  {
    "path": "day20/code/day20_IO/src/cn/itcast_02/FileInputStreamDemo2.java",
    "content": "package cn.itcast_02;\n\nimport java.io.FileInputStream;\nimport java.io.IOException;\n\n/*\n * Ϊ߶ȡݵЧʣ˵ڶַ\n * һζȡһֽ飺public int read(byte[] b):صʵʵĶȡȣݶȡֽ\n */\npublic class FileInputStreamDemo2 {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// ֽ\n\t\tFileInputStream fis = new FileInputStream(\"a.txt\");\n\n\t\t// ȡ\n\t\t// public int read(byte[] b)\n\t\t// byte[] bys = new byte[5];\n\n\t\t// // һζȡ\n\t\t// int len = fis.read(bys);\n\t\t// System.out.println(len);\n\t\t// // System.out.println(new String(bys));\n\t\t// System.out.println(new String(bys, 0, len));\n\t\t//\n\t\t// // ڶζȡ\n\t\t// len = fis.read(bys);\n\t\t// System.out.println(len);\n\t\t// // System.out.println(new String(bys));\n\t\t// System.out.println(new String(bys, 0, len));\n\t\t//\n\t\t// // ζȡ\n\t\t// len = fis.read(bys);\n\t\t// System.out.println(len);\n\t\t// // System.out.println(new String(bys));\n\t\t// System.out.println(new String(bys, 0, len));\n\t\t//\n\t\t// // Ĵζȡ\n\t\t// len = fis.read(bys);\n\t\t// System.out.println(len);\n\t\t// // System.out.println(new String(bys));\n\t\t// System.out.println(new String(bys, 0, len));\n\t\t//\n\t\t// // ѭģӦ֪жϽ\n\t\t// len = fis.read(bys);\n\t\t// len = fis.read(bys);\n\t\t// System.out.println(len);\n\t\t// System.out.println(len);\n\n\t\t// byte[] bys = new byte[5];\n\t\tbyte[] bys = new byte[1024 * 1024]; // һ1024\n\t\tint len = 0;\n\t\twhile ((len = fis.read(bys)) != -1) {\n\t\t\tSystem.out.print(new String(bys, 0, len));\n\t\t}\n\n\t\t// ͷԴ\n\t\tfis.close();\n\t}\n}\n"
  },
  {
    "path": "day20/code/day20_IO/src/cn/itcast_03/CopyAviDemo.java",
    "content": "package cn.itcast_03;\n\nimport java.io.FileInputStream;\nimport java.io.FileOutputStream;\nimport java.io.IOException;\n\n/*\n * e:\\\\DOS.aviƵǰĿĿ¼µcopy.avi\n * Դ\n * \t\te:\\\\DOS.avi\n * Ŀĵأ\n * \t\tcopy.avi\n */\npublic class CopyAviDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// װԴ\n\t\tFileInputStream fis = new FileInputStream(\"e:\\\\DOS.avi\");\n\t\t// װĿĵ\n\t\tFileOutputStream fos = new FileOutputStream(\"copy.avi\");\n\n\t\t// д\n\t\tint by = 0;\n\t\twhile ((by = fis.read()) != -1) {\n\t\t\tfos.write(by);\n\t\t}\n\n\t\t// ͷԴ\n\t\tfos.close();\n\t\tfis.close();\n\t}\n}\n"
  },
  {
    "path": "day20/code/day20_IO/src/cn/itcast_03/CopyFileDemo.java",
    "content": "package cn.itcast_03;\n\nimport java.io.FileInputStream;\nimport java.io.FileOutputStream;\nimport java.io.IOException;\n\n/*\n * ѵǰĿĿ¼µa.txtݸƵǰĿĿ¼µb.txt\n * \n * ļ\n * Դ\n * \t\ta.txt\t--\tInputStream\t--\tFileInputStream\t--\tһζһֽ\n * Ŀĵأ\n * \t\tb.txt\t--\tOutputStream -- FileOutputStream -- һдһֽ?\n */\npublic class CopyFileDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// װ\n\t\tFileInputStream fis = new FileInputStream(\"a.txt\");\n\t\t// װĿĵ\n\t\tFileOutputStream fos = new FileOutputStream(\"b.txt\");\n\n\t\t// ݣд\n\t\tint by = 0;\n\t\twhile ((by = fis.read()) != -1) {\n\t\t\tfos.write(by);\n\t\t}\n\n\t\t// ͷԴ\n\t\tfos.close();\n\t\tfis.close();\n\t}\n}\n"
  },
  {
    "path": "day20/code/day20_IO/src/cn/itcast_03/CopyFileDemo2.java",
    "content": "package cn.itcast_03;\n\nimport java.io.FileInputStream;\nimport java.io.FileOutputStream;\nimport java.io.IOException;\n\n/*\n * c:\\\\a.txtݸƵd:\\\\b.txt\n * Դ\n * \t\tc:\\\\a.txt\t--\tFileInputStream\n * Ŀĵأ\n * \t\td:\\\\b.txt\t--\tFileOutputStream\n */\npublic class CopyFileDemo2 {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// װԴ\n\t\t// java.io.FileNotFoundException: c:\\a.txt (ϵͳҲָļ)\n\t\tFileInputStream fis = new FileInputStream(\"c:\\\\a.txt\");\n\t\t// װĿĵ\n\t\tFileOutputStream fos = new FileOutputStream(\"d:\\\\b.txt\");\n\n\t\t// д\n\t\tint by = 0;\n\t\twhile ((by = fis.read()) != -1) {\n\t\t\tfos.write(by);\n\t\t}\n\n\t\t// ͷԴ\n\t\tfos.close();\n\t\tfis.close();\n\t}\n}\n"
  },
  {
    "path": "day20/code/day20_IO/src/cn/itcast_03/CopyImageDemo.java",
    "content": "package cn.itcast_03;\n\nimport java.io.FileInputStream;\nimport java.io.FileOutputStream;\nimport java.io.IOException;\n\n/*\n * e:\\\\ϼ.jpgݸƵǰĿĿ¼µmn.jpg\n * \n * Դ\n * \t\te:\\\\ϼ.jpg\t--\tFileInputStream\n * Ŀĵأ\t\n * \t\tmn.jpg\t\t\t--\tFileOutputStream\n */\npublic class CopyImageDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// װԴ\n\t\tFileInputStream fis = new FileInputStream(\"e:\\\\ϼ.jpg\");\n\t\t// װĿĵ\n\t\tFileOutputStream fos = new FileOutputStream(\"mn.jpg\");\n\n\t\t// д\n\t\tint by = 0;\n\t\twhile ((by = fis.read()) != -1) {\n\t\t\tfos.write(by);\n\t\t}\n\n\t\t// ͷԴ\n\t\tfos.close();\n\t\tfis.close();\n\t}\n}\n"
  },
  {
    "path": "day20/code/day20_IO/src/cn/itcast_04/CopyAviDemo.java",
    "content": "package cn.itcast_04;\n\nimport java.io.FileInputStream;\nimport java.io.FileOutputStream;\nimport java.io.IOException;\n\n/*\n * e:\\\\DOS.aviƵǰĿĿ¼µcopy.avi\n * Դ\n * \t\te:\\\\DOS.avi\n * Ŀĵأ\n * \t\tcopy.avi\n */\npublic class CopyAviDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// װԴ\n\t\tFileInputStream fis = new FileInputStream(\"e:\\\\DOS.avi\");\n\t\t// װĿĵ\n\t\tFileOutputStream fos = new FileOutputStream(\"copy.avi\");\n\n\t\t// д\n\t\tbyte[] bys = new byte[1024];\n\t\tint len = 0;\n\t\twhile ((len = fis.read(bys)) != -1) {\n\t\t\tfos.write(bys, 0, len);\n\t\t}\n\n\t\t// ͷԴ\n\t\tfos.close();\n\t\tfis.close();\n\t}\n}\n"
  },
  {
    "path": "day20/code/day20_IO/src/cn/itcast_04/CopyFileDemo.java",
    "content": "package cn.itcast_04;\n\nimport java.io.FileInputStream;\nimport java.io.FileOutputStream;\nimport java.io.IOException;\n\n/*\n * ѵǰĿĿ¼µa.txtݸƵǰĿĿ¼µb.txt\n * \n * ļ\n * Դ\n * \t\ta.txt\t--\tInputStream\t--\tFileInputStream\t--\tһζһֽ\n * Ŀĵأ\n * \t\tb.txt\t--\tOutputStream -- FileOutputStream -- һдһֽһ\n */\npublic class CopyFileDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// װԴ\n\t\tFileInputStream fis = new FileInputStream(\"a.txt\");\n\t\t// װĿĵ\n\t\tFileOutputStream fos = new FileOutputStream(\"b.txt\");\n\n\t\t// д\n\t\tbyte[] bys = new byte[1024];\n\t\tint len = 0;\n\t\twhile ((len = fis.read(bys)) != -1) {\n\t\t\tfos.write(bys, 0, len);\n\t\t}\n\n\t\t// ͷԴ\n\t\tfos.close();\n\t\tfis.close();\n\t}\n}\n"
  },
  {
    "path": "day20/code/demo/aaa/ccc.txt",
    "content": ""
  },
  {
    "path": "day20/day20总结.txt",
    "content": "1ݹ()\n\t(1)е÷\n\t(2)ע\n\t\tA:һҪгڣݹ\n\t\tB:Ҫ࣬ڴ\n\t\tC:췽ܵݹʹ\n\t(3)\n\t\tA:ϺиСн\n\t\tB:ѧJava\n\t(4)(A,BգC,DҪ)\n\t\tA:ݹ׳\n\t\tB:ݹ\n\t\tC:ݹָĿ¼ָ׺ļľ·\n\t\tD:ݹɾݵĿ¼\n\n2IO()\n\t(1)IO\n\t\tA:ʵ豸ݴ\n\t\t\tϴļļ\n\t\tB:javaIOʽ\n\t\tC:Ķio\n\t(2)IOķ\n\t\tA:\n\t\t\t\n\t\t\t\n\t\tB:\n\t\t\tֽ\n\t\t\tַ\n\t\t\n\t\ta:ûȷָĬϰͷ֡\n\t\tb:ͨwindows±򿪲ܹļַ\n\t\t  ֽ\n\t\t  㲻֪Զʹֽ\n\t(3)FileOutputStreamд\n\t\t裺\n\t\t\tA:ֽ\n\t\t\tB:дݹ\n\t\t\tC:ͷԴ\n\n\t\t֣\n\t\t\tFileOutputStream fos = new FileOutputStream(\"fos.txt\");\n\n\t\t\tfos.write(\"helloworld\".getBytes());\n\n\t\t\tfos.close();\n\n\t\tС⣺\n\t\t\tA:ֽ˼?\n\t\t\tB:дݺΪʲôҪclose()?\n\t\t\tC:ʵݵĻ?\n\t\t\tD:ʵݵ׷д?\n\t\t\tE:Ҫܹ쳣IO\n\t(4)FileInputStream\n\t\t裺\n\t\t\tA:ֽ\n\t\t\tB:öݹ\n\t\t\tC:ͷԴ\n\n\t\t֣\n\t\t\tFileInputStream fis = new FileInputStream(\"fis.txt\");\n\n\t\t\t//ʽ1:һζȡһֽ\n\t\t\tint by = 0;\n\t\t\twhile((by=fis.read())!=-1) {\n\t\t\t\tSystem.out.print((char)by);\n\t\t\t}\n\t\t\t\n\n\t\t\t//2:һζȡһֽ\n\t\t\tbyte[] bys = new byte[1024];\n\t\t\tint len = 0;\n\t\t\twhile((len=fis.read(bys))!=-1) {\n\t\t\t\tSystem.out.print(new String(bys,0,len));\n\t\t\t}\n\n\t\t\tfis.close();\n\t(5)\n\t\tļ\n\t\t\tԴ\n\t\t\tĿĵأд\n\n\t\tA:\tĿ·µa.txt,Ŀ·µb.txt\n\t\tB:\tc:\\\\a.txtd:\\\\b.txt\n\t\tC:\te:\\\\ϼ.jpgĿ·µmn.jpg\n\t\tD:\te:\\\\.mp4Ŀ·µcopy.mp4"
  },
  {
    "path": "day21/code/day21_IO/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day21/code/day21_IO/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day21_IO</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day21/code/day21_IO/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day21/code/day21_IO/a.txt",
    "content": "hello"
  },
  {
    "path": "day21/code/day21_IO/bos.txt",
    "content": "hello"
  },
  {
    "path": "day21/code/day21_IO/src/cn/itcast_01/CopyImageDemo.java",
    "content": "package cn.itcast_01;\n\nimport java.io.FileInputStream;\nimport java.io.FileOutputStream;\nimport java.io.IOException;\n\n/*\n * Ŀ·µı߻.bmpƵĿ·µϼ.bmp\n * Դ\n * \t\t߻.bmp\t--\tFileInputStream\n * Ŀĵأ\t\t\n * \t\tϼ.bmp\t--\tFileOutputStream\n */\npublic class CopyImageDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// װԴ\n\t\tFileInputStream fis = new FileInputStream(\"߻.bmp\");\n\t\t// װĿĵ\n\t\tFileOutputStream fos = new FileOutputStream(\"ϼ.bmp\");\n\n\t\t// ʽ1\n\t\t// int by = 0;\n\t\t// while ((by = fis.read()) != -1) {\n\t\t// fos.write(by);\n\t\t// }\n\n\t\t// ʽ2\n\t\tbyte[] bys = new byte[1024];\n\t\tint len = 0;\n\t\twhile ((len = fis.read(bys)) != -1) {\n\t\t\tfos.write(bys, 0, len);\n\t\t}\n\n\t\t// ͷԴ\n\t\tfos.close();\n\t\tfis.close();\n\t}\n}\n"
  },
  {
    "path": "day21/code/day21_IO/src/cn/itcast_02/BufferedDemo.java",
    "content": "package cn.itcast_02;\n\nimport java.io.BufferedInputStream;\nimport java.io.BufferedOutputStream;\nimport java.io.FileInputStream;\nimport java.io.FileOutputStream;\nimport java.io.IOException;\nimport java.io.OutputStream;\n\n/*\n * ķʽһαһֽڵķʽܶ࣬ԣjavaƵʱҲǵˡ\n * ƳĻ\n * ֽڻ\n * \t\tBufferedInputStream\n * ֽڻ\n * \t\tBufferedOutputStream\n * \n * ͨ췽Ƿֱ֣Ӳļ\n * ǽڻĲ֮ϵġ\n * ԣҲ֮Ϊ߼\n */\npublic class BufferedDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// д\n\t\t// BufferedOutputStream(OutputStream out)\n\t\t// OutputStream out = new FileOutputStream(\"bos.txt\");\n\t\t// BufferedOutputStream bos = new BufferedOutputStream(out);\n\t\t// BufferedOutputStream bos = new BufferedOutputStream(\n\t\t// new FileOutputStream(\"bos.txt\"));\n\t\t// bos.write(\"hello\".getBytes());\n\t\t// bos.close();\n\n\t\t// \n\t\t// BufferedInputStream(InputStream is)\n\t\tBufferedInputStream bis = new BufferedInputStream(new FileInputStream(\n\t\t\t\t\"bos.txt\"));\n\n\t\t// ʽ1\n\t\tint by = 0;\n\t\twhile ((by = bis.read()) != -1) {\n\t\t\tSystem.out.print((char) by);\n\t\t}\n\t\tSystem.out.println(\"-----------------------\");\n\n\t\t// ʽ2\n\t\tbis = new BufferedInputStream(new FileInputStream(\"bos.txt\"));\n\t\tbyte[] bys = new byte[1024];\n\t\tint len = 0;\n\t\twhile ((len = bis.read(bys)) != -1) {\n\t\t\tSystem.out.print(new String(bys, 0, len));\n\t\t}\n\n\t\tbis.close();\n\t}\n}\n"
  },
  {
    "path": "day21/code/day21_IO/src/cn/itcast_03/CopyMP4Demo.java",
    "content": "package cn.itcast_03;\n\nimport java.io.BufferedInputStream;\nimport java.io.BufferedOutputStream;\nimport java.io.FileInputStream;\nimport java.io.FileOutputStream;\nimport java.io.IOException;\n\n/*\n * Դ\n * \t\td:\\\\.mp4\n * Ŀĵأ\n * \t\tĿ·copy.mp4\n * \n * ַʽ\n * A:ֽһζдһֽ\t67023\n * B:ֽһζдһֽ\tʱ102\n * C:Чֽһζдһֽ\tʱ650\n * D:Чֽһζдһֽ\tʱ36\n */\npublic class CopyMP4Demo {\n\tpublic static void main(String[] args) throws IOException {\n\t\tlong start = System.currentTimeMillis();\n\t\t// method1();\n\t\t// method2();\n\t\t// method3();\n\t\tmethod4();\n\t\tlong end = System.currentTimeMillis();\n\t\tSystem.out.println(\"ʱ\" + (end - start) + \"\");\n\t}\n\n\t// ֽһζдһֽ\n\tpublic static void method1() throws IOException {\n\t\tFileInputStream fis = new FileInputStream(\"d:\\\\.mp4\");\n\t\tFileOutputStream fos = new FileOutputStream(\"copy1.mp4\");\n\n\t\tint by = 0;\n\t\twhile ((by = fis.read()) != -1) {\n\t\t\tfos.write(by);\n\t\t}\n\n\t\tfos.close();\n\t\tfis.close();\n\t}\n\n\t// ֽһζдһֽ\n\tpublic static void method2() throws IOException {\n\t\tFileInputStream fis = new FileInputStream(\"d:\\\\.mp4\");\n\t\tFileOutputStream fos = new FileOutputStream(\"copy2.mp4\");\n\n\t\tbyte[] bys = new byte[1024];\n\t\tint len = 0;\n\t\twhile ((len = fis.read(bys)) != -1) {\n\t\t\tfos.write(bys, 0, len);\n\t\t}\n\n\t\tfos.close();\n\t\tfis.close();\n\t}\n\n\t// Чֽһζдһֽ\n\tpublic static void method3() throws IOException {\n\t\tBufferedInputStream bis = new BufferedInputStream(new FileInputStream(\n\t\t\t\t\"d:\\\\.mp4\"));\n\t\tBufferedOutputStream bos = new BufferedOutputStream(\n\t\t\t\tnew FileOutputStream(\"copy3.mp4\"));\n\n\t\tint by = 0;\n\t\twhile ((by = bis.read()) != -1) {\n\t\t\tbos.write(by);\n\t\t}\n\n\t\tbos.close();\n\t\tbis.close();\n\t}\n\n\t// Чֽһζдһֽ\n\tpublic static void method4() throws IOException {\n\t\tBufferedInputStream bis = new BufferedInputStream(new FileInputStream(\n\t\t\t\t\"d:\\\\.mp4\"));\n\t\tBufferedOutputStream bos = new BufferedOutputStream(\n\t\t\t\tnew FileOutputStream(\"copy4.mp4\"));\n\n\t\tbyte[] bys = new byte[1024];\n\t\tint len = 0;\n\t\twhile ((len = bis.read(bys)) != -1) {\n\t\t\tbos.write(bys, 0, len);\n\t\t}\n\n\t\tbos.close();\n\t\tbis.close();\n\t}\n}\n"
  },
  {
    "path": "day21/code/day21_IO/src/cn/itcast_04/FileInputStreamDemo.java",
    "content": "package cn.itcast_04;\n\nimport java.io.FileInputStream;\nimport java.io.IOException;\n\n/*\n * ֽģرķ㣬Ҫ취Ľʱת\n * ԰ֽתΪַ\n * ַ = ֽ+\n */\npublic class FileInputStreamDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\tFileInputStream fis = new FileInputStream(\"a.txt\");\n\n\t\t// int by = 0;\n\t\t// while ((by = fis.read()) != -1) {\n\t\t// System.out.print((char) by);\n\t\t// }\n\n\t\tbyte[] bys = new byte[1024];\n\t\tint len = 0;\n\t\twhile ((len = fis.read(bys)) != -1) {\n\t\t\tSystem.out.print(new String(bys, 0, len));\n\t\t}\n\n\t\tfis.close();\n\t}\n}\n"
  },
  {
    "path": "day21/code/day21_IO/src/cn/itcast_04/StringDemo.java",
    "content": "package cn.itcast_04;\n\nimport java.util.Arrays;\n\n/*\n * Լֽƴһ\n * һֽڿ϶Ǹڶ󲿷Ǹ\n */\npublic class StringDemo {\n\tpublic static void main(String[] args) {\n\t\t// hello\n\t\t// String s = \"hello\";\n\t\t// byte[] bys = s.getBytes();\n\t\t// // [104, 101, 108, 108, 111]\n\t\t// System.out.println(Arrays.toString(bys));\n\n\t\tString ss = \"Ұϼ\";\n\t\tbyte[] bys = ss.getBytes();\n\t\t// [-50, -46, -80, -82, -60, -29, -63, -42, -57, -32, -49, -68]\n\t\tSystem.out.println(Arrays.toString(bys));\n\t}\n}"
  },
  {
    "path": "day21/code/day21_IO/src/cn/itcast_05/StringDemo.java",
    "content": "package cn.itcast_05;\n\nimport java.io.UnsupportedEncodingException;\nimport java.util.Arrays;\n\n/*\n * String s = \"\";\n * \n * 룺\n * \t\tܹı㿴\n * 룺\n * \t\t㿴ܿ\n * \n * սƬǱ,ؼҿȥ\n * \t\tϵط -- 1011110000111  -- ʮ -- ҸС -- ַ\n */\npublic class StringDemo {\n\tpublic static void main(String[] args) throws UnsupportedEncodingException {\n\t\tString s = \"\";\n\n\t\t// public byte[] getBytes()\n\t\t// byte[] bys = s.getBytes();\n\t\t// [-60, -29, -70, -61]\n\t\t// public byte[] getBytes(String charsetName)\n\t\tbyte[] bys = s.getBytes(\"GBK\");\n\t\t// [-60, -29, -70, -61]\n\t\t// byte[] bys = s.getBytes(\"UTF-8\");\n\t\t// [-28, -67, -96, -27, -91, -67]\n\t\tSystem.out.println(Arrays.toString(bys));\n\n\t\t// String(byte[] bytes)\n\t\t// String ss = new String(bys);\n\t\t// public String(byte[] bytes, String charsetName)\n\t\tString ss = new String(bys, \"GBK\");\n\t\t// String ss = new String(bys, \"UTF-8\");\n\t\tSystem.out.println(ss);\n\t}\n}\n"
  },
  {
    "path": "day21/code/day21_IO2/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day21/code/day21_IO2/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day21_IO2</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day21/code/day21_IO2/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day21/code/day21_IO2/Copy.java",
    "content": "package cn.itcast_01;\n\nimport java.io.FileInputStream;\nimport java.io.IOException;\nimport java.io.InputStreamReader;\n\n/*\n * InputStreamReader(InputStream in) \n * InputStreamReader(InputStream in, String charsetName) \n */\npublic class InputStreamReaderDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// \n\t\tInputStreamReader isr = new InputStreamReader(new FileInputStream(\n\t\t\t\t\"isr.txt\"));\n\n\t\t// һζȡһַ\n\t\t// int ch = 0;\n\t\t// while ((ch = isr.read()) != -1) {\n\t\t// System.out.print((char) ch);\n\t\t// }\n\n\t\t// һζȡһַ\n\t\tchar[] chs = new char[1024];\n\t\tint len = 0;\n\t\twhile ((len = isr.read(chs)) != -1) {\n\t\t\tSystem.out.print(new String(chs, 0, len));\n\t\t}\n\n\t\t// ͷԴ\n\t\tisr.close();\n\t}\n}\n"
  },
  {
    "path": "day21/code/day21_IO2/Demo.java",
    "content": "package cn.itcast_01;\n\nimport java.io.FileInputStream;\nimport java.io.IOException;\nimport java.io.InputStreamReader;\n\n/*\n * InputStreamReader(InputStream in) \n * InputStreamReader(InputStream in, String charsetName) \n */\npublic class InputStreamReaderDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// \n\t\tInputStreamReader isr = new InputStreamReader(new FileInputStream(\n\t\t\t\t\"isr.txt\"));\n\n\t\t// һζȡһַ\n\t\t// int ch = 0;\n\t\t// while ((ch = isr.read()) != -1) {\n\t\t// System.out.print((char) ch);\n\t\t// }\n\n\t\t// һζȡһַ\n\t\tchar[] chs = new char[1024];\n\t\tint len = 0;\n\t\twhile ((len = isr.read(chs)) != -1) {\n\t\t\tSystem.out.print(new String(chs, 0, len));\n\t\t}\n\n\t\t// ͷԴ\n\t\tisr.close();\n\t}\n}\n"
  },
  {
    "path": "day21/code/day21_IO2/InputStreamReaderDemo.java",
    "content": "package cn.itcast_01;\n\nimport java.io.FileInputStream;\nimport java.io.IOException;\nimport java.io.InputStreamReader;\n\n/*\n * InputStreamReader(InputStream in) \n * InputStreamReader(InputStream in, String charsetName) \n */\npublic class InputStreamReaderDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// \n\t\tInputStreamReader isr = new InputStreamReader(new FileInputStream(\n\t\t\t\t\"isr.txt\"));\n\n\t\t// һζȡһַ\n\t\t// int ch = 0;\n\t\t// while ((ch = isr.read()) != -1) {\n\t\t// System.out.print((char) ch);\n\t\t// }\n\n\t\t// һζȡһַ\n\t\tchar[] chs = new char[1024];\n\t\tint len = 0;\n\t\twhile ((len = isr.read(chs)) != -1) {\n\t\t\tSystem.out.print(new String(chs, 0, len));\n\t\t}\n\n\t\t// ͷԴ\n\t\tisr.close();\n\t}\n}\n"
  },
  {
    "path": "day21/code/day21_IO2/a.txt",
    "content": "hello\nworld\njava"
  },
  {
    "path": "day21/code/day21_IO2/b.txt",
    "content": "hello\nworld\njava"
  },
  {
    "path": "day21/code/day21_IO2/bw.txt",
    "content": "hello0\nhello1\nhello2\nhello3\nhello4\nhello5\nhello6\nhello7\nhello8\nhello9\n"
  },
  {
    "path": "day21/code/day21_IO2/c.txt",
    "content": "hello\nworld\njava"
  },
  {
    "path": "day21/code/day21_IO2/isr.txt",
    "content": "hello"
  },
  {
    "path": "day21/code/day21_IO2/osw.txt",
    "content": "中国"
  },
  {
    "path": "day21/code/day21_IO2/src/cn/itcast_01/IOEncodeDemo.java",
    "content": "package cn.itcast_01;\n\nimport java.io.FileInputStream;\nimport java.io.FileOutputStream;\nimport java.io.IOException;\nimport java.io.InputStreamReader;\nimport java.io.OutputStreamWriter;\n\n/*\n * IOеı⣺ҪIOжݽб⣬ʹת\n */\npublic class IOEncodeDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// д\n\t\t// ĬGBK\n\t\t// OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(\n\t\t// \"osw.txt\"));\n\t\t// ָGBK\n\t\t// OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(\n\t\t// \"osw.txt\"), \"GBK\");\n\t\t// OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(\n\t\t// \"osw.txt\"), \"UTF-8\");\n\t\t// osw.write(\"й\");\n\t\t// osw.close();\n\n\t\t// \n\t\t// InputStreamReader isr = new InputStreamReader(new FileInputStream(\n\t\t// \"osw.txt\"));\n\t\t// InputStreamReader isr = new InputStreamReader(new FileInputStream(\n\t\t// \"osw.txt\"), \"GBK\");\n\t\tInputStreamReader isr = new InputStreamReader(new FileInputStream(\n\t\t\t\t\"osw.txt\"), \"UTF-8\");\n\t\tchar[] chs = new char[1024];\n\t\tint len = 0;\n\t\twhile ((len = isr.read(chs)) != -1) {\n\t\t\tSystem.out.print(new String(chs, 0, len));\n\t\t}\n\n\t\tisr.close();\n\t}\n}\n"
  },
  {
    "path": "day21/code/day21_IO2/src/cn/itcast_01/InputStreamReaderDemo.java",
    "content": "package cn.itcast_01;\n\nimport java.io.FileInputStream;\nimport java.io.IOException;\nimport java.io.InputStreamReader;\n\n/*\n * InputStreamReader(InputStream in) \n * InputStreamReader(InputStream in, String charsetName) \n */\npublic class InputStreamReaderDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// \n\t\tInputStreamReader isr = new InputStreamReader(new FileInputStream(\n\t\t\t\t\"isr.txt\"));\n\n\t\t// һζȡһַ\n\t\t// int ch = 0;\n\t\t// while ((ch = isr.read()) != -1) {\n\t\t// System.out.print((char) ch);\n\t\t// }\n\n\t\t// һζȡһַ\n\t\tchar[] chs = new char[1024];\n\t\tint len = 0;\n\t\twhile ((len = isr.read(chs)) != -1) {\n\t\t\tSystem.out.print(new String(chs, 0, len));\n\t\t}\n\n\t\t// ͷԴ\n\t\tisr.close();\n\t}\n}\n"
  },
  {
    "path": "day21/code/day21_IO2/src/cn/itcast_01/OutputStreamWriterDemo.java",
    "content": "package cn.itcast_01;\n\nimport java.io.FileOutputStream;\nimport java.io.IOException;\nimport java.io.OutputStreamWriter;\n\n/*\n * ַ = ֽ +\n * OutputStreamWriter:ֽתַ\n * OutputStreamWriter(OutputStream out):Ĭַ\n * OutputStreamWriter(OutputStream out, String charsetName):ַָ \n * \n * flush()close()?\n * A:flush ˢ󻹿Լʹ\n * B:close ر󲻿Լʹ\n */\npublic class OutputStreamWriterDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// \n\t\tOutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(\n\t\t\t\t\"osw.txt\"));\n\n\t\t// дݵķ\n\t\t// дһַ\n\t\t// osw.write('');\n\t\t/*\n\t\t * ʱΪʲôû? ַ = 2ֽ\n\t\t */\n\t\t// дһַ\n\t\t// char[] chs = { 'a', 'b', 'c', '', '', 'ϼ' };\n\t\t// osw.write(chs);\n\n\t\t// дһַһ\n\t\t// osw.write(chs, 0, 3);\n\n\t\t// дһַ\n\t\t// osw.write(\"helloworld\");\n\n\t\t// дһַһ\n\t\tString s = \"hello\";\n\t\tosw.write(s, 0, s.length());\n\n\t\tosw.flush();\n\t\t// 10M-20M\n\n\t\t// ͷԴ\n\t\tosw.close();// رմҪˢ\n\t\t// osw.write(\"haha\"); //java.io.IOException: Stream closed\n\t}\n}\n"
  },
  {
    "path": "day21/code/day21_IO2/src/cn/itcast_02/CopyFileDemo.java",
    "content": "package cn.itcast_02;\n\nimport java.io.FileInputStream;\nimport java.io.FileOutputStream;\nimport java.io.IOException;\nimport java.io.InputStreamReader;\nimport java.io.OutputStreamWriter;\n\n/*\n * OutputStreamWriterInputStreamReaderjavaļ\n * Դ\n * \t\tInputStreamReaderDemo.java\n * Ŀĵأ\n * \t\tCopy.java\n */\npublic class CopyFileDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// װԴ\n\t\tInputStreamReader isr = new InputStreamReader(new FileInputStream(\n\t\t\t\t\"InputStreamReaderDemo.java\"));\n\t\t// װĿĵ\n\t\tOutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(\n\t\t\t\t\"Copy.java\"));\n\n\t\t// ʽ1\n\t\t// int ch = 0;\n\t\t// while ((ch = isr.read()) != -1) {\n\t\t// osw.write(ch);\n\t\t// }\n\n\t\t// ʽ2\n\t\tchar[] chs = new char[1024];\n\t\tint len = 0;\n\t\twhile ((len = isr.read(chs)) != -1) {\n\t\t\tosw.write(chs, 0, len);\n\t\t}\n\n\t\t// ͷԴ\n\t\tosw.close();\n\t\tisr.close();\n\t}\n}"
  },
  {
    "path": "day21/code/day21_IO2/src/cn/itcast_03/CopyFileDemo.java",
    "content": "package cn.itcast_03;\n\nimport java.io.FileReader;\nimport java.io.FileWriter;\nimport java.io.IOException;\n\n/*\n * Writer:\n * \t\tOutputStreamWriter ֽתΪַ,ָ\n * \t\t\tFileWriter\n * Reader:\n * \t\tInputStreamReader ֽתΪַ,ָ\n * \t\t\tFileReader\n * \n * Դ\n * \t\ta.txt\n * Ŀĵأ\n * \t\tb.txt\n */\npublic class CopyFileDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// װԴ\n\t\tFileReader fr = new FileReader(\"a.txt\");\n\t\t// װĿĵ\n\t\tFileWriter fw = new FileWriter(\"b.txt\");\n\n\t\t// д\n\t\t// ʽ1\n\t\t// int ch = 0;\n\t\t// while ((ch = fr.read()) != -1) {\n\t\t// fw.write(ch);\n\t\t// }\n\n\t\t// ʽ2\n\t\tchar[] chs = new char[1024];\n\t\tint len = 0;\n\t\twhile ((len = fr.read(chs)) != -1) {\n\t\t\tfw.write(chs, 0, len);\n\t\t}\n\n\t\t// ͷԴ\n\t\tfw.close();\n\t\tfr.close();\n\t}\n}\n"
  },
  {
    "path": "day21/code/day21_IO2/src/cn/itcast_03/CopyFileDemo2.java",
    "content": "package cn.itcast_03;\n\nimport java.io.BufferedReader;\nimport java.io.BufferedWriter;\nimport java.io.FileReader;\nimport java.io.FileWriter;\nimport java.io.IOException;\n\n/*\n * ַ\n * BufferedReader\n * BufferedWriter\n * \n * \n * Դ\n * \t\ta.txt\n * Ŀĵأ\n * \t\tb.txt\n * \n * ĿǰΪֹ\n * \t\tıļ\n * \t\t\t8\n * \t\t\t\tֽ\t4\n * \t\t\t\t\tֽ\n * \t\t\t\t\tֽڻ\n * \t\t\t\tַ\t4\n * \t\t\t\t\tַ\n * \t\t\t\t\tַ\n * \n * \t\tͼƬƵƵȣ\n * \t\t\t4\n * \t\t\t\tֽ\t4\n * \t\t\t\t\tֽ\n * \t\t\t\t\tֽڻ\n */\npublic class CopyFileDemo2 {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// װԴ\n\t\tBufferedReader br = new BufferedReader(new FileReader(\"a.txt\"));\n\t\t// װĿĵ\n\t\tBufferedWriter bw = new BufferedWriter(new FileWriter(\"c.txt\"));\n\n\t\t// ַʽ\n\t\tchar[] chs = new char[1024];\n\t\tint len = 0;\n\t\twhile ((len = br.read(chs)) != -1) {\n\t\t\tbw.write(chs, 0, len);\n\t\t}\n\n\t\tbw.close();\n\t\tbr.close();\n\t}\n}\n"
  },
  {
    "path": "day21/code/day21_IO2/src/cn/itcast_04/BufferedDemo.java",
    "content": "package cn.itcast_04;\n\nimport java.io.BufferedReader;\nimport java.io.FileReader;\nimport java.io.IOException;\n\n/*\n * йܣ\n * BufferedReader:\n * \t\tpublic String readLine()ݵַκֹѵĩβ򷵻 null \n * BufferedWriter:\n * \t\tpublic void newLine()дһз\n */\npublic class BufferedDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// д\n\t\t// BufferedWriter bw = new BufferedWriter(new FileWriter(\"bw.txt\"));\n\t\t// for (int x = 0; x < 10; x++) {\n\t\t// bw.write(\"hello\" + x);\n\t\t// bw.newLine();\n\t\t// bw.flush();\n\t\t// }\n\t\t// bw.close();\n\n\t\t// ȡ\n\t\tBufferedReader br = new BufferedReader(new FileReader(\"bw.txt\"));\n\n\t\t// String s = br.readLine();\n\t\t// System.out.println(s);\n\t\t// s = br.readLine();\n\t\t// System.out.println(s);\n\n\t\tString line = null;\n\t\twhile ((line = br.readLine()) != null) {\n\t\t\tSystem.out.println(line);\n\t\t}\n\n\t\tbr.close();\n\t}\n}\n"
  },
  {
    "path": "day21/code/day21_IO2/src/cn/itcast_04/CopyFileDemo.java",
    "content": "package cn.itcast_04;\n\nimport java.io.BufferedReader;\nimport java.io.BufferedWriter;\nimport java.io.FileReader;\nimport java.io.FileWriter;\nimport java.io.IOException;\n\n/*\n * Դ\n * \t\tInputStreamReaderDemo.java\n * Ŀĵأ\n * \t\tDeom.java\n */\npublic class CopyFileDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// ַйʵ\n\n\t\t// һζȡһ\n\n\t\t// װԴ\n\t\tBufferedReader br = new BufferedReader(new FileReader(\n\t\t\t\t\"InputStreamReaderDemo.java\"));\n\t\t// װĿĵ\n\t\tBufferedWriter bw = new BufferedWriter(new FileWriter(\"Demo.java\"));\n\n\t\t// дһ\n\t\tString line = null;\n\t\twhile ((line = br.readLine()) != null) {\n\t\t\tbw.write(line);\n\t\t\tbw.newLine();\n\t\t\tbw.flush();\n\t\t}\n\n\t\t// ͷԴ\n\t\tbw.close();\n\t\tbr.close();\n\t}\n}\n"
  },
  {
    "path": "day21/code/day21_IOTest/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day21/code/day21_IOTest/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day21_IOTest</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day21/code/day21_IOTest/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day21/code/day21_IOTest/array.txt",
    "content": "hello\nworld\njava\n"
  },
  {
    "path": "day21/code/day21_IOTest/names.txt",
    "content": "\n\n\n\n\n\nʯ·\n\n\nղ\n\n\n\n\n\n\n\n׻\n󺣿\n޽\n˾ΰ\nСţ\nǴ\nſ\n\n\n¬\n\n\nӵ¿\n\n\n\n\n\n\n쿡\nŷ\n\n\nź\nν\n\n↢\nȫ\nݸ\n\n\n\nлҽ\n\nлТ\n\n\nʤ\n׺\nţ\n־Զ\n\n\n\n\n¬Ʒ\nлҸ\n\nһ\n\n\n\nͮ\nҦ\n\nӺ\n\n\n\n\nΰ\n\nҫ\n\n\nΰǿ\nƷ\nϼ\n\n"
  },
  {
    "path": "day21/code/day21_IOTest/s.txt",
    "content": "hcexfgijkamdnoqrzstuvwybpl"
  },
  {
    "path": "day21/code/day21_IOTest/src/cn/itcast_01/CopyBmpDemo.java",
    "content": "package cn.itcast_01;\n\nimport java.io.BufferedInputStream;\nimport java.io.BufferedOutputStream;\nimport java.io.File;\nimport java.io.FileInputStream;\nimport java.io.FileOutputStream;\nimport java.io.IOException;\n\n/*\n * ͼƬ(4)\n * A:ֽһζдһֽ\n * B:ֽһζдһֽ\n * C:Чֽһζдһֽ\n * D:Чֽһζдһֽ\n */\npublic class CopyBmpDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\tFile srcFile = new File(\"c:\\\\ϼ.bmp\");\n\t\tFile destFile = new File(\"d:\\\\mn.bmp\");\n\n\t\t// method1(srcFile, destFile);\n\t\t// method2(srcFile, destFile);\n\t\t// method3(srcFile, destFile);\n\t\tmethod4(srcFile, destFile);\n\t}\n\n\t// Чֽһζдһֽ\n\tpublic static void method4(File srcFile, File destFile) throws IOException {\n\t\tBufferedInputStream bis = new BufferedInputStream(new FileInputStream(\n\t\t\t\tsrcFile));\n\t\tBufferedOutputStream bos = new BufferedOutputStream(\n\t\t\t\tnew FileOutputStream(destFile));\n\n\t\tbyte[] bys = new byte[1024];\n\t\tint len = 0;\n\t\twhile ((len = bis.read(bys)) != -1) {\n\t\t\tbos.write(bys, 0, len);\n\t\t}\n\n\t\tbos.close();\n\t\tbis.close();\n\t}\n\n\t// Чֽһζдһֽ\n\tpublic static void method3(File srcFile, File destFile) throws IOException {\n\t\tBufferedInputStream bis = new BufferedInputStream(new FileInputStream(\n\t\t\t\tsrcFile));\n\t\tBufferedOutputStream bos = new BufferedOutputStream(\n\t\t\t\tnew FileOutputStream(destFile));\n\n\t\tint by = 0;\n\t\twhile ((by = bis.read()) != -1) {\n\t\t\tbos.write(by);\n\t\t}\n\n\t\tbos.close();\n\t\tbis.close();\n\t}\n\n\t// ֽһζдһֽ\n\tpublic static void method2(File srcFile, File destFile) throws IOException {\n\t\tFileInputStream fis = new FileInputStream(srcFile);\n\t\tFileOutputStream fos = new FileOutputStream(destFile);\n\n\t\tbyte[] bys = new byte[1024];\n\t\tint len = 0;\n\t\twhile ((len = fis.read(bys)) != -1) {\n\t\t\tfos.write(bys, 0, len);\n\t\t}\n\n\t\tfos.close();\n\t\tfis.close();\n\t}\n\n\t// ֽһζдһֽ\n\tpublic static void method1(File srcFile, File destFile) throws IOException {\n\t\tFileInputStream fis = new FileInputStream(srcFile);\n\t\tFileOutputStream fos = new FileOutputStream(destFile);\n\n\t\tint by = 0;\n\t\twhile ((by = fis.read()) != -1) {\n\t\t\tfos.write(by);\n\t\t}\n\n\t\tfos.close();\n\t\tfis.close();\n\t}\n}\n"
  },
  {
    "path": "day21/code/day21_IOTest/src/cn/itcast_01/CopyTxtDemo.java",
    "content": "package cn.itcast_01;\n\nimport java.io.BufferedReader;\nimport java.io.BufferedWriter;\nimport java.io.FileReader;\nimport java.io.FileWriter;\nimport java.io.IOException;\n\n/*\n * ıļ(9֣ѡַ5ַʽʵ)\n * A:ַһһַ\n * B:ַһһַ\n * C:Чַһһַ\n * D:Чַһһַ\n * E:Чַһһַ\n * \n * Դ\n * \t\tc:\\\\a.txt\n * Ŀĵأ\n * \t\td:\\\\b.txt\n */\npublic class CopyTxtDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\tString srcString = \"c:\\\\a.txt\";\n\t\tString destString = \"d:\\\\b.txt\";\n\n\t\tmethod1(srcString, destString);\n\t\t// method2(srcString, destString);\n\t\t// method3(srcString, destString);\n\t\t// method4(srcString, destString);\n\t\t// method5(srcString, destString);\n\t}\n\n\t// Чַһһַ\n\tprivate static void method5(String srcString, String destString)\n\t\t\tthrows IOException {\n\t\tBufferedReader br = new BufferedReader(new FileReader(srcString));\n\t\tBufferedWriter bw = new BufferedWriter(new FileWriter(destString));\n\n\t\tString line = null;\n\t\twhile ((line = br.readLine()) != null) {\n\t\t\tbw.write(line);\n\t\t\tbw.newLine();\n\t\t\tbw.flush();\n\t\t}\n\n\t\tbw.close();\n\t\tbr.close();\n\t}\n\n\t// Чַһһַ\n\tprivate static void method4(String srcString, String destString)\n\t\t\tthrows IOException {\n\t\tBufferedReader br = new BufferedReader(new FileReader(srcString));\n\t\tBufferedWriter bw = new BufferedWriter(new FileWriter(destString));\n\n\t\tchar[] chs = new char[1024];\n\t\tint len = 0;\n\t\twhile ((len = br.read(chs)) != -1) {\n\t\t\tbw.write(chs, 0, len);\n\t\t}\n\n\t\tbw.close();\n\t\tbr.close();\n\t}\n\n\t// Чַһһַ\n\tprivate static void method3(String srcString, String destString)\n\t\t\tthrows IOException {\n\t\tBufferedReader br = new BufferedReader(new FileReader(srcString));\n\t\tBufferedWriter bw = new BufferedWriter(new FileWriter(destString));\n\n\t\tint ch = 0;\n\t\twhile ((ch = br.read()) != -1) {\n\t\t\tbw.write(ch);\n\t\t}\n\n\t\tbw.close();\n\t\tbr.close();\n\t}\n\n\t// ַһһַ\n\tprivate static void method2(String srcString, String destString)\n\t\t\tthrows IOException {\n\t\tFileReader fr = new FileReader(srcString);\n\t\tFileWriter fw = new FileWriter(destString);\n\n\t\tchar[] chs = new char[1024];\n\t\tint len = 0;\n\t\twhile ((len = fr.read(chs)) != -1) {\n\t\t\tfw.write(chs, 0, len);\n\t\t}\n\n\t\tfw.close();\n\t\tfr.close();\n\t}\n\n\t// ַһһַ\n\tprivate static void method1(String srcString, String destString)\n\t\t\tthrows IOException {\n\t\tFileReader fr = new FileReader(srcString);\n\t\tFileWriter fw = new FileWriter(destString);\n\n\t\tint ch = 0;\n\t\twhile ((ch = fr.read()) != -1) {\n\t\t\tfw.write(ch);\n\t\t}\n\n\t\tfw.close();\n\t\tfr.close();\n\t}\n\n}\n"
  },
  {
    "path": "day21/code/day21_IOTest/src/cn/itcast_02/ArrayListToFileDemo.java",
    "content": "package cn.itcast_02;\n\nimport java.io.BufferedWriter;\nimport java.io.FileWriter;\nimport java.io.IOException;\nimport java.util.ArrayList;\n\n/*\n * ArrayListеַݴ洢ıļ\n * \n * Դ\n * \t\tArrayList\n * Ŀĵأ\n * \t\tarray.txt\n */\npublic class ArrayListToFileDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// ϶\n\t\t// װԴ\n\t\tArrayList<String> array = new ArrayList<String>();\n\t\tarray.add(\"hello\");\n\t\tarray.add(\"world\");\n\t\tarray.add(\"java\");\n\n\t\t// װĿĵ\n\t\tBufferedWriter bw = new BufferedWriter(new FileWriter(\"array.txt\"));\n\n\t\tfor (String line : array) {\n\t\t\tbw.write(line);\n\t\t\tbw.newLine();\n\t\t\tbw.flush();\n\t\t}\n\n\t\t// ͷԴ\n\t\tbw.close();\n\t}\n}\n"
  },
  {
    "path": "day21/code/day21_IOTest/src/cn/itcast_02/FileToArrayListDemo.java",
    "content": "package cn.itcast_02;\n\nimport java.io.BufferedReader;\nimport java.io.FileReader;\nimport java.io.IOException;\nimport java.util.ArrayList;\n\n/*\n * ıļжȡ(ÿһΪһַ)У\n * \n * Դ\n * \t\tarray.txt\n * Ŀĵأ\n * \t\tArrayList\n */\npublic class FileToArrayListDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// װԴ\n\t\tBufferedReader br = new BufferedReader(new FileReader(\"array.txt\"));\n\n\t\t// װĿĵ\n\t\tArrayList<String> array = new ArrayList<String>();\n\n\t\tString line = null;\n\t\twhile ((line = br.readLine()) != null) {\n\t\t\tarray.add(line);\n\t\t}\n\n\t\tbr.close();\n\n\t\t// \n\t\tfor (String s : array) {\n\t\t\tSystem.out.println(s);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day21/code/day21_IOTest/src/cn/itcast_02/GetNameDemo.java",
    "content": "package cn.itcast_02;\n\nimport java.io.BufferedReader;\nimport java.io.BufferedWriter;\nimport java.io.FileReader;\nimport java.io.FileWriter;\nimport java.io.IOException;\nimport java.util.ArrayList;\nimport java.util.Random;\n\n/*\n * names.txtд洢ǰͬѧơ\n * дһܣÿгһƳ\n * \n * \n * \t\tA:ıļ,Ҫȡ\n * \t\tB:Ѷȡݴ洢\n * \t\tC:һ\n * \t\tD:ӼиȡһֵͿ\n */\npublic class GetNameDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\tBufferedReader br = new BufferedReader(new FileReader(\"names.txt\"));\n\t\tArrayList<String> array = new ArrayList<String>();\n\n\t\tString line = null;\n\t\twhile ((line = br.readLine()) != null) {\n\t\t\tarray.add(line);\n\t\t}\n\n\t\tbr.close();\n\n\t\t// һ\n\t\t// int index = (int) (Math.random() * array.size()); //\n\t\t// [0,array.size()-1)\n\n\t\tRandom r = new Random();\n\t\tint index = r.nextInt(array.size());\n\t\tSystem.out.println(\"ǣ\" + array.get(index));\n\n\t\t// Ϊչ\n\t\tarray.remove(index);\n\t\tBufferedWriter bw = new BufferedWriter(new FileWriter(\"names.txt\"));\n\t\tfor (String name : array) {\n\t\t\tbw.write(name);\n\t\t\tbw.newLine();\n\t\t\tbw.flush();\n\t\t}\n\t\tbw.close();\n\t}\n}\n"
  },
  {
    "path": "day21/code/day21_IOTest/src/cn/itcast_03/ChangeNameDemo.java",
    "content": "package cn.itcast_03;\n\nimport java.io.BufferedInputStream;\nimport java.io.BufferedOutputStream;\nimport java.io.File;\nimport java.io.FileInputStream;\nimport java.io.FileOutputStream;\nimport java.io.IOException;\n\n/*\n * Ƶļָļ޸ļ\n * 󣺰d:\\\\javaļµjavaļƵd:\\\\jadĿ¼£޸ĺ׺Ϊjad\n * \n * \n * \t\tA:װԴĿ¼\n * \t\tB:װĿĵĿ¼\n * \t\tC:ȡԴĿ¼µļFile\n * \t\tD:File,õÿһFile\n * \t\tE:Ƽ\n * \t\t\tԴd:\\\\java\\\\ForDemo.java\n * \t\t\tĿĵأd:\\\\jad\\\\ForDemo.jad\n */\npublic class ChangeNameDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// װԴĿ¼\n\t\tFile srcFolder = new File(\"d:\\\\java\");\n\n\t\t// װĿĵĿ¼\n\t\tFile destFolder = new File(\"d:\\\\jad\");\n\t\tif (!destFolder.exists()) {\n\t\t\tdestFolder.mkdir();\n\t\t}\n\n\t\t// ȡԴĿ¼µļFile\n\t\tFile[] fileArray = srcFolder.listFiles();\n\n\t\t// File,õÿһFile\n\t\tfor (File file : fileArray) {\n\t\t\t// System.out.println(file); // d:\\java\\ForDemo.java\n\t\t\tString name = file.getName(); // ForDemo.java\n\t\t\tname = name.replace(\".java\", \".jad\"); // ForDemo.jad\n\t\t\tFile newFile = new File(destFolder, name); // d:\\\\jad\\\\ForDemo.jad\n\n\t\t\tcopy(file, newFile);\n\t\t}\n\t}\n\n\tprivate static void copy(File file, File newFile) throws IOException {\n\t\tBufferedInputStream bis = new BufferedInputStream(new FileInputStream(\n\t\t\t\tfile));\n\t\tBufferedOutputStream bos = new BufferedOutputStream(\n\t\t\t\tnew FileOutputStream(newFile));\n\n\t\tbyte[] bys = new byte[1024];\n\t\tint len = 0;\n\t\twhile ((len = bis.read(bys)) != -1) {\n\t\t\tbos.write(bys, 0, len);\n\t\t}\n\n\t\tbos.close();\n\t\tbis.close();\n\t}\n}\n"
  },
  {
    "path": "day21/code/day21_IOTest/src/cn/itcast_03/CopyFolderDemo.java",
    "content": "package cn.itcast_03;\n\nimport java.io.BufferedInputStream;\nimport java.io.BufferedOutputStream;\nimport java.io.File;\nimport java.io.FileInputStream;\nimport java.io.FileOutputStream;\nimport java.io.IOException;\n\n/*\n * Ƶļ\n * \n * Դ\n * \t\td:\\\\demo\n * Ŀĵأ\n * \t\tdemo\n * \n * \n * \t\tA:Ŀĵشļ\n * \t\tB:ȡԴļµļFile\n * \t\tC:File飬õÿһFile\n * \t\tD:ƸFile\n * \t\t\tԴd:\\\\demo\\\\a.txt\n * \t\t\tĿĵأdemo\\\\a.txt\n */\npublic class CopyFolderDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// װԴļ\n\t\tFile srcFolder = new File(\"d:\\\\demo\");\n\n\t\t// Ŀĵشļ\n\t\t// װԴһļУжǷڣڣʹ\n\t\tFile destFolder = new File(srcFolder.getName());\n\t\tif (!destFolder.exists()) {\n\t\t\tdestFolder.mkdir();\n\t\t}\n\n\t\t// ȡԴļµļFile\n\t\tFile[] fileArray = srcFolder.listFiles();\n\n\t\t// File飬õÿһFile\n\t\tfor (File file : fileArray) {\n\t\t\tString name = file.getName(); // a.txt\n\t\t\tFile newFile = new File(destFolder, name); // demo\\\\a.txt\n\n\t\t\tcopy(file, newFile);\n\t\t}\n\t}\n\n\tprivate static void copy(File file, File newFile) throws IOException {\n\t\tBufferedInputStream bis = new BufferedInputStream(new FileInputStream(\n\t\t\t\tfile));\n\t\tBufferedOutputStream bos = new BufferedOutputStream(\n\t\t\t\tnew FileOutputStream(newFile));\n\n\t\tbyte[] bys = new byte[1024];\n\t\tint len = 0;\n\t\twhile ((len = bis.read(bys)) != -1) {\n\t\t\tbos.write(bys, 0, len);\n\t\t}\n\n\t\tbos.close();\n\t\tbis.close();\n\t}\n\n}\n"
  },
  {
    "path": "day21/code/day21_IOTest/src/cn/itcast_04/Student.java",
    "content": "package cn.itcast_04;\n\npublic class Student {\n\tprivate String name;\n\tprivate int chinese;\n\tprivate int math;\n\tprivate int english;\n\n\tpublic Student(String name, int chinese, int math, int english) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.chinese = chinese;\n\t\tthis.math = math;\n\t\tthis.english = english;\n\t}\n\n\tpublic Student() {\n\t\tsuper();\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic int getChinese() {\n\t\treturn chinese;\n\t}\n\n\tpublic void setChinese(int chinese) {\n\t\tthis.chinese = chinese;\n\t}\n\n\tpublic int getMath() {\n\t\treturn math;\n\t}\n\n\tpublic void setMath(int math) {\n\t\tthis.math = math;\n\t}\n\n\tpublic int getEnglish() {\n\t\treturn english;\n\t}\n\n\tpublic void setEnglish(int english) {\n\t\tthis.english = english;\n\t}\n\n\tpublic int getSum() {\n\t\treturn chinese + math + english;\n\t}\n\n}\n"
  },
  {
    "path": "day21/code/day21_IOTest/src/cn/itcast_04/StudentDemo.java",
    "content": "package cn.itcast_04;\n\nimport java.io.BufferedWriter;\nimport java.io.FileWriter;\nimport java.io.IOException;\nimport java.util.Comparator;\nimport java.util.Scanner;\nimport java.util.TreeSet;\n\n/*\n * ¼5ѧϢ(,ĳɼ,ѧɼ,Ӣɼ),ִܷӸߵʹıļ\n * \n * \n * \t\tA:ѧ\n * \t\tB:ʹTreeSetϴ洢ѧϢܷñȽʵ\n * \t\tC:¼ѧϢ\n * \t\tD:SetϣѧϢ洢ıļ\n */\npublic class StudentDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// Set\n\t\tTreeSet<Student> ts = new TreeSet<Student>(new Comparator<Student>() {\n\n\t\t\t@Override\n\t\t\tpublic int compare(Student s1, Student s2) {\n\t\t\t\tint num = s2.getSum() - s1.getSum();\n\t\t\t\tint num2 = num == 0 ? s1.getName().compareTo(s2.getName())\n\t\t\t\t\t\t: num;\n\t\t\t\treturn num2;\n\t\t\t}\n\t\t});\n\n\t\tSystem.out.println(\"ѧ¼뿪ʼ----------------------\");\n\t\t// ¼\n\t\tfor (int x = 1; x <= 5; x++) {\n\t\t\tScanner sc = new Scanner(System.in);\n\t\t\tSystem.out.println(\"\" + x + \"ѧ\");\n\t\t\tString name = sc.nextLine();\n\t\t\tSystem.out.println(\"\" + x + \"ѧĳɼ\");\n\t\t\tint chinese = sc.nextInt();\n\t\t\tSystem.out.println(\"\" + x + \"ѧѧɼ\");\n\t\t\tint math = sc.nextInt();\n\t\t\tSystem.out.println(\"\" + x + \"ѧӢɼ\");\n\t\t\tint english = sc.nextInt();\n\n\t\t\t// ѧ\n\t\t\tStudent s = new Student();\n\t\t\ts.setName(name);\n\t\t\ts.setChinese(chinese);\n\t\t\ts.setMath(math);\n\t\t\ts.setEnglish(english);\n\n\t\t\t// ѧӵ\n\t\t\tts.add(s);\n\t\t}\n\t\tSystem.out.println(\"ѧ¼----------------------\");\n\n\t\t// ѧϢ洢ıļ\n\t\tBufferedWriter bw = new BufferedWriter(new FileWriter(\"students.txt\"));\n\t\tbw.write(\",ĳɼ,ѧɼ,Ӣɼ\");\n\t\tbw.newLine();\n\t\tbw.flush();\n\n\t\tfor (Student s : ts) {\n\t\t\tStringBuilder sb = new StringBuilder();\n\t\t\tsb.append(s.getName()).append(\",\").append(s.getChinese())\n\t\t\t\t\t.append(\",\").append(s.getMath()).append(\",\")\n\t\t\t\t\t.append(s.getEnglish());\n\t\t\tbw.write(sb.toString());\n\t\t\tbw.newLine();\n\t\t\tbw.flush();\n\t\t}\n\n\t\tbw.close();\n\t\tSystem.out.println(\"ݳɹдļ\");\n\t}\n}\n"
  },
  {
    "path": "day21/code/day21_IOTest/src/cn/itcast_05/StringDemo.java",
    "content": "package cn.itcast_05;\n\nimport java.io.BufferedReader;\nimport java.io.BufferedWriter;\nimport java.io.FileReader;\nimport java.io.FileWriter;\nimport java.io.IOException;\nimport java.util.Arrays;\n\n/*\n *֪s.txtļһַhcexfgijkamdnoqrzstuvwybpl\n *дȡݣдss.txtС\n *\n *\n *\tA:ȡļݣһΣַܡ\n *\tB:ַתַ\n *\tC:ַ\n *\tD:ַתַ\n *\tE:ַдıļ\n */\npublic class StringDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// ȡļݣһΣַܡ\n\t\tBufferedReader br = new BufferedReader(new FileReader(\"s.txt\"));\n\t\tString line = br.readLine();\n\t\tbr.close();\n\n\t\t// ַתַ\n\t\tchar[] chs = line.toCharArray();\n\n\t\t// ַ\n\t\tArrays.sort(chs);\n\n\t\t// ַתַ\n\t\tString s = String.valueOf(chs);\n\n\t\t// ַдıļ\n\t\tBufferedWriter bw = new BufferedWriter(new FileWriter(\"ss.txt\"));\n\t\tbw.write(s);\n\t\tbw.newLine();\n\t\tbw.flush();\n\t\tbw.close();\n\n\t}\n}\n"
  },
  {
    "path": "day21/code/day21_IOTest/ss.txt",
    "content": "abcdefghijklmnopqrstuvwxyz\n"
  },
  {
    "path": "day21/code/day21_IOTest/students.txt",
    "content": ",ĳɼ,ѧɼ,Ӣɼ\nϼ,100,99,98\n,99,80,88\n,80,100,70\nɳʪ,70,90,90\n,60,70,50\n"
  },
  {
    "path": "day21/code/day21_login_regist/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day21/code/day21_login_regist/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day21_login_regist</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day21/code/day21_login_regist/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day21/code/day21_login_regist/src/cn/itcast/dao/UserDao.java",
    "content": "package cn.itcast.dao;\n\nimport cn.itcast.pojo.User;\n\n/**\n * ûĽӿ\n * \n * @author fqy\n * @version V1.0\n */\npublic interface UserDao {\n\t/**\n\t * û¼\n\t * \n\t * @param username\n\t *            û\n\t * @param password\n\t *            \n\t * @return ¼Ƿɹ\n\t */\n\tpublic abstract boolean isLogin(String username, String password);\n\n\t// ˵עҲӦ÷booleanͣǵListϵļϣԪԶtrueأҾͷvoid\n\t// 뷨ҲӦû룬?Ҵһûû롣\n\t// һĲ3ʱ򣬽鴫ݶ\n\t/**\n\t * ûעṦ\n\t * \n\t * @param user\n\t *            û\n\t */\n\tpublic abstract void regist(User user);\n}\n"
  },
  {
    "path": "day21/code/day21_login_regist/src/cn/itcast/dao/impl/UserDaoImpl.java",
    "content": "package cn.itcast.dao.impl;\n\nimport java.io.BufferedReader;\nimport java.io.BufferedWriter;\nimport java.io.File;\nimport java.io.FileReader;\nimport java.io.FileWriter;\nimport java.io.IOException;\n\nimport cn.itcast.dao.UserDao;\nimport cn.itcast.pojo.User;\n\npublic class UserDaoImpl implements UserDao {\n\n\tprivate static File userFile = new File(\"user.txt\");\n\n\tstatic {\n\t\ttry {\n\t\t\tuserFile.createNewFile();\n\t\t} catch (IOException e) {\n\t\t\te.printStackTrace();\n\t\t}\n\t}\n\n\t@Override\n\tpublic boolean isLogin(String username, String password) {\n\t\tboolean flag = false;\n\t\tBufferedReader br = null;\n\t\ttry {\n\t\t\tbr = new BufferedReader(new FileReader(userFile));\n\t\t\tString line = null;\n\t\t\twhile ((line = br.readLine()) != null) {\n\t\t\t\tString[] datas = line.split(\"=\");\n\t\t\t\tif (datas[0].equals(username) && datas[1].equals(password)) {\n\t\t\t\t\tflag = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (IOException e) {\n\t\t\te.printStackTrace();\n\t\t} finally {\n\t\t\tif (br != null) {\n\t\t\t\ttry {\n\t\t\t\t\tbr.close();\n\t\t\t\t} catch (IOException e) {\n\t\t\t\t\te.printStackTrace();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn flag;\n\t}\n\n\t@Override\n\tpublic void regist(User user) {\n\t\t// ܹһʽ\n\t\t// username=password\n\t\tBufferedWriter bw = null;\n\t\ttry {\n\t\t\tbw = new BufferedWriter(new FileWriter(userFile, true));\n\t\t\tbw.write(user.getUsername() + \"=\" + user.getPassword());\n\t\t\tbw.newLine();\n\t\t\tbw.flush();\n\t\t} catch (IOException e) {\n\t\t\te.printStackTrace();\n\t\t} finally {\n\t\t\tif (bw != null) {\n\t\t\t\ttry {\n\t\t\t\t\tbw.close();\n\t\t\t\t} catch (IOException e) {\n\t\t\t\t\te.printStackTrace();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n}\n"
  },
  {
    "path": "day21/code/day21_login_regist/src/cn/itcast/game/GuessNumber.java",
    "content": "package cn.itcast.game;\n\nimport java.util.Scanner;\n\n/**\n * СϷ\n * \n * @author fqy\n * @version V1.0\n */\npublic class GuessNumber {\n\tprivate GuessNumber() {\n\t}\n\n\tpublic static void start() {\n\t\t// \n\t\tint number = (int) (Math.random() * 100) + 1;\n\n\t\twhile (true) {\n\t\t\t// ¼\n\t\t\tScanner sc = new Scanner(System.in);\n\t\t\tSystem.out.println(\"Ҫµݣ\");\n\t\t\tint guessNumber = sc.nextInt();\n\n\t\t\t// ж\n\t\t\tif (guessNumber > number) {\n\t\t\t\tSystem.out.println(\"µ\" + guessNumber + \"\");\n\t\t\t} else if (guessNumber < number) {\n\t\t\t\tSystem.out.println(\"µ\" + guessNumber + \"С\");\n\t\t\t} else {\n\t\t\t\tSystem.out.println(\"ϲ㣬\");\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}"
  },
  {
    "path": "day21/code/day21_login_regist/src/cn/itcast/pojo/User.java",
    "content": "package cn.itcast.pojo;\n\n/**\n * û\n * \n * @author fqy\n * @version V1.0\n */\npublic class User {\n\t// û\n\tprivate String username;\n\t// \n\tprivate String password;\n\n\tpublic User() {\n\t\tsuper();\n\t}\n\n\tpublic User(String username, String password) {\n\t\tsuper();\n\t\tthis.username = username;\n\t\tthis.password = password;\n\t}\n\n\tpublic String getUsername() {\n\t\treturn username;\n\t}\n\n\tpublic void setUsername(String username) {\n\t\tthis.username = username;\n\t}\n\n\tpublic String getPassword() {\n\t\treturn password;\n\t}\n\n\tpublic void setPassword(String password) {\n\t\tthis.password = password;\n\t}\n}\n"
  },
  {
    "path": "day21/code/day21_login_regist/src/cn/itcast/test/UserTest.java",
    "content": "package cn.itcast.test;\n\nimport java.util.Scanner;\n\nimport cn.itcast.dao.UserDao;\nimport cn.itcast.dao.impl.UserDaoImpl;\nimport cn.itcast.game.GuessNumber;\nimport cn.itcast.pojo.User;\n\n/*\n * ǲ\n */\npublic class UserTest {\n\tpublic static void main(String[] args) {\n\t\twc: while (true) {\n\t\t\t// ӭ\n\t\t\tSystem.out.println(\"-----------ӭ------------\");\n\t\t\tSystem.out.println(\"1 ¼\");\n\t\t\tSystem.out.println(\"2 ע\");\n\t\t\tSystem.out.println(\"3 ˳\");\n\t\t\tSystem.out.println(\"ѡ\");\n\t\t\t// ¼\n\t\t\tScanner sc = new Scanner(System.in);\n\t\t\tString choiceString = sc.nextLine();\n\n\t\t\t// ദʹ\n\t\t\tUserDao ud = new UserDaoImpl();\n\n\t\t\tswitch (choiceString) {\n\t\t\tcase \"1\":\n\t\t\t\tSystem.out.println(\"-----------¼------------\");\n\t\t\t\t// ¼û\n\t\t\t\tSystem.out.println(\"û\");\n\t\t\t\tString username = sc.nextLine();\n\t\t\t\tSystem.out.println(\"룺\");\n\t\t\t\tString password = sc.nextLine();\n\t\t\t\t// ù\n\t\t\t\t// UserDao ud = new UserDaoImpl();\n\t\t\t\tboolean flag = ud.isLogin(username, password);\n\t\t\t\tif (flag) {\n\t\t\t\t\tSystem.out.println(\"¼ɹ\");\n\n\t\t\t\t\tString yn;\n\t\t\t\t\tdo {\n\t\t\t\t\t\t// Ϸ\n\t\t\t\t\t\tGuessNumber.start();\n\t\t\t\t\t\tSystem.out.println(\"㻹Ҫ?y:\");\n\t\t\t\t\t\tyn = sc.nextLine();\n\t\t\t\t\t} while (\"y\".equals(yn));\n\n\t\t\t\t\t// break wc;\n\t\t\t\t} else {\n\t\t\t\t\tSystem.out.println(\"¼ʧ,صѡ\");\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"2\":\n\t\t\t\tSystem.out.println(\"-----------ע------------\");\n\t\t\t\t// ¼û\n\t\t\t\tSystem.out.println(\"û\");\n\t\t\t\tString newUsername = sc.nextLine();\n\t\t\t\tSystem.out.println(\"룺\");\n\t\t\t\tString newPassword = sc.nextLine();\n\t\t\t\t// ù\n\t\t\t\t// UserDao ud = new UserDaoImpl();\n\t\t\t\t// ݷװ\n\t\t\t\t// User user = new User(newUsername, newPassword);\n\t\t\t\tUser user = new User();\n\t\t\t\tuser.setUsername(newUsername);\n\t\t\t\tuser.setPassword(newPassword);\n\n\t\t\t\tud.regist(user);\n\t\t\t\tSystem.out.println(\"עɹ,صѡ\");\n\t\t\t\tbreak;\n\t\t\tcase \"3\":\n\t\t\tdefault:\n\t\t\t\tSystem.out.println(\"лл٣ӭ\");\n\t\t\t\tSystem.exit(0);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day21/code/day21_login_regist/user.txt",
    "content": "liuyi=liuyi\nadmin=admin\n"
  },
  {
    "path": "day21/code/demo/HelloWorld.java",
    "content": "class HelloWorld {\n\tpublic static void main(String[] args) {\n\t\tSystem.out.println(\"Ұϼ\");\n\t}\n}"
  },
  {
    "path": "day21/code/demo/a.txt",
    "content": "hello\nworld\njava\n"
  },
  {
    "path": "day21/code/java/ForDemo.java",
    "content": "/*\n\tѭ䣺\n\t\tʼ:һЩʼ\n\t\tж:֪Ҫٴ\n\t\tѭ:Ҫ\n\t\t仯:ͨںʵʱ\n*/\nclass ForDemo {\n\tpublic static void main(String[] args) {\n\t\t//ڿ̨һ\"HelloWorld\"\n\t\tSystem.out.println(\"HelloWorld\");\n\n\t\t//ڿ̨ʮ\"HelloWorld\"\n\t\tSystem.out.println(\"HelloWorld\");\n\t\tSystem.out.println(\"HelloWorld\");\n\t\tSystem.out.println(\"HelloWorld\");\n\t\tSystem.out.println(\"HelloWorld\");\n\t\tSystem.out.println(\"HelloWorld\");\n\t\tSystem.out.println(\"HelloWorld\");\n\t\tSystem.out.println(\"HelloWorld\");\n\t\tSystem.out.println(\"HelloWorld\");\n\t\tSystem.out.println(\"HelloWorld\");\n\t\tSystem.out.println(\"HelloWorld\");\n\n\t\t//ڿ̨һ\"HelloWorld\"\n\t}\n}"
  },
  {
    "path": "day21/code/java/ForDemo2.java",
    "content": "/*\n\tforѭĸʽ\n\t\tfor(ʼ;ж;) {\n\t\t\tѭ;\n\t\t}\n\n\t\ṭִ\n\t\tA:ִгʼ\n\t\tB:ִж䣬䷵ֵ\n\t\t\ttrueͼ\n\t\t\tfalseѭ\n\t\tC:ִѭ\n\t\tD:ִп\n\t\tE:صB\n*/\nclass ForDemo2 {\n\tpublic static void main(String[] args) {\n\t\t//ڿ̨10HelloWorld\n\t\tfor(int x=0; x<10; x++) {\n\t\t\tSystem.out.println(\"HelloWorld\");\n\t\t}\t\n\t\tSystem.out.println(\"--------------\");\n\t\t\n\t\t//ʼ0ʼ\n\t\tfor(int x=1; x<=10; x++) {\n\t\t\tSystem.out.println(\"HelloWorld\");\n\t\t}\t\n\n\t\tfor(int x=1; x<11; x++) {\n\t\t\tSystem.out.println(\"HelloWorld\");\n\t\t}\n\n\t\tfor(int x=10; x>0; x--) {\n\t\t\tSystem.out.println(\"HelloWorld\");\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day21/code/java/ForDemo3.java",
    "content": "/*\n\t5Ľ׳\n\n\t׳ˣ\n\t\tn! = n*(n-1)*(n-2)*...*3*2*1\n\n\t\tn! = n*(n-1)!\n*/\nclass ForDemo3 {\n\tpublic static void main(String[] args) {\n\t\t//۳˱\n\t\tint jc = 1;\n\n\t\tfor(int x=1; x<=5; x++) {\n\t\t\tjc *= x;\n\t\t}\n\n\t\tSystem.out.println(\"5Ľ׳ǣ\"+jc);\n\t}\n}"
  },
  {
    "path": "day21/code/java/ForDemo4.java",
    "content": "/*\n\tͳơˮɻжٸ\n\n\t\n\t\tA:ҪͳжٸݣҪһͳƱ\n\t\t\tint count = 0;\n\t\tB:һλʵǵǷΧͨforѭͿԸ㶨\n\t\tC:λֵ͵ڸǹ\n\t\t\tȡÿһλϵ?\n\n\t\t\tһx 153\n\t\t\tλx%10\n\t\t\tʮλx/10%10\n\t\t\tλx/10/10%10\n\t\t\tǧλx/10/10/10%10\n\t\t\t...\n\n\t\t\tx == (λ*λ*λ + ʮλ*ʮλ*ʮλ + λ*λ*λ)\n*/\nclass ForDemo4 {\n\tpublic static void main(String[] args) {\n\t\t//ͳƱ\n\t\tint count = 0;\n\n\t\tfor(int x=100; x<1000; x++) {\n\t\t\tint ge = x%10;\n\t\t\tint shi = x/10%10;\n\t\t\tint bai = x/10/10%10;\n\n\t\t\tif(x == (ge*ge*ge + shi*shi*shi + bai*bai*bai)) {\n\t\t\t\tcount++;\n\t\t\t}\n\t\t}\n\n\t\tSystem.out.println(\"ˮɻУ\"+count+\"\");\n\t}\n}\n"
  },
  {
    "path": "day21/code/java/ForTest.java",
    "content": "class ForTest {\n\tpublic static void main(String[] args) {\n\t\t//ڿ̨1-10\n\t\tSystem.out.println(1);\n\t\tSystem.out.println(2);\n\t\tSystem.out.println(3);\n\t\tSystem.out.println(4);\n\t\tSystem.out.println(5);\n\t\tSystem.out.println(6);\n\t\tSystem.out.println(7);\n\t\tSystem.out.println(8);\n\t\tSystem.out.println(9);\n\t\tSystem.out.println(10);\n\t\tSystem.out.println(\"------------\");\n\n\t\tfor(int x=0; x<10; x++) {\n\t\t\tSystem.out.println(x+1);\t\n\t\t}\n\t\tSystem.out.println(\"------------\");\n\n\t\tfor(int x=1; x<=10; x++) {\n\t\t\tSystem.out.println(x);\t\n\t\t}\n\t\tSystem.out.println(\"------------\");\n\n\t\tfor(int x=10; x>0; x--) {\n\t\t\tSystem.out.println(x);\t\n\t\t}\n\t\tSystem.out.println(\"------------\");\n\t}\n}\n"
  },
  {
    "path": "day21/code/java/ForTest2.java",
    "content": "/*\n\t1-10֮֮\n\t\t0+1=1\n\t\t\t1+2=3\n\t\t\t\t3+3=6\n\t\t\t\t\t6+4=10\n\t\t\t\t\t\t10+5=15\n\t\t\t\t\t\t\t...\n\n\t\tΪÿһεۼӽǱ仯ģҪһרڼ¼ÿۼӵĽ\n\t\tҪ1234...ҲǱ仯ģҲҪһѭܵõÿֵ\n*/\nclass ForTest2 {\n\tpublic static void main(String[] args) {\n\t\t//\n\t\t//System.out.println(1+2+3+4+5+6+7+8+9+10);\n\t\n\t\t//ѭ\n\t\tint sum = 0;\n\n\t\tfor(int x=1; x<=10; x++) {\n\t\t\t//x=1,2,3,4,...10\n\n\t\t\t//sum = sum + x; //sum=0 + 1 = 1;\n\t\t\t//sum = sum + x; //sum=1 + 2 = 3;\n\n\t\t\t//sum = sum + x;\n\t\t\n\t\t\tsum += x;\n\t\t}\n\n\t\tSystem.out.println(\"1-10ĺǣ\"+sum);\n\t}\n}"
  },
  {
    "path": "day21/code/java/ForTest3.java",
    "content": "class ForTest3 {\n\tpublic static void main(String[] args) {\n\t\t//1-100֮ż\n\n\t\t/*\n\t\t//ͱ\n\t\tint sum = 0;\n\n\t\t//ͨforѭȡÿһ\n\t\tfor(int x=1; x<=100; x++) {\n\t\t\t//ۼ\n\t\t\tsum += x;\n\t\t}\n\n\t\t//\n\t\tSystem.out.println(\"1-100֮ͣ\"+sum);\n\t\tSystem.out.println(\"---------------\");\n\t\t*/\n\n\t\t//ż:ܱ2\n\t\t//жǷܹ? x%2 == 0\n\n\t\t/*\n\t\tint sum = 0;\n\n\t\tfor(int x=1; x<=100; x++) {\n\t\t\tif(x%2 == 0) {\n\t\t\t\tsum += x;\n\t\t\t}\n\t\t}\n\n\t\tSystem.out.println(\"1-100żͣ\"+sum);\n\t\t*/\n\n\t\tint sum = 0;\n\n\t\tfor(int x=0; x<=100; x+=2) {\n\t\t\tsum += x;\n\t\t}\n\n\t\tSystem.out.println(\"1-100żͣ\"+sum);\n\t}\n}\n"
  },
  {
    "path": "day21/code/java/ForTest4.java",
    "content": "/*\n\tνˮɻָһλλֵ͵ڸ\n\t153һˮɻ\n\t153 = 1*1*1 + 5*5*5 + 3*3*3\n\n\t\n\t\tA:һλʵǵǷΧͨforѭͿԸ㶨\n\t\tB:λֵ͵ڸǹ\n\t\t\tȡÿһλϵ?\n\n\t\t\tһx 153\n\t\t\tλx%10\n\t\t\tʮλx/10%10\n\t\t\tλx/10/10%10\n\t\t\tǧλx/10/10/10%10\n\t\t\t...\n\n\t\t\tx == (λ*λ*λ + ʮλ*ʮλ*ʮλ + λ*λ*λ)\n*/\nclass ForTest4 {\n\tpublic static void main(String[] args) {\n\t\tfor(int x=100; x<1000; x++) {\n\t\t\tint ge = x%10;\n\t\t\tint shi = x/10%10;\n\t\t\tint bai = x/10/10%10;\n\n\t\t\tif(x == (ge*ge*ge + shi*shi*shi + bai*bai*bai)){\n\t\t\t\tSystem.out.println(x);\n\t\t\t}\n\t\t}\n\t}\n}"
  },
  {
    "path": "day21/code/java/ForTest5.java",
    "content": "/*\n\tڿ̨λ\n\t\t\tλλ\n\t\t\tʮλǧλ\n\t\t\tλ+ʮλ+ǧλ+λ=λ\n\n\t\n\t\tA:λǷΧ\n\t\tB:ȡÿһλϵݡ\n\t\tC:\n\t\t\tλλ\n\t\t\tʮλǧλ\n\t\t\tλ+ʮλ+ǧλ+λ=λ\n*/\nclass ForTest5 {\n\tpublic static void main(String[] args) {\n\t\tfor(int x=10000; x<100000; x++) {\n\t\t\tint ge = x%10;\n\t\t\tint shi = x/10%10;\n\t\t\tint bai = x/10/10%10;\n\t\t\tint qian = x/10/10/10%10;\n\t\t\tint wan = x/10/10/10/10%10;\n\n\t\t\tif((ge == wan) && (shi == qian) && (ge+shi+qian+wan == bai)) {\n\t\t\t\tSystem.out.println(x);\n\t\t\t}\n\t\t}\n\t}\n}"
  },
  {
    "path": "day21/code/java/ForTest6.java",
    "content": "/*\n\tͳ1-1000֮ͬʱжٸ\n\t\t\t32\n\t\t\t53\n\t\t\t72\n\n\t\n\t\tA:һͳƱ\n\t\tB:1-1000֮˷ΧforѭԽ\n\t\tC:\n\t\t\t32\n\t\t\t53\n\t\t\t72\n\n\t\t\tx%3 == 2\n\t\t\tx%5 == 3\n\t\t\tx%7 == 2\n*/\nclass ForTest6 {\n\tpublic static void main(String[] args) {\n\t\t//һͳƱ\n\t\tint count = 0;\n\n\t\t//1-1000֮˷ΧforѭԽ\n\t\tfor(int x=1; x<=1000; x++) {\n\t\t\t//ж\n\t\t\tif(x%3==2 && x%5==3 && x%7==2) {\n\t\t\t\t//System.out.println(x);\n\t\t\t\tcount++;\n\t\t\t}\n\t\t}\n\n\t\tSystem.out.println(\"\"+count+\"\");\n\t}\n}\n"
  },
  {
    "path": "day21/day21总结.txt",
    "content": "1:ֽڻ()\n\t(1)ΪЧʣjavaṩֽڻ\n\t(2)ֽڻ\n\t\tBufferedInputStream\n\t\tBufferedOutputStream\n\t(3)Ƶļ\n\t\tA:ֽһζдһֽ\n\t\tB:ֽһζдһֽ\n\t\tC:Чֽһζдһֽ\n\t\tD:Чֽһζдһֽ\n\t(4)һЩ\n\t\tA:ڵ \n\t\tB: ߼\n\t\t\n2:ת()\n\t(1)Ϊֽıļرķ㣬ԣjavaṩת\n\t   ǲıļݸһЩ\n\t(2)תһַ\n\t\tַ = ֽ + \n\t(3)\n\t\tַͶӦɵһű\n\n\t\t\n\t\t\tASCII\n\t\t\tISO-8859-1\n\t\t\tGB2312,GBK,GB18030\n\t\t\tBIG5\n\t\t\tUTF-8\n\t(4)\n\t\tA:Stringı\n\t\tB:IOеı\n\n\t\t\n\t\t\tͳһ룬Ͳκ⡣\n\n3:ַ()\n\t(1)ַϵ\n\t\tReader\n\t\t\t|--InputStreamReader\n\t\t\t\t|--FileReader\n\t\t\t|--BufferedReader\n\t\tWriter\n\t\t\t|--OutputStreamWriter\n\t\t\t\t|--FileWriter\n\t\t\t|--BufferedWriter\n\t(2)ַ\n\t\tA:ַһζдһַ\n\t\tB:ַһζдһַ\n\t\tC:Чַһζдһַ\n\t\tD:Чַһζдһַ\n\t\tE:Чַһζдһַ\n\n4:IOС()\n\tIO\n\t\t|--ֽ\n\t\t\t|-- InputStream\n\t\t\t\t|--FileInputStream\n\t\t\t\t|--BufferedInputStream\n\t\t\t|-- OutputStream\n\t\t\t\t|--FileOutputStream\n\t\t\t\t|--BufferedOutputStream\n\t\t|--ַ\n\t\t\t|-- Reader\n\t\t\t\t|--FileReader\n\t\t\t\t|--BufferedReader\n\t\t\t|-- Writer\n\t\t\t\t|--FileWriter\n\t\t\t\t|--BufferedWriter\n\n\tıļ\n\t\t9ַ\n\t\tֽ4\n\t\tַ5\n\t\tʹַһ֡\n\n\tƶݣ\n\t\t4ַ\n\n\t㲻ֽ֪"
  },
  {
    "path": "day22/code/day22_IO/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day22/code/day22_IO/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day22_IO</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day22/code/day22_IO/.settings/org.eclipse.core.resources.prefs",
    "content": "eclipse.preferences.version=1\nencoding//src/cn/itcast_12/JDK7Demo.java=UTF-8\n"
  },
  {
    "path": "day22/code/day22_IO/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day22/code/day22_IO/a.txt",
    "content": "package cn.itcast_01;\n\nimport java.io.IOException;\nimport java.io.Reader;\n\npublic class MyBufferedReader {\n\tprivate Reader r;\n\n\tpublic MyBufferedReader(Reader r) { // Reader r = new FileReader(\"my.txt\");\n\t\tthis.r = r;\n\t}\n\n\tpublic String readLine() throws IOException {\n\t\t/*\n\t\t * ֪rrȡַʽһζȡһַһζȡһַ\n\t\t * ׼ĸ?ķʽȲȷԣȷһζȡһַ\n\t\t * ÿζȡһַȡڶַʱǰһͻᶪʧԣҪ취Ѷȡַ\n\t\t * ʲô?ͨ򵥵ķȷStringBuilder\n\t\t */\n\t\tStringBuilder sb = new StringBuilder();\n\n\t\t// while (true) {\n\t\t// // һζȡһַ\n\t\t// int ch = r.read();\n\t\t// if (ch == '\\r') {\n\t\t// continue;\n\t\t// }\n\t\t// if (ch == '\\n') {\n\t\t// // return sb.toString();\n\t\t// break;\n\t\t// } else {\n\t\t// sb.append((char) ch);\n\t\t// }\n\t\t// }\n\t\t// return sb.toString();\n\n\t\t// νѭ?\n\n\t\tint ch = 0;\n\t\twhile ((ch = r.read()) != -1) {\n\t\t\tif (ch == '\\r') {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (ch == '\\n') {\n\t\t\t\treturn sb.toString();\n\t\t\t} else {\n\t\t\t\tsb.append((char) ch);\n\t\t\t}\n\t\t}\n\n\t\t// ֹݶʧ\n\t\tif (sb.length() > 0) {\n\t\t\treturn sb.toString();\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\tpublic void close() throws IOException {\n\t\tr.close();\n\t}\n}\n"
  },
  {
    "path": "day22/code/day22_IO/array.txt",
    "content": "hello\nworld\njava\n"
  },
  {
    "path": "day22/code/day22_IO/b.txt",
    "content": "package cn.itcast_01;\n\nimport java.io.IOException;\nimport java.io.Reader;\n\npublic class MyBufferedReader {\n\tprivate Reader r;\n\n\tpublic MyBufferedReader(Reader r) { // Reader r = new FileReader(\"my.txt\");\n\t\tthis.r = r;\n\t}\n\n\tpublic String readLine() throws IOException {\n\t\t/*\n\t\t * ֪rrȡַʽһζȡһַһζȡһַ\n\t\t * ׼ĸ?ķʽȲȷԣȷһζȡһַ\n\t\t * ÿζȡһַȡڶַʱǰһͻᶪʧԣҪ취Ѷȡַ\n\t\t * ʲô?ͨ򵥵ķȷStringBuilder\n\t\t */\n\t\tStringBuilder sb = new StringBuilder();\n\n\t\t// while (true) {\n\t\t// // һζȡһַ\n\t\t// int ch = r.read();\n\t\t// if (ch == '\\r') {\n\t\t// continue;\n\t\t// }\n\t\t// if (ch == '\\n') {\n\t\t// // return sb.toString();\n\t\t// break;\n\t\t// } else {\n\t\t// sb.append((char) ch);\n\t\t// }\n\t\t// }\n\t\t// return sb.toString();\n\n\t\t// νѭ?\n\n\t\tint ch = 0;\n\t\twhile ((ch = r.read()) != -1) {\n\t\t\tif (ch == '\\r') {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (ch == '\\n') {\n\t\t\t\treturn sb.toString();\n\t\t\t} else {\n\t\t\t\tsb.append((char) ch);\n\t\t\t}\n\t\t}\n\n\t\t// ֹݶʧ\n\t\tif (sb.length() > 0) {\n\t\t\treturn sb.toString();\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\tpublic void close() throws IOException {\n\t\tr.close();\n\t}\n}\n"
  },
  {
    "path": "day22/code/day22_IO/playCount.txt",
    "content": "#Thu Apr 09 16:28:54 CST 2015\ncount=0\n"
  },
  {
    "path": "day22/code/day22_IO/src/cn/itcast_01/MyBufferedReader.java",
    "content": "package cn.itcast_01;\n\nimport java.io.IOException;\nimport java.io.Reader;\n\npublic class MyBufferedReader {\n\tprivate Reader r;\n\n\tpublic MyBufferedReader(Reader r) { // Reader r = new FileReader(\"my.txt\");\n\t\tthis.r = r;\n\t}\n\n\tpublic String readLine() throws IOException {\n\t\t/*\n\t\t * ֪rrȡַʽһζȡһַһζȡһַ\n\t\t * ׼ĸ?ķʽȲȷԣȷһζȡһַ\n\t\t * ÿζȡһַȡڶַʱǰһͻᶪʧԣҪ취Ѷȡַ\n\t\t * ʲô?ͨ򵥵ķȷStringBuilder\n\t\t */\n\t\tStringBuilder sb = new StringBuilder();\n\n\t\t// while (true) {\n\t\t// // һζȡһַ\n\t\t// int ch = r.read();\n\t\t// if (ch == '\\r') {\n\t\t// continue;\n\t\t// }\n\t\t// if (ch == '\\n') {\n\t\t// // return sb.toString();\n\t\t// break;\n\t\t// } else {\n\t\t// sb.append((char) ch);\n\t\t// }\n\t\t// }\n\t\t// return sb.toString();\n\n\t\t// νѭ?\n\n\t\tint ch = 0;\n\t\twhile ((ch = r.read()) != -1) {\n\t\t\tif (ch == '\\r') {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (ch == '\\n') {\n\t\t\t\treturn sb.toString();\n\t\t\t} else {\n\t\t\t\tsb.append((char) ch);\n\t\t\t}\n\t\t}\n\n\t\t// ֹݶʧ\n\t\tif (sb.length() > 0) {\n\t\t\treturn sb.toString();\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\tpublic void close() throws IOException {\n\t\tr.close();\n\t}\n}\n"
  },
  {
    "path": "day22/code/day22_IO/src/cn/itcast_01/MyBufferedReaderDemo.java",
    "content": "package cn.itcast_01;\n\nimport java.io.FileReader;\nimport java.io.IOException;\n\n/*\n * ReaderģBufferedReaderreadLine()\n */\npublic class MyBufferedReaderDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\tMyBufferedReader mbr = new MyBufferedReader(new FileReader(\"my.txt\"));\n\n\t\tString line = null;\n\t\twhile ((line = mbr.readLine()) != null) {\n\t\t\tSystem.out.println(line);\n\t\t}\n\n\t\tmbr.close();\n\t}\n}\n"
  },
  {
    "path": "day22/code/day22_IO/src/cn/itcast_02/LineNumberReaderDemo.java",
    "content": "package cn.itcast_02;\n\nimport java.io.FileReader;\nimport java.io.IOException;\nimport java.io.LineNumberReader;\n\n/*\n * public int getLineNumber():ȡǰк\n * public void setLineNumber(int lineNumber):õǰк\n */\npublic class LineNumberReaderDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\tLineNumberReader lnr = new LineNumberReader(new FileReader(\"my.txt\"));\n\n\t\tlnr.setLineNumber(100);\n\n\t\t// System.out.println(lnr.getLineNumber());\n\t\t// System.out.println(lnr.getLineNumber());\n\t\t// System.out.println(lnr.getLineNumber());\n\n\t\tString line = null;\n\t\twhile ((line = lnr.readLine()) != null) {\n\t\t\tSystem.out.println(lnr.getLineNumber() + \":\" + line);\n\t\t}\n\n\t\tlnr.close();\n\t}\n}\n"
  },
  {
    "path": "day22/code/day22_IO/src/cn/itcast_02/MyLineNumberReader.java",
    "content": "package cn.itcast_02;\n\nimport java.io.IOException;\nimport java.io.Reader;\n\npublic class MyLineNumberReader {\n\tprivate Reader r;\n\tprivate int lineNumber;\n\n\tpublic int getLineNumber() {\n\t\t// return ++lineNumber;\n\t\treturn lineNumber;\n\t}\n\n\tpublic void setLineNumber(int lineNumber) {\n\t\tthis.lineNumber = lineNumber;\n\t}\n\n\tpublic MyLineNumberReader(Reader r) {\n\t\tthis.r = r;\n\t}\n\n\tpublic String readLine() throws IOException {\n\t\tlineNumber++;\n\t\t\n\t\tStringBuilder sb = new StringBuilder();\n\t\tint ch = 0;\n\t\twhile ((ch = r.read()) != -1) {\n\t\t\tif (ch == '\\r') {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (ch == '\\n') {\n\t\t\t\treturn sb.toString();\n\t\t\t} else {\n\t\t\t\tsb.append((char) ch);\n\t\t\t}\n\t\t}\n\t\t// ֹݶʧ\n\t\tif (sb.length() > 0) {\n\t\t\treturn sb.toString();\n\t\t}\n\t\treturn null;\n\n\t}\n\n\tpublic void close() throws IOException {\n\t\tr.close();\n\t}\n}\n"
  },
  {
    "path": "day22/code/day22_IO/src/cn/itcast_02/MyMyLineNumberReaderDemo.java",
    "content": "package cn.itcast_02;\n\nimport java.io.FileReader;\nimport java.io.IOException;\n\npublic class MyMyLineNumberReaderDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\tMyLineNumberReader lnr = new MyLineNumberReader(\n\t\t\t\tnew FileReader(\"my.txt\"));\n\n\t\tlnr.setLineNumber(100);\n\n\t\t// System.out.println(lnr.getLineNumber());\n\t\t// System.out.println(lnr.getLineNumber());\n\t\t// System.out.println(lnr.getLineNumber());\n\n\t\tString line = null;\n\t\twhile ((line = lnr.readLine()) != null) {\n\t\t\tSystem.out.println(lnr.getLineNumber() + \":\" + line);\n\t\t}\n\n\t\tlnr.close();\n\t}\n}\n"
  },
  {
    "path": "day22/code/day22_IO/src/cn/itcast_03/MyBufferedReader.java",
    "content": "package cn.itcast_03;\n\nimport java.io.IOException;\nimport java.io.Reader;\n\npublic class MyBufferedReader {\n\tprivate Reader r;\n\n\tpublic MyBufferedReader(Reader r) { // Reader r = new FileReader(\"my.txt\");\n\t\tthis.r = r;\n\t}\n\n\tpublic String readLine() throws IOException {\n\t\t/*\n\t\t * ֪rrȡַʽһζȡһַһζȡһַ\n\t\t * ׼ĸ?ķʽȲȷԣȷһζȡһַ\n\t\t * ÿζȡһַȡڶַʱǰһͻᶪʧԣҪ취Ѷȡַ\n\t\t * ʲô?ͨ򵥵ķȷStringBuilder\n\t\t */\n\t\tStringBuilder sb = new StringBuilder();\n\n\t\t// while (true) {\n\t\t// // һζȡһַ\n\t\t// int ch = r.read();\n\t\t// if (ch == '\\r') {\n\t\t// continue;\n\t\t// }\n\t\t// if (ch == '\\n') {\n\t\t// // return sb.toString();\n\t\t// break;\n\t\t// } else {\n\t\t// sb.append((char) ch);\n\t\t// }\n\t\t// }\n\t\t// return sb.toString();\n\n\t\t// νѭ?\n\n\t\tint ch = 0;\n\t\twhile ((ch = r.read()) != -1) {\n\t\t\tif (ch == '\\r') {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (ch == '\\n') {\n\t\t\t\treturn sb.toString();\n\t\t\t} else {\n\t\t\t\tsb.append((char) ch);\n\t\t\t}\n\t\t}\n\n\t\t// ֹݶʧ\n\t\tif (sb.length() > 0) {\n\t\t\treturn sb.toString();\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\tpublic void close() throws IOException {\n\t\tr.close();\n\t}\n}\n"
  },
  {
    "path": "day22/code/day22_IO/src/cn/itcast_03/MyLineNumberReader.java",
    "content": "package cn.itcast_03;\n\nimport java.io.IOException;\nimport java.io.Reader;\n\npublic class MyLineNumberReader extends MyBufferedReader {\n\tprivate int lineNumber;\n\n\tpublic int getLineNumber() {\n\t\treturn lineNumber;\n\t}\n\n\tpublic void setLineNumber(int lineNumber) {\n\t\tthis.lineNumber = lineNumber;\n\t}\n\n\tpublic MyLineNumberReader(Reader r) {\n\t\tsuper(r);\n\t}\n\n\tpublic String readLine() throws IOException {\n\t\tlineNumber++;\n\t\treturn super.readLine();\n\t}\n}\n"
  },
  {
    "path": "day22/code/day22_IO/src/cn/itcast_03/MyMyLineNumberReaderDemo.java",
    "content": "package cn.itcast_03;\n\nimport java.io.FileReader;\nimport java.io.IOException;\n\npublic class MyMyLineNumberReaderDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\tMyLineNumberReader lnr = new MyLineNumberReader(\n\t\t\t\tnew FileReader(\"my.txt\"));\n\n\t\tlnr.setLineNumber(100);\n\n\t\t// System.out.println(lnr.getLineNumber());\n\t\t// System.out.println(lnr.getLineNumber());\n\t\t// System.out.println(lnr.getLineNumber());\n\n\t\tString line = null;\n\t\twhile ((line = lnr.readLine()) != null) {\n\t\t\tSystem.out.println(lnr.getLineNumber() + \":\" + line);\n\t\t}\n\n\t\tlnr.close();\n\t}\n}\n"
  },
  {
    "path": "day22/code/day22_IO/src/cn/itcast_04/DataStreamDemo.java",
    "content": "package cn.itcast_04;\n\nimport java.io.DataInputStream;\nimport java.io.DataOutputStream;\nimport java.io.FileInputStream;\nimport java.io.FileOutputStream;\nimport java.io.IOException;\n\n/*\n * ѻ͵дļԴļȡ\n */\npublic class DataStreamDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// write();\n\t\tread();\n\t}\n\n\tprivate static void read() throws IOException {\n\t\t// DataInputStream(InputStream in)\n\t\tDataInputStream dis = new DataInputStream(\n\t\t\t\tnew FileInputStream(\"dos.txt\"));\n\n\t\t// \n\t\tSystem.out.println(dis.readByte());\n\t\tSystem.out.println(dis.readShort());\n\t\tSystem.out.println(dis.readInt());\n\t\tSystem.out.println(dis.readLong());\n\t\tSystem.out.println(dis.readFloat());\n\t\tSystem.out.println(dis.readDouble());\n\t\tSystem.out.println(dis.readChar());\n\t\tSystem.out.println(dis.readBoolean());\n\n\t\t// ͷԴ\n\t\tdis.close();\n\t}\n\n\tprivate static void write() throws IOException {\n\t\t// DataOutputStream(OutputStream out)\n\t\tDataOutputStream dos = new DataOutputStream(new FileOutputStream(\n\t\t\t\t\"dos.txt\"));\n\n\t\t// д\n\t\tdos.writeByte(1);\n\t\tdos.writeShort(10);\n\t\tdos.writeInt(100);\n\t\tdos.writeLong(1000);\n\t\tdos.writeFloat(1.1f);\n\t\tdos.writeDouble(2.2);\n\t\tdos.writeChar('a');\n\t\tdos.writeBoolean(true);\n\n\t\t// ͷԴ\n\t\tdos.close();\n\t}\n}\n"
  },
  {
    "path": "day22/code/day22_IO/src/cn/itcast_05/ArrayStreamDemo.java",
    "content": "package cn.itcast_05;\n\nimport java.io.ByteArrayInputStream;\nimport java.io.ByteArrayOutputStream;\nimport java.io.IOException;\n\n/*\n * ڴڴתһȦ\n * ByteArrayInputStream\n * ByteArrayOutputStream\n */\npublic class ArrayStreamDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// public ByteArrayOutputStream()\n\t\tByteArrayOutputStream baos = new ByteArrayOutputStream();\n\t\tbaos.write(\"helloworld\".getBytes());\n\t\tbaos.write(\"javajava\".getBytes());\n\t\tbaos.write(\"android\".getBytes());\n\t\tbaos.close();\n\n\t\t// public byte[] toByteArray()\n\t\tbyte[] bys = baos.toByteArray();\n\n\t\t// public ByteArrayInputStream(byte[] buf)\n\t\tByteArrayInputStream bais = new ByteArrayInputStream(bys);\n\t\tint by = 0;\n\t\twhile ((by = bais.read()) != -1) {\n\t\t\tSystem.out.print((char) by);\n\t\t}\n\t\tbais.close();\n\t}\n}\n"
  },
  {
    "path": "day22/code/day22_IO/src/cn/itcast_06/CopyFileDemo.java",
    "content": "package cn.itcast_06;\n\nimport java.io.BufferedReader;\nimport java.io.BufferedWriter;\nimport java.io.FileReader;\nimport java.io.FileWriter;\nimport java.io.IOException;\nimport java.io.PrintWriter;\n\n/*\n * Դ\n * \t\tMyBufferedReader.java\t--\tReader\t--\tFileReader --\tBufferedReader\n * Ŀĵأ\n * \t\tCopy.java\t--\tWriter -- FileWriter -- BufferedWriter -- PrintWriter\n */\npublic class CopyFileDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// // װԴ\n\t\t// BufferedReader br = new BufferedReader(new FileReader(\n\t\t// \"MyBufferedReader.java\"));\n\t\t// // װĿĵ\n\t\t// BufferedWriter bw = new BufferedWriter(new FileWriter(\"Copy.java\"));\n\t\t// // д\n\t\t// String line = null;\n\t\t// while ((line = br.readLine()) != null) {\n\t\t// bw.write(line);\n\t\t// bw.newLine();\n\t\t// bw.flush();\n\t\t// }\n\t\t// // ͷԴ\n\t\t// bw.close();\n\t\t// br.close();\n\n\t\t// PrintWriterĽ\n\t\tBufferedReader br = new BufferedReader(new FileReader(\n\t\t\t\t\"MyBufferedReader.java\"));\n\t\tPrintWriter pw = new PrintWriter(new FileWriter(\"Copy.java\"), true);\n\n\t\tString line = null;\n\t\twhile ((line = br.readLine()) != null) {\n\t\t\tpw.println(line);\n\t\t}\n\n\t\tpw.close();\n\t\tbr.close();\n\t}\n}\n"
  },
  {
    "path": "day22/code/day22_IO/src/cn/itcast_06/PrintWriterDemo.java",
    "content": "package cn.itcast_06;\n\nimport java.io.IOException;\nimport java.io.PrintWriter;\n\n/*\n * ӡ\n * \t\tֽӡ\tPrintStream\n * \t\tַӡ\t\tPrintWriter\n * \n * ص㣺\n * \t\tA:ֻܲĿĵأܲԴ\n * \t\tB:Բ͵ݡ\n * \t\tC:Զˢ£ܹԶˢ¡\n * \t\tD:Բļ\t\n * \t\t\tЩֱӲļ? FileInputStream,FileOutputStream,FileReader,FileWriter,PrintStream,PrintWriter\n * \t\t\t췽ͬʱԽFileString͵ĹǿԵġ\n */\npublic class PrintWriterDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// ӡΪWriterʹ\n\t\tPrintWriter pw = new PrintWriter(\"pw.txt\");\n\n\t\tpw.write(\"hello\");\n\t\tpw.write(\"\\r\\n\");\n\t\tpw.flush();\n\t\tpw.write(\"world\");\n\t\tpw.write(\"\\r\\n\");\n\t\tpw.flush();\n\t\tpw.write(\"java\");\n\t\tpw.write(\"\\r\\n\");\n\t\tpw.flush();\n\n\t\t// ͷԴ\n\t\tpw.close();\n\t}\n}\n"
  },
  {
    "path": "day22/code/day22_IO/src/cn/itcast_06/PrintWriterDemo2.java",
    "content": "package cn.itcast_06;\n\nimport java.io.FileWriter;\nimport java.io.IOException;\nimport java.io.PrintWriter;\n\n/*\n * print:\n * println:\n */\npublic class PrintWriterDemo2 {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// PrintWriter(OutputStream out, boolean autoFlush)\n\t\t// PrintWriter(Writer out, boolean autoFlush)\n\n\t\t// PrintWriter pw = new PrintWriter(\"pw2.txt\");\n\n\t\t// PrintWriter pw = new PrintWriter(new FileWriter(\"pw2.txt\"), true);\n\t\t// pw.print(100);\n\t\t// pw.print(true);\n\t\t// pw.print(\"hello\");\n\n\t\t// pw.flush();\n\n\t\t// println()\n\t\tPrintWriter pw = new PrintWriter(new FileWriter(\"pw2.txt\"), true);\n\n\t\t// ˢ£ܹʵֻ\n\t\tpw.println(\"hello\");\n\t\tpw.println(\"world\");\n\t\tpw.println(\"java\");\n\t\t\n\t\t// write,newLine,flush\n\t\t\n\n\t\tpw.close();\n\t}\n}\n"
  },
  {
    "path": "day22/code/day22_IO/src/cn/itcast_07/PrintfDemo.java",
    "content": "package cn.itcast_07;\n\n/*\n * CԵ䣺printf(...)\n */\npublic class PrintfDemo {\n\tpublic static void main(String[] args) {\n\t\t// ̶ı\n\t\t// System.out.printf(\"hellworld\\n\");\n\t\t// System.out.printf(\"hellworld\\n\");\n\n\t\t// ָʾı\n\t\t// System.out.printf(\"%d\\n\", 100, 200);\n\t\t// System.out.printf(\"%d<%d\\n\", 100, 200);\n\t\t// System.out.printf(\"%d<%d\\n\", 100);\n\n\t\t// System.out.printf(\"%d+%d=%d\\n\", 10, 20, 30);\n\t\t// System.out.println(10 + \"+\" + 20 + \"=\" + 30);\n\n\t\tSystem.out.printf(\"%.1f\\n\", 12.345);\n\t\tSystem.out.printf(\"%.2f\\n\", 12.567);\n\t\tSystem.out.printf(\"%.2f\\n\", 12.564);\n\t}\n}\n"
  },
  {
    "path": "day22/code/day22_IO/src/cn/itcast_07/SystemInDemo.java",
    "content": "package cn.itcast_07;\n\nimport java.io.BufferedReader;\nimport java.io.IOException;\nimport java.io.InputStreamReader;\n\n/*\n * ׼\n * System:\n * \t\tpublic static final InputStream in:׼\t\n * \t\tpublic static final PrintStream out:׼\t̨\n * \n * ¼ݣ\n * \t\tA:mainܼ¼\n * \t\tB:IOʵּ¼\n * \t\tC:Scannerʵּ¼\n */\npublic class SystemInDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// // ¼\n\t\t// InputStream is = System.in; // BufferedInputStream,̬\n\t\t// // System.out.println(is);\n\t\t//\n\t\t// // һζȡһ,ǿʵֵģԭBufferedReaderһ,ֻ΢鷳\n\t\t// // θĽ?\n\t\t// // ģֱܲʹreadLine()?\n\t\t// // ܣҾֱܹһζȡһ,readLine()BufferedReader\n\t\t// // ԣҪBufferedReaderĶ\n\t\t// // ʱֱӰisΪݣΪʲô?\n\t\t// // ΪBufferedReaderַַֻܶл\n\t\t// // isֽԣҪǰֽתΪַȻٶַл\n\t\t// // ǰѧϰһתֽתΪַ\n\t\t// InputStreamReader isr = new InputStreamReader(is);\n\t\t// BufferedReader br = new BufferedReader(isr);\n\n\t\t// װ¼룬IOʵ\n\t\tBufferedReader br = new BufferedReader(new InputStreamReader(System.in));\n\n\t\tSystem.out.println(\"һַ\");\n\t\tString line = br.readLine();\n\t\tSystem.out.println(line);\n\n\t\tSystem.out.println(\"һint͵ֵ\");\n\t\tline = br.readLine();\n\t\tint number = Integer.parseInt(line);\n\t\tSystem.out.println(number);\n\n\t\t// ͷԴ\n\t\t// br.close();\n\n\t\tSystem.out.println(\"һint͵ֵ\");\n\t\tline = br.readLine();\n\t\tnumber = Integer.parseInt(line);\n\t\tSystem.out.println(number);\n\t\tSystem.out.println(\"-------------------------\");\n\n\t\t// Scanner sc = new Scanner(System.in);\n\t\t// // ...\n\t\t// sc.close();\n\t}\n\n}\n"
  },
  {
    "path": "day22/code/day22_IO/src/cn/itcast_07/SystemOutDemo.java",
    "content": "package cn.itcast_07;\n\nimport java.io.IOException;\nimport java.io.PrintStream;\n\n/*\n * public static final PrintStream out:׼\t̨\n * \n * ¼룺BufferedReader br = new BufferedReader(new InputStreamReader(System.in));\n * ̨BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));\n */\npublic class SystemOutDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// ׼\n\t\t// PrintStream ps = System.out;\n\t\t// OutputStream os = ps;\n\t\t// OutputStream os = System.out; // PrintStream,̬\n\t\t// System.out.println(os);\n\n\t\t// os.write(\"hello\\r\\n\".getBytes());\n\t\t// os.write(\"world\\r\\n\".getBytes());\n\t\t// os.write(\"java\\r\\n\".getBytes());\n\n\t\t// дݵʱÿβдһַȽ鷳ǿǸĽ\n\t\t// BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(\n\t\t// System.out));\n\t\t// bw.write(\"hello\");\n\t\t// bw.newLine();\n\t\t// bw.flush();\n\t\t// bw.write(\"world\");\n\t\t// bw.newLine();\n\t\t// bw.flush();\n\n\t\t// bw.close();\n\n\t\t// ׼\n\t\t// PrintStream ps = System.out;\n\t\t// ps.print(100);\n\t\t// ps.print(true);\n\t\t// ps.println(100);\n\t\t// ps.println(true);\n\n\t\tSystem.out.println(100);\n\t\tSystem.out.println(true);\n\t\tSystem.out.println();\n\t\t// System.out.print();\n\t}\n}\n"
  },
  {
    "path": "day22/code/day22_IO/src/cn/itcast_08/RandomAccessFileDemo.java",
    "content": "package cn.itcast_08;\n\nimport java.io.IOException;\nimport java.io.RandomAccessFile;\n\n/*\n * RandomAccessFile:ʵֶ֧ļĶȡд롣\n * RandomAccessFile(String name, String mode) \n * \n * public long getFilePointer():ƫֽΪλ\n * public void seek(long pos):õļͷļָƫڸλ÷һȡд\n */\npublic class RandomAccessFileDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\twrite();\n\t\tread();\n\t}\n\n\tprivate static void read() throws IOException {\n\t\t// \n\t\tRandomAccessFile raf = new RandomAccessFile(\"raf.txt\", \"rw\");\n\n\t\t// \n\t\tSystem.out.println(raf.getFilePointer());\n\t\tSystem.out.println(raf.readInt());\n\t\tSystem.out.println(raf.getFilePointer());\n\t\tSystem.out.println(raf.readChar());\n\t\tSystem.out.println(raf.getFilePointer());\n\t\tSystem.out.println(raf.readUTF());\n\t\tSystem.out.println(raf.getFilePointer());\n\t\tSystem.out.println(\"------------------\");\n\n\t\t// System.out.println(raf.read());\n\t\t// raf.seek(0);\n\t\t// System.out.println(raf.readInt());\n\t\traf.seek(4);\n\t\tSystem.out.println(raf.readChar());\n\n\t\traf.seek(1000);\n\t\tSystem.out.println(raf.readUTF());\n\n\t\t// ͷԴ\n\t\traf.close();\n\t}\n\n\tprivate static void write() throws IOException {\n\t\t// \n\t\tRandomAccessFile raf = new RandomAccessFile(\"raf.txt\", \"rw\");\n\n\t\t// д\n\t\traf.writeInt(100);\n\t\traf.writeChar('a');\n\t\t// raf.writeUTF(\"hello\");\n\t\traf.writeUTF(\"ϼ\");\n\n\t\traf.seek(1000);\n\t\traf.writeUTF(\"\");\n\n\t\t// ͷԴ\n\t\traf.close();\n\t}\n}\n"
  },
  {
    "path": "day22/code/day22_IO/src/cn/itcast_09/SequenceInputStreamDemo.java",
    "content": "package cn.itcast_09;\n\nimport java.io.BufferedOutputStream;\nimport java.io.FileInputStream;\nimport java.io.FileOutputStream;\nimport java.io.IOException;\nimport java.io.InputStream;\nimport java.io.SequenceInputStream;\nimport java.util.Enumeration;\nimport java.util.Vector;\n\n/*\n * SequenceInputStream ʾ߼򼯺Ͽʼӵһʼȡֱļĩβ\n * ŴӵڶȡƣֱһļĩβΪֹ \n * \n * 췽\n * \t\tSequenceInputStream(InputStream s1, InputStream s2):ϲ\n * \t\tSequenceInputStream(Enumeration e):ϲ\n */\npublic class SequenceInputStreamDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// mergeTwo();\n\t\tmergeMore();\n\t}\n\n\tprivate static void mergeMore() throws IOException {\n\t\t// SequenceInputStream(Enumeration e):ϲ\n\t\t// public Enumeration<E> elements()\n\t\t// Vector\n\n\t\t// ϶\n\t\tVector<InputStream> v = new Vector<InputStream>();\n\t\t// Ԫض\n\t\tInputStream s1 = new FileInputStream(\"MyBufferedReader.java\");\n\t\tInputStream s2 = new FileInputStream(\"MyBufferedReaderDemo.java\");\n\t\tInputStream s3 = new FileInputStream(\"MyLineNumberReader.java\");\n\t\tInputStream s4 = new FileInputStream(\"MyMyLineNumberReaderDemo.java\");\n\t\t// Ԫӵ\n\t\tv.add(s1);\n\t\tv.add(s2);\n\t\tv.add(s3);\n\t\tv.add(s4);\n\t\t// ͨϵĵEnumeration\n\t\tEnumeration<InputStream> en = v.elements();\n\n\t\t// ϲ\n\t\tSequenceInputStream sis = new SequenceInputStream(en);\n\t\tBufferedOutputStream bos = new BufferedOutputStream(\n\t\t\t\tnew FileOutputStream(\"Copy.java\"));\n\n\t\tbyte[] bys = new byte[1024];\n\t\tint len = 0;\n\t\twhile ((len = sis.read(bys)) != -1) {\n\t\t\tbos.write(bys, 0, len);\n\t\t}\n\n\t\tbos.close();\n\t\tsis.close();\n\t}\n\n\tprivate static void mergeTwo() throws IOException {\n\t\t// SequenceInputStream(InputStream s1, InputStream s2)\n\t\tInputStream s1 = new FileInputStream(\"MyBufferedReader.java\");\n\t\tInputStream s2 = new FileInputStream(\"MyBufferedReaderDemo.java\");\n\t\tSequenceInputStream sis = new SequenceInputStream(s1, s2);\n\n\t\tBufferedOutputStream bos = new BufferedOutputStream(\n\t\t\t\tnew FileOutputStream(\"Copy.java\"));\n\n\t\tbyte[] bys = new byte[1024];\n\t\tint len = 0;\n\t\twhile ((len = sis.read(bys)) != -1) {\n\t\t\tbos.write(bys, 0, len);\n\t\t}\n\n\t\tbos.close();\n\t\tsis.close();\n\t}\n}\n"
  },
  {
    "path": "day22/code/day22_IO/src/cn/itcast_10/ObjectStreamDemo.java",
    "content": "package cn.itcast_10;\n\nimport java.io.FileInputStream;\nimport java.io.FileOutputStream;\nimport java.io.IOException;\nimport java.io.ObjectInputStream;\nimport java.io.ObjectOutputStream;\n\n/*\n * ΪʲôҪл?\n * \t\tΪöļг־ô洢д䡣\n * \n * лObjectOutputStream\t\n * \t\tpublic final void writeObject(Object obj)\n * лObjectInputStream\t(ݵĶԭ)\n * \t\tpublic final Object readObject()\n */\npublic class ObjectStreamDemo {\n\tpublic static void main(String[] args) throws IOException,\n\t\t\tClassNotFoundException {\n\t\t// write();\n\t\tread();\n\t}\n\n\tprivate static void read() throws IOException, ClassNotFoundException {\n\t\t// ObjectInputStream(InputStream is)\n\t\tObjectInputStream ois = new ObjectInputStream(new FileInputStream(\n\t\t\t\t\"oos.txt\"));\n\t\tObject obj = ois.readObject();\n\t\tois.close();\n\n\t\tSystem.out.println(obj);\n\t}\n\n\tprivate static void write() throws IOException {\n\t\t// ObjectOutputStream(OutputStream out)\n\t\tObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(\n\t\t\t\t\"oos.txt\"));\n\t\tPerson p = new Person(\"ϼ\", 28);\n\t\toos.writeObject(p);\n\t\toos.close();\n\t}\n}\n"
  },
  {
    "path": "day22/code/day22_IO/src/cn/itcast_10/Person.java",
    "content": "package cn.itcast_10;\n\nimport java.io.Serializable;\n\n/*\n * NotSerializableException:δʵлӿ쳣\n * Serializableͨʵ java.io.Serializable ӿлܡδʵִ˽ӿڵཫ޷ʹκ״̬лл\n * \n * Ժٿӿûзʸýӿʲô?\n * СֽӿڱΪǽӿڡ\n * \n * Exception in thread \"main\" java.io.InvalidClassException: \n * cn.itcast_10.Person; local class incompatible: \n * stream classdesc serialVersionUID = -1509474945256457713, \n * local class serialVersionUID = -8199609520215381056\n * \n * A:лĶʵлӿڡ\n * B:һjavaļclassļʱҲһлidֵлļʱidֵдļ\n * \t\tPerson.java\t\tid=100\n * \t\tPerson.class\tid=100\n * \t\toos.txt\t\t\tid=100\n * C:һjavaļ޸ģidֵͻӦķı\n * \t\tPerson.java\t\tid=200\n * \t\tPerson.class \tid=200\n * \t\toos.txt\t\t\tid=100\n * ЩʱһЩ򵥵޸ģдݣûа취֤ȡݲ?\n * Сÿβidֵǹ̶ľͿˡ\n * ǣθidֵ?ôʾ?\n * ֪?͵꼴ɡ\n * ʱǾ֪idֵıʽˣһ˻ɫߵ⡣\n * \n * л\n * \t\tѶһʽдļд\n * л\n * \t\tݻԭɶ\n * ʵл?\n * \t\tñлĶʵлӿ\n * СĸĶӰǰлԼʵлֵĻɫ?\n * \t\t꣬һ̶лidֵ\n */\npublic class Person implements Serializable {\n\tprivate static final long serialVersionUID = 8535379254621922917L;\n\n\tprivate String name;\n\n\t// private int age;\n\n\tint age;\n\n\tpublic Person(String name, int age) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.age = age;\n\t}\n\n\tpublic Person() {\n\t\tsuper();\n\t}\n\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\n\tpublic int getAge() {\n\t\treturn age;\n\t}\n\n\tpublic void setAge(int age) {\n\t\tthis.age = age;\n\t}\n\n\t@Override\n\tpublic String toString() {\n\t\treturn \"Person [name=\" + name + \", age=\" + age + \"]\";\n\t}\n\n}\n"
  },
  {
    "path": "day22/code/day22_IO/src/cn/itcast_11/GuessNumberGame.java",
    "content": "package cn.itcast_11;\n\nimport java.util.Scanner;\n\npublic class GuessNumberGame {\n\tprivate GuessNumberGame() {\n\t}\n\n\tpublic static void start() {\n\t\t// ϵͳһ\n\t\tint number = (int) (Math.random() * 100) + 1;\n\n\t\twhile (true) {\n\t\t\t// ¼ݣ\n\t\t\tScanner sc = new Scanner(System.in);\n\t\t\tSystem.out.println(\"Ҫµݣ(1-100)\");\n\t\t\tint guessNumber = sc.nextInt();\n\n\t\t\t// ж\n\t\t\tif (guessNumber > number) {\n\t\t\t\tSystem.out.println(\"µ\" + guessNumber + \"\");\n\t\t\t} else if (guessNumber < number) {\n\t\t\t\tSystem.out.println(\"µ\" + guessNumber + \"С\");\n\t\t\t} else {\n\t\t\t\tSystem.out.println(\"ϲ㣬\");\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day22/code/day22_IO/src/cn/itcast_11/PropertiesDemo.java",
    "content": "package cn.itcast_11;\n\nimport java.util.Properties;\nimport java.util.Set;\n\n/*\n * Properties ʾһ־õԼProperties ɱлмءбÿӦֵһַ \n * \n * PropertiesΪMapϵʹ\n */\npublic class PropertiesDemo {\n\tpublic static void main(String[] args) {\n\t\t// ϶\n\t\tProperties prop = new Properties();\n\n\t\t// \n\t\tprop.put(1, \"java\");\n\t\tprop.put(2, \"c#\");\n\t\tprop.put(3, \"php\");\n\n\t\t// \n\t\tSet<Object> set = prop.keySet();\n\t\tfor (Object key : set) {\n\t\t\tObject value = prop.get(key);\n\t\t\tSystem.out.println(key + \"---\" + value);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day22/code/day22_IO/src/cn/itcast_11/PropertiesDemo2.java",
    "content": "package cn.itcast_11;\n\nimport java.util.Properties;\nimport java.util.Set;\n\n/*\n * Propertiesйܣ\n * A:ӹ\n * \t\tpublic Object setProperty(String key,String value)\n * B:ȡ\n * \t\tpublic String getProperty(String key)\n * \t\tpublic String getProperty(String key,String defaultValue)\n * \t\tpublic Set<String> stringPropertyNames()\n */\npublic class PropertiesDemo2 {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\tProperties prop = new Properties();\n\n\t\t// \n\t\tprop.setProperty(\"it001\", \"javase\");\n\t\tprop.setProperty(\"it003\", \"android\");\n\t\tprop.setProperty(\"it002\", \"javaee\");\n\n\t\t// ȡ\n\t\t// // public String getProperty(String key)\n\t\t// System.out.println(prop.getProperty(\"it001\"));\n\t\t// System.out.println(prop.getProperty(\"it007\"));\n\t\t// // public String getProperty(String key,String defaultValue)\n\t\t// System.out.println(prop.getProperty(\"it007\", \"ǳ\"));\n\n\t\t// public Set<String> stringPropertyNames()\n\t\tSet<String> set = prop.stringPropertyNames();\n\t\tfor (String key : set) {\n\t\t\tString value = prop.getProperty(key);\n\t\t\tSystem.out.println(key + \"---\" + value);\n\t\t}\n\t}\n}\n\n/*\n * class Properties extends Hashtable<K,V> { private Hashtable<K,V> ht;\n * \n * public Properties() { ht = new Hashtable<K,V>(); }\n * \n * public Object setProperty(String key,String value) { return\n * ht.put(key,value); } }\n */"
  },
  {
    "path": "day22/code/day22_IO/src/cn/itcast_11/PropertiesDemo3.java",
    "content": "package cn.itcast_11;\n\nimport java.io.FileReader;\nimport java.io.FileWriter;\nimport java.io.IOException;\nimport java.io.Reader;\nimport java.io.Writer;\nimport java.util.Properties;\n\n/*\n * PropertiesIOĽʹá\n * A:ıļеݶȡ\n * \t\tԴıļ\n * \t\tĿĵأ\n * \n * \t\tpublic void load(InputStream inStream)\n *\t\tpublic void load(Reader reader)\n * B:Ѽеݴ洢ıļ\n * \t\tԴ\n * \t\tĿĵأıļ\n * \n * \t\tpublic void store(OutputStream out,String comments)\n * \t\tpublic void store(Writer writer,String comments)\n */\npublic class PropertiesDemo3 {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// ϶\n\t\tProperties prop = new Properties();\n\t\t// public void load(Reader reader)\n\t\tReader r = new FileReader(\"prop.txt\");\n\t\tprop.load(r);\n\t\tr.close();\n\t\tSystem.out.println(\"prop:\" + prop);\n\t\tSystem.out.println(\"---------------------\");\n\n\t\t// ϶\n\t\tProperties prop2 = new Properties();\n\t\tprop2.setProperty(\"001\", \"hello\");\n\t\tprop2.setProperty(\"002\", \"world\");\n\t\tprop2.setProperty(\"003\", \"java\");\n\n\t\t// public void store(Writer writer,String comments)\n\t\tWriter w = new FileWriter(\"w.txt\");\n\t\tprop2.store(w, null);\n\t\tw.close();\n\t}\n}\n"
  },
  {
    "path": "day22/code/day22_IO/src/cn/itcast_11/PropertiesTest.java",
    "content": "package cn.itcast_11;\n\nimport java.io.FileReader;\nimport java.io.FileWriter;\nimport java.io.IOException;\nimport java.io.Reader;\nimport java.io.Writer;\nimport java.util.Properties;\nimport java.util.Set;\n\n/*\n * һıļuser.txt֪Ǽֵʽģǲ֪ʲô\n * дһжǷСlisiļڣо͸ıֵΪ100\n * \n * \n * \t\tA:ıļݼص\n * \t\tB:ϣȡÿһ\n * \t\tC:жϼֵǷΪlisi\n * \t\t\tǣ޸ֵΪ100\n * \t\t\t񣺲\n * \t\tD:Ѽеݴ洢ıļ\n */\npublic class PropertiesTest {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// ıļݼص\n\t\tProperties prop = new Properties();\n\t\tReader r = new FileReader(\"user.txt\");\n\t\tprop.load(r);\n\t\tr.close();\n\n\t\t// ϣȡÿһ\n\t\tSet<String> set = prop.stringPropertyNames();\n\t\tfor (String key : set) {\n\t\t\t// жϼֵǷΪlisi\n\t\t\tif (\"lisi\".equals(key)) {\n\t\t\t\t// ޸ֵΪ100\n\t\t\t\tprop.setProperty(key, \"100\");\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// Ѽеݴ洢ıļ\n\t\tWriter w = new FileWriter(\"user.txt\");\n\t\tprop.store(w, null);\n\t\tw.close();\n\t}\n}\n"
  },
  {
    "path": "day22/code/day22_IO/src/cn/itcast_11/PropertiesTest2.java",
    "content": "package cn.itcast_11;\n\nimport java.io.FileReader;\nimport java.io.FileWriter;\nimport java.io.IOException;\nimport java.io.Reader;\nimport java.io.Writer;\nimport java.util.Properties;\n\n/*\n * һСϷĳдһʵڲֻ5Σ5ʾףϷѽ븶ѡ\n * \n * \n * \t\tA:дһСϷĳ\n * \t\tB:ڲп棬ǲܳ5\n * \t\tC:ο?\n * \t\t\tͿ԰ĴдһļУÿ֮ǰȶȡļеĴж\n * \t\t  \tûг5ΣͿԼ棬Ͳˣʾɡ\n * \n * ȺӢ2(ȼ)\n */\npublic class PropertiesTest2 {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// ϶\n\t\tProperties prop = new Properties();\n\t\tReader r = new FileReader(\"playCount.txt\");\n\t\tprop.load(r);\n\t\tr.close();\n\n\t\t// ȡ\n\t\tString value = prop.getProperty(\"count\");\n\t\t// ַתint͵ֵ\n\t\tint count = Integer.parseInt(value);\n\n\t\tif (count >= 5) {\n\t\t\tSystem.out.println(\"ףϷѽҰ೤ѡ:10086\");\n\t\t} else {\n\t\t\tGuessNumberGame.start();\n\t\t\tcount++;\n\t\t\t// ޸ļ\n\t\t\tprop.setProperty(\"count\", String.valueOf(count));\n\n\t\t\t// Ѽϵдıļ\n\t\t\tWriter w = new FileWriter(\"playCount.txt\");\n\t\t\tprop.store(w, null);\n\t\t\tw.close();\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day22/code/day22_IO/src/cn/itcast_12/JDK7Demo.java",
    "content": "package cn.itcast_12;\n\nimport java.io.IOException;\nimport java.nio.charset.Charset;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\nimport java.util.ArrayList;\n\n/*\n * JDK4以后，出现了新IO。在nio包下。和以前的IO相比，它是把文件映射到内存，效率更高。\n * JDK7出现了几个新东西：\n * Path:与平台无关的路径。\n * Paths:包含了返回Path的静态方法。\n * \t\tpublic static Path get(URI uri):根据给定的URI来确定文件路径。\n * Files:操作文件的工具类。提供了大量的方法，简单了解如下方法\n * \t\tpublic static long copy(Path source, OutputStream out) :复制文件\n * \t\tpublic static Path write(Path path, Iterable<? extends CharSequence> lines, Charset cs, OpenOption... options):\n *\t\t\t把集合的数据写到文件。\n */\npublic class JDK7Demo {\n\tpublic static void main(String[] args) throws IOException {\n\t\t// public static long copy(Path source, OutputStream out)\n\t\t// Files.copy(Paths.get(\"a.txt\"), new FileOutputStream(\"b.txt\"));\n\t\t// Files.copy(Paths.get(\"d:\\\\mn.bmp\"), new FileOutputStream(\"mn.bmp\"));\n\n\t\t// 把集合数据写到文本文件\n\t\t// ArrayList<String> array = new ArrayList<String>();\n\t\t// array.add(\"hello\");\n\t\t// array.add(\"world\");\n\t\t// array.add(\"java\");\n\t\t// Files.write(Paths.get(\"array.txt\"), array, Charset.forName(\"GBK\"));\n\t}\n}\n"
  },
  {
    "path": "day22/code/day22_IO/user.txt",
    "content": "#Thu Apr 09 16:16:18 CST 2015\nzhangsan=30\nlisi=100\nwangwu=50\n"
  },
  {
    "path": "day22/day22.txt",
    "content": "1\n\t(1)ReaderģBufferedReaderreadLine()\n\t(2)ReaderBufferedReaderģreadNumberLine()\n\t(3)̳иĵڶ\n\n2ݲ\n\tDataInputStream/DataOutputStream:ܹеĻͣעд˳򱣳һ\n\n3ڴ()\n\tݲô\n\tByteArrayInputStream/ByteArrayOutputStream:ֽ\n\tCharArrayReader/CharArrayWriter:ַ\n\tStringReader/StringWriter:ַ\n\n4ӡ\n\tPrintWriter/PrintStream\n\tص㣺ֻܲĿĵأܲԴ\n\t\tԲ͵\n\t\tԶˢ£Զˢ£Զˢ£printlnʹãһ䶥\t\t\tȥ\n\t\tֱӲļ\n\t\t\t췽ͬʱFileString͵ĶֱӲļ\n\n\tprintfʹãString format   %  ʽ\n\n5׼\n\tSystem.in:BufferedReader br = new BufferedReader(new InputStream(System.in));\n\tSystem.out:BufferedWriter bw = new BufferedWriter(new OutputStream(System.out));\n\tоļ·ͷԴ\n\n\n6ȡ\n\tRandomAccessFile:\n\t\tseek()\n\n7ϲ\n\tSequenceInputStream:\n\t췽\n\t\tInputStream \n\t\tնInputStream\n\n8л\n\tлΪöôʵдɵĶ\n\tллԭ\n\tлʵSeriableӿ\n\t\tûκηӿڵ壺ǽӿ\n\tС⣺ֻҪһССı䶯²һлidֵ\n\t\tָһ̶SerialVersionUID\n\n9:Propertiesϣ\n\n10nio\n\t"
  },
  {
    "path": "day22/day22总结.txt",
    "content": "1()\n\t(1)ͨReaderģBufferedReaderreadLine()\n\t(2)ͨReaderģLineNumberReaderreadLine()getLineNumber()setLineNumber()\n\n2ݲ()\n\t(1)԰ѻ͵дıļҲԴıļжȡ\n\t(2)ݲ\n\t\tA:DataInputStream\n\t\tB:DataOutputStream\n\n3ڴ()\n\t(1)ݽڴ,ǿԸı\n\t(2)ڴ\n\t\tA:ֽ\n\t\t\tByteArrayInputStream\n\t\t\tByteArrayOutputStream\n\t\tB:ַ\n\t\t\tCharArrayReader\n\t\t\tCharArrayWriter\n\t\tC:ַ\n\t\t\tStringReader\n\t\t\tStringWriter\n\n4ӡ()\n\t(1)Ϊֽڴӡַӡ\n\t(2)ַӡ\n\t\tA:ֻĿĵأԴ\n\t\tB:Բ\n\t\tC:Զˢ£ڵprintln()ʱ򣬿Զˢºͻ\n\t\tD:ֱӲļ\n\t\t\t⣺ЩֱӲļ?\n\t\t\t췽ͬʱFileStringĲͿԡ\n\t(3)ıļ\n\t\tBufferedReader br = new BufferedReader(new FileReader(\"a.txt\"));\n\t\tPrintWriter pw = new PrintWriter(new FileWriter(\"b.txt\"),true);\n\n\t\tString line = null;\n\t\twhile((line=br.readLine())!=null) {\n\t\t\tpw.println(line);\n\t\t}\n\n\t\tpw.close();\n\t\tbr.close();\n\n5׼()\n\t(1)׼\n\t\tSystem.in\n\n\t\tBufferedReader br = new BufferedReader(new InputStreamReader(System.in));\n\t(2)׼\n\t\tSystem.out\n\n\t\tBufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));\n\n\t\tʵǵ䱾ʾIO\n\n\t\tPrintStream ps = System.out;\n\t\tps.print(...)\n\t\tps.println(...)\n\n\t\tSystem.out.print(...)\n\t\tSystem.out.println(....);\n\n6()\n\t(1)ָλд,ҲԴָλöȡݡԼȿдݣԶ\n\t(2)Լȥ\n\n7ϲ()\n\t(1)ҪѶļϲһжȡҪʹúϲ\n\t\tָһļ\n\t\t\tmn.jpg\t(4100)\n\t\t\t\t001.jpg\t1024\n\t\t\t\t002.jpg\t1024\n\t\t\t\t003.jpg\t1024\n\t\t\t\t004.jpg\t1024\n\t\t\t\t005.jpg\t4\n\t(2)ʵļĺϲԼļĺϲ\n\n8л()\n\t(1)л\n\t\tѶһķʽ洢ļд\n\t(2)л\n\t\tݻԭɶ\n\t(3)ʵл\n\t\tñлʵлӿ\n\t(4)ν?\n\t\tA:СĶļ\n\t\tB:ɫ\n\n\t\t꣬һ̶лidֵ\n\n9Properties()\n\t(1)MapӼϣԺIOнʹáֵַ\n\t(2)й\n\t\tA:ӹ\n\t\t\tsetProperty(String key,String value)\n\t\tB:ȡ\n\t\t\tgetProperty(String key)\n\t\t\tstringProertyNames()\n\t(3)\n\t\tA:жuser.txtûмΪlisiģо޸ֵΪ100\n\t\tB:СϷֻ5\n\n10NIO(˽)\n\t(1)JDK4ʼNIOµĶ\n\t(2)JDK7¶дһ"
  },
  {
    "path": "day23/code/day23_Thread/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day23/code/day23_Thread/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day23_Thread</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day23/code/day23_Thread/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day23/code/day23_Thread/src/cn/itcast_01/MyThread.java",
    "content": "package cn.itcast_01;\n\npublic class MyThread extends Thread {\n\t@Override\n\tpublic void run() {\n\t\t// System.out.println(\"hello\");\n\t\t// Ҫִ߳еĴ룬һ˵ӦǱȽϺʱ\n\t\tfor (int x = 0; x < 100; x++) {\n\t\t\tSystem.out.println(\"hello\" + x);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day23/code/day23_Thread/src/cn/itcast_01/MyThreadDemo.java",
    "content": "package cn.itcast_01;\n\n/*\n * ߳ڽ̶ڵġ\n * \n * ̣̾еĳϵͳԴ͵õĶλÿһ̶ԼڴռϵͳԴ\n * ʲô?\n * \t\t̵òִٶȣCPUʹʡ\n * \t\t˼CPU̼иЧлһʱֻ̣һС\n * \n * ̣߳߳ǳе˳ĿǳʹCPUĻλ\n * ߳ʲô?\n * \t\t̵߳òִٶȣΪӦóʹʡ\n * \n * \t\tΪ̹߳ͬһ̵Դ(ڴͷ)ջڴǶģһ߳һջ\n * \t\tȻCPUԴִСһʱֻһִ߳С˭һԣ߳еԡ\n * \n * кͲ\n *\t\tǰ߼ͬʱָĳһʱͬʱж\n *\t\tͬʱָĳһʱͬʱж\n *\t\tôܲʵϵĲأǿԵģCPUͿʵ֣֪εȺͿǡ\n *\n * ̸߳\n *\t\ṭ\n * \t\t\tеĳϵͳԴ͵õĶλ\n * \t\t\tÿһ̶ԼڴռϵͳԴ\n * \t\ṭ߳\n * \t\t\tǽеĵ˳һִ·\n * \t\t\tһֻһִ·Ϊ̳߳\n *\t\t\tһжִ·Ϊ̳߳\n *\n *\t\t\n *\t\t\tɨϷ(Ϸʱ),Ѹ(ͬʱضļ)\n *\n * ǾҪʵһ̵߳ĳˡ\n * ⣺Լʵ֣ô?\n * \t\t̳߳Ӧ̣߳߳ڽ̶ڣҲ˵Ҫһ̣߳ͱһ̡\n * \t\tǣˣǲϵͳʵֵģJavaǲֱӺͲϵͳ򽻵ģԣͨjavaԼʵֶ̣߳ʵֲ˵ġ\n * \t\tʱΪ˷ܹʵֶ̳߳javaһ๩ʹãThread\n * \t\t\tThread -- Java\n * \t\t\tײ㣺CC++˲ϵͳһЩԴʵ˽̵ĴjavaԵĹṩjavaԿԷʵݾͿˡ\n * \n * ǾͽThreadѧϰ,ͨ鿴APIִַ֪߳\n * ʽ1̳Thread\n * ʽ2ʵRunnableӿ\n * \n * ̳ThreadĲ裺\n * \t\tA:ԶMyThread̳Thread\n * \t\tB:дrun()\n * \t\t\tΪrun()װĴǱִ߳еĴ롣\n * \t\tC:\n * \t\tD:߳\n * \t\t\t߳ʹõǸ?\n * \t\t\tstart():̣߳Զrun()\n * \n * С⣺\n * \t\tA:ΪʲôҪдrun()?\n * \t\tB:߳ʹõǸ?\n * \t\tC:start()run()?\n * \t\t\tstart:̣߳Զrun()\n * \t\t\trun:ֱӵãͨĵ\n * \t\tD:߳ܲܶ?\n * \t\t\t\n */\npublic class MyThreadDemo {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\t// MyThread mt = new MyThread();\n\t\t// mt.run();\n\t\t// mt.run();\n\n\t\t// MyThread mt1 = new MyThread();\n\t\t// MyThread mt2 = new MyThread();\n\t\t// mt1.run();\n\t\t// mt2.run();\n\n\t\tMyThread mt1 = new MyThread();\n\t\tMyThread mt2 = new MyThread();\n\t\tmt1.start();\n\t\tmt2.start();\n\n\t\t// IllegalThreadStateException\n\t\t// mt1.start();\n\t}\n}\n"
  },
  {
    "path": "day23/code/day23_Thread/src/cn/itcast_02/MyThread.java",
    "content": "package cn.itcast_02;\n\npublic class MyThread extends Thread {\n\tpublic MyThread() {\n\t}\n\n\tpublic MyThread(String name) {\n\t\tsuper(name);\n\t}\n\n\t@Override\n\tpublic void run() {\n\t\tfor (int x = 0; x < 100; x++) {\n\t\t\tSystem.out.println(getName() + \"---hello\" + x);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day23/code/day23_Thread/src/cn/itcast_02/MyThreadDemo.java",
    "content": "package cn.itcast_02;\n\n/*\n * λȡ߳?\n * public final String getName()\n * \t\tûƣһĬơThread-\n * public final void setName(String name)\n * \n * ʵͨ췽ҲԸ߳?\n * \n * mainĸ߳?\n * \t\t߳\n * \t\tλȡ̵߳?\n * \t\tpublic static Thread currentThread():ͿԻȡⷽڵ߳\n */\npublic class MyThreadDemo {\n\tpublic static void main(String[] args) {\n\t\t// ޲+setXxx()\n\t\t// MyThread mt1 = new MyThread();\n\t\t// MyThread mt2 = new MyThread();\n\t\t// mt1.setName(\"ϼ\");\n\t\t// mt2.setName(\"\");\n\n\t\t// \n\t\tMyThread mt1 = new MyThread(\"\");\n\t\tMyThread mt2 = new MyThread(\"\");\n\n\t\tmt1.start();\n\t\tmt2.start();\n\n\t\tSystem.out\n\t\t\t\t.println(Thread.currentThread().getName() + \"AAAAAAAAAAAAAAA\");\n\t}\n}\n"
  },
  {
    "path": "day23/code/day23_Thread/src/cn/itcast_03/ThreadPriority.java",
    "content": "package cn.itcast_03;\n\npublic class ThreadPriority extends Thread {\n\t@Override\n\tpublic void run() {\n\t\tfor (int x = 0; x < 100; x++) {\n\t\t\tSystem.out.println(getName() + \":\" + x);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day23/code/day23_Thread/src/cn/itcast_03/ThreadPriorityDemo.java",
    "content": "package cn.itcast_03;\n\n/*\n * ̵߳ĵȣ\n * ʱģ   ƽ\n * ռʽģ   ˭ȼ˭ִ\n * javaõռʽģ͡\n * \n * javaλȡ̵߳ȼ?\n * ڲûиÿ̵߳ȼǣһܡ˵ˣӦĬȼ\n * public final int getPriority():̵߳ȼ ͨԣ̵֪߳Ĭȼ5\n * \n * public final void setPriority(int newPriority):̵߳ȼ ͨ鿴Դ룬̵֪߳ȼΧǣ1-10Ĭ5\n * \n * ̵߳ȼߣһִϡֻڴر£ֳ\n */\npublic class ThreadPriorityDemo {\n\tpublic static void main(String[] args) {\n\t\t// ̶߳\n\t\tThreadPriority tp1 = new ThreadPriority();\n\t\tThreadPriority tp2 = new ThreadPriority();\n\t\tThreadPriority tp3 = new ThreadPriority();\n\n\t\t// ͨsetName()\n\t\ttp1.setName(\"\");\n\t\ttp2.setName(\"Ⱥ\");\n\t\ttp3.setName(\"ƽ֮\");\n\n\t\t// ȡĬȼ\n\t\t// System.out.println(tp1.getPriority());\n\t\t// System.out.println(tp2.getPriority());\n\t\t// System.out.println(tp3.getPriority());\n\n\t\t// ߳ȼ\n\t\t// IllegalArgumentException\n\t\t// tp1.setPriority(1000);\n\n\t\ttp1.setPriority(10);\n\t\ttp2.setPriority(1);\n\n\t\t// ߳\n\t\ttp1.start();\n\t\ttp2.start();\n\t\ttp3.start();\n\t}\n}\n"
  },
  {
    "path": "day23/code/day23_Thread/src/cn/itcast_04/ThreadDaemon.java",
    "content": "package cn.itcast_04;\n\npublic class ThreadDaemon extends Thread {\n\t@Override\n\tpublic void run() {\n\t\tfor (int x = 0; x < 100; x++) {\n\t\t\tSystem.out.println(getName() + \":\" + x);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day23/code/day23_Thread/src/cn/itcast_04/ThreadDaemonDemo.java",
    "content": "package cn.itcast_04;\n\n/*\n * public final void setDaemon(boolean on):е̶߳ػ߳ʱJava ˳ \n * \n * ̹˴ս\n */\npublic class ThreadDaemonDemo {\n\tpublic static void main(String[] args) {\n\t\tThread.currentThread().setName(\"\");\n\n\t\tThreadDaemon td1 = new ThreadDaemon();\n\t\tThreadDaemon td2 = new ThreadDaemon();\n\n\t\ttd1.setName(\"\");\n\t\ttd2.setName(\"ŷ\");\n\n\t\t// ػ߳\n\t\ttd1.setDaemon(true);\n\t\ttd2.setDaemon(true);\n\n\t\ttd1.start();\n\t\ttd2.start();\n\n\t\tfor (int x = 0; x < 5; x++) {\n\t\t\tSystem.out.println(Thread.currentThread().getName() + \":\" + x);\n\t\t}\n\n\t}\n}\n"
  },
  {
    "path": "day23/code/day23_Thread/src/cn/itcast_04/ThreadJoin.java",
    "content": "package cn.itcast_04;\n\npublic class ThreadJoin extends Thread {\n\t@Override\n\tpublic void run() {\n\t\tfor (int x = 0; x < 100; x++) {\n\t\t\tSystem.out.println(getName() + \":\" + x);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day23/code/day23_Thread/src/cn/itcast_04/ThreadJoinDemo.java",
    "content": "package cn.itcast_04;\n\n/*\n * public final void join():ȴֹ߳ \n */\npublic class ThreadJoinDemo {\n\tpublic static void main(String[] args) {\n\t\tThreadJoin tj1 = new ThreadJoin();\n\t\tThreadJoin tj2 = new ThreadJoin();\n\t\tThreadJoin tj3 = new ThreadJoin();\n\n\t\ttj1.setName(\"Ԩ\");\n\t\ttj2.setName(\"\");\n\t\ttj3.setName(\"Ԫ\");\n\n\t\ttj1.start();\n\t\ttry {\n\t\t\ttj1.join();\n\t\t} catch (InterruptedException e) {\n\t\t\te.printStackTrace();\n\t\t}\n\n\t\ttj2.start();\n\t\ttj3.start();\n\t}\n}\n"
  },
  {
    "path": "day23/code/day23_Thread/src/cn/itcast_04/ThreadKill.java",
    "content": "package cn.itcast_04;\n\nimport java.text.SimpleDateFormat;\nimport java.util.Date;\n\npublic class ThreadKill extends Thread {\n\t@Override\n\tpublic void run() {\n\t\tSystem.out.println(\"ʼִУ\"\n\t\t\t\t+ new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\")\n\t\t\t\t\t\t.format(new Date()));\n\n\t\ttry {\n\t\t\t// ףҪңҪϢ10\n\t\t\tThread.sleep(10000);\n\t\t} catch (InterruptedException e) {\n\t\t\t// e.printStackTrace();\n\t\t\tSystem.out.println(\"ұɱ\");\n\t\t}\n\n\t\tSystem.out.println(\"ִУ\"\n\t\t\t\t+ new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\")\n\t\t\t\t\t\t.format(new Date()));\n\t}\n}\n"
  },
  {
    "path": "day23/code/day23_Thread/src/cn/itcast_04/ThreadKillDemo.java",
    "content": "package cn.itcast_04;\n\n/*\n * ж߳\n *\t\tpublic final void stop():ֱ\n *\t\tpublic void interrupt():󻹿д\n */\npublic class ThreadKillDemo {\n\tpublic static void main(String[] args) {\n\t\tThreadKill tk = new ThreadKill();\n\t\ttk.start();\n\n\t\t// Ͳִˣȥ\n\t\ttry {\n\t\t\tThread.sleep(3000);\n\t\t\t// tk.stop();\n\t\t\ttk.interrupt();\n\t\t} catch (InterruptedException e) {\n\t\t\te.printStackTrace();\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day23/code/day23_Thread/src/cn/itcast_04/ThreadSleep.java",
    "content": "package cn.itcast_04;\n\nimport java.text.SimpleDateFormat;\nimport java.util.Date;\n\npublic class ThreadSleep extends Thread {\n\t@Override\n\tpublic void run() {\n\t\tfor (int x = 0; x < 100; x++) {\n\t\t\tSystem.out.println(getName()\n\t\t\t\t\t+ \":\"\n\t\t\t\t\t+ x\n\t\t\t\t\t+ \"---\"\n\t\t\t\t\t+ new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\")\n\t\t\t\t\t\t\t.format(new Date()));\n\t\t\ttry {\n\t\t\t\tThread.sleep(1000);\n\t\t\t} catch (InterruptedException e) {\n\t\t\t\te.printStackTrace();\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day23/code/day23_Thread/src/cn/itcast_04/ThreadSleepDemo.java",
    "content": "package cn.itcast_04;\n\n/*\n * public static void sleep(long millis):߳\n */\npublic class ThreadSleepDemo {\n\tpublic static void main(String[] args) {\n\t\tThreadSleep ts1 = new ThreadSleep();\n\t\tThreadSleep ts2 = new ThreadSleep();\n\t\tThreadSleep ts3 = new ThreadSleep();\n\n\t\tts1.setName(\"ͫ|\");\n\t\tts2.setName(\"\");\n\t\tts3.setName(\"ٴ\");\n\n\t\tts1.start();\n\t\tts2.start();\n\t\tts3.start();\n\t}\n}\n"
  },
  {
    "path": "day23/code/day23_Thread/src/cn/itcast_04/ThreadYield.java",
    "content": "package cn.itcast_04;\n\npublic class ThreadYield extends Thread {\n\t@Override\n\tpublic void run() {\n\t\tfor (int x = 0; x < 100; x++) {\n\t\t\tSystem.out.println(getName() + \":\" + x);\n\t\t\tThread.yield();\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day23/code/day23_Thread/src/cn/itcast_04/ThreadYieldDemo.java",
    "content": "package cn.itcast_04;\n\n/*\n * public static void yield():߳,ͣǰִе̶߳󣬲ִ̡߳ \n */\npublic class ThreadYieldDemo {\n\tpublic static void main(String[] args) {\n\t\tThreadYield ty1 = new ThreadYield();\n\t\tThreadYield ty2 = new ThreadYield();\n\n\t\tty1.setName(\"\");\n\t\tty2.setName(\"\");\n\n\t\tty1.start();\n\t\tty2.start();\n\t}\n}\n"
  },
  {
    "path": "day23/code/day23_Thread/src/cn/itcast_05/MyRunnable.java",
    "content": "package cn.itcast_05;\n\npublic class MyRunnable implements Runnable {\n\n\t@Override\n\tpublic void run() {\n\t\tfor (int x = 0; x < 100; x++) {\n\t\t\tSystem.out.println(Thread.currentThread().getName() + \":\" + x);\n\t\t}\n\t}\n\n}\n"
  },
  {
    "path": "day23/code/day23_Thread/src/cn/itcast_05/MyRunnableDemo.java",
    "content": "package cn.itcast_05;\n\n/*\n * ʵRunnableӿڵĲ裺\n * A:MyRunnableʵֽӿRunnable\n * B:дrun()\n * C:MyRunnableĶ\n * D:ThreadĶ󣬲CĶΪ\n * E:߳\n * \n * ˼̳ThreadķʽΪʲôҪʵRunnableӿڵķʽ?\n * ԭΪǵ̳С\n */\npublic class MyRunnableDemo {\n\tpublic static void main(String[] args) {\n\t\t// MyRunnableĶ\n\t\tMyRunnable my = new MyRunnable();\n\n\t\t// ThreadĶ󣬲CĶΪ\n\t\t// Thread(Runnable target)\n\t\t// Thread(Runnable target, String name)\n\t\tThread t1 = new Thread(my, \"Ϸ\");\n\t\tThread t2 = new Thread(my, \"ּ\");\n\n\t\t// ߳\n\t\tt1.start();\n\t\tt2.start();\n\t}\n}\n"
  },
  {
    "path": "day23/code/day23_Thread/src/cn/itcast_06/MovieTicket.java",
    "content": "package cn.itcast_06;\n\npublic class MovieTicket extends Thread {\n\t// Ա\n\tprivate static int tickets = 100;\n\n\t@Override\n\tpublic void run() {\n\t\t// 100Ʊ\n\t\t// int tickets = 100;\n\n\t\twhile (true) {\n\t\t\tif (tickets > 0) {\n\t\t\t\tSystem.out.println(getName() + \"ڳ۵\" + (tickets--) + \"Ʊ\");\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day23/code/day23_Thread/src/cn/itcast_06/MovieTicketDemo.java",
    "content": "package cn.itcast_06;\n\n/*\n * ĳӰԺĿǰӳƬ100Ʊ3ƱƱһģõӰԺƱ\n * ͨǵѧϰǴĿԷӦִ߳ƱĶ\n * \n * ʵַ\n * \t\tA:̳Thread\n * \t\tB:ʵRunnableӿ\n * \n * ̳Thread\n */\npublic class MovieTicketDemo {\n\tpublic static void main(String[] args) {\n\t\t// ̶߳\n\t\tMovieTicket mt1 = new MovieTicket();\n\t\tMovieTicket mt2 = new MovieTicket();\n\t\tMovieTicket mt3 = new MovieTicket();\n\n\t\tmt1.setName(\"1\");\n\t\tmt2.setName(\"2\");\n\t\tmt3.setName(\"3\");\n\n\t\tmt1.start();\n\t\tmt2.start();\n\t\tmt3.start();\n\t}\n}\n"
  },
  {
    "path": "day23/code/day23_Thread/src/cn/itcast_07/MovieTicket.java",
    "content": "package cn.itcast_07;\n\npublic class MovieTicket implements Runnable {\n\t// 100Ʊ\n\tprivate int tickets = 100;\n\n\t@Override\n\tpublic void run() {\n\t\twhile (true) {\n\t\t\tif (tickets > 0) {\n\t\t\t\tSystem.out.println(Thread.currentThread().getName() + \"ڳ۵\"\n\t\t\t\t\t\t+ (tickets--) + \"Ʊ\");\n\t\t\t}\n\t\t}\n\t}\n\n}\n"
  },
  {
    "path": "day23/code/day23_Thread/src/cn/itcast_07/MovieTicketDemo.java",
    "content": "package cn.itcast_07;\n\n/*\n * ʵRunnableӿ\n */\npublic class MovieTicketDemo {\n\tpublic static void main(String[] args) {\n\t\t// һƱԴ\n\t\tMovieTicket mt = new MovieTicket();\n\n\t\t// ߳\n\t\tThread t1 = new Thread(mt, \"1\");\n\t\tThread t2 = new Thread(mt, \"2\");\n\t\tThread t3 = new Thread(mt, \"3\");\n\n\t\tt1.start();\n\t\tt2.start();\n\t\tt3.start();\n\t}\n}\n"
  },
  {
    "path": "day23/code/day23_Thread/src/cn/itcast_08/MovieTicket.java",
    "content": "package cn.itcast_08;\n\npublic class MovieTicket implements Runnable {\n\t// 100Ʊ\n\tprivate int tickets = 100;\n\n\t// @Override\n\t// public void run() {\n\t// while (true) {\n\t// // tickets = 50; t1,t2,t3ֱ\n\t// if (tickets > 0) {\n\t// // ʵ\n\t// try {\n\t// Thread.sleep(100); // t1˯,t2˯\n\t// } catch (InterruptedException e) {\n\t// e.printStackTrace();\n\t// }\n\t//\n\t// System.out.println(Thread.currentThread().getName() + \"ڳ۵\"\n\t// + (tickets--) + \"Ʊ\");\n\t// // \n\t// // 1ڳ۵50Ʊtickets=49\n\t// // 2ڳ۵49Ʊtickets=48\n\t// // һCPUʱִܹеĶһԭԵĶ\n\t// // System.out.println(a+b*c);\n\t// // Thread.currentThread().getName() + \"ڳ۵\"+ (tickets--) +\n\t// // \"Ʊ\"\n\t// // ʵкִܶС\n\t// // 赱ո 1ڳ۵50Ʊ,ʱt1ûִȨt2ˣ\n\t// // 2ڳ۵50Ʊ\n\t//\n\t// }\n\t// }\n\t// }\n\n\t@Override\n\tpublic void run() {\n\t\twhile (true) {\n\t\t\t// tickets = 1; t1,t2,t3ֱ\n\t\t\tif (tickets > 0) {\n\t\t\t\t// ʵ\n\t\t\t\ttry {\n\t\t\t\t\tThread.sleep(100);// t1,t2,t3\n\t\t\t\t} catch (InterruptedException e) {\n\t\t\t\t\te.printStackTrace();\n\t\t\t\t}\n\n\t\t\t\t// ѹ\n\t\t\t\tSystem.out.println(Thread.currentThread().getName() + \"ڳ۵\"\n\t\t\t\t\t\t+ (tickets--) + \"Ʊ\");\n\t\t\t\t// 1ڳ۵1Ʊtickets=0\n\t\t\t\t// 2ڳ۵0Ʊtickets=-1\n\t\t\t\t// 3ڳ۵-1Ʊtickets=-2\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day23/code/day23_Thread/src/cn/itcast_08/MovieTicketDemo.java",
    "content": "package cn.itcast_08;\n\n/*\n * Ϊ˸ʵǼһЩӳ١\n * ǼһЩʱ֮󣬳⣺\n * A:ͬƱ˶\n * \t\tCPUһβԭԵ\n * B:˸Ʊ\n * \t\tԺӳٵµ\n * \n * Ϊʲô?ʲô»̰߳ȫ?\n * A:̻߳\t\n * B:й\n * C:\n * \n * ôǸν?\n */\npublic class MovieTicketDemo {\n\tpublic static void main(String[] args) {\n\t\t// һƱԴ\n\t\tMovieTicket mt = new MovieTicket();\n\n\t\t// ߳\n\t\tThread t1 = new Thread(mt, \"1\");\n\t\tThread t2 = new Thread(mt, \"2\");\n\t\tThread t3 = new Thread(mt, \"3\");\n\t\tThread t4 = new Thread(mt, \"4\");\n\n\t\tt1.start();\n\t\tt2.start();\n\t\tt3.start();\n\t\tt4.start();\n\t}\n}\n"
  },
  {
    "path": "day23/code/day23_Thread/src/cn/itcast_09/MovieTicket.java",
    "content": "package cn.itcast_09;\n\nclass Demo {\n}\n\npublic class MovieTicket implements Runnable {\n\t// 100Ʊ\n\tprivate int tickets = 100;\n\n\t// private Object obj = new Object();\n\tprivate Demo d = new Demo();\n\n\t@Override\n\tpublic void run() {\n\t\twhile (true) {\n\t\t\t// t1,t2,t3\n\t\t\t// t1ˣͬǣɫ(ϲ·ĺ̵)\n\t\t\t// t2,t3ֻɵɵĵȴ\n\t\t\tsynchronized (this) {\n\t\t\t\t// t1ͽˣ޸ıΪɫ\n\t\t\t\tif (tickets > 0) {\n\t\t\t\t\t// ʵ\n\t\t\t\t\ttry {\n\t\t\t\t\t\tThread.sleep(100); // t1Ϣ\n\t\t\t\t\t} catch (InterruptedException e) {\n\t\t\t\t\t\te.printStackTrace();\n\t\t\t\t\t}\n\n\t\t\t\t\tSystem.out.println(Thread.currentThread().getName()\n\t\t\t\t\t\t\t+ \"ڳ۵\" + (tickets--) + \"Ʊ\");\n\t\t\t\t}\n\t\t\t}\n\t\t\t// t1ˣ޸ıΪɫ\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day23/code/day23_Thread/src/cn/itcast_09/MovieTicketDemo.java",
    "content": "package cn.itcast_09;\n\n/*\n * Ϊ˸ʵǼһЩӳ١\n * ǼһЩʱ֮󣬳⣺\n * A:ͬƱ˶\n * \t\tCPUһβԭԵ\n * B:˸Ʊ\n * \t\tԺӳٵµ\n * \n * Ϊʲô?ʲô»̰߳ȫ?\n * A:̻߳\t\n * B:й\n * C:\n * \n * ôǸν?\n * \t\tǰжݵĵطΧȻһˡ\n * \t\tȻͿԽˡ\n * \n * ؼ?\n * \t\tʱjavaṩһͬ顣\n * \n * \t\tʽ\n * \t\t\tsynchronized(){\n * \t\t\t\tҪͬĴ;\n * \t\t\t}\n * \n * \t\t󵽵ʲô?\n * \t\t\t\n * \t\t\t̵߳һ¡\n * \n * \t\tͬĶЩ?\n * \t\t\tĶ\n */\npublic class MovieTicketDemo {\n\tpublic static void main(String[] args) {\n\t\t// һƱԴ\n\t\tMovieTicket mt = new MovieTicket();\n\n\t\t// ߳\n\t\tThread t1 = new Thread(mt, \"1\");\n\t\tThread t2 = new Thread(mt, \"2\");\n\t\tThread t3 = new Thread(mt, \"3\");\n\n\t\tt1.start();\n\t\tt2.start();\n\t\tt3.start();\n\t}\n}\n"
  },
  {
    "path": "day23/code/day23_Thread/src/cn/itcast_10/MovieTicket.java",
    "content": "package cn.itcast_10;\n\nclass Demo {\n}\n\npublic class MovieTicket implements Runnable {\n\t// 100Ʊ\n\tprivate static int tickets = 100;\n\tprivate Object obj = new Object();\n\tprivate int x = 0;\n\n\t// ĽΪif...elseʵ\n\t// @Override\n\t// public void run() {\n\t// while (true) {\n\t// if (x % 2 == 0) {\n\t// synchronized (obj) {\n\t// if (tickets > 0) {\n\t// try {\n\t// Thread.sleep(100);\n\t// } catch (InterruptedException e) {\n\t// e.printStackTrace();\n\t// }\n\t//\n\t// System.out.println(Thread.currentThread().getName()\n\t// + \"ڳ۵\" + (tickets--) + \"Ʊ\");\n\t// }\n\t// }\n\t// } else {\n\t// synchronized (obj) {\n\t// if (tickets > 0) {\n\t// try {\n\t// Thread.sleep(100);\n\t// } catch (InterruptedException e) {\n\t// e.printStackTrace();\n\t// }\n\t//\n\t// System.out.println(Thread.currentThread().getName()\n\t// + \"ڳ۵\" + (tickets--) + \"Ʊ\");\n\t// }\n\t// }\n\t// }\n\t// x++;\n\t// }\n\t// }\n\n\t@Override\n\tpublic void run() {\n\t\twhile (true) {\n\t\t\tif (x % 2 == 0) {\n\t\t\t\tsynchronized (MovieTicket.class) {\n\t\t\t\t\tif (tickets > 0) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tThread.sleep(100);\n\t\t\t\t\t\t} catch (InterruptedException e) {\n\t\t\t\t\t\t\te.printStackTrace();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tSystem.out.println(Thread.currentThread().getName()\n\t\t\t\t\t\t\t\t+ \"ڳ۵\" + (tickets--) + \"Ʊ\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsellTicket();\n\t\t\t}\n\t\t\tx++;\n\t\t}\n\t}\n\n\t// ĽΪһʵ֡\n\t// private void sellTicket() {\n\t// synchronized (obj) {\n\t// if (tickets > 0) {\n\t// try {\n\t// Thread.sleep(100);\n\t// } catch (InterruptedException e) {\n\t// e.printStackTrace();\n\t// }\n\t//\n\t// System.out.println(Thread.currentThread().getName() + \"ڳ۵\"\n\t// + (tickets--) + \"Ʊ\");\n\t// }\n\t// }\n\t// }\n\n\t// private synchronized void sellTicket() {\n\t// if (tickets > 0) {\n\t// try {\n\t// Thread.sleep(100);\n\t// } catch (InterruptedException e) {\n\t// e.printStackTrace();\n\t// }\n\t//\n\t// System.out.println(Thread.currentThread().getName() + \"ڳ۵\"\n\t// + (tickets--) + \"Ʊ\");\n\t// }\n\t// }\n\n\tprivate static synchronized void sellTicket() {\n\t\tif (tickets > 0) {\n\t\t\ttry {\n\t\t\t\tThread.sleep(100);\n\t\t\t} catch (InterruptedException e) {\n\t\t\t\te.printStackTrace();\n\t\t\t}\n\n\t\t\tSystem.out.println(Thread.currentThread().getName() + \"ڳ۵\"\n\t\t\t\t\t+ (tickets--) + \"Ʊ\");\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day23/code/day23_Thread/src/cn/itcast_10/MovieTicketDemo.java",
    "content": "package cn.itcast_10;\n\n/*\n * һһȥͼʵһͬķͬ\n * ʽǰͬؼּӵ\n * \n * ͬʲô?\n * \t\tͬthis\n * \n * ̬ͬʲô?\n * \t\tǰֽļ\n * \t\t\tClass c = MovieTicket.class;\n * \t\t\tClass c = obj.getClass();\n */\npublic class MovieTicketDemo {\n\tpublic static void main(String[] args) {\n\t\t// һƱԴ\n\t\tMovieTicket mt = new MovieTicket();\n\n\t\t// ߳\n\t\tThread t1 = new Thread(mt, \"1\");\n\t\tThread t2 = new Thread(mt, \"2\");\n\t\tThread t3 = new Thread(mt, \"3\");\n\n\t\tt1.start();\n\t\tt2.start();\n\t\tt3.start();\n\t}\n}\n"
  },
  {
    "path": "day23/code/day23_Thread/src/cn/itcast_10/ThreadDemo.java",
    "content": "package cn.itcast_10;\n\npublic class ThreadDemo {\n\tpublic static void main(String[] args) {\n\t\t// StringBuffer/StringBuilder\n\t\t// StringBuffer;\n\t\t// StringBuilder\n\n\t\t// Vector/ArrayList\n\t\t// Vector\n\t\t// ArrayList\n\n\t\t// Hashtable/HashMap\n\t\t// java.util.Hashtable;\n\t\t// HashMap;\n\t}\n}\n"
  },
  {
    "path": "day23/day23总结.txt",
    "content": "1߳()\n\t(1)\n\t\ṭִеӦó\n\t\t̵?\n\t\t\tCPUʹ\n\t(2)߳\n\t\ṭ̵ִ߳·ִеԪ\n\t\t̵߳?\n\t\t\tӦóʹ\n\t\tԭ\n\t\t\tΪ̲߳ȥCPUԴCPU̼߳пٵлԡ\n\t(3)кͲ\n\t\tУ߼ͬʱͬһʱ\n\t\tͬʱͬһʱ\n\t(4)̵߳ʵַ(Լʵֲʹ)\n\t\tA:̳Thread\n\t\tB:ʵRunnableӿ\n\t(5)ļС\n\t\tA:ΪʲôҪдrun()\n\t\tB:߳ʹõĸ\n\t\tC:start()run()\n\t\tD:һ߳ܲ\n\t\tE:˼̳Threadʵ֣ΪʲôҪʵֽӿڵʵ\n\t\tF:\n\t(6)̵߳ĵ\n\t\t̵߳ȣ\n\t\t\tA:ʱ\n\t\t\tB:ռʽ\n\t\t\tjavaõڶַ\n\t\tȡ̵߳ȼ\n\t\t\tĬȼ5\n\t\t\tȼΧ1-10\n\t(7)̵߳Ŀ\n\t\tA:߳\n\t\tB:̼߳\n\t\tC:߳\n\t\tD:ػ߳\n\t\tE:ж߳\n\t(8)ͼ(,ܹԼ)\n\t(9)ͨ߳ģӰԺƱ\n\t\tA:̳Thread\n\t\tB:ʵRunnableӿ\n\t(10)ͨ߳ģӰԺƱ(ӳ)\n\t\tA:ͬƱ\n\t\t\tCPUһִбԭԲ\n\t\tB:˸Ʊ\n\t\t\t̵߳Ժӳ\n\t(11)̰߳ȫβ?\n\t\tA:̻߳\n\t\tB:й\n\t\tC:\n\t(12)\n\t\tA:ͬ\n\t\t\tʽ\n\t\t\t\tsynchronized() {\n\t\t\t\t\tҪͬĴ\n\t\t\t\t}\n\n\t\t\t\t\n\t\tB:ͬ\n\t\t\tǾ̬\tthis\n\t\t\t̬\tǵǰֽļ\n\t(13)鿴ǰѧϰļԴ\n\t\tStringBuffer,Vector,Hashtable"
  },
  {
    "path": "day24/code/day24_Pattern/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day24/code/day24_Pattern/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day24_Pattern</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day24/code/day24_Pattern/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day24/code/day24_Pattern/src/cn/itcast_01/SingletDemo.java",
    "content": "package cn.itcast_01;\n\n/*\n * ģʽܽᡣһģ͡\n * \n * ࣺ\n *\t\tģʽ\n *\t\tΪģʽ\n *\t\tṹģʽ\n *\n * ģʽ֤ڴֻһ\n * \n * \t\twindowsӡվ\n * \n * ܹ֤ڴֻһ?\n * \t\tA:粻ܴ\n * \t\t\t˽\n * \t\tB:ṩһ\n * \t\t\tڳԱλô\n * \t\tC:ṩķʷʽ\n * \t\t\tдһ\n */\npublic class SingletDemo {\n\tpublic static void main(String[] args) {\n\t\t// Student s1 = new Student();\n\t\t// Student s2 = new Student();\n\t\t// System.out.println(s1 == s2);\n\n\t\t// Student.s = null;\n\n\t\tStudent s1 = Student.getStudent();\n\t\tStudent s2 = Student.getStudent();\n\t\tSystem.out.println(s1 == s2);\n\t}\n}\n"
  },
  {
    "path": "day24/code/day24_Pattern/src/cn/itcast_01/Student.java",
    "content": "package cn.itcast_01;\n\npublic class Student {\n\t// ˽\n\tprivate Student() {\n\t}\n\n\t// \n\t// ֻ̬ܷʾ̬,static\n\t// Ϊ˲ӷʣprivate\n\tprivate static Student s = new Student();\n\n\t// ṩ\n\t// Ϊֱӷʣstatic\n\tpublic static Student getStudent() {\n\t\treturn s;\n\t}\n}\n"
  },
  {
    "path": "day24/code/day24_Pattern/src/cn/itcast_02/SingletDemo.java",
    "content": "package cn.itcast_02;\n\npublic class SingletDemo {\n\tpublic static void main(String[] args) {\n\t\tTeacher t1 = Teacher.getTeacher();\n\t\tTeacher t2 = Teacher.getTeacher();\n\n\t\tSystem.out.println(t1 == t2);\n\t}\n}\n"
  },
  {
    "path": "day24/code/day24_Pattern/src/cn/itcast_02/Teacher.java",
    "content": "package cn.itcast_02;\n\n/*\n * ʽصʱʹ\n * ʽõʱȥ\n * \t\t̰߳ȫ\n * \t\tӳټ˼(ʲôʱãʲôʱ)\n * \n * :дһSingleton\n * ԣʽ\n * ʽ\n * \n * Ϊʲô?\n * \t\tʽ׳⣬ʽ⡣\n * \t\t̰߳ȫ⡣\n */\npublic class Teacher {\n\tprivate Teacher() {\n\t}\n\n\tprivate static Teacher t = null;\n\n\tpublic synchronized static Teacher getTeacher() {\n\t\t// t1,t2,t3\n\t\tif (t == null) {\n\t\t\t// t1,t2,t3\n\t\t\tt = new Teacher();\n\t\t}\n\t\treturn t;\n\t}\n}\n"
  },
  {
    "path": "day24/code/day24_Pattern/src/cn/itcast_03/RuntimeDemo.java",
    "content": "package cn.itcast_03;\n\nimport java.io.IOException;\n\n/*\n * Runtime\n * \t\tpublic static Runtime getRuntime()\n * \n * ûй죬ȫǾ̬ġ\n * ϶̬ͨķ˸Ķ\n */\npublic class RuntimeDemo {\n\tpublic static void main(String[] args) throws IOException {\n\t\tRuntime r = Runtime.getRuntime();\n\n\t\t// r.exec(\"calc\");\n\t\tr.exec(\"notepad\");\n\t}\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day24/code/day24_Thread/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day24_Thread</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day24/code/day24_Thread/.settings/org.eclipse.core.resources.prefs",
    "content": "eclipse.preferences.version=1\nencoding//src/cn/itcast_07/ThreadGroupRunnableDemo.java=UTF-8\n"
  },
  {
    "path": "day24/code/day24_Thread/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_01/MovieTicket.java",
    "content": "package cn.itcast_01;\n\nimport java.util.concurrent.locks.Lock;\nimport java.util.concurrent.locks.ReentrantLock;\n\npublic class MovieTicket implements Runnable {\n\n\tprivate int tickets = 100;\n\tprivate Object obj = new Object();\n\n\t// \n\t// private ReentrantLock lock = new ReentrantLock();\n\tprivate Lock lock = new ReentrantLock();\n\n\t// @Override\n\t// public void run() {\n\t// while (true) {\n\t// synchronized (obj) {\n\t// if (tickets > 0) {\n\t// try {\n\t// Thread.sleep(100);\n\t// } catch (InterruptedException e) {\n\t// e.printStackTrace();\n\t// }\n\t//\n\t// System.out.println(Thread.currentThread().getName()\n\t// + \"ڳ۵\" + (tickets--) + \"Ʊ\");\n\t// }\n\t// }\n\t// }\n\t// }\n\n\t@Override\n\tpublic void run() {\n\t\twhile (true) {\n\t\t\ttry {\n\t\t\t\t// \n\t\t\t\tlock.lock();\n\n\t\t\t\tif (tickets > 0) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tThread.sleep(100);\n\t\t\t\t\t} catch (InterruptedException e) {\n\t\t\t\t\t\te.printStackTrace();\n\t\t\t\t\t}\n\n\t\t\t\t\tSystem.out.println(Thread.currentThread().getName()\n\t\t\t\t\t\t\t+ \"ڳ۵\" + (tickets--) + \"Ʊ\");\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\t// ͷ\n\t\t\t\tlock.unlock();\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_01/MovieTicketDemo.java",
    "content": "package cn.itcast_01;\n\n/*\n * Ϊ˸֪μͷģJDK5ԺṩһӿڣLock\n * Lock\n * \t\tpublic void lock():\n * \t\tpublic void unlock():ͷ\n * ʵ\n * \t\tpublic ReentrantLock()\n */\npublic class MovieTicketDemo {\n\tpublic static void main(String[] args) {\n\t\tMovieTicket mt = new MovieTicket();\n\n\t\tThread t1 = new Thread(mt, \"1\");\n\t\tThread t2 = new Thread(mt, \"2\");\n\t\tThread t3 = new Thread(mt, \"3\");\n\n\t\tt1.start();\n\t\tt2.start();\n\t\tt3.start();\n\t}\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_02/DieLock.java",
    "content": "package cn.itcast_02;\n\npublic class DieLock extends Thread {\n\tprivate boolean flag;\n\n\tpublic DieLock(boolean flag) {\n\t\tthis.flag = flag;\n\t}\n\n\t@Override\n\tpublic void run() {\n\t\tif (flag) {\n\t\t\tsynchronized (MyLock.objA) {\n\t\t\t\tSystem.out.println(\"if objA\"); // CPUִȨû\n\t\t\t\tsynchronized (MyLock.objB) {\n\t\t\t\t\tSystem.out.println(\"if objB\");\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tsynchronized (MyLock.objB) {\n\t\t\t\tSystem.out.println(\"else objB\");\n\t\t\t\tsynchronized (MyLock.objA) {\n\t\t\t\t\tSystem.out.println(\"else objA\");\n\t\t\t\t}\n\t\t\t}\n\t\t}   \n\t}\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_02/DieLockDemo.java",
    "content": "package cn.itcast_02;\n\n/*\n * ָϵִ߳еĹУԴһֻȴ\n * \n * \n * \t\tй˺һ˳Է\n * \t\t\tйˣֻ\n * \t\t\tˣ\n * \t\tʵ\t\n * \t\t\tйˣһֻӣһѵ\n * \t\t\tˣһֻӣһѲ\n */\npublic class DieLockDemo {\n\tpublic static void main(String[] args) {\n\t\tDieLock d1 = new DieLock(true);\n\t\tDieLock d2 = new DieLock(false);\n\n\t\td1.start();\n\t\td2.start();\n\t}\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_02/MyLock.java",
    "content": "package cn.itcast_02;\n\npublic class MyLock {\n\tpublic static final Object objA = new Object();\n\tpublic static final Object objB = new Object();\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_03/GetThread.java",
    "content": "package cn.itcast_03;\n\npublic class GetThread implements Runnable {\n\n\tprivate Student s;\n\n\tpublic GetThread(Student s) {\n\t\tthis.s = s;\n\t}\n\n\t@Override\n\tpublic void run() {\n\t\t// Student s = new Student();\n\t\tSystem.out.println(s.name + \"---\" + s.age);\n\t}\n\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_03/SetThread.java",
    "content": "package cn.itcast_03;\n\npublic class SetThread implements Runnable {\n\n\tprivate Student s;\n\n\tpublic SetThread(Student s) {\n\t\tthis.s = s;\n\t}\n\n\t@Override\n\tpublic void run() {\n\t\t// Student s = new Student();\n\t\ts.name = \"ϼ\";\n\t\ts.age = 28;\n\t}\n\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_03/Student.java",
    "content": "package cn.itcast_03;\n\npublic class Student {\n\tString name;\n\tint age;\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_03/StudentDemo.java",
    "content": "package cn.itcast_03;\n\n/*\n * ѧѧԣҲԻȡѧԡǾͰÿȡѾͿˡ\n * ࣺ\n * \t\tѧ\n * \t\tԵ߳\n * \t\tȡԵ߳\n * \t\t\n * \n * 1дһЩ򵥵ĴǷ⣬null---0\n * ԭ:\n * \t\tõĶͻȡĶͬһԣòֵ\n * \n * \t\túͻȡĶͬһ\n */\npublic class StudentDemo {\n\tpublic static void main(String[] args) {\n\t\t// һѧԴ\n\t\tStudent s = new Student();\n\n\t\t// ̶߳\n\t\tSetThread st = new SetThread(s);\n\t\tGetThread gt = new GetThread(s);\n\n\t\tThread t1 = new Thread(st);\n\t\tThread t2 = new Thread(gt);\n\n\t\tt1.start();\n\t\tt2.start();\n\t}\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_04/GetThread.java",
    "content": "package cn.itcast_04;\n\npublic class GetThread implements Runnable {\n\n\tprivate Student s;\n\n\tpublic GetThread(Student s) {\n\t\tthis.s = s;\n\t}\n\n\t@Override\n\tpublic void run() {\n\t\twhile (true) {\n\t\t\tsynchronized (s) {\n\t\t\t\tSystem.out.println(s.name + \"---\" + s.age);\n\t\t\t}\n\t\t}\n\t}\n\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_04/SetThread.java",
    "content": "package cn.itcast_04;\n\npublic class SetThread implements Runnable {\n\n\tprivate Student s;\n\tprivate int x = 0;\n\n\tpublic SetThread(Student s) {\n\t\tthis.s = s;\n\t}\n\n\t@Override\n\tpublic void run() {\n\t\t// ..........\n\t\twhile (true) {\n\t\t\tsynchronized (s) {\n\t\t\t\tif (x % 2 == 0) {\n\t\t\t\t\ts.name = \"ϼ\"; // ûִȨˡ\n\t\t\t\t\ts.age = 28;\n\t\t\t\t} else {\n\t\t\t\t\ts.name = \"\";\n\t\t\t\t\ts.age = 31;\n\t\t\t\t}\n\t\t\t\tx++;\n\t\t\t}\n\n\t\t}\n\t\t// ...........\n\t}\n\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_04/Student.java",
    "content": "package cn.itcast_04;\n\npublic class Student {\n\tString name;\n\tint age;\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_04/StudentDemo.java",
    "content": "package cn.itcast_04;\n\n/*\n * ѧѧԣҲԻȡѧԡǾͰÿȡѾͿˡ\n * ࣺ\n * \t\tѧ\n * \t\tԵ߳\n * \t\tȡԵ߳\n * \t\t\n * \n * 1дһЩ򵥵ĴǷ⣬null---0\n * ԭ:\n * \t\tõĶͻȡĶͬһԣòֵ\n * \n * \t\túͻȡĶͬһ\n * \n * ΪЧһЩǸ鲻ֵͬѭģ⡣\n * ΣЧõˣֳµ\n * 2:\n * \t\tA:ͬݳ˶\n * \t\t\tCPUһʱ㹻ִкܶ\n * \t\tB:ݶӦ\n * \t\t\tϼ 31\n * \t\t\t\t28\n * \n * \t\t\t̵߳\n * \n * һ⣺̰߳ȫ\n * \t\tA:̻߳\t\n * \t\tB:\t\ts\n * \t\tC:\t\t\n * \n * ̰߳ȫ,ô?\n * \t\tͬ顣\n * \t\tע⣺\n * \t\t\tA:̲ͬ߳ʱҪͬʱҪӡ\n * \t\t\tB:ͬʱҪͬһ\n */\npublic class StudentDemo {\n\tpublic static void main(String[] args) {\n\t\t// һѧԴ\n\t\tStudent s = new Student();\n\n\t\t// ̶߳\n\t\tSetThread st = new SetThread(s);\n\t\tGetThread gt = new GetThread(s);\n\n\t\tThread t1 = new Thread(st);\n\t\tThread t2 = new Thread(gt);\n\n\t\tt1.start();\n\t\tt2.start();\n\t}\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_05/GetThread.java",
    "content": "package cn.itcast_05;\n\npublic class GetThread implements Runnable {\n\n\tprivate Student s;\n\n\tpublic GetThread(Student s) {\n\t\tthis.s = s;\n\t}\n\n\t@Override\n\tpublic void run() {\n\t\twhile (true) {\n\t\t\tsynchronized (s) {\n\t\t\t\tif (!s.flag) {\n\t\t\t\t\t// ûݣ͵ȴ\n\t\t\t\t\ttry {\n\t\t\t\t\t\ts.wait(); // t2͵ȴ,ͷ,\n\t\t\t\t\t} catch (InterruptedException e) {\n\t\t\t\t\t\te.printStackTrace();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tSystem.out.println(s.name + \"---\" + s.age);\n\t\t\t\t// ϼ---28\n\t\t\t\t//  ---31\n\n\t\t\t\t// ʾ\n\t\t\t\ts.flag = false;\n\t\t\t\ts.notify();\n\t\t\t}\n\n\t\t\t// t1,t2\n\t\t}\n\t}\n\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_05/SetThread.java",
    "content": "package cn.itcast_05;\n\npublic class SetThread implements Runnable {\n\n\tprivate Student s;\n\tprivate int x = 0;\n\n\tpublic SetThread(Student s) {\n\t\tthis.s = s;\n\t}\n\n\t@Override\n\tpublic void run() {\n\t\twhile (true) {\n\t\t\tsynchronized (s) {\n\t\t\t\tif (s.flag) {\n\t\t\t\t\t// ͱʾ\n\t\t\t\t\ttry {\n\t\t\t\t\t\ts.wait(); // t1͵ȴ\n\t\t\t\t\t} catch (InterruptedException e) {\n\t\t\t\t\t\te.printStackTrace();\n\t\t\t\t\t}// ȴ\n\t\t\t\t}\n\n\t\t\t\tif (x % 2 == 0) {\n\t\t\t\t\ts.name = \"ϼ\";\n\t\t\t\t\ts.age = 28;\n\t\t\t\t} else {\n\t\t\t\t\ts.name = \"\";\n\t\t\t\t\ts.age = 31;\n\t\t\t\t}\n\t\t\t\tx++; // x=1,x=2\n\n\t\t\t\t// ʾ\n\t\t\t\ts.flag = true;\n\t\t\t\ts.notify(); // ѵȴ̣ܹ߳߳ȡCPUִȨ\n\t\t\t}\n\t\t\t// t1,t2\n\t\t}\n\t}\n\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_05/Student.java",
    "content": "package cn.itcast_05;\n\npublic class Student {\n\tString name;\n\tint age;\n\tboolean flag = false; // ʾǷ\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_05/StudentDemo.java",
    "content": "package cn.itcast_05;\n\n/*\n * ѧѧԣҲԻȡѧԡǾͰÿȡѾͿˡ\n * ࣺ\n * \t\tѧ\n * \t\tԵ߳\n * \t\tȡԵ߳\n * \t\t\n * \n * 1дһЩ򵥵ĴǷ⣬null---0\n * ԭ:\n * \t\tõĶͻȡĶͬһԣòֵ\n * \n * \t\túͻȡĶͬһ\n * \n * ΪЧһЩǸ鲻ֵͬѭģ⡣\n * ΣЧõˣֳµ\n * 2:\n * \t\tA:ͬݳ˶\n * \t\t\tCPUһʱ㹻ִкܶ\n * \t\tB:ݶӦ\n * \t\t\tϼ 31\n * \t\t\t\t28\n * \n * \t\t\t̵߳\n * \n * һ⣺̰߳ȫ\n * \t\tA:̻߳\t\n * \t\tB:\t\ts\n * \t\tC:\t\t\n * \n * ̰߳ȫ,ô?\n * \t\tͬ顣\n * \t\tע⣺\n * \t\t\tA:̲ͬ߳ʱҪͬʱҪӡ\n * \t\t\tB:ͬʱҪͬһ\n * \n * ڵݣһγһƬγ֡\n * ʱjavaṩ˵ȴѻơ\n * wait() ̴߳ڵȴ\n * notify()\tѵ߳\n * notifyAll() ߳\n * \n * ΪʲôЩ嵽Object?\n * \t\tΪЩͨãͬԶObjectࡣ\n * \n * θ?\n * \t\tΪܹʵֵȴѣҼһµı\n */\npublic class StudentDemo {\n\tpublic static void main(String[] args) {\n\t\t// һѧԴ\n\t\tStudent s = new Student();\n\n\t\t// ̶߳\n\t\tSetThread st = new SetThread(s);\n\t\tGetThread gt = new GetThread(s);\n\n\t\tThread t1 = new Thread(st);\n\t\tThread t2 = new Thread(gt);\n\t\tt1.start();\n\t\tt2.start();\n\n\t\t// ʱҪifΪwhileҰѻѸΪnotifyAll()\n\t\t// Thread t1 = new Thread(st);\n\t\t// Thread t2 = new Thread(st);\n\t\t// Thread t3 = new Thread(st);\n\t\t// Thread t4 = new Thread(gt);\n\t\t// Thread t5 = new Thread(gt);\n\t\t// Thread t6 = new Thread(gt);\n\t\t//\n\t\t// t1.start();\n\t\t// t2.start();\n\t\t// t3.start();\n\t\t// t4.start();\n\t\t// t5.start();\n\t\t// t6.start();\n\t}\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_06/GetThread.java",
    "content": "package cn.itcast_06;\n\npublic class GetThread implements Runnable {\n\n\tprivate Student s;\n\n\tpublic GetThread(Student s) {\n\t\tthis.s = s;\n\t}\n\n\t@Override\n\tpublic void run() {\n\t\twhile (true) {\n\t\t\ts.get();\n\t\t}\n\t}\n\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_06/SetThread.java",
    "content": "package cn.itcast_06;\n\npublic class SetThread implements Runnable {\n\n\tprivate Student s;\n\tprivate int x = 0;\n\n\tpublic SetThread(Student s) {\n\t\tthis.s = s;\n\t}\n\n\t@Override\n\tpublic void run() {\n\t\twhile (true) {\n\t\t\tif (x % 2 == 0) {\n\t\t\t\ts.set(\"ϼ\", 28);\n\t\t\t} else {\n\t\t\t\ts.set(\"\", 31);\n\t\t\t}\n\t\t\tx++;\n\t\t}\n\t}\n\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_06/Student.java",
    "content": "package cn.itcast_06;\n\npublic class Student {\n\tprivate String name;\n\tprivate int age;\n\tprivate boolean flag = false; // ʾǷ\n\n\tpublic synchronized void set(String name, int age) {\n\t\tif (this.flag) {\n\t\t\ttry {\n\t\t\t\tthis.wait();\n\t\t\t} catch (InterruptedException e) {\n\t\t\t\te.printStackTrace();\n\t\t\t}\n\t\t}\n\n\t\tthis.name = name;\n\t\tthis.age = age;\n\n\t\tthis.flag = true;\n\t\tthis.notify();\n\t}\n\n\tpublic synchronized void get() {\n\t\tif (!this.flag) {\n\t\t\ttry {\n\t\t\t\tthis.wait();\n\t\t\t} catch (InterruptedException e) {\n\t\t\t\te.printStackTrace();\n\t\t\t}\n\t\t}\n\n\t\tSystem.out.println(this.name + \"---\" + this.age);\n\n\t\tthis.flag = false;\n\t\tthis.notify();\n\t}\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_06/StudentDemo.java",
    "content": "package cn.itcast_06;\n\n/*\n * ѧѧԣҲԻȡѧԡǾͰÿȡѾͿˡ\n * ࣺ\n * \t\tѧ\n * \t\tԵ߳\n * \t\tȡԵ߳\n * \t\t\n * \n * 1дһЩ򵥵ĴǷ⣬null---0\n * ԭ:\n * \t\tõĶͻȡĶͬһԣòֵ\n * \n * \t\túͻȡĶͬһ\n * \n * ΪЧһЩǸ鲻ֵͬѭģ⡣\n * ΣЧõˣֳµ\n * 2:\n * \t\tA:ͬݳ˶\n * \t\t\tCPUһʱ㹻ִкܶ\n * \t\tB:ݶӦ\n * \t\t\tϼ 31\n * \t\t\t\t28\n * \n * \t\t\t̵߳\n * \n * һ⣺̰߳ȫ\n * \t\tA:̻߳\t\n * \t\tB:\t\ts\n * \t\tC:\t\t\n * \n * ̰߳ȫ,ô?\n * \t\tͬ顣\n * \t\tע⣺\n * \t\t\tA:̲ͬ߳ʱҪͬʱҪӡ\n * \t\t\tB:ͬʱҪͬһ\n * \n * ڵݣһγһƬγ֡\n * ʱjavaṩ˵ȴѻơ\n * wait() ̴߳ڵȴ\n * notify()\tѵ߳\n * notifyAll() ߳\n * \n * ΪʲôЩ嵽Object?\n * \t\tΪЩͨãͬԶObjectࡣ\n * \n * θ?\n * \t\tΪܹʵֵȴѣҼһµı\n * \n * ͬʵָĽΪͬ\n */\npublic class StudentDemo {\n\tpublic static void main(String[] args) {\n\t\t// һѧԴ\n\t\tStudent s = new Student();\n\n\t\t// ̶߳\n\t\tSetThread st = new SetThread(s);\n\t\tGetThread gt = new GetThread(s);\n\n\t\tThread t1 = new Thread(st);\n\t\tThread t2 = new Thread(gt);\n\t\tt1.start();\n\t\tt2.start();\n\n\t}\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_07/ThreadGroupRunnable.java",
    "content": "package cn.itcast_07;\n\npublic class ThreadGroupRunnable implements Runnable {\n\n\t@Override\n\tpublic void run() {\n\t\tfor (int x = 0; x < 100; x++) {\n\t\t\tSystem.out.println(Thread.currentThread().getName() + \":\" + x);\n\t\t}\n\t}\n\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_07/ThreadGroupRunnableDemo.java",
    "content": "package cn.itcast_07;\n\n/*\n * 线程组：Java中使用ThreadGroup来表示线程组，它可以对一批线程进行分类管理，Java允许程序直接对线程组进行控制。\n * \n * 默认情况下，所有的线程都属于主线程组。\n * public final ThreadGroup getThreadGroup()：返回该线程所属的线程组。 \n * \n * public final String getName():返回此线程组的名称。 \n * \n * Thread(ThreadGroup group, Runnable target, String name):设置线程组名称\n * \n * public final int getMaxPriority():返回此线程组最高优先级\n */\npublic class ThreadGroupRunnableDemo {\n\tpublic static void main(String[] args) {\n\t\t// method1();\n\n\t\tmethod2();\n\t}\n\n\t// 设置线程所属的线程组\n\tprivate static void method2() {\n\t\t// public ThreadGroup(String name)\n\t\tThreadGroup tg = new ThreadGroup(\"王子二人组\");\n\t\t// tg.setDaemon(true);\n\n\t\tThreadGroupRunnable tgr = new ThreadGroupRunnable();\n\t\tThread t1 = new Thread(tg, tgr, \"王亚聪\");\n\t\tThread t2 = new Thread(tg, tgr, \"王思聪\");\n\n\t\t// System.out.println(t1.getThreadGroup().getName()); // 王子二人组\n\t\t// System.out.println(t2.getThreadGroup().getName()); // 王子二人组\n\t\t// System.out.println(Thread.currentThread().getThreadGroup().getName());\n\t\t// // main\n\n\t\t// 设置t1,t2为守护线程\n\t\t// t1.setDaemon(true);\n\t\t// t2.setDaemon(true);\n\n\t\t// tg.stop();\n\n\t\t// System.out.println(tg.isDaemon());\n\n\t\t// t1.start();\n\t\t// t2.start();\n\n\t\t// for (int x = 0; x < 5; x++) {\n\t\t// System.out.println(\"王健林\" + x);\n\t\t// }\n\n\t\t// System.out.println(tg.getMaxPriority());\n\n\t\t// System.out.println(tg.toString());\n\n\t\ttg.setMaxPriority(8);\n\t\t// System.out.println(tg.getMaxPriority());\n\n\t\tSystem.out.println(t1.getPriority());\n\t\tSystem.out.println(t2.getPriority());\n\t}\n\n\t// 获取线程所在的线程组名称\n\tprivate static void method1() {\n\t\tThreadGroupRunnable tgr = new ThreadGroupRunnable();\n\n\t\tThread t1 = new Thread(tgr, \"王亚聪\");\n\t\tThread t2 = new Thread(tgr, \"王思聪\");\n\n\t\t// public final ThreadGroup getThreadGroup()\n\t\tThreadGroup tg1 = t1.getThreadGroup();\n\t\tThreadGroup tg2 = t2.getThreadGroup();\n\n\t\tString t1Name = tg1.getName();\n\t\tString t2Name = tg2.getName();\n\n\t\tSystem.out.println(t1Name); // main\n\t\tSystem.out.println(t2Name); // main\n\n\t\tSystem.out.println(Thread.currentThread().getThreadGroup().getName()); // main\n\n\t\t// t1.start();\n\t\t// t2.start();\n\t}\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_08/MyRunnable.java",
    "content": "package cn.itcast_08;\n\npublic class MyRunnable implements Runnable {\n\n\t@Override\n\tpublic void run() {\n\t\tfor (int x = 0; x < 100; x++) {\n\t\t\tSystem.out.println(Thread.currentThread().getName() + \":\" + x);\n\t\t}\n\t}\n\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_08/ThreadPoolDemo.java",
    "content": "package cn.itcast_08;\n\nimport java.util.concurrent.ExecutorService;\nimport java.util.concurrent.Executors;\n\n/*\n * ̳߳أ̳߳ÿһ̴߳󣬲ٴλص̳߳гΪ״̬ȴһʹá\n * \n * 裺\n * \t\tA:MyRunnableʵRunnableӿ\n * \t\tB:MyRunnable\n * \t\tC:̳߳ض\n * \t\tD:ύ\n * \t\tE:ͷ\n */\npublic class ThreadPoolDemo {\n\tpublic static void main(String[] args) {\n\t\t// ʵRunnableӿڵĶ\n\t\tMyRunnable my = new MyRunnable();\n\n\t\t// ̳߳ض\n\t\t// public static ExecutorService newFixedThreadPool(int nThreads)\n\t\tExecutorService pool = Executors.newFixedThreadPool(5);\n\n\t\t// ύ\n\t\t// Future<?> submit(Runnable task)\n\t\tpool.submit(my);\n\t\tpool.submit(my);\n\t\tpool.submit(my);\n\t\tpool.submit(my);\n\t\tpool.submit(my);\n\n\t\t// ͷ\n\t\tpool.shutdown();\n\t}\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_09/MyCallable.java",
    "content": "package cn.itcast_09;\n\nimport java.util.concurrent.Callable;\n\npublic class MyCallable implements Callable {\n\n\t@Override\n\tpublic Object call() throws Exception {\n\t\tfor (int x = 0; x < 100; x++) {\n\t\t\tSystem.out.println(Thread.currentThread().getName() + \":\" + x);\n\t\t}\n\t\treturn null;\n\t}\n\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_09/ThreadPoolDemo.java",
    "content": "package cn.itcast_09;\n\nimport java.util.concurrent.ExecutorService;\nimport java.util.concurrent.Executors;\n\n/*\n * ̳߳أ̳߳ÿһ̴߳󣬲ٴλص̳߳гΪ״̬ȴһʹá\n * \n * 裺\n * \t\tA:MyCallableʵCallableӿ\n * \t\tB:MyCallable\n * \t\tC:̳߳ض\n * \t\tD:ύ\n * \t\tE:ͷ\n */\npublic class ThreadPoolDemo {\n\tpublic static void main(String[] args) {\n\t\t// ʵRunnableӿڵĶ\n\t\tMyCallable my = new MyCallable();\n\n\t\t// ̳߳ض\n\t\t// public static ExecutorService newFixedThreadPool(int nThreads)\n\t\tExecutorService pool = Executors.newFixedThreadPool(5);\n\n\t\t// ύ\n\t\t// Future<?> submit(Runnable task)\n\t\tpool.submit(my);\n\t\tpool.submit(my);\n\t\tpool.submit(my);\n\t\tpool.submit(my);\n\t\tpool.submit(my);\n\n\t\t// ͷ\n\t\tpool.shutdown();\n\t}\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_10/MyCallable.java",
    "content": "package cn.itcast_10;\n\nimport java.util.concurrent.Callable;\n\npublic class MyCallable implements Callable<Integer> {\n\n\tprivate int number;\n\n\tpublic MyCallable(int number) {\n\t\tthis.number = number;\n\t}\n\n\t@Override\n\tpublic Integer call() throws Exception {\n\t\tint sum = 0;\n\t\tfor (int x = 1; x <= number; x++) {\n\t\t\tsum += x;\n\t\t}\n\t\treturn sum;\n\t}\n\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_10/ThreadPoolDemo.java",
    "content": "package cn.itcast_10;\n\nimport java.util.concurrent.ExecutionException;\nimport java.util.concurrent.ExecutorService;\nimport java.util.concurrent.Executors;\nimport java.util.concurrent.Future;\n\n/*\n * Ͱ\n */\npublic class ThreadPoolDemo {\n\tpublic static void main(String[] args) throws InterruptedException,\n\t\t\tExecutionException {\n\t\t// ̳߳ض\n\t\tExecutorService pool = Executors.newFixedThreadPool(3);\n\n\t\t// ύ\n\t\tFuture<Integer> f1 = pool.submit(new MyCallable(10));\n\t\tFuture<Integer> f2 = pool.submit(new MyCallable(50));\n\t\tFuture<Integer> f3 = pool.submit(new MyCallable(100));\n\n\t\tInteger i1 = f1.get();\n\t\tInteger i2 = f2.get();\n\t\tInteger i3 = f3.get();\n\n\t\tSystem.out.println(i1);\n\t\tSystem.out.println(i2);\n\t\tSystem.out.println(i3);\n\n\t\tpool.shutdown();\n\t}\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_11/NiMingDemo.java",
    "content": "package cn.itcast_11;\n\n/*\n * ڲķʽ̳߳\n * \n * new () {\n * \t\tд\n * };\n */\npublic class NiMingDemo {\n\tpublic static void main(String[] args) {\n\t\t/*\n\t\t * new Thread() {\n\t\t * \n\t\t * @Override public void run() { for (int x = 0; x < 100; x++) {\n\t\t * System.out.println(\"hello\" + x); } } }.start();\n\t\t * \n\t\t * new Thread() {\n\t\t * \n\t\t * @Override public void run() { for (int x = 0; x < 100; x++) {\n\t\t * System.out.println(\"world\" + x); } } }.start();\n\t\t */\n\n\t\t/*\n\t\t * new Thread(new Runnable() {\n\t\t * \n\t\t * @Override public void run() { for (int x = 0; x < 100; x++) {\n\t\t * System.out.println(\"javase\" + x); } } }).start();\n\t\t * \n\t\t * new Thread(new Runnable() {\n\t\t * \n\t\t * @Override public void run() { for (int x = 0; x < 100; x++) {\n\t\t * System.out.println(\"javaee\" + x); } } }).start();\n\t\t */\n\n\t\t// \n\t\tnew Thread(new Runnable() {\n\t\t\t@Override\n\t\t\tpublic void run() {\n\t\t\t\tfor (int x = 0; x < 100; x++) {\n\t\t\t\t\tSystem.out.println(\"android\" + x);\n\t\t\t\t}\n\t\t\t}\n\t\t}) {\n\t\t\t@Override\n\t\t\tpublic void run() {\n\t\t\t\tfor (int x = 0; x < 100; x++) {\n\t\t\t\t\tSystem.out.println(\"haha\" + x);\n\t\t\t\t}\n\t\t\t}\n\t\t}.start();\n\n\t}\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_12/TimerDemo.java",
    "content": "package cn.itcast_12;\n\nimport java.util.Timer;\nimport java.util.TimerTask;\n\n/*\n * һɣ\n * Timer,TimerTask\n * \n * Timer:\n * \t\tpublic Timer()һ¼ʱ\n */\npublic class TimerDemo {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\tfinal Timer t = new Timer();\n\n\t\t// public void schedule(TimerTask task,long delay):delaytask\n\t\t// t.schedule(new MyTask(t), 3000);\n\n\t\t// ڲʵ\n\t\tt.schedule(new TimerTask() {\n\n\t\t\t@Override\n\t\t\tpublic void run() {\n\t\t\t\tSystem.out.println(\"ըը,duang duang duang\");\n\t\t\t\tt.cancel();\n\t\t\t}\n\n\t\t}, 3000);\n\t}\n}\n\nclass MyTask extends TimerTask {\n\tprivate Timer t;\n\n\tpublic MyTask(Timer t) {\n\t\tthis.t = t;\n\t}\n\n\t@Override\n\tpublic void run() {\n\t\tSystem.out.println(\"ըը,duang duang duang\");\n\t\tt.cancel();\n\t}\n}"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_12/TimerDemo2.java",
    "content": "package cn.itcast_12;\n\nimport java.text.ParseException;\nimport java.text.SimpleDateFormat;\nimport java.util.Date;\nimport java.util.Timer;\nimport java.util.TimerTask;\n\n/*\n * ըҪը\n */\npublic class TimerDemo2 {\n\tpublic static void main(String[] args) throws ParseException {\n\t\t// \n\t\tTimer t = new Timer();\n\n\t\t// \n\t\t// t.schedule(new TimerTask() {\n\t\t// @Override\n\t\t// public void run() {\n\t\t// System.out.println(\"Ҫըˣ\");\n\t\t// }\n\t\t// }, 2000);\n\n\t\t// public void schedule(TimerTask task,long delay,long\n\t\t// period):һdelayԺÿperiod\n\t\t// t.schedule(new TimerTask() {\n\t\t// @Override\n\t\t// public void run() {\n\t\t// System.out.println(\"ը\");\n\t\t// }\n\t\t// }, 3000, 1000);\n\n\t\t// public void schedule(TimerTask task,Date time)\n\t\tString s = \"2015-04-12 15:48:20\";\n\t\tSimpleDateFormat sdf = new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\");\n\t\tDate d = sdf.parse(s);\n\n\t\tt.schedule(new TimerTask() {\n\t\t\t@Override\n\t\t\tpublic void run() {\n\t\t\t\tSystem.out.println(\"ը\");\n\t\t\t}\n\t\t}, d, 3000);\n\t}\n}\n"
  },
  {
    "path": "day24/code/day24_Thread/src/cn/itcast_12/TimerTest.java",
    "content": "package cn.itcast_12;\n\nimport java.io.File;\nimport java.text.ParseException;\nimport java.text.SimpleDateFormat;\nimport java.util.Date;\nimport java.util.Timer;\nimport java.util.TimerTask;\n\n/*\n * 4ɾd:\\\\helloļ\n */\npublic class TimerTest {\n\tpublic static void main(String[] args) throws ParseException {\n\t\tTimer t = new Timer();\n\n\t\tString s = \"2015-04-12 15:55:30\";\n\t\tSimpleDateFormat sdf = new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\");\n\t\tDate d = sdf.parse(s);\n\n\t\tt.schedule(new DeleteFolder(new File(\"d:\\\\hello\")), d);\n\t}\n}\n\nclass DeleteFolder extends TimerTask {\n\tprivate File folder;\n\n\tpublic DeleteFolder(File folder) {\n\t\tthis.folder = folder;\n\t}\n\n\t@Override\n\tpublic void run() {\n\t\tdeleteFolder(folder);\n\t}\n\n\tprivate void deleteFolder(File folder) {\n\t\tFile[] fileArray = folder.listFiles();\n\t\tif (fileArray != null) {\n\t\t\tfor (File file : fileArray) {\n\t\t\t\tif (file.isDirectory()) {\n\t\t\t\t\tdeleteFolder(file);\n\t\t\t\t} else {\n\t\t\t\t\tfile.delete();\n\t\t\t\t}\n\t\t\t}\n\t\t\tfolder.delete();\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day24/day24总结.txt",
    "content": "1߳()\n\t(1)JDK5Lock\n\t\tA:lock()\n\t\tB:unlock()\n\t(2)\n\t\tҪһ顣\n\t(3)̼߳ͨ\n\t\tA:Ĵʵ\n\t\tB:̰߳ȫĴ\n\t\tC:ȴѻƵĴ\n\t\tD:ͨͬĽĴ\n\t(4)߳\n\t\tThreadGroup\n\t(5)̳߳\n\t\t...\n\t\tExecutors\n\t\tfuture<> newFixedThreadPool()\n\t(6)̷߳ʽ3\n\t\tʵCallableӿ\n\n\t\tô\n\t\t\tA:ֵ\n\t\t\tB:쳣\n\t\t׶ˣ\n\t\t\tȽ鷳\n\n\t\t\n\t\t\t\n\t(7)ʱ\n\t\tTimer\n\t\tTimerTask\n\t\t\n2ģʽ()\n\t(1)֤ڴֻһ\n\t(2)ʵֵ?\n\t\tA:˽\n\t\tB:Լṩ\n\t\tC:ṩʷʽ\n\t(3)ʵ֣\n\t\tA:ʽ\n\t\t\tpublic class Student {\n\t\t\t\tprivate Student(){}\n\n\t\t\t\tprivate static Student s = new Student();\n\n\t\t\t\tpublic static Student getStudent() {\n\t\t\t\t\treturn s;\n\t\t\t\t}\n\t\t\t}\n\t\tB:ʽ\n\t\t\tpublic class Student {\n\t\t\t\tprivate Student(){}\n\n\t\t\t\tprivate static Student s = null;\n\n\t\t\t\tpublic static Student getStudent() {\n\t\t\t\t\tif(s == null) {\n\t\t\t\t\t\ts = new Student();\n\t\t\t\t\t}\n\t\t\t\t\treturn s;\n\t\t\t\t}\n\t\t\t}\n\t(4)ԺͿ\n\t\tA:\n\t\t\tʽ\n\n\t\t\t̰߳ȫ Ҫsynchronizedؼ\n\t\t\tӳټ˼\n\t\tB:\n\t\t\tʽ\n\t(5)Runtime\n\t\tǵģʽʽʵ֡\n\t\tpublic class Runtime{\n\t\t\tprivate Runtime(){}\n\t\t\tprivate static Runtime r = new Runtime();\n\t\t\tpublic static Runtime getInstance(){\n\t\t\t\treturn r;\n\t\t\t}\n\t\t}"
  },
  {
    "path": "day25/code/Eclipse版本的登录注册/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day25/code/Eclipse版本的登录注册/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>Eclipse版本的登录注册</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day25/code/Eclipse版本的登录注册/.settings/org.eclipse.core.resources.prefs",
    "content": "eclipse.preferences.version=1\nencoding/<project>=UTF-8\n"
  },
  {
    "path": "day25/code/Eclipse版本的登录注册/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day25/code/Eclipse版本的登录注册/bin/cn/itcast/view/GuessNumberJFrame.form",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<Form version=\"1.3\" maxVersion=\"1.9\" type=\"org.netbeans.modules.form.forminfo.JFrameFormInfo\">\n  <Properties>\n    <Property name=\"defaultCloseOperation\" type=\"int\" value=\"3\"/>\n  </Properties>\n  <SyntheticProperties>\n    <SyntheticProperty name=\"formSizePolicy\" type=\"int\" value=\"1\"/>\n    <SyntheticProperty name=\"generateCenter\" type=\"boolean\" value=\"false\"/>\n  </SyntheticProperties>\n  <AuxValues>\n    <AuxValue name=\"FormSettings_autoResourcing\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_autoSetComponentName\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_generateFQN\" type=\"java.lang.Boolean\" value=\"true\"/>\n    <AuxValue name=\"FormSettings_generateMnemonicsCode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_i18nAutoMode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_layoutCodeTarget\" type=\"java.lang.Integer\" value=\"1\"/>\n    <AuxValue name=\"FormSettings_listenerGenerationStyle\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_variablesLocal\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_variablesModifier\" type=\"java.lang.Integer\" value=\"2\"/>\n  </AuxValues>\n\n  <Layout>\n    <DimensionLayout dim=\"0\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"1\" attributes=\"0\">\n              <EmptySpace max=\"32767\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n                  <Group type=\"102\" attributes=\"0\">\n                      <Component id=\"jtfGuessNumber\" min=\"-2\" pref=\"154\" max=\"-2\" attributes=\"0\"/>\n                      <EmptySpace type=\"separate\" max=\"-2\" attributes=\"0\"/>\n                      <Component id=\"guessButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  </Group>\n                  <Component id=\"jLabel1\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace min=\"-2\" pref=\"46\" max=\"-2\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n    <DimensionLayout dim=\"1\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"0\" attributes=\"0\">\n              <EmptySpace min=\"-2\" pref=\"46\" max=\"-2\" attributes=\"0\"/>\n              <Component id=\"jLabel1\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              <EmptySpace min=\"-2\" pref=\"24\" max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"jtfGuessNumber\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"guessButton\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace pref=\"36\" max=\"32767\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n  </Layout>\n  <SubComponents>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel1\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x7cfb;&#x7edf;&#x5df2;&#x7ecf;&#x4ea7;&#x751f;&#x4e86;&#x4e00;&#x4e2a;&#x968f;&#x673a;&#x6570;,&#x8bf7;&#x8f93;&#x5165;&#x4f60;&#x8981;&#x731c;&#x7684;&#x6570;&#x636e;(1-100)\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JTextField\" name=\"jtfGuessNumber\">\n    </Component>\n    <Component class=\"javax.swing.JButton\" name=\"guessButton\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x6211;&#x731c;\"/>\n      </Properties>\n      <Events>\n        <EventHandler event=\"actionPerformed\" listener=\"java.awt.event.ActionListener\" parameters=\"java.awt.event.ActionEvent\" handler=\"guessButtonActionPerformed\"/>\n      </Events>\n    </Component>\n  </SubComponents>\n</Form>\n"
  },
  {
    "path": "day25/code/Eclipse版本的登录注册/bin/cn/itcast/view/LoginJFrame.form",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<Form version=\"1.3\" maxVersion=\"1.9\" type=\"org.netbeans.modules.form.forminfo.JFrameFormInfo\">\n  <NonVisualComponents>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel2\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"jLabel2\"/>\n      </Properties>\n    </Component>\n  </NonVisualComponents>\n  <Properties>\n    <Property name=\"defaultCloseOperation\" type=\"int\" value=\"3\"/>\n    <Property name=\"resizable\" type=\"boolean\" value=\"false\"/>\n  </Properties>\n  <SyntheticProperties>\n    <SyntheticProperty name=\"formSizePolicy\" type=\"int\" value=\"1\"/>\n    <SyntheticProperty name=\"generateCenter\" type=\"boolean\" value=\"false\"/>\n  </SyntheticProperties>\n  <AuxValues>\n    <AuxValue name=\"FormSettings_autoResourcing\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_autoSetComponentName\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_generateFQN\" type=\"java.lang.Boolean\" value=\"true\"/>\n    <AuxValue name=\"FormSettings_generateMnemonicsCode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_i18nAutoMode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_layoutCodeTarget\" type=\"java.lang.Integer\" value=\"1\"/>\n    <AuxValue name=\"FormSettings_listenerGenerationStyle\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_variablesLocal\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_variablesModifier\" type=\"java.lang.Integer\" value=\"2\"/>\n  </AuxValues>\n\n  <Layout>\n    <DimensionLayout dim=\"0\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"0\" attributes=\"0\">\n              <EmptySpace min=\"-2\" pref=\"48\" max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"0\" max=\"-2\" attributes=\"0\">\n                  <Group type=\"102\" attributes=\"0\">\n                      <Component id=\"loginButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                      <EmptySpace pref=\"124\" max=\"32767\" attributes=\"0\"/>\n                      <Component id=\"resetButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  </Group>\n                  <Group type=\"102\" attributes=\"0\">\n                      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n                          <Component id=\"jLabel1\" alignment=\"0\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                          <Component id=\"jLabel3\" alignment=\"0\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                      </Group>\n                      <EmptySpace type=\"unrelated\" max=\"-2\" attributes=\"0\"/>\n                      <Group type=\"103\" groupAlignment=\"0\" max=\"-2\" attributes=\"0\">\n                          <Component id=\"jtfUsername\" max=\"32767\" attributes=\"0\"/>\n                          <Component id=\"jpfPassword\" pref=\"190\" max=\"32767\" attributes=\"0\"/>\n                      </Group>\n                  </Group>\n              </Group>\n              <EmptySpace type=\"unrelated\" max=\"-2\" attributes=\"0\"/>\n              <Component id=\"registButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              <EmptySpace max=\"32767\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n    <DimensionLayout dim=\"1\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"0\" attributes=\"0\">\n              <EmptySpace min=\"-2\" pref=\"34\" max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"jLabel1\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jtfUsername\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"registButton\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace min=\"-2\" pref=\"32\" max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"jLabel3\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jpfPassword\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace pref=\"57\" max=\"32767\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"loginButton\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"resetButton\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace min=\"-2\" pref=\"79\" max=\"-2\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n  </Layout>\n  <SubComponents>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel1\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x7528;&#x6237;&#x540d;:\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel3\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x5bc6;&#x7801;:\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JTextField\" name=\"jtfUsername\">\n    </Component>\n    <Component class=\"javax.swing.JPasswordField\" name=\"jpfPassword\">\n    </Component>\n    <Component class=\"javax.swing.JButton\" name=\"loginButton\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x767b;&#x5f55;\"/>\n      </Properties>\n      <Events>\n        <EventHandler event=\"actionPerformed\" listener=\"java.awt.event.ActionListener\" parameters=\"java.awt.event.ActionEvent\" handler=\"loginButtonActionPerformed\"/>\n      </Events>\n    </Component>\n    <Component class=\"javax.swing.JButton\" name=\"resetButton\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x91cd;&#x7f6e;\"/>\n      </Properties>\n      <Events>\n        <EventHandler event=\"actionPerformed\" listener=\"java.awt.event.ActionListener\" parameters=\"java.awt.event.ActionEvent\" handler=\"resetButtonActionPerformed\"/>\n      </Events>\n    </Component>\n    <Component class=\"javax.swing.JButton\" name=\"registButton\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x6ce8;&#x518c;\"/>\n      </Properties>\n      <Events>\n        <EventHandler event=\"actionPerformed\" listener=\"java.awt.event.ActionListener\" parameters=\"java.awt.event.ActionEvent\" handler=\"registButtonActionPerformed\"/>\n      </Events>\n    </Component>\n  </SubComponents>\n</Form>\n"
  },
  {
    "path": "day25/code/Eclipse版本的登录注册/bin/cn/itcast/view/RegistJFrame.form",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<Form version=\"1.3\" maxVersion=\"1.9\" type=\"org.netbeans.modules.form.forminfo.JFrameFormInfo\">\n  <NonVisualComponents>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel2\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"jLabel2\"/>\n      </Properties>\n    </Component>\n  </NonVisualComponents>\n  <Properties>\n    <Property name=\"defaultCloseOperation\" type=\"int\" value=\"3\"/>\n  </Properties>\n  <SyntheticProperties>\n    <SyntheticProperty name=\"formSizePolicy\" type=\"int\" value=\"1\"/>\n    <SyntheticProperty name=\"generateCenter\" type=\"boolean\" value=\"false\"/>\n  </SyntheticProperties>\n  <AuxValues>\n    <AuxValue name=\"FormSettings_autoResourcing\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_autoSetComponentName\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_generateFQN\" type=\"java.lang.Boolean\" value=\"true\"/>\n    <AuxValue name=\"FormSettings_generateMnemonicsCode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_i18nAutoMode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_layoutCodeTarget\" type=\"java.lang.Integer\" value=\"1\"/>\n    <AuxValue name=\"FormSettings_listenerGenerationStyle\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_variablesLocal\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_variablesModifier\" type=\"java.lang.Integer\" value=\"2\"/>\n  </AuxValues>\n\n  <Layout>\n    <DimensionLayout dim=\"0\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"0\" attributes=\"0\">\n              <EmptySpace min=\"-2\" pref=\"48\" max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"0\" max=\"-2\" attributes=\"0\">\n                  <Group type=\"102\" attributes=\"0\">\n                      <Component id=\"registButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                      <EmptySpace pref=\"124\" max=\"32767\" attributes=\"0\"/>\n                      <Component id=\"cancleButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  </Group>\n                  <Group type=\"102\" attributes=\"0\">\n                      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n                          <Component id=\"jLabel1\" alignment=\"0\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                          <Component id=\"jLabel3\" alignment=\"0\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                      </Group>\n                      <EmptySpace type=\"unrelated\" max=\"-2\" attributes=\"0\"/>\n                      <Group type=\"103\" groupAlignment=\"0\" max=\"-2\" attributes=\"0\">\n                          <Component id=\"jtfUsername\" max=\"32767\" attributes=\"0\"/>\n                          <Component id=\"jpfPassword\" pref=\"190\" max=\"32767\" attributes=\"0\"/>\n                      </Group>\n                  </Group>\n              </Group>\n              <EmptySpace pref=\"79\" max=\"32767\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n    <DimensionLayout dim=\"1\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"0\" attributes=\"0\">\n              <EmptySpace min=\"-2\" pref=\"36\" max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"jLabel1\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jtfUsername\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace min=\"-2\" pref=\"34\" max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"jLabel3\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jpfPassword\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace min=\"-2\" pref=\"59\" max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"registButton\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"cancleButton\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace pref=\"77\" max=\"32767\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n  </Layout>\n  <SubComponents>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel1\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x7528;&#x6237;&#x540d;:\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel3\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x5bc6;&#x7801;:\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JTextField\" name=\"jtfUsername\">\n    </Component>\n    <Component class=\"javax.swing.JPasswordField\" name=\"jpfPassword\">\n    </Component>\n    <Component class=\"javax.swing.JButton\" name=\"registButton\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x6ce8;&#x518c;\"/>\n      </Properties>\n      <Events>\n        <EventHandler event=\"actionPerformed\" listener=\"java.awt.event.ActionListener\" parameters=\"java.awt.event.ActionEvent\" handler=\"registButtonActionPerformed\"/>\n      </Events>\n    </Component>\n    <Component class=\"javax.swing.JButton\" name=\"cancleButton\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x53d6;&#x6d88;\"/>\n      </Properties>\n      <Events>\n        <EventHandler event=\"actionPerformed\" listener=\"java.awt.event.ActionListener\" parameters=\"java.awt.event.ActionEvent\" handler=\"cancleButtonActionPerformed\"/>\n      </Events>\n    </Component>\n  </SubComponents>\n</Form>\n"
  },
  {
    "path": "day25/code/Eclipse版本的登录注册/bin/登录注册.txt",
    "content": "登录注册：\n\n有哪些类?\n    用户类\n        用户描述类\n        用户操作类\n    登录窗体\n    注册窗体\n类有哪些成员?\n    用户类\n        用户描述类\n               用户名,密码\n        用户操作类\n                登录,注册\n类与类的关系?\n    在登录窗体上点击登录按钮，调用登录功能\n    在注册窗体上点击注册按钮，调用注册功能\n\n\n分包：\n    cn.itcast.pojo  用户基本描述类\n    cn.itcast.dao   用户操作接口\n    cn.itcast.dao.impl  用户操作具体实现类\n    cn.itcast.util  工具类\n    cn.itcast.view  窗体类"
  },
  {
    "path": "day25/code/Eclipse版本的登录注册/count.txt",
    "content": "count=5"
  },
  {
    "path": "day25/code/Eclipse版本的登录注册/src/cn/itcast/dao/UserDao.java",
    "content": "/*\n * To change this license header, choose License Headers in Project Properties.\n * To change this template file, choose Tools | Templates\n * and open the template in the editor.\n */\n\npackage cn.itcast.dao;\n\nimport cn.itcast.pojo.User;\n\n/**\n *\n * @author fqy\n */\npublic interface UserDao {\n    public abstract  boolean isLogin(String username,String password);\n    public abstract  void regist(User user);\n}\n"
  },
  {
    "path": "day25/code/Eclipse版本的登录注册/src/cn/itcast/dao/impl/UserDaoImpl.java",
    "content": "/*\n * To change this license header, choose License Headers in Project Properties.\n * To change this template file, choose Tools | Templates\n * and open the template in the editor.\n */\npackage cn.itcast.dao.impl;\n\nimport cn.itcast.dao.UserDao;\nimport cn.itcast.pojo.User;\nimport java.io.BufferedReader;\nimport java.io.BufferedWriter;\nimport java.io.File;\nimport java.io.FileReader;\nimport java.io.FileWriter;\nimport java.io.IOException;\n\n/**\n *\n * @author fqy\n */\npublic class UserDaoImpl implements UserDao {\n\n    private static File file = new File(\"user.txt\");\n\n    static {\n        try {\n            file.createNewFile();\n        } catch (IOException ex) {\n            ex.printStackTrace();\n        }\n    }\n\n    @Override\n    public boolean isLogin(String username, String password) {\n        boolean flag = false;\n\n        BufferedReader br = null;\n        try {\n            br = new BufferedReader(new FileReader(file));\n            String line = null;\n            while ((line = br.readLine()) != null) {\n                String[] datas = line.split(\"=\");\n                if (username.equals(datas[0]) && password.equals(datas[1])) {\n                    flag = true;\n                    break;\n                }\n            }\n        } catch (IOException e) {\n            e.printStackTrace();\n        } finally {\n            if (br != null) {\n                try {\n                    br.close();\n                } catch (IOException ex) {\n                    ex.printStackTrace();\n                }\n            }\n        }\n        return flag;\n    }\n\n    @Override\n    public void regist(User user) {\n        BufferedWriter bw = null;\n        try {\n            bw = new BufferedWriter(new FileWriter(file, true));\n            bw.write(user.getUsername() + \"=\" + user.getPassword());\n            bw.newLine();\n            bw.flush();\n        } catch (IOException e) {\n            e.printStackTrace();\n        } finally {\n            if (bw != null) {\n                try {\n                    bw.close();\n                } catch (IOException ex) {\n                    ex.printStackTrace();\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "day25/code/Eclipse版本的登录注册/src/cn/itcast/pojo/User.java",
    "content": "/*\n * To change this license header, choose License Headers in Project Properties.\n * To change this template file, choose Tools | Templates\n * and open the template in the editor.\n */\npackage cn.itcast.pojo;\n\n/**\n *\n * @author fqy\n */\npublic class User {\n\n    private String username;\n    private String password;\n\n    public User() {\n    }\n\n    public User(String username, String password) {\n        this.username = username;\n        this.password = password;\n    }\n\n    /**\n     * @return the username\n     */\n    public String getUsername() {\n        return username;\n    }\n\n    /**\n     * @param username the username to set\n     */\n    public void setUsername(String username) {\n        this.username = username;\n    }\n\n    /**\n     * @return the password\n     */\n    public String getPassword() {\n        return password;\n    }\n\n    /**\n     * @param password the password to set\n     */\n    public void setPassword(String password) {\n        this.password = password;\n    }\n\n}\n"
  },
  {
    "path": "day25/code/Eclipse版本的登录注册/src/cn/itcast/util/UiUtil.java",
    "content": "/*\n * To change this license header, choose License Headers in Project Properties.\n * To change this template file, choose Tools | Templates\n * and open the template in the editor.\n */\n\npackage cn.itcast.util;\n\nimport java.awt.Dimension;\nimport java.awt.Image;\nimport java.awt.Toolkit;\nimport javax.swing.JFrame;\n\n/**\n * 工具类\n * @author fqy\n */\npublic class UiUtil {\n    \n    private UiUtil(){}\n    \n    /**\n     * 修改窗体图标\n     * @param jf \n     */\n    public static void setFrameIcon(JFrame jf,String imagePath){\n        //获取工具类\n        Toolkit took = Toolkit.getDefaultToolkit();\n        //根据路径获取图片\n        Image image = took.getImage(imagePath);\n        //设置图标\n        jf.setIconImage(image);\n    }\n    \n    /**\n     * 设置窗体居中\n     * @param jf \n     */\n    public static void setFrameCenter(JFrame jf){\n        /*\n        思路：\n            获取屏幕的宽和高\n            获取窗体的宽和高\n        */\n        //获取工具类\n        Toolkit took = Toolkit.getDefaultToolkit();\n        \n        //获取屏幕的宽和高\n        Dimension screen = took.getScreenSize();\n        \n       double screenWidth =  screen.getWidth();\n       double screenHeight = screen.getHeight();\n       \n       //获取窗体的宽和高\n       int jfWidth = jf.getWidth();\n       int jfHeight = jf.getHeight();\n       \n       //设置坐标\n       int width = (int)(screenWidth-jfWidth)/2;\n       int height = (int)(screenHeight-jfHeight)/2;\n       \n      jf.setLocation(width,height);\n    }\n}\n"
  },
  {
    "path": "day25/code/Eclipse版本的登录注册/src/cn/itcast/view/GuessNumberJFrame.form",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<Form version=\"1.3\" maxVersion=\"1.9\" type=\"org.netbeans.modules.form.forminfo.JFrameFormInfo\">\n  <Properties>\n    <Property name=\"defaultCloseOperation\" type=\"int\" value=\"3\"/>\n  </Properties>\n  <SyntheticProperties>\n    <SyntheticProperty name=\"formSizePolicy\" type=\"int\" value=\"1\"/>\n    <SyntheticProperty name=\"generateCenter\" type=\"boolean\" value=\"false\"/>\n  </SyntheticProperties>\n  <AuxValues>\n    <AuxValue name=\"FormSettings_autoResourcing\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_autoSetComponentName\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_generateFQN\" type=\"java.lang.Boolean\" value=\"true\"/>\n    <AuxValue name=\"FormSettings_generateMnemonicsCode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_i18nAutoMode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_layoutCodeTarget\" type=\"java.lang.Integer\" value=\"1\"/>\n    <AuxValue name=\"FormSettings_listenerGenerationStyle\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_variablesLocal\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_variablesModifier\" type=\"java.lang.Integer\" value=\"2\"/>\n  </AuxValues>\n\n  <Layout>\n    <DimensionLayout dim=\"0\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"1\" attributes=\"0\">\n              <EmptySpace max=\"32767\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n                  <Group type=\"102\" attributes=\"0\">\n                      <Component id=\"jtfGuessNumber\" min=\"-2\" pref=\"154\" max=\"-2\" attributes=\"0\"/>\n                      <EmptySpace type=\"separate\" max=\"-2\" attributes=\"0\"/>\n                      <Component id=\"guessButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  </Group>\n                  <Component id=\"jLabel1\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace min=\"-2\" pref=\"46\" max=\"-2\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n    <DimensionLayout dim=\"1\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"0\" attributes=\"0\">\n              <EmptySpace min=\"-2\" pref=\"46\" max=\"-2\" attributes=\"0\"/>\n              <Component id=\"jLabel1\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              <EmptySpace min=\"-2\" pref=\"24\" max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"jtfGuessNumber\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"guessButton\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace pref=\"36\" max=\"32767\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n  </Layout>\n  <SubComponents>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel1\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x7cfb;&#x7edf;&#x5df2;&#x7ecf;&#x4ea7;&#x751f;&#x4e86;&#x4e00;&#x4e2a;&#x968f;&#x673a;&#x6570;,&#x8bf7;&#x8f93;&#x5165;&#x4f60;&#x8981;&#x731c;&#x7684;&#x6570;&#x636e;(1-100)\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JTextField\" name=\"jtfGuessNumber\">\n    </Component>\n    <Component class=\"javax.swing.JButton\" name=\"guessButton\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x6211;&#x731c;\"/>\n      </Properties>\n      <Events>\n        <EventHandler event=\"actionPerformed\" listener=\"java.awt.event.ActionListener\" parameters=\"java.awt.event.ActionEvent\" handler=\"guessButtonActionPerformed\"/>\n      </Events>\n    </Component>\n  </SubComponents>\n</Form>\n"
  },
  {
    "path": "day25/code/Eclipse版本的登录注册/src/cn/itcast/view/GuessNumberJFrame.java",
    "content": "/*\n * To change this license header, choose License Headers in Project Properties.\n * To change this template file, choose Tools | Templates\n * and open the template in the editor.\n */\npackage cn.itcast.view;\n\nimport cn.itcast.util.UiUtil;\nimport java.io.BufferedWriter;\nimport java.io.File;\nimport java.io.FileReader;\nimport java.io.FileWriter;\nimport java.io.IOException;\nimport java.util.Properties;\nimport javax.swing.JOptionPane;\n\n/**\n *\n * @author fqy\n */\npublic class GuessNumberJFrame extends javax.swing.JFrame {\n\n    private int number;\n\n//    private static File file = new File(\"count.txt\");\n//    static {\n//        BufferedWriter bw = null;\n//        try {\n////            file.createNewFile();\n//            bw = new BufferedWriter(new FileWriter(file));\n//            bw.write(\"count=0\");\n//            bw.newLine();\n//            bw.flush();\n//        } catch (IOException ex) {\n//            ex.printStackTrace();\n//        } finally {\n//            if (bw != null) {\n//                try {\n//                    bw.close();\n//                } catch (IOException ex) {\n//                    ex.printStackTrace();\n//                }\n//            }\n//        }\n//    }\n\n    /**\n     * Creates new form GuessNumberJFrame\n     */\n    public GuessNumberJFrame() {\n        initComponents();\n    }\n\n    public GuessNumberJFrame(String username) {\n        initComponents();\n        init(username);\n        checkGame();\n    }\n\n    private void init(String username) {\n        this.setTitle(\"欢迎\" + username + \"光临\");\n        UiUtil.setFrameCenter(this);\n        number = getRandomNumber();\n        System.out.println(\"number:\" + number);\n    }\n\n    private int getRandomNumber() {\n        return (int) (Math.random() * 100) + 1;\n    }\n\n    /**\n     * This method is called from within the constructor to initialize the form.\n     * WARNING: Do NOT modify this code. The content of this method is always\n     * regenerated by the Form Editor.\n     */\n    @SuppressWarnings(\"unchecked\")\n    // <editor-fold defaultstate=\"collapsed\" desc=\"Generated Code\">//GEN-BEGIN:initComponents\n    private void initComponents() {\n\n        jLabel1 = new javax.swing.JLabel();\n        jtfGuessNumber = new javax.swing.JTextField();\n        guessButton = new javax.swing.JButton();\n\n        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);\n\n        jLabel1.setText(\"系统已经产生了一个随机数,请输入你要猜的数据(1-100)\");\n\n        guessButton.setText(\"我猜\");\n        guessButton.addActionListener(new java.awt.event.ActionListener() {\n            public void actionPerformed(java.awt.event.ActionEvent evt) {\n                guessButtonActionPerformed(evt);\n            }\n        });\n\n        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());\n        getContentPane().setLayout(layout);\n        layout.setHorizontalGroup(\n            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)\n            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()\n                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)\n                    .addGroup(layout.createSequentialGroup()\n                        .addComponent(jtfGuessNumber, javax.swing.GroupLayout.PREFERRED_SIZE, 154, javax.swing.GroupLayout.PREFERRED_SIZE)\n                        .addGap(18, 18, 18)\n                        .addComponent(guessButton))\n                    .addComponent(jLabel1))\n                .addGap(46, 46, 46))\n        );\n        layout.setVerticalGroup(\n            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)\n            .addGroup(layout.createSequentialGroup()\n                .addGap(46, 46, 46)\n                .addComponent(jLabel1)\n                .addGap(24, 24, 24)\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)\n                    .addComponent(jtfGuessNumber, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)\n                    .addComponent(guessButton))\n                .addContainerGap(36, Short.MAX_VALUE))\n        );\n\n        pack();\n    }// </editor-fold>//GEN-END:initComponents\n\n    private void checkGame() {\n         Properties prop = new Properties();\n        try {\n            FileReader fr = new FileReader(\"count.txt\");\n            prop.load(fr);\n            fr.close();\n\n            String countString = prop.getProperty(\"count\");\n            int count = Integer.parseInt(countString);\n            if (count >= 5) {\n                JOptionPane.showMessageDialog(this, \"试玩结束,要想继续玩,请充值\");\n                System.exit(0);\n            } else {\n                count++;\n                prop.setProperty(\"count\", String.valueOf(count));\n\n                FileWriter fw = new FileWriter(\"count.txt\");\n                prop.store(fw, null);\n                fw.close();\n            }\n\n        } catch (IOException e) {\n            e.printStackTrace();\n        }\n    }\n    \n    private void guessButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_guessButtonActionPerformed\n       checkGame();\n\n        //获取数据\n        String guessNumberString = this.jtfGuessNumber.getText().trim();\n\n        //判断必须是数字\n        String regex = \"\\\\d{1,3}\";\n\n        //判断\n        if (!guessNumberString.matches(regex)) {\n            JOptionPane.showMessageDialog(this, \"你猜的数据不是数字\");\n            this.jtfGuessNumber.setText(\"\");\n            this.jtfGuessNumber.requestFocus();\n            return;\n        }\n\n        //转换为数据\n        int guessNumber = Integer.parseInt(guessNumberString);\n\n        if (guessNumber < 0 || guessNumber > 100) {\n            JOptionPane.showMessageDialog(this, \"你猜的数字超出范围(1-100)\");\n            this.jtfGuessNumber.setText(\"\");\n            this.jtfGuessNumber.requestFocus();\n            return;\n        }\n\n        if (guessNumber > number) {\n            JOptionPane.showMessageDialog(this, \"你猜的数字\" + guessNumber + \"大了\");\n            this.jtfGuessNumber.setText(\"\");\n            this.jtfGuessNumber.requestFocus();\n        } else if (guessNumber < number) {\n            JOptionPane.showMessageDialog(this, \"你猜的数字\" + guessNumber + \"小了\");\n            this.jtfGuessNumber.setText(\"\");\n            this.jtfGuessNumber.requestFocus();\n        } else {\n            JOptionPane.showMessageDialog(this, \"恭喜你猜中了\");\n\n            //public static int showConfirmDialog(Component parentComponent,Object message)\n            int choice = JOptionPane.showConfirmDialog(this, \"还要玩吗\");\n            //System.out.println(\"choice:\"+choice);\n            if (choice == 0) {\n                number = getRandomNumber();\n                JOptionPane.showMessageDialog(this, \"随机数再次产生，祝玩的开心\");\n                this.jtfGuessNumber.setText(\"\");\n                this.jtfGuessNumber.requestFocus();\n            }\n        }\n    }//GEN-LAST:event_guessButtonActionPerformed\n\n    /**\n     * @param args the command line arguments\n     */\n//    public static void main(String args[]) {\n//        /* Set the Nimbus look and feel */\n//        //<editor-fold defaultstate=\"collapsed\" desc=\" Look and feel setting code (optional) \">\n//        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.\n//         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html \n//         */\n//        try {\n//            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {\n//                if (\"Nimbus\".equals(info.getName())) {\n//                    javax.swing.UIManager.setLookAndFeel(info.getClassName());\n//                    break;\n//                }\n//            }\n//        } catch (ClassNotFoundException ex) {\n//            java.util.logging.Logger.getLogger(GuessNumberJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n//        } catch (InstantiationException ex) {\n//            java.util.logging.Logger.getLogger(GuessNumberJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n//        } catch (IllegalAccessException ex) {\n//            java.util.logging.Logger.getLogger(GuessNumberJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n//        } catch (javax.swing.UnsupportedLookAndFeelException ex) {\n//            java.util.logging.Logger.getLogger(GuessNumberJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n//        }\n//        //</editor-fold>\n//\n//        /* Create and display the form */\n//        java.awt.EventQueue.invokeLater(new Runnable() {\n//            public void run() {\n//                new GuessNumberJFrame().setVisible(true);\n//            }\n//        });\n//    }\n\n    // Variables declaration - do not modify//GEN-BEGIN:variables\n    private javax.swing.JButton guessButton;\n    private javax.swing.JLabel jLabel1;\n    private javax.swing.JTextField jtfGuessNumber;\n    // End of variables declaration//GEN-END:variables\n}\n"
  },
  {
    "path": "day25/code/Eclipse版本的登录注册/src/cn/itcast/view/LoginJFrame.form",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<Form version=\"1.3\" maxVersion=\"1.9\" type=\"org.netbeans.modules.form.forminfo.JFrameFormInfo\">\n  <NonVisualComponents>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel2\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"jLabel2\"/>\n      </Properties>\n    </Component>\n  </NonVisualComponents>\n  <Properties>\n    <Property name=\"defaultCloseOperation\" type=\"int\" value=\"3\"/>\n    <Property name=\"resizable\" type=\"boolean\" value=\"false\"/>\n  </Properties>\n  <SyntheticProperties>\n    <SyntheticProperty name=\"formSizePolicy\" type=\"int\" value=\"1\"/>\n    <SyntheticProperty name=\"generateCenter\" type=\"boolean\" value=\"false\"/>\n  </SyntheticProperties>\n  <AuxValues>\n    <AuxValue name=\"FormSettings_autoResourcing\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_autoSetComponentName\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_generateFQN\" type=\"java.lang.Boolean\" value=\"true\"/>\n    <AuxValue name=\"FormSettings_generateMnemonicsCode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_i18nAutoMode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_layoutCodeTarget\" type=\"java.lang.Integer\" value=\"1\"/>\n    <AuxValue name=\"FormSettings_listenerGenerationStyle\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_variablesLocal\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_variablesModifier\" type=\"java.lang.Integer\" value=\"2\"/>\n  </AuxValues>\n\n  <Layout>\n    <DimensionLayout dim=\"0\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"0\" attributes=\"0\">\n              <EmptySpace min=\"-2\" pref=\"48\" max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"0\" max=\"-2\" attributes=\"0\">\n                  <Group type=\"102\" attributes=\"0\">\n                      <Component id=\"loginButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                      <EmptySpace pref=\"124\" max=\"32767\" attributes=\"0\"/>\n                      <Component id=\"resetButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  </Group>\n                  <Group type=\"102\" attributes=\"0\">\n                      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n                          <Component id=\"jLabel1\" alignment=\"0\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                          <Component id=\"jLabel3\" alignment=\"0\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                      </Group>\n                      <EmptySpace type=\"unrelated\" max=\"-2\" attributes=\"0\"/>\n                      <Group type=\"103\" groupAlignment=\"0\" max=\"-2\" attributes=\"0\">\n                          <Component id=\"jtfUsername\" max=\"32767\" attributes=\"0\"/>\n                          <Component id=\"jpfPassword\" pref=\"190\" max=\"32767\" attributes=\"0\"/>\n                      </Group>\n                  </Group>\n              </Group>\n              <EmptySpace type=\"unrelated\" max=\"-2\" attributes=\"0\"/>\n              <Component id=\"registButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              <EmptySpace max=\"32767\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n    <DimensionLayout dim=\"1\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"0\" attributes=\"0\">\n              <EmptySpace min=\"-2\" pref=\"34\" max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"jLabel1\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jtfUsername\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"registButton\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace min=\"-2\" pref=\"32\" max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"jLabel3\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jpfPassword\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace pref=\"57\" max=\"32767\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"loginButton\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"resetButton\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace min=\"-2\" pref=\"79\" max=\"-2\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n  </Layout>\n  <SubComponents>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel1\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x7528;&#x6237;&#x540d;:\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel3\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x5bc6;&#x7801;:\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JTextField\" name=\"jtfUsername\">\n    </Component>\n    <Component class=\"javax.swing.JPasswordField\" name=\"jpfPassword\">\n    </Component>\n    <Component class=\"javax.swing.JButton\" name=\"loginButton\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x767b;&#x5f55;\"/>\n      </Properties>\n      <Events>\n        <EventHandler event=\"actionPerformed\" listener=\"java.awt.event.ActionListener\" parameters=\"java.awt.event.ActionEvent\" handler=\"loginButtonActionPerformed\"/>\n      </Events>\n    </Component>\n    <Component class=\"javax.swing.JButton\" name=\"resetButton\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x91cd;&#x7f6e;\"/>\n      </Properties>\n      <Events>\n        <EventHandler event=\"actionPerformed\" listener=\"java.awt.event.ActionListener\" parameters=\"java.awt.event.ActionEvent\" handler=\"resetButtonActionPerformed\"/>\n      </Events>\n    </Component>\n    <Component class=\"javax.swing.JButton\" name=\"registButton\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x6ce8;&#x518c;\"/>\n      </Properties>\n      <Events>\n        <EventHandler event=\"actionPerformed\" listener=\"java.awt.event.ActionListener\" parameters=\"java.awt.event.ActionEvent\" handler=\"registButtonActionPerformed\"/>\n      </Events>\n    </Component>\n  </SubComponents>\n</Form>\n"
  },
  {
    "path": "day25/code/Eclipse版本的登录注册/src/cn/itcast/view/LoginJFrame.java",
    "content": "/*\n * To change this license header, choose License Headers in Project Properties.\n * To change this template file, choose Tools | Templates\n * and open the template in the editor.\n */\npackage cn.itcast.view;\n\nimport cn.itcast.dao.UserDao;\nimport cn.itcast.dao.impl.UserDaoImpl;\nimport cn.itcast.util.UiUtil;\nimport javax.swing.JOptionPane;\n\n/**\n *\n * @author fqy\n */\npublic class LoginJFrame extends javax.swing.JFrame {\n\n    /**\n     * Creates new form LoginJFrame\n     */\n    public LoginJFrame() {\n        initComponents();\n        init();\n    }\n\n    private void init() {\n        this.setTitle(\"登录界面\");\n        UiUtil.setFrameIcon(this, \"src\\\\cn\\\\itcast\\\\resource\\\\user.jpg\");\n        UiUtil.setFrameCenter(this);\n    }\n\n    /**\n     * This method is called from within the constructor to initialize the form.\n     * WARNING: Do NOT modify this code. The content of this method is always\n     * regenerated by the Form Editor.\n     */\n    @SuppressWarnings(\"unchecked\")\n    // <editor-fold defaultstate=\"collapsed\" desc=\"Generated Code\">//GEN-BEGIN:initComponents\n    private void initComponents() {\n\n        jLabel2 = new javax.swing.JLabel();\n        jLabel1 = new javax.swing.JLabel();\n        jLabel3 = new javax.swing.JLabel();\n        jtfUsername = new javax.swing.JTextField();\n        jpfPassword = new javax.swing.JPasswordField();\n        loginButton = new javax.swing.JButton();\n        resetButton = new javax.swing.JButton();\n        registButton = new javax.swing.JButton();\n\n        jLabel2.setText(\"jLabel2\");\n\n        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);\n        setResizable(false);\n\n        jLabel1.setText(\"用户名:\");\n\n        jLabel3.setText(\"密码:\");\n\n        loginButton.setText(\"登录\");\n        loginButton.addActionListener(new java.awt.event.ActionListener() {\n            public void actionPerformed(java.awt.event.ActionEvent evt) {\n                loginButtonActionPerformed(evt);\n            }\n        });\n\n        resetButton.setText(\"重置\");\n        resetButton.addActionListener(new java.awt.event.ActionListener() {\n            public void actionPerformed(java.awt.event.ActionEvent evt) {\n                resetButtonActionPerformed(evt);\n            }\n        });\n\n        registButton.setText(\"注册\");\n        registButton.addActionListener(new java.awt.event.ActionListener() {\n            public void actionPerformed(java.awt.event.ActionEvent evt) {\n                registButtonActionPerformed(evt);\n            }\n        });\n\n        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());\n        getContentPane().setLayout(layout);\n        layout.setHorizontalGroup(\n            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)\n            .addGroup(layout.createSequentialGroup()\n                .addGap(48, 48, 48)\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)\n                    .addGroup(layout.createSequentialGroup()\n                        .addComponent(loginButton)\n                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 124, Short.MAX_VALUE)\n                        .addComponent(resetButton))\n                    .addGroup(layout.createSequentialGroup()\n                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)\n                            .addComponent(jLabel1)\n                            .addComponent(jLabel3))\n                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)\n                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)\n                            .addComponent(jtfUsername)\n                            .addComponent(jpfPassword, javax.swing.GroupLayout.DEFAULT_SIZE, 190, Short.MAX_VALUE))))\n                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)\n                .addComponent(registButton)\n                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))\n        );\n        layout.setVerticalGroup(\n            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)\n            .addGroup(layout.createSequentialGroup()\n                .addGap(34, 34, 34)\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)\n                    .addComponent(jLabel1)\n                    .addComponent(jtfUsername, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)\n                    .addComponent(registButton))\n                .addGap(32, 32, 32)\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)\n                    .addComponent(jLabel3)\n                    .addComponent(jpfPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))\n                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 57, Short.MAX_VALUE)\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)\n                    .addComponent(loginButton)\n                    .addComponent(resetButton))\n                .addGap(79, 79, 79))\n        );\n\n        pack();\n    }// </editor-fold>//GEN-END:initComponents\n\n    private void registButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_registButtonActionPerformed\n        RegistJFrame rjf = new RegistJFrame();\n//        this.setVisible(false);\n        this.dispose();\n        rjf.setVisible(true);\n    }//GEN-LAST:event_registButtonActionPerformed\n\n    private void clearData() {\n        this.jtfUsername.setText(\"\");\n        this.jpfPassword.setText(\"\");\n        this.jtfUsername.requestFocus();\n    }\n    \n    private void resetButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_resetButtonActionPerformed\n       clearData();\n    }//GEN-LAST:event_resetButtonActionPerformed\n\n    private void loginButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_loginButtonActionPerformed\n        //获取用户名和密码\n        String username = this.jtfUsername.getText().trim();\n//        String password = this.jpfPassword.getText().trim();\n        String password = String.valueOf(this.jpfPassword.getPassword());\n        \n        //校验数据\n        //定义规则\n        String regex = \"\\\\w{6,12}\";\n        \n        //校验用户名\n        if(!username.matches(regex)) {\n            JOptionPane.showMessageDialog(this, \"用户名不满足条件(6~12位字符)\");\n            this.jtfUsername.setText(\"\");\n            this.jtfUsername.requestFocus();\n            return;\n        }\n        \n        //校验密码\n        if(!password.matches(regex)) {\n            JOptionPane.showMessageDialog(this, \"密码不满足条件(6~12位字符)\");\n            this.jpfPassword.setText(\"\");\n            this.jpfPassword.requestFocus();\n            return;\n        }\n        \n        //调用登录功能\n        UserDao ud = new UserDaoImpl();\n        boolean flag =  ud.isLogin(username, password);\n        if(flag) {\n             JOptionPane.showMessageDialog(this, \"登录成功,可以开始玩游戏了\");\n             GuessNumberJFrame gjf = new GuessNumberJFrame(username);\n             this.dispose();\n             gjf.setVisible(true);\n        }else{\n            JOptionPane.showMessageDialog(this, \"用户名或者密码有误\");\n            clearData();\n        }\n    }//GEN-LAST:event_loginButtonActionPerformed\n\n    /**\n     * @param args the command line arguments\n     */\n    public static void main(String args[]) {\n        /* Set the Nimbus look and feel */\n        //<editor-fold defaultstate=\"collapsed\" desc=\" Look and feel setting code (optional) \">\n        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.\n         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html \n         */\n        try {\n            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {\n                if (\"Nimbus\".equals(info.getName())) {\n                    javax.swing.UIManager.setLookAndFeel(info.getClassName());\n                    break;\n                }\n            }\n        } catch (ClassNotFoundException ex) {\n            java.util.logging.Logger.getLogger(LoginJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n        } catch (InstantiationException ex) {\n            java.util.logging.Logger.getLogger(LoginJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n        } catch (IllegalAccessException ex) {\n            java.util.logging.Logger.getLogger(LoginJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n        } catch (javax.swing.UnsupportedLookAndFeelException ex) {\n            java.util.logging.Logger.getLogger(LoginJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n        }\n        //</editor-fold>\n\n        /* Create and display the form */\n        java.awt.EventQueue.invokeLater(new Runnable() {\n            public void run() {\n                new LoginJFrame().setVisible(true);\n            }\n        });\n    }\n\n    // Variables declaration - do not modify//GEN-BEGIN:variables\n    private javax.swing.JLabel jLabel1;\n    private javax.swing.JLabel jLabel2;\n    private javax.swing.JLabel jLabel3;\n    private javax.swing.JPasswordField jpfPassword;\n    private javax.swing.JTextField jtfUsername;\n    private javax.swing.JButton loginButton;\n    private javax.swing.JButton registButton;\n    private javax.swing.JButton resetButton;\n    // End of variables declaration//GEN-END:variables\n\n}\n"
  },
  {
    "path": "day25/code/Eclipse版本的登录注册/src/cn/itcast/view/RegistJFrame.form",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<Form version=\"1.3\" maxVersion=\"1.9\" type=\"org.netbeans.modules.form.forminfo.JFrameFormInfo\">\n  <NonVisualComponents>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel2\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"jLabel2\"/>\n      </Properties>\n    </Component>\n  </NonVisualComponents>\n  <Properties>\n    <Property name=\"defaultCloseOperation\" type=\"int\" value=\"3\"/>\n  </Properties>\n  <SyntheticProperties>\n    <SyntheticProperty name=\"formSizePolicy\" type=\"int\" value=\"1\"/>\n    <SyntheticProperty name=\"generateCenter\" type=\"boolean\" value=\"false\"/>\n  </SyntheticProperties>\n  <AuxValues>\n    <AuxValue name=\"FormSettings_autoResourcing\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_autoSetComponentName\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_generateFQN\" type=\"java.lang.Boolean\" value=\"true\"/>\n    <AuxValue name=\"FormSettings_generateMnemonicsCode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_i18nAutoMode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_layoutCodeTarget\" type=\"java.lang.Integer\" value=\"1\"/>\n    <AuxValue name=\"FormSettings_listenerGenerationStyle\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_variablesLocal\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_variablesModifier\" type=\"java.lang.Integer\" value=\"2\"/>\n  </AuxValues>\n\n  <Layout>\n    <DimensionLayout dim=\"0\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"0\" attributes=\"0\">\n              <EmptySpace min=\"-2\" pref=\"48\" max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"0\" max=\"-2\" attributes=\"0\">\n                  <Group type=\"102\" attributes=\"0\">\n                      <Component id=\"registButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                      <EmptySpace pref=\"124\" max=\"32767\" attributes=\"0\"/>\n                      <Component id=\"cancleButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  </Group>\n                  <Group type=\"102\" attributes=\"0\">\n                      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n                          <Component id=\"jLabel1\" alignment=\"0\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                          <Component id=\"jLabel3\" alignment=\"0\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                      </Group>\n                      <EmptySpace type=\"unrelated\" max=\"-2\" attributes=\"0\"/>\n                      <Group type=\"103\" groupAlignment=\"0\" max=\"-2\" attributes=\"0\">\n                          <Component id=\"jtfUsername\" max=\"32767\" attributes=\"0\"/>\n                          <Component id=\"jpfPassword\" pref=\"190\" max=\"32767\" attributes=\"0\"/>\n                      </Group>\n                  </Group>\n              </Group>\n              <EmptySpace pref=\"79\" max=\"32767\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n    <DimensionLayout dim=\"1\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"0\" attributes=\"0\">\n              <EmptySpace min=\"-2\" pref=\"36\" max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"jLabel1\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jtfUsername\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace min=\"-2\" pref=\"34\" max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"jLabel3\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jpfPassword\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace min=\"-2\" pref=\"59\" max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"registButton\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"cancleButton\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace pref=\"77\" max=\"32767\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n  </Layout>\n  <SubComponents>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel1\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x7528;&#x6237;&#x540d;:\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel3\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x5bc6;&#x7801;:\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JTextField\" name=\"jtfUsername\">\n    </Component>\n    <Component class=\"javax.swing.JPasswordField\" name=\"jpfPassword\">\n    </Component>\n    <Component class=\"javax.swing.JButton\" name=\"registButton\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x6ce8;&#x518c;\"/>\n      </Properties>\n      <Events>\n        <EventHandler event=\"actionPerformed\" listener=\"java.awt.event.ActionListener\" parameters=\"java.awt.event.ActionEvent\" handler=\"registButtonActionPerformed\"/>\n      </Events>\n    </Component>\n    <Component class=\"javax.swing.JButton\" name=\"cancleButton\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x53d6;&#x6d88;\"/>\n      </Properties>\n      <Events>\n        <EventHandler event=\"actionPerformed\" listener=\"java.awt.event.ActionListener\" parameters=\"java.awt.event.ActionEvent\" handler=\"cancleButtonActionPerformed\"/>\n      </Events>\n    </Component>\n  </SubComponents>\n</Form>\n"
  },
  {
    "path": "day25/code/Eclipse版本的登录注册/src/cn/itcast/view/RegistJFrame.java",
    "content": "/*\n * To change this license header, choose License Headers in Project Properties.\n * To change this template file, choose Tools | Templates\n * and open the template in the editor.\n */\npackage cn.itcast.view;\n\nimport cn.itcast.dao.UserDao;\nimport cn.itcast.dao.impl.UserDaoImpl;\nimport cn.itcast.pojo.User;\nimport cn.itcast.util.UiUtil;\nimport javax.swing.JOptionPane;\n\n/**\n *\n * @author fqy\n */\npublic class RegistJFrame extends javax.swing.JFrame {\n\n    /**\n     * Creates new form LoginJFrame\n     */\n    public RegistJFrame() {\n        initComponents();\n        init();\n    }\n\n    private void init() {\n        this.setTitle(\"注册界面\");\n        UiUtil.setFrameIcon(this, \"src\\\\cn\\\\itcast\\\\resource\\\\user.jpg\");\n        UiUtil.setFrameCenter(this);\n    }\n\n    /**\n     * This method is called from within the constructor to initialize the form.\n     * WARNING: Do NOT modify this code. The content of this method is always\n     * regenerated by the Form Editor.\n     */\n    @SuppressWarnings(\"unchecked\")\n    // <editor-fold defaultstate=\"collapsed\" desc=\"Generated Code\">//GEN-BEGIN:initComponents\n    private void initComponents() {\n\n        jLabel2 = new javax.swing.JLabel();\n        jLabel1 = new javax.swing.JLabel();\n        jLabel3 = new javax.swing.JLabel();\n        jtfUsername = new javax.swing.JTextField();\n        jpfPassword = new javax.swing.JPasswordField();\n        registButton = new javax.swing.JButton();\n        cancleButton = new javax.swing.JButton();\n\n        jLabel2.setText(\"jLabel2\");\n\n        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);\n\n        jLabel1.setText(\"用户名:\");\n\n        jLabel3.setText(\"密码:\");\n\n        registButton.setText(\"注册\");\n        registButton.addActionListener(new java.awt.event.ActionListener() {\n            public void actionPerformed(java.awt.event.ActionEvent evt) {\n                registButtonActionPerformed(evt);\n            }\n        });\n\n        cancleButton.setText(\"取消\");\n        cancleButton.addActionListener(new java.awt.event.ActionListener() {\n            public void actionPerformed(java.awt.event.ActionEvent evt) {\n                cancleButtonActionPerformed(evt);\n            }\n        });\n\n        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());\n        getContentPane().setLayout(layout);\n        layout.setHorizontalGroup(\n            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)\n            .addGroup(layout.createSequentialGroup()\n                .addGap(48, 48, 48)\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)\n                    .addGroup(layout.createSequentialGroup()\n                        .addComponent(registButton)\n                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 124, Short.MAX_VALUE)\n                        .addComponent(cancleButton))\n                    .addGroup(layout.createSequentialGroup()\n                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)\n                            .addComponent(jLabel1)\n                            .addComponent(jLabel3))\n                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)\n                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)\n                            .addComponent(jtfUsername)\n                            .addComponent(jpfPassword, javax.swing.GroupLayout.DEFAULT_SIZE, 190, Short.MAX_VALUE))))\n                .addContainerGap(79, Short.MAX_VALUE))\n        );\n        layout.setVerticalGroup(\n            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)\n            .addGroup(layout.createSequentialGroup()\n                .addGap(36, 36, 36)\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)\n                    .addComponent(jLabel1)\n                    .addComponent(jtfUsername, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))\n                .addGap(34, 34, 34)\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)\n                    .addComponent(jLabel3)\n                    .addComponent(jpfPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))\n                .addGap(59, 59, 59)\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)\n                    .addComponent(registButton)\n                    .addComponent(cancleButton))\n                .addContainerGap(77, Short.MAX_VALUE))\n        );\n\n        pack();\n    }// </editor-fold>//GEN-END:initComponents\n\n    private void goLoginView() {\n        LoginJFrame ljf = new LoginJFrame();\n        this.dispose();\n        ljf.setVisible(true);\n    }\n\n    private void cancleButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancleButtonActionPerformed\n        goLoginView();\n    }//GEN-LAST:event_cancleButtonActionPerformed\n\n    private void registButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_registButtonActionPerformed\n        //获取用户名和密码\n        String username = this.jtfUsername.getText().trim();\n//        String password = this.jpfPassword.getText().trim();\n        String password = String.valueOf(this.jpfPassword.getPassword());\n\n        //校验数据\n        //定义规则\n        String regex = \"\\\\w{6,12}\";\n\n        //校验用户名\n        if (!username.matches(regex)) {\n            JOptionPane.showMessageDialog(this, \"用户名不满足条件(6~12位字符)\");\n            this.jtfUsername.setText(\"\");\n            this.jtfUsername.requestFocus();\n            return;\n        }\n\n        //校验密码\n        if (!password.matches(regex)) {\n            JOptionPane.showMessageDialog(this, \"密码不满足条件(6~12位字符)\");\n            this.jpfPassword.setText(\"\");\n            this.jpfPassword.requestFocus();\n            return;\n        }\n\n        //封装对象\n        User user = new User();\n        user.setUsername(username);\n        user.setPassword(password);\n\n        //调用注册功能\n        UserDao ud = new UserDaoImpl();\n        ud.regist(user);\n\n        JOptionPane.showMessageDialog(this, \"注册成功\");\n\n        //返回到登录界面\n        goLoginView();\n    }//GEN-LAST:event_registButtonActionPerformed\n\n    /**\n     * @param args the command line arguments\n     */\n//    public static void main(String args[]) {\n//        /* Set the Nimbus look and feel */\n//        //<editor-fold defaultstate=\"collapsed\" desc=\" Look and feel setting code (optional) \">\n//        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.\n//         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html \n//         */\n//        try {\n//            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {\n//                if (\"Nimbus\".equals(info.getName())) {\n//                    javax.swing.UIManager.setLookAndFeel(info.getClassName());\n//                    break;\n//                }\n//            }\n//        } catch (ClassNotFoundException ex) {\n//            java.util.logging.Logger.getLogger(RegistJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n//        } catch (InstantiationException ex) {\n//            java.util.logging.Logger.getLogger(RegistJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n//        } catch (IllegalAccessException ex) {\n//            java.util.logging.Logger.getLogger(RegistJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n//        } catch (javax.swing.UnsupportedLookAndFeelException ex) {\n//            java.util.logging.Logger.getLogger(RegistJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n//        }\n//        //</editor-fold>\n//\n//        /* Create and display the form */\n//        java.awt.EventQueue.invokeLater(new Runnable() {\n//            public void run() {\n//                new RegistJFrame().setVisible(true);\n//            }\n//        });\n//    }\n\n    // Variables declaration - do not modify//GEN-BEGIN:variables\n    private javax.swing.JButton cancleButton;\n    private javax.swing.JLabel jLabel1;\n    private javax.swing.JLabel jLabel2;\n    private javax.swing.JLabel jLabel3;\n    private javax.swing.JPasswordField jpfPassword;\n    private javax.swing.JTextField jtfUsername;\n    private javax.swing.JButton registButton;\n    // End of variables declaration//GEN-END:variables\n}\n"
  },
  {
    "path": "day25/code/Eclipse版本的登录注册/src/登录注册.txt",
    "content": "登录注册：\n\n有哪些类?\n    用户类\n        用户描述类\n        用户操作类\n    登录窗体\n    注册窗体\n类有哪些成员?\n    用户类\n        用户描述类\n               用户名,密码\n        用户操作类\n                登录,注册\n类与类的关系?\n    在登录窗体上点击登录按钮，调用登录功能\n    在注册窗体上点击注册按钮，调用注册功能\n\n\n分包：\n    cn.itcast.pojo  用户基本描述类\n    cn.itcast.dao   用户操作接口\n    cn.itcast.dao.impl  用户操作具体实现类\n    cn.itcast.util  工具类\n    cn.itcast.view  窗体类"
  },
  {
    "path": "day25/code/Eclipse版本的登录注册/user.txt",
    "content": "adminadmin=adminadmin\nwoaigame=woaigame\nLoveJava=123456\n"
  },
  {
    "path": "day25/code/day25_Frame/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day25/code/day25_Frame/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>day25_Frame</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day25/code/day25_Frame/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day25/code/day25_Frame/bin/cn/itcast_02/事件监听机制.txt",
    "content": "¼ƣ\n\t¼Դ\t¼ĵط()\n\t¼\t\tҪ\n\t¼\tԷ鴦ʽ\n\t¼\t¼עᵽ¼Դ\n\t\n¼\n\t\n\t¼Դ\n\t\n\t¼\n\t\tinterface  {\n\t\t\tvoid һȭ();\n\t\t\tvoid һ();\n\t\t\tvoid һש();\n\t\t}\n\t\t\n\t¼˴\n\t\tclass ˴ implements  {\n\t\t\tvoid һȭ() {\n\t\t\t\tsop(\"Ѫˣ͵ϴϴ\");\n\t\t\t}\n\t\t\t\n\t\t\tvoid һ() {\n\t\t\t\tsop(\"ε͵ͨ紦\");\n\t\t\t}\n\t\t\t\n\t\t\tvoid һש() {\n\t\t\t\tsop(\"ͷѪ͵̫ƽ伴\");\n\t\t\t}\n\t\t}\n\t\t\n\tPerson p1 = new Person(\"\");\n\tPerson p2 = new Person(\"\");\n\tp1.ע¼();\t\n\t\nν⣺\n\tǽֻһȴжôܱ֤뼸üء\n\t\nģʽ\n\t\n\tڵ\n\t\n\tӿڣ\n\t\tinterface  {\n\t\t\tvoid һȭ();\n\t\t\tvoid һ();\n\t\t\tvoid һש();\n\t\t\t...\n\t\t}\n\t\t\n\tࣺ\n\t\t\n\t\tclass ˴ implements  {\n\t\t\t\tpublic void һȭ() {\n\t\t\t\t\tsop(\"Ѫˣ͵ϴϴ\");\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tpublic void һ() {}\n\t\t\t\tpublic void һש() {}\n\t\t\t\t...\n\t\t\t}\n\t\t\t\n\tģʽĽ\n\t\n\tӿڣ\n\t\tinterface  {\n\t\t\tvoid һȭ();\n\t\t\tvoid һ();\n\t\t\tvoid һש();\n\t\t\t...\n\t\t}\n\t\n\tࣺ\n\t\tabstract class  implements  {\n\t\t\tpublic void һȭ(){}\n\t\t\tpublic void һ(){}\n\t\t\tpublic void һש(){}\n\t\t\t...\n\t\t}\n\t\t\n\tࣺ\n\t\t\n\t\tclass ˴ extends  {\n\t\t\tpublic void һȭ() {\n\t\t\t\tsop(\"Ѫˣ͵ϴϴ\");\n\t\t\t}\n\t\t}\n\t\t\n\t"
  },
  {
    "path": "day25/code/day25_Frame/bw.txt",
    "content": "\niii\nн\n\n\n"
  },
  {
    "path": "day25/code/day25_Frame/src/cn/itcast_01/FrameDemo.java",
    "content": "package cn.itcast_01;\n\nimport java.awt.Frame;\n\n/*\n * Componentһ\n * \t\t\tһжܵҪ\n * \t\t\tԴ洢\n * ͨ۲ļ̳ϵͼǰѧϰʽѧϰ㣬̫鷳ˡ\n * ԣǽֱFrameɡ\n * \n * 췽\n * \t\tpublic Frame()\n * \n * ͨ۲죬֪С\n * \t\tA:ڴдˣֻûп\n * \t\tB:ĴҲǿ̵߳ġ\n */\npublic class FrameDemo {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\tFrame f = new Frame();\n\n\t\t// ñ\n\t\tf.setTitle(\"ٶһ,֪\");\n\t\t// ôС\n\t\tf.setSize(400, 300);\n\t\t// ôɼ\n\t\tf.setVisible(true);\n\n\t\t// λ\n\t\tf.setLocation(500, 200);\n\n\t\t// f.show();\n\t\t// System.out.println(\"over\");\n\t}\n}\n"
  },
  {
    "path": "day25/code/day25_Frame/src/cn/itcast_02/FrameDemo.java",
    "content": "package cn.itcast_02;\n\nimport java.awt.Frame;\nimport java.awt.event.WindowEvent;\nimport java.awt.event.WindowListener;\n\npublic class FrameDemo {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\tFrame f = new Frame();\n\n\t\t// ô\n\t\tf.setTitle(\"ر\");\n\t\tf.setSize(400, 200);\n\t\tf.setLocation(500, 250);\n\n\t\t// ע¼\n\t\tf.addWindowListener(new WindowListener() {\n\t\t\t@Override\n\t\t\tpublic void windowOpened(WindowEvent e) {\n\t\t\t}\n\n\t\t\t@Override\n\t\t\tpublic void windowIconified(WindowEvent e) {\n\t\t\t}\n\n\t\t\t@Override\n\t\t\tpublic void windowDeiconified(WindowEvent e) {\n\t\t\t}\n\n\t\t\t@Override\n\t\t\tpublic void windowDeactivated(WindowEvent e) {\n\t\t\t}\n\n\t\t\t@Override\n\t\t\tpublic void windowClosing(WindowEvent e) {\n\t\t\t\tSystem.exit(0);\n\t\t\t}\n\n\t\t\t@Override\n\t\t\tpublic void windowClosed(WindowEvent e) {\n\t\t\t}\n\n\t\t\t@Override\n\t\t\tpublic void windowActivated(WindowEvent e) {\n\t\t\t}\n\t\t});\n\n\t\t// ôɼ\n\t\tf.setVisible(true);\n\t}\n}\n"
  },
  {
    "path": "day25/code/day25_Frame/src/cn/itcast_02/FrameDemo2.java",
    "content": "package cn.itcast_02;\n\nimport java.awt.Frame;\nimport java.awt.event.WindowAdapter;\nimport java.awt.event.WindowEvent;\n/*\n * Ľ\n * \n * \n * \t\t е¼Ҫࡣ\n * \t\tһ¼ӿֻһ\n */\npublic class FrameDemo2 {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\tFrame f = new Frame();\n\n\t\t// ô\n\t\tf.setTitle(\"ر\");\n\t\tf.setSize(400, 200);\n\t\tf.setLocation(500, 250);\n\n\t\t// ע¼\n\t\tf.addWindowListener(new WindowAdapter() {\n\t\t\t@Override\n\t\t\tpublic void windowClosing(WindowEvent e) {\n\t\t\t\tSystem.exit(0);\n\t\t\t}\n\t\t});\n\n\t\t// ôɼ\n\t\tf.setVisible(true);\n\t}\n}\n"
  },
  {
    "path": "day25/code/day25_Frame/src/cn/itcast_02/事件监听机制.txt",
    "content": "¼ƣ\n\t¼Դ\t¼ĵط()\n\t¼\t\tҪ\n\t¼\tԷ鴦ʽ\n\t¼\t¼עᵽ¼Դ\n\t\n¼\n\t\n\t¼Դ\n\t\n\t¼\n\t\tinterface  {\n\t\t\tvoid һȭ();\n\t\t\tvoid һ();\n\t\t\tvoid һש();\n\t\t}\n\t\t\n\t¼˴\n\t\tclass ˴ implements  {\n\t\t\tvoid һȭ() {\n\t\t\t\tsop(\"Ѫˣ͵ϴϴ\");\n\t\t\t}\n\t\t\t\n\t\t\tvoid һ() {\n\t\t\t\tsop(\"ε͵ͨ紦\");\n\t\t\t}\n\t\t\t\n\t\t\tvoid һש() {\n\t\t\t\tsop(\"ͷѪ͵̫ƽ伴\");\n\t\t\t}\n\t\t}\n\t\t\n\tPerson p1 = new Person(\"\");\n\tPerson p2 = new Person(\"\");\n\tp1.ע¼();\t\n\t\nν⣺\n\tǽֻһȴжôܱ֤뼸üء\n\t\nģʽ\n\t\n\tڵ\n\t\n\tӿڣ\n\t\tinterface  {\n\t\t\tvoid һȭ();\n\t\t\tvoid һ();\n\t\t\tvoid һש();\n\t\t\t...\n\t\t}\n\t\t\n\tࣺ\n\t\t\n\t\tclass ˴ implements  {\n\t\t\t\tpublic void һȭ() {\n\t\t\t\t\tsop(\"Ѫˣ͵ϴϴ\");\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tpublic void һ() {}\n\t\t\t\tpublic void һש() {}\n\t\t\t\t...\n\t\t\t}\n\t\t\t\n\tģʽĽ\n\t\n\tӿڣ\n\t\tinterface  {\n\t\t\tvoid һȭ();\n\t\t\tvoid һ();\n\t\t\tvoid һש();\n\t\t\t...\n\t\t}\n\t\n\tࣺ\n\t\tabstract class  implements  {\n\t\t\tpublic void һȭ(){}\n\t\t\tpublic void һ(){}\n\t\t\tpublic void һש(){}\n\t\t\t...\n\t\t}\n\t\t\n\tࣺ\n\t\t\n\t\tclass ˴ extends  {\n\t\t\tpublic void һȭ() {\n\t\t\t\tsop(\"Ѫˣ͵ϴϴ\");\n\t\t\t}\n\t\t}\n\t\t\n\t"
  },
  {
    "path": "day25/code/day25_Frame/src/cn/itcast_03/ButtonDemo.java",
    "content": "package cn.itcast_03;\n\nimport java.awt.Button;\nimport java.awt.FlowLayout;\nimport java.awt.Frame;\nimport java.awt.event.ActionEvent;\nimport java.awt.event.ActionListener;\nimport java.awt.event.WindowAdapter;\nimport java.awt.event.WindowEvent;\n\n/*\n * ڴһť԰ť¼ûһΰť̨ٵ\n * \n * \n * \t\tA:\n * \t\tB:ť\n * \t\tC:Ѱťӵ\n * \t\tD:ôʾ\n */\npublic class ButtonDemo {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\tFrame f = new Frame();\n\t\t// ô\n\t\tf.setTitle(\"ť¼\");\n\t\tf.setBounds(500, 250, 400, 300);\n\t\t// ò\n\t\tf.setLayout(new FlowLayout());\n\n\t\t// ť\n\t\tButton bu = new Button(\"Ұ\");\n\t\t// bu.setSize(20, 10);\n\n\t\t// Ѱťӵ\n\t\tf.add(bu);\n\n\t\t// ע¼\n\n\t\t// עᰴť¼\n\t\tbu.addActionListener(new ActionListener() {\n\t\t\t@Override\n\t\t\tpublic void actionPerformed(ActionEvent e) {\n\t\t\t\tSystem.out.println(\"ٵ\");\n\t\t\t}\n\t\t});\n\n\t\t// ر¼\n\t\tf.addWindowListener(new WindowAdapter() {\n\t\t\t@Override\n\t\t\tpublic void windowClosing(WindowEvent e) {\n\t\t\t\tSystem.exit(0);\n\t\t\t}\n\t\t});\n\n\t\t// ôʾ\n\t\tf.setVisible(true);\n\t}\n}\n"
  },
  {
    "path": "day25/code/day25_Frame/src/cn/itcast_04/TextDemo.java",
    "content": "package cn.itcast_04;\n\nimport java.awt.Button;\nimport java.awt.FlowLayout;\nimport java.awt.Frame;\nimport java.awt.TextArea;\nimport java.awt.TextField;\nimport java.awt.event.ActionEvent;\nimport java.awt.event.ActionListener;\nimport java.awt.event.WindowAdapter;\nimport java.awt.event.WindowEvent;\n\n/*\n * ͨ۲ͼǷ֪Ӧµļ\n * 壬ı򣬰ťı\n * ҶԴͰť¼\n */\npublic class TextDemo {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\tFrame f = new Frame(\"ת\");\n\t\t// ô\n\t\tf.setBounds(500, 250, 400, 300);\n\t\t// ò\n\t\tf.setLayout(new FlowLayout());\n\n\t\t// ı\n\t\tfinal TextField tf = new TextField(20);\n\t\t// ť\n\t\tButton bu = new Button(\"ת\");\n\t\t// ı\n\t\tfinal TextArea ta = new TextArea(10, 40);\n\n\t\t// ӵ\n\t\tf.add(tf);\n\t\tf.add(bu);\n\t\tf.add(ta);\n\n\t\t// ע¼\n\t\tf.addWindowListener(new WindowAdapter() {\n\t\t\t@Override\n\t\t\tpublic void windowClosing(WindowEvent e) {\n\t\t\t\tSystem.exit(0);\n\t\t\t}\n\t\t});\n\n\t\t// bu¼\n\t\tbu.addActionListener(new ActionListener() {\n\t\t\t@Override\n\t\t\tpublic void actionPerformed(ActionEvent e) {\n\t\t\t\t// ȡıֵֵı\n\t\t\t\tString tf_str = tf.getText();\n\t\t\t\t// \n\t\t\t\ttf.setText(\"\");\n\n\t\t\t\t// ta.setText(tf_str);\n\t\t\t\tta.append(tf_str + \"\\n\");\n\t\t\t}\n\t\t});\n\n\t\t// ôɼ\n\t\tf.setVisible(true);\n\t}\n}\n"
  },
  {
    "path": "day25/code/day25_Frame/src/cn/itcast_04/TextDemo2.java",
    "content": "package cn.itcast_04;\n\nimport java.awt.Button;\nimport java.awt.FlowLayout;\nimport java.awt.Frame;\nimport java.awt.TextArea;\nimport java.awt.TextField;\nimport java.awt.event.ActionEvent;\nimport java.awt.event.ActionListener;\nimport java.awt.event.WindowAdapter;\nimport java.awt.event.WindowEvent;\nimport java.io.BufferedReader;\nimport java.io.BufferedWriter;\nimport java.io.FileReader;\nimport java.io.FileWriter;\nimport java.io.IOException;\n\n/*\n * ͨ۲ͼǷ֪Ӧµļ\n * 壬ı򣬰ťı\n * ҶԴͰť¼\n */\npublic class TextDemo2 {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\tFrame f = new Frame(\"ת\");\n\t\t// ô\n\t\tf.setBounds(500, 250, 400, 300);\n\t\t// ò\n\t\tf.setLayout(new FlowLayout());\n\n\t\t// ı\n\t\tfinal TextField tf = new TextField(20);\n\t\t// ť\n\t\tButton bu = new Button(\"дıļ\");\n\t\tButton bu2 = new Button(\"ȡıļ\");\n\t\t// ı\n\t\tfinal TextArea ta = new TextArea(10, 40);\n\n\t\t// ӵ\n\t\tf.add(tf);\n\t\tf.add(bu);\n\t\tf.add(bu2);\n\t\tf.add(ta);\n\n\t\t// ע¼\n\t\tf.addWindowListener(new WindowAdapter() {\n\t\t\t@Override\n\t\t\tpublic void windowClosing(WindowEvent e) {\n\t\t\t\tSystem.exit(0);\n\t\t\t}\n\t\t});\n\n\t\t// bu¼\n\t\tbu.addActionListener(new ActionListener() {\n\t\t\t@Override\n\t\t\tpublic void actionPerformed(ActionEvent e) {\n\t\t\t\t// ȡıֵֵı\n\t\t\t\tString tf_str = tf.getText();\n\t\t\t\t// \n\t\t\t\ttf.setText(\"\");\n\n\t\t\t\t// дıļ\n\t\t\t\tBufferedWriter bw = null;\n\t\t\t\ttry {\n\t\t\t\t\tbw = new BufferedWriter(new FileWriter(\"bw.txt\", true));\n\t\t\t\t\tbw.write(tf_str);\n\t\t\t\t\tbw.newLine();\n\t\t\t\t\tbw.flush();\n\t\t\t\t} catch (IOException e1) {\n\t\t\t\t\te1.printStackTrace();\n\t\t\t\t} finally {\n\t\t\t\t\tif (bw != null) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tbw.close();\n\t\t\t\t\t\t} catch (IOException e1) {\n\t\t\t\t\t\t\te1.printStackTrace();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tbu2.addActionListener(new ActionListener() {\n\t\t\t@Override\n\t\t\tpublic void actionPerformed(ActionEvent e) {\n\t\t\t\tta.setText(\"\");\n\n\t\t\t\tBufferedReader br = null;\n\t\t\t\ttry {\n\t\t\t\t\tbr = new BufferedReader(new FileReader(\"bw.txt\"));\n\t\t\t\t\tString line = null;\n\t\t\t\t\twhile ((line = br.readLine()) != null) {\n\t\t\t\t\t\tta.append(line + \"\\n\");\n\t\t\t\t\t}\n\t\t\t\t} catch (IOException e1) {\n\t\t\t\t\te1.printStackTrace();\n\t\t\t\t} finally {\n\t\t\t\t\tif (br != null) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tbr.close();\n\t\t\t\t\t\t} catch (IOException e1) {\n\t\t\t\t\t\t\te1.printStackTrace();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// ôɼ\n\t\tf.setVisible(true);\n\t}\n}\n"
  },
  {
    "path": "day25/code/day25_Frame/src/cn/itcast_05/MouseDemo.java",
    "content": "package cn.itcast_05;\n\nimport java.awt.Button;\nimport java.awt.Color;\nimport java.awt.FlowLayout;\nimport java.awt.Frame;\nimport java.awt.event.ActionEvent;\nimport java.awt.event.ActionListener;\nimport java.awt.event.MouseAdapter;\nimport java.awt.event.MouseEvent;\nimport java.awt.event.WindowAdapter;\nimport java.awt.event.WindowEvent;\nimport java.awt.event.WindowListener;\n\n/*\n * ͨ۲֪ҪĶ1壬4ť\n */\npublic class MouseDemo {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\tfinal Frame f = new Frame(\"ıɫ\");\n\t\t// ô\n\t\tf.setBounds(500, 250, 400, 300);\n\t\t// ò\n\t\tf.setLayout(new FlowLayout());\n\n\t\t// ť\n\t\tButton redButton = new Button(\"ɫ\");\n\t\tButton greenButton = new Button(\"ɫ\");\n\t\tButton blueButton = new Button(\"ɫ\");\n\t\tButton whiteButton = new Button(\"ԭ\");\n\n\t\t// ӵ\n\t\tf.add(redButton);\n\t\tf.add(greenButton);\n\t\tf.add(blueButton);\n\t\tf.add(whiteButton);\n\n\t\t// ע¼\n\t\tf.addWindowListener(new WindowAdapter() {\n\t\t\t@Override\n\t\t\tpublic void windowClosing(WindowEvent e) {\n\t\t\t\tSystem.exit(0);\n\t\t\t}\n\t\t});\n\n\t\t// redButton\n\n\t\t// ¼\n\t\t// redButton.addActionListener(new ActionListener() {\n\t\t// @Override\n\t\t// public void actionPerformed(ActionEvent e) {\n\t\t// // public void setBackground(Color c)\n\t\t// f.setBackground(Color.RED);\n\t\t// }\n\t\t// });\n\n\t\t// ¼\n\t\t// redButton.addMouseListener(new MouseAdapter() {\n\t\t// @Override\n\t\t// public void mouseClicked(MouseEvent e) {\n\t\t// f.setBackground(Color.RED);\n\t\t// }\n\t\t// });\n\n\t\tredButton.addMouseListener(new MouseAdapter() {\n\t\t\t@Override\n\t\t\tpublic void mouseEntered(MouseEvent e) {\n\t\t\t\tf.setBackground(Color.RED);\n\t\t\t}\n\t\t});\n\n\t\tredButton.addMouseListener(new MouseAdapter() {\n\t\t\t@Override\n\t\t\tpublic void mouseExited(MouseEvent e) {\n\t\t\t\tf.setBackground(Color.WHITE);\n\t\t\t}\n\t\t});\n\n\t\t// ôɼ\n\t\tf.setVisible(true);\n\n\t}\n}\n"
  },
  {
    "path": "day25/code/day25_Frame/src/cn/itcast_06/KeyDemo.java",
    "content": "package cn.itcast_06;\n\nimport java.awt.FlowLayout;\nimport java.awt.Frame;\nimport java.awt.Label;\nimport java.awt.TextField;\nimport java.awt.event.KeyAdapter;\nimport java.awt.event.KeyEvent;\nimport java.awt.event.WindowAdapter;\nimport java.awt.event.WindowEvent;\n\n/*\n * һ壬һǩһı\n */\npublic class KeyDemo {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\tfinal Frame f = new Frame(\"¼\");\n\t\t// ô\n\t\tf.setBounds(500, 250, 400, 300);\n\t\t// ò\n\t\tf.setLayout(new FlowLayout());\n\n\t\t// ǩ\n\t\tLabel label = new Label(\"qq룬ֻ,:\");\n\t\t// ı\n\t\tTextField tf = new TextField(20);\n\n\t\t// ӵ\n\t\tf.add(label);\n\t\tf.add(tf);\n\n\t\t// ע¼\n\t\tf.addWindowListener(new WindowAdapter() {\n\t\t\t@Override\n\t\t\tpublic void windowClosing(WindowEvent e) {\n\t\t\t\tSystem.exit(0);\n\t\t\t}\n\t\t});\n\n\t\ttf.addKeyListener(new KeyAdapter() {\n\t\t\t@Override\n\t\t\tpublic void keyPressed(KeyEvent e) {\n\t\t\t\t// public char getKeyChar()\n\t\t\t\tchar ch = e.getKeyChar();\n\t\t\t\tif (!(ch >= KeyEvent.VK_0 && ch <= KeyEvent.VK_9)) {\n\t\t\t\t\tSystem.out.println(\"ǣ\" + ch);\n\t\t\t\t\te.consume();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// ÿɼ\n\t\tf.setVisible(true);\n\t}\n}\n"
  },
  {
    "path": "day25/code/day25_Frame/src/cn/itcast_07/MenuDemo.java",
    "content": "package cn.itcast_07;\n\nimport java.awt.Frame;\nimport java.awt.Menu;\nimport java.awt.MenuBar;\nimport java.awt.MenuItem;\nimport java.awt.event.ActionEvent;\nimport java.awt.event.ActionListener;\nimport java.awt.event.WindowAdapter;\nimport java.awt.event.WindowEvent;\n\n/*\n * һ˵\n */\npublic class MenuDemo {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\tfinal Frame f = new Frame(\"һ˵\");\n\t\t// ô\n\t\tf.setBounds(500, 250, 400, 300);\n\n\t\t// ˵\n\t\tMenuBar mb = new MenuBar();\n\t\t// ˵\n\t\tMenu m = new Menu(\"ļ\");\n\t\t// ˵\n\t\tMenuItem mi = new MenuItem(\"˳ϵͳ\");\n\n\t\t// ˵\n\t\tm.add(mi);\n\t\tmb.add(m);\n\n\t\t// ӵ\n\t\tf.setMenuBar(mb);\n\n\t\t// ע¼\n\t\tf.addWindowListener(new WindowAdapter() {\n\t\t\t@Override\n\t\t\tpublic void windowClosing(WindowEvent e) {\n\t\t\t\tSystem.exit(0);\n\t\t\t}\n\t\t});\n\n\t\tmi.addActionListener(new ActionListener() {\n\t\t\t@Override\n\t\t\tpublic void actionPerformed(ActionEvent e) {\n\t\t\t\tSystem.exit(0);\n\t\t\t}\n\t\t});\n\n\t\tf.setVisible(true);\n\t}\n}\n"
  },
  {
    "path": "day25/code/day25_Frame/src/cn/itcast_07/MenuDemo2.java",
    "content": "package cn.itcast_07;\n\nimport java.awt.Frame;\nimport java.awt.Menu;\nimport java.awt.MenuBar;\nimport java.awt.MenuItem;\nimport java.awt.event.ActionEvent;\nimport java.awt.event.ActionListener;\nimport java.awt.event.WindowAdapter;\nimport java.awt.event.WindowEvent;\nimport java.io.IOException;\n\n/*\n * Frame\n * \t\tMenuBar\n * \t\t\tMenu\n * \t\t\t\tMenu\n * \t\t\t\t\tMenuItem\n * \t\t\t\tMenuItem\n */\npublic class MenuDemo2 {\n\tpublic static void main(String[] args) {\n\t\t// \n\t\tfinal Frame f = new Frame(\"༶˵\");\n\t\t// ô\n\t\tf.setBounds(500, 250, 400, 300);\n\n\t\t// ˵\n\t\tMenuBar mb = new MenuBar();\n\t\t// ˵\n\t\tMenu m1 = new Menu(\"ļ\");\n\t\tMenu m2 = new Menu(\"\");\n\t\t// ˵\n\t\tfinal MenuItem mi1 = new MenuItem(\"úѧϰ\");\n\t\tfinal MenuItem mi2 = new MenuItem(\"\");\n\t\tMenuItem mi3 = new MenuItem(\"ָ\");\n\t\tMenuItem mi4 = new MenuItem(\"򿪼±\");\n\t\tMenuItem mi5 = new MenuItem(\"˳ϵͳ\");\n\n\t\t// ˵\n\t\tm2.add(mi1);\n\t\tm2.add(mi2);\n\t\tm2.add(mi3);\n\n\t\tm1.add(m2);\n\t\tm1.add(mi4);\n\t\tm1.add(mi5);\n\n\t\tmb.add(m1);\n\n\t\t// ӵ\n\t\tf.setMenuBar(mb);\n\n\t\t// ȡǰı\n\t\tfinal String title = f.getTitle();\n\n\t\t// ע¼\n\t\tf.addWindowListener(new WindowAdapter() {\n\t\t\t@Override\n\t\t\tpublic void windowClosing(WindowEvent e) {\n\t\t\t\tSystem.exit(0);\n\t\t\t}\n\t\t});\n\n\t\tmi5.addActionListener(new ActionListener() {\n\n\t\t\t@Override\n\t\t\tpublic void actionPerformed(ActionEvent e) {\n\t\t\t\tSystem.exit(0);\n\t\t\t}\n\t\t});\n\n\t\tmi4.addActionListener(new ActionListener() {\n\n\t\t\t@Override\n\t\t\tpublic void actionPerformed(ActionEvent e) {\n\t\t\t\tRuntime r = Runtime.getRuntime();\n\t\t\t\ttry {\n\t\t\t\t\tr.exec(\"notepad\");\n\t\t\t\t} catch (IOException e1) {\n\t\t\t\t\te1.printStackTrace();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tmi1.addActionListener(new ActionListener() {\n\n\t\t\t@Override\n\t\t\tpublic void actionPerformed(ActionEvent e) {\n\t\t\t\tf.setTitle(mi1.getLabel());\n\t\t\t}\n\t\t});\n\n\t\tmi2.addActionListener(new ActionListener() {\n\n\t\t\t@Override\n\t\t\tpublic void actionPerformed(ActionEvent e) {\n\t\t\t\tf.setTitle(mi2.getLabel());\n\t\t\t}\n\t\t});\n\n\t\tmi3.addActionListener(new ActionListener() {\n\n\t\t\t@Override\n\t\t\tpublic void actionPerformed(ActionEvent e) {\n\t\t\t\tf.setTitle(title);\n\t\t\t}\n\t\t});\n\n\t\tf.setVisible(true);\n\t}\n}\n"
  },
  {
    "path": "day25/code/txz_demo/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day25/code/txz_demo/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>txz_demo</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day25/code/txz_demo/.settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.7\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.7\n"
  },
  {
    "path": "day25/code/txz_demo/bin/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day25/code/txz_demo/bin/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>TXZProject</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day25/code/txz_demo/src/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day25/code/txz_demo/src/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>TXZProject</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day25/code/txz_demo/src/App.java",
    "content": "import cn.itcast.txz.ui.MainFrame;\n\n\npublic class App {\n\tpublic static void main(String[] args) {\n\t\tnew MainFrame();\n\t}\n}\n"
  },
  {
    "path": "day25/code/txz_demo/src/cn/itcast/txz/ui/LogicHelper.java",
    "content": "package cn.itcast.txz.ui;\n\npublic class LogicHelper {\n\tpublic static final int FLOOR = 0;\n\tpublic static final int WALL = 1;\n\tpublic static final int BOX = 2;\n\tpublic static final int TARGET = 4;\n\tpublic static final int BOX_AND_TARGET = 6;\n}\n"
  },
  {
    "path": "day25/code/txz_demo/src/cn/itcast/txz/ui/MainFrame.java",
    "content": "package cn.itcast.txz.ui;\n\nimport java.awt.Container;\nimport java.awt.event.KeyEvent;\nimport java.awt.event.KeyListener;\nimport java.awt.event.MouseAdapter;\nimport java.awt.event.MouseEvent;\nimport java.io.IOException;\n\nimport javax.swing.ImageIcon;\nimport javax.swing.JDialog;\nimport javax.swing.JFrame;\nimport javax.swing.JLabel;\n\n//Ϸ˵\n//ӱ˵\n//ϷԻͼ\n//ϷԻ\n//Ƕ\n\npublic class MainFrame extends JFrame implements KeyListener {\n\tprivate Container panel;\n\tprivate JLabel player;\n\t// \n\tprivate int playerX;\n\t// \n\tprivate int playerY;\n\t// ɼ\n\tint count = 0;\n\t// \n\tint total = 3;\n\n\tpublic MainFrame() {\n\t\t// UIʼ\n\t\tthis.mainFrameBaseUI();\n\t\t// UIݳʼ\n\t\tthis.dateInit();\n\t\t// UIʼ\n\t\tthis.dateUI();\n\t\t// ذUIʼ\n\t\tthis.backgroundUI();\n\t\t// Ӽ̼\n\t\tthis.addKeyListener(this);\n\t\tthis.setVisible(true);\n\t}\n\n\tprivate JLabel[][] uis = new JLabel[12][16];\n\n\tprivate void dateUI() {\n\t\t// ǽʼ\n\t\tfor (int i = 0; i < dates.length; i++) {\n\t\t\tfor (int j = 0; j < dates[i].length; j++) {\n\t\t\t\tif (dates[i][j] == 1) {\n\t\t\t\t\tJLabel temp = new JLabel(new ImageIcon(\"1.png\"));\n\t\t\t\t\ttemp.setBounds(10 + j * 50, 10 + i * 50, 50, 50);\n\t\t\t\t\tthis.panel.add(temp);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// ʼλõ3У3(ڵ0е0)\n\t\tthis.playerX = 3;\n\t\tthis.playerY = 3;\n\t\tplayer = new JLabel(new ImageIcon(\"-10.png\"));\n\t\tplayer.setBounds(10 + playerX * 50, 10 + playerY * 50, 50, 50);\n\t\tthis.panel.add(player);\n\n\t\t// Ŀʼ\n\t\t// totalй\n\t\tJLabel tar1 = new JLabel(new ImageIcon(\"8.png\"));\n\t\ttar1.setBounds(10 + 14 * 50, 10 + 5 * 50, 50, 50);\n\t\tthis.panel.add(tar1);\n\t\tdates[5][14] = LogicHelper.TARGET;\n\t\tuis[5][14] = tar1;\n\t\tJLabel tar2 = new JLabel(new ImageIcon(\"8.png\"));\n\t\ttar2.setBounds(10 + 14 * 50, 10 + 6 * 50, 50, 50);\n\t\tthis.panel.add(tar2);\n\t\tdates[6][14] = LogicHelper.TARGET;\n\t\tuis[6][14] = tar2;\n\t\tJLabel tar3 = new JLabel(new ImageIcon(\"8.png\"));\n\t\ttar3.setBounds(10 + 14 * 50, 10 + 7 * 50, 50, 50);\n\t\tthis.panel.add(tar3);\n\t\tdates[7][14] = LogicHelper.TARGET;\n\t\tuis[7][14] = tar3;\n\n\t\t// ӳʼ\n\t\t// totalй\n\t\tJLabel box1 = new JLabel(new ImageIcon(\"4.png\"));\n\t\tbox1.setBounds(10 + 7 * 50, 10 + 3 * 50, 50, 50);\n\t\tthis.panel.add(box1);\n\t\tdates[3][7] = LogicHelper.BOX;\n\t\tuis[3][7] = box1;\n\t\tJLabel box2 = new JLabel(new ImageIcon(\"4.png\"));\n\t\tbox2.setBounds(10 + 7 * 50, 10 + 5 * 50, 50, 50);\n\t\tthis.panel.add(box2);\n\t\tdates[5][7] = LogicHelper.BOX;\n\t\tuis[5][7] = box2;\n\t\tJLabel box3 = new JLabel(new ImageIcon(\"4.png\"));\n\t\tbox3.setBounds(10 + 7 * 50, 10 + 7 * 50, 50, 50);\n\t\tthis.panel.add(box3);\n\t\tdates[7][7] = LogicHelper.BOX;\n\t\tuis[7][7] = box3;\n\n\t}\n\n\tprivate int[][] dates = new int[12][16];\n\n\tprivate void dateInit() {\n\t\tdates = new int[][] {\n\t\t\t\t{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },\n\t\t\t\t{ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 },\n\t\t\t\t{ 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1 },\n\t\t\t\t{ 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1 },\n\t\t\t\t{ 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1 },\n\t\t\t\t{ 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1 },\n\t\t\t\t{ 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1 },\n\t\t\t\t{ 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1 },\n\t\t\t\t{ 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1 },\n\t\t\t\t{ 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 },\n\t\t\t\t{ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 },\n\t\t\t\t{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, };\n\t}\n\n\tprivate void backgroundUI() {\n\t\t// ͼƬϢ\n\t\tJLabel floor = new JLabel(new ImageIcon(\"floor.png\"));\n\t\tfloor.setBounds(10, 10, 800, 600);\n\t\tthis.panel.add(floor);\n\t}\n\n\tprivate void mainFrameBaseUI() {\n\t\tthis.panel = this.getContentPane();\n\t\tthis.setSize(826, 650);\n\t\tthis.setLocationRelativeTo(null);\n\t\tthis.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\n\t\tthis.panel.setLayout(null);\n\t\t// ô,ǿǲƷʶ,ͬʱÿϿνҪ԰汾v1.0е仯\n\t\tthis.setTitle(\"v1.0 - java.itcast.cn  ǲJavaѵѧԺȫõJavaѵJavaѵγ\");\n\t\tthis.setResizable(false);\n\t\tthis.getContentPane().setLayout(null);\n\t}\n\n\t// ƶƣԭʼλýƶ2ʾֱƶƶ3ʾˮƽƶƶ\n\tprivate static void move(JLabel c, int vMoveType, int hMoveType) {\n\t\tc.setLocation(c.getX() - hMoveType * 50, c.getY() - vMoveType * 50);\n\t}\n\n\tpublic void keyPressed(KeyEvent e) {\n\t\tint keyCode = e.getKeyCode();\n\t\tint x = keyCode % 2 == 0 ? 39 - keyCode : 0;\n\t\tint y = keyCode % 2 == 1 ? 38 - keyCode : 0;\n\n\t\t// ǽ\n\t\tif (keyCode >= 37 && keyCode <= 40) {\n\t\t\t// ͼƬл\n\t\t\t// 10\n\t\t\t// -10\n\t\t\t// 01\n\t\t\t// 0-1\n\t\t\tplayer.setIcon(new ImageIcon(x + \"\" + y + \".png\"));\n\t\t\t// ذ,Ŀ\n\t\t\tif (dates[playerX - x][playerY - y] == LogicHelper.FLOOR\n\t\t\t\t\t|| dates[playerX - x][playerY - y] == LogicHelper.TARGET) {\n\t\t\t\tmove(player, x, y);\n\t\t\t\tplayerX = playerX - x;\n\t\t\t\tplayerY = playerY - y;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Ӽ\n\t\t\tif (dates[playerX - x][playerY - y] == LogicHelper.BOX\n\t\t\t\t\t|| dates[playerX - x][playerY - y] == LogicHelper.BOX_AND_TARGET) {\n\t\t\t\t// ͬǷΪյذĿλ\n\t\t\t\t// ȡǰƶϰ\n\t\t\t\tint code1 = dates[playerX - x][playerY - y];\n\t\t\t\tint code2 = dates[playerX - x * 2][playerY - y * 2];\n\t\t\t\tif (code2 == LogicHelper.FLOOR || code2 == LogicHelper.TARGET) {\n\t\t\t\t\t// ƶ\n\t\t\t\t\tJLabel box = uis[playerX - x][playerY - y];\n\t\t\t\t\tmove(box, x, y);\n\t\t\t\t\t// uisģ͸\n\t\t\t\t\tuis[playerX - x * 2][playerY - y * 2] = uis[playerX - x][playerY\n\t\t\t\t\t\t\t- y];\n\t\t\t\t\tuis[playerX - x][playerY - y] = null;\n\n\t\t\t\t\t// datesģ͸\n\t\t\t\t\t// ӵյ\n\t\t\t\t\tif (code1 == LogicHelper.BOX && code2 == LogicHelper.FLOOR) {\n\t\t\t\t\t\tdates[playerX - x * 2][playerY - y * 2] = LogicHelper.BOX;\n\t\t\t\t\t\tdates[playerX - x][playerY - y] = LogicHelper.FLOOR;\n\t\t\t\t\t}\n\t\t\t\t\t// ӵĿ\n\t\t\t\t\tif (code1 == LogicHelper.BOX && code2 == LogicHelper.TARGET) {\n\t\t\t\t\t\tdates[playerX - x * 2][playerY - y * 2] = LogicHelper.BOX_AND_TARGET;\n\t\t\t\t\t\tdates[playerX - x][playerY - y] = LogicHelper.FLOOR;\n\t\t\t\t\t\t// ıģ\n\t\t\t\t\t\tbox.setIcon(new ImageIcon(\"40.png\"));\n\t\t\t\t\t\tcount++;\n\t\t\t\t\t}\n\t\t\t\t\t// Ŀ굽յ\n\t\t\t\t\tif (code1 == LogicHelper.BOX_AND_TARGET\n\t\t\t\t\t\t\t&& code2 == LogicHelper.FLOOR) {\n\t\t\t\t\t\tdates[playerX - x * 2][playerY - y * 2] = LogicHelper.BOX;\n\t\t\t\t\t\tdates[playerX - x][playerY - y] = LogicHelper.TARGET;\n\t\t\t\t\t\t// ıģ\n\t\t\t\t\t\tbox.setIcon(new ImageIcon(\"4.png\"));\n\t\t\t\t\t\tcount--;\n\t\t\t\t\t}\n\t\t\t\t\t// Ŀ굽Ŀ\n\t\t\t\t\tif (code1 == LogicHelper.BOX_AND_TARGET\n\t\t\t\t\t\t\t&& code2 == LogicHelper.TARGET) {\n\t\t\t\t\t\tdates[playerX - x * 2][playerY - y * 2] = LogicHelper.BOX_AND_TARGET;\n\t\t\t\t\t\tdates[playerX - x][playerY - y] = LogicHelper.TARGET;\n\t\t\t\t\t\t// ıģ\n\t\t\t\t\t\tbox.setIcon(new ImageIcon(\"40.png\"));\n\t\t\t\t\t}\n\n\t\t\t\t\t// ģƶ\n\t\t\t\t\tmove(player, x, y);\n\t\t\t\t\t// \n\t\t\t\t\tplayerX = playerX - x;\n\t\t\t\t\tplayerY = playerY - y;\n\n\t\t\t\t\tvictory();\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\t// ʤж\n\tprivate void victory() {\n\t\tif (count == total) {\n\t\t\t// Ƴ¼û\n\t\t\tthis.removeKeyListener(this);\n\t\t\t// ´Ϊֲ룬ҪϺն\n\t\t\tJDialog victory = new JDialog(this, \"ϲȡʤ!ǲ͡JAVAѵҵ콢\",\n\t\t\t\t\ttrue);\n\t\t\tvictory.setSize(400, 300);\n\t\t\tvictory.setLocationRelativeTo(null);\n\t\t\tvictory.setLayout(null);\n\n\t\t\tJLabel info = new JLabel(new ImageIcon(\"gg.jpg\"));\n\t\t\tinfo.setBounds(2, 2, 380, 180);\n\t\t\tvictory.add(info);\n\n\t\t\tJLabel click = new JLabel(new ImageIcon(\"gg2.jpg\"));\n\t\t\tclick.setBounds(2, 182, 380, 88);\n\t\t\tclick.addMouseListener(new MouseAdapter() {\n\t\t\t\tpublic void mousePressed(MouseEvent e) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tRuntime.getRuntime()\n\t\t\t\t\t\t\t\t.exec(\"rundll32 url.dll,FileProtocolHandler http://www.itcast.cn\");\n\t\t\t\t\t} catch (IOException e1) {\n\t\t\t\t\t\te1.printStackTrace();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tvictory.add(click);\n\t\t\tvictory.setVisible(true);\n\t\t}\n\t}\n\n\tpublic void keyReleased(KeyEvent e) {\n\t}\n\n\tpublic void keyTyped(KeyEvent e) {\n\t}\n}\n"
  },
  {
    "path": "day25/code/修改皮肤要使用的资源/MyLookAndFeel.java",
    "content": "package cn.itcast_01;\n//涨˳ҪʹõƤַ·\npublic abstract class MyLookAndFeel {\n\t// ϵͳԴƤ,5ֶ\n\tpublic static String SYS_METAL = \"javax.swing.plaf.metal.MetalLookAndFeel\";\n\tpublic static String SYS_NIMBUS = \"com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel\";\n\t// и\n\tpublic static String SYS_CDE_MOTIF = \"com.sun.java.swing.plaf.motif.MotifLookAndFeel\";\n\tpublic static String SYS_WINDOWS = \"com.sun.java.swing.plaf.windows.WindowsLookAndFeel\";\n\tpublic static String SYS_WINDOWS_CLASSIC = \"com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel\";\n\t// JIattoo jarԴ\n\tpublic static String JTATTOO_ACRYL = \"com.jtattoo.plaf.acryl.AcrylLookAndFeel\";\n\tpublic static String JTATTOO_AERO = \"com.jtattoo.plaf.aero.AeroLookAndFeel\";\n\t// \n\tpublic static String JTATTOO_ALUMINUM = \"com.jtattoo.plaf.aluminium.AluminiumLookAndFeel\";\n\t// ϲ\n\tpublic static String JTATTOO_BERNSTEIN = \"com.jtattoo.plaf.bernstein.BernsteinLookAndFeel\";\n\tpublic static String JTATTOO_FAST = \"com.jtattoo.plaf.fast.FastLookAndFeel\";\n\t// и\n\tpublic static String JTATTOO_HIFI = \"com.jtattoo.plaf.hifi.HiFiLookAndFeel\";\n\tpublic static String JTATTOO_LUNA = \"com.jtattoo.plaf.luna.LunaLookAndFeel\";\n\t// ϲ\n\tpublic static String JTATTOO_MCWIN = \"com.jtattoo.plaf.mcwin.McWinLookAndFeel\";\n\tpublic static String JTATTOO_MINT = \"com.jtattoo.plaf.mint.MintLookAndFeel\";\n\t// и\n\tpublic static String JTATTOO_NOIRE = \"com.jtattoo.plaf.noire.NoireLookAndFeel\";\n\tpublic static String JTATTOO_SMART = \"com.jtattoo.plaf.smart.SmartLookAndFeel\";\n\t// liquidlnf.jarԴ\n\t// ϲ\n\tpublic static String LIQUIDINF = \"com.birosoft.liquid.LiquidLookAndFeel\";\n}\n"
  },
  {
    "path": "day25/code/四则运算/build/classes/.netbeans_automatic_build",
    "content": ""
  },
  {
    "path": "day25/code/四则运算/build/classes/.netbeans_update_resources",
    "content": ""
  },
  {
    "path": "day25/code/四则运算/build/classes/cn/itcast_01/OperatorJFrame.form",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<Form version=\"1.3\" maxVersion=\"1.9\" type=\"org.netbeans.modules.form.forminfo.JFrameFormInfo\">\n  <Properties>\n    <Property name=\"defaultCloseOperation\" type=\"int\" value=\"3\"/>\n  </Properties>\n  <SyntheticProperties>\n    <SyntheticProperty name=\"formSizePolicy\" type=\"int\" value=\"1\"/>\n    <SyntheticProperty name=\"generateCenter\" type=\"boolean\" value=\"false\"/>\n  </SyntheticProperties>\n  <AuxValues>\n    <AuxValue name=\"FormSettings_autoResourcing\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_autoSetComponentName\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_generateFQN\" type=\"java.lang.Boolean\" value=\"true\"/>\n    <AuxValue name=\"FormSettings_generateMnemonicsCode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_i18nAutoMode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_layoutCodeTarget\" type=\"java.lang.Integer\" value=\"1\"/>\n    <AuxValue name=\"FormSettings_listenerGenerationStyle\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_variablesLocal\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_variablesModifier\" type=\"java.lang.Integer\" value=\"2\"/>\n  </AuxValues>\n\n  <Layout>\n    <DimensionLayout dim=\"0\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"0\" attributes=\"0\">\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"0\" max=\"-2\" attributes=\"0\">\n                  <Component id=\"jLabel1\" max=\"32767\" attributes=\"0\"/>\n                  <Component id=\"firstNumber\" max=\"32767\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"1\" attributes=\"0\">\n                  <Group type=\"102\" attributes=\"0\">\n                      <Component id=\"choiceOperator\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                      <EmptySpace max=\"-2\" attributes=\"0\"/>\n                      <Component id=\"secondNumber\" min=\"-2\" pref=\"72\" max=\"-2\" attributes=\"0\"/>\n                  </Group>\n                  <Component id=\"jLabel2\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Component id=\"jLabel3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n                  <Component id=\"jiSuanButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"resultNumber\" min=\"-2\" pref=\"72\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jLabel4\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace max=\"32767\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n    <DimensionLayout dim=\"1\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"0\" attributes=\"0\">\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"jLabel1\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jLabel2\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jLabel4\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"firstNumber\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"choiceOperator\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"secondNumber\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jLabel3\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"resultNumber\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace type=\"separate\" max=\"-2\" attributes=\"0\"/>\n              <Component id=\"jiSuanButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              <EmptySpace max=\"32767\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n  </Layout>\n  <SubComponents>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel1\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x7b2c;&#x4e00;&#x4e2a;&#x64cd;&#x4f5c;&#x6570;\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JTextField\" name=\"firstNumber\">\n    </Component>\n    <Component class=\"javax.swing.JComboBox\" name=\"choiceOperator\">\n      <Properties>\n        <Property name=\"model\" type=\"javax.swing.ComboBoxModel\" editor=\"org.netbeans.modules.form.editors2.ComboBoxModelEditor\">\n          <StringArray count=\"4\">\n            <StringItem index=\"0\" value=\"+\"/>\n            <StringItem index=\"1\" value=\"-\"/>\n            <StringItem index=\"2\" value=\"*\"/>\n            <StringItem index=\"3\" value=\"/\"/>\n          </StringArray>\n        </Property>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel2\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x7b2c;&#x4e8c;&#x4e2a;&#x64cd;&#x4f5c;&#x6570;\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JTextField\" name=\"secondNumber\">\n    </Component>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel3\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"=\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JTextField\" name=\"resultNumber\">\n    </Component>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel4\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x7ed3;&#x679c;\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JButton\" name=\"jiSuanButton\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x8ba1;&#x7b97;\"/>\n      </Properties>\n      <Events>\n        <EventHandler event=\"mouseClicked\" listener=\"java.awt.event.MouseListener\" parameters=\"java.awt.event.MouseEvent\" handler=\"jiSuanButtonMouseClicked\"/>\n      </Events>\n    </Component>\n  </SubComponents>\n</Form>\n"
  },
  {
    "path": "day25/code/四则运算/build/classes/cn/itcast_02/OperatorJFrame.form",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<Form version=\"1.3\" maxVersion=\"1.9\" type=\"org.netbeans.modules.form.forminfo.JFrameFormInfo\">\n  <Properties>\n    <Property name=\"defaultCloseOperation\" type=\"int\" value=\"3\"/>\n  </Properties>\n  <SyntheticProperties>\n    <SyntheticProperty name=\"formSizePolicy\" type=\"int\" value=\"1\"/>\n    <SyntheticProperty name=\"generateCenter\" type=\"boolean\" value=\"false\"/>\n  </SyntheticProperties>\n  <AuxValues>\n    <AuxValue name=\"FormSettings_autoResourcing\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_autoSetComponentName\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_generateFQN\" type=\"java.lang.Boolean\" value=\"true\"/>\n    <AuxValue name=\"FormSettings_generateMnemonicsCode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_i18nAutoMode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_layoutCodeTarget\" type=\"java.lang.Integer\" value=\"1\"/>\n    <AuxValue name=\"FormSettings_listenerGenerationStyle\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_variablesLocal\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_variablesModifier\" type=\"java.lang.Integer\" value=\"2\"/>\n  </AuxValues>\n\n  <Layout>\n    <DimensionLayout dim=\"0\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"0\" attributes=\"0\">\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"0\" max=\"-2\" attributes=\"0\">\n                  <Component id=\"jLabel1\" max=\"32767\" attributes=\"0\"/>\n                  <Component id=\"firstNumber\" max=\"32767\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"1\" attributes=\"0\">\n                  <Group type=\"102\" attributes=\"0\">\n                      <Component id=\"choiceOperator\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                      <EmptySpace max=\"-2\" attributes=\"0\"/>\n                      <Component id=\"secondNumber\" min=\"-2\" pref=\"72\" max=\"-2\" attributes=\"0\"/>\n                  </Group>\n                  <Component id=\"jLabel2\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Component id=\"jLabel3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n                  <Component id=\"jiSuanButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"resultNumber\" min=\"-2\" pref=\"72\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jLabel4\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace max=\"32767\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n    <DimensionLayout dim=\"1\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"0\" attributes=\"0\">\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"jLabel1\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jLabel2\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jLabel4\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"firstNumber\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"choiceOperator\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"secondNumber\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jLabel3\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"resultNumber\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace type=\"separate\" max=\"-2\" attributes=\"0\"/>\n              <Component id=\"jiSuanButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              <EmptySpace max=\"32767\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n  </Layout>\n  <SubComponents>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel1\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x7b2c;&#x4e00;&#x4e2a;&#x64cd;&#x4f5c;&#x6570;\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JTextField\" name=\"firstNumber\">\n    </Component>\n    <Component class=\"javax.swing.JComboBox\" name=\"choiceOperator\">\n      <Properties>\n        <Property name=\"model\" type=\"javax.swing.ComboBoxModel\" editor=\"org.netbeans.modules.form.editors2.ComboBoxModelEditor\">\n          <StringArray count=\"4\">\n            <StringItem index=\"0\" value=\"+\"/>\n            <StringItem index=\"1\" value=\"-\"/>\n            <StringItem index=\"2\" value=\"*\"/>\n            <StringItem index=\"3\" value=\"/\"/>\n          </StringArray>\n        </Property>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel2\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x7b2c;&#x4e8c;&#x4e2a;&#x64cd;&#x4f5c;&#x6570;\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JTextField\" name=\"secondNumber\">\n    </Component>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel3\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"=\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JTextField\" name=\"resultNumber\">\n    </Component>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel4\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x7ed3;&#x679c;\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JButton\" name=\"jiSuanButton\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x8ba1;&#x7b97;\"/>\n      </Properties>\n      <Events>\n        <EventHandler event=\"mouseClicked\" listener=\"java.awt.event.MouseListener\" parameters=\"java.awt.event.MouseEvent\" handler=\"jiSuanButtonMouseClicked\"/>\n      </Events>\n    </Component>\n  </SubComponents>\n</Form>\n"
  },
  {
    "path": "day25/code/四则运算/build/classes/cn/itcast_03/OperatorJFrame.form",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<Form version=\"1.3\" maxVersion=\"1.9\" type=\"org.netbeans.modules.form.forminfo.JFrameFormInfo\">\n  <Properties>\n    <Property name=\"defaultCloseOperation\" type=\"int\" value=\"3\"/>\n  </Properties>\n  <SyntheticProperties>\n    <SyntheticProperty name=\"formSizePolicy\" type=\"int\" value=\"1\"/>\n    <SyntheticProperty name=\"generateCenter\" type=\"boolean\" value=\"false\"/>\n  </SyntheticProperties>\n  <AuxValues>\n    <AuxValue name=\"FormSettings_autoResourcing\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_autoSetComponentName\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_generateFQN\" type=\"java.lang.Boolean\" value=\"true\"/>\n    <AuxValue name=\"FormSettings_generateMnemonicsCode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_i18nAutoMode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_layoutCodeTarget\" type=\"java.lang.Integer\" value=\"1\"/>\n    <AuxValue name=\"FormSettings_listenerGenerationStyle\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_variablesLocal\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_variablesModifier\" type=\"java.lang.Integer\" value=\"2\"/>\n  </AuxValues>\n\n  <Layout>\n    <DimensionLayout dim=\"0\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"0\" attributes=\"0\">\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"0\" max=\"-2\" attributes=\"0\">\n                  <Component id=\"jLabel1\" max=\"32767\" attributes=\"0\"/>\n                  <Component id=\"firstNumber\" max=\"32767\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"1\" attributes=\"0\">\n                  <Group type=\"102\" attributes=\"0\">\n                      <Component id=\"choiceOperator\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                      <EmptySpace max=\"-2\" attributes=\"0\"/>\n                      <Component id=\"secondNumber\" min=\"-2\" pref=\"72\" max=\"-2\" attributes=\"0\"/>\n                  </Group>\n                  <Component id=\"jLabel2\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Component id=\"jLabel3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n                  <Component id=\"jiSuanButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"resultNumber\" min=\"-2\" pref=\"72\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jLabel4\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace max=\"32767\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n    <DimensionLayout dim=\"1\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"0\" attributes=\"0\">\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"jLabel1\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jLabel2\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jLabel4\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"firstNumber\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"choiceOperator\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"secondNumber\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jLabel3\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"resultNumber\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace type=\"separate\" max=\"-2\" attributes=\"0\"/>\n              <Component id=\"jiSuanButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              <EmptySpace max=\"32767\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n  </Layout>\n  <SubComponents>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel1\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x7b2c;&#x4e00;&#x4e2a;&#x64cd;&#x4f5c;&#x6570;\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JTextField\" name=\"firstNumber\">\n    </Component>\n    <Component class=\"javax.swing.JComboBox\" name=\"choiceOperator\">\n      <Properties>\n        <Property name=\"model\" type=\"javax.swing.ComboBoxModel\" editor=\"org.netbeans.modules.form.editors2.ComboBoxModelEditor\">\n          <StringArray count=\"4\">\n            <StringItem index=\"0\" value=\"+\"/>\n            <StringItem index=\"1\" value=\"-\"/>\n            <StringItem index=\"2\" value=\"*\"/>\n            <StringItem index=\"3\" value=\"/\"/>\n          </StringArray>\n        </Property>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel2\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x7b2c;&#x4e8c;&#x4e2a;&#x64cd;&#x4f5c;&#x6570;\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JTextField\" name=\"secondNumber\">\n    </Component>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel3\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"=\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JTextField\" name=\"resultNumber\">\n    </Component>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel4\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x7ed3;&#x679c;\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JButton\" name=\"jiSuanButton\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x8ba1;&#x7b97;\"/>\n      </Properties>\n      <Events>\n        <EventHandler event=\"mouseClicked\" listener=\"java.awt.event.MouseListener\" parameters=\"java.awt.event.MouseEvent\" handler=\"jiSuanButtonMouseClicked\"/>\n      </Events>\n    </Component>\n  </SubComponents>\n</Form>\n"
  },
  {
    "path": "day25/code/四则运算/build.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!-- You may freely edit this file. See commented blocks below for -->\n<!-- some examples of how to customize the build. -->\n<!-- (If you delete it and reopen the project it will be recreated.) -->\n<!-- By default, only the Clean and Build commands use this build script. -->\n<!-- Commands such as Run, Debug, and Test only use this build script if -->\n<!-- the Compile on Save feature is turned off for the project. -->\n<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->\n<!-- in the project's Project Properties dialog box.-->\n<project name=\"四则运算\" default=\"default\" basedir=\".\">\n    <description>Builds, tests, and runs the project 四则运算.</description>\n    <import file=\"nbproject/build-impl.xml\"/>\n    <!--\n\n    There exist several targets which are by default empty and which can be \n    used for execution of your tasks. These targets are usually executed \n    before and after some main targets. They are: \n\n      -pre-init:                 called before initialization of project properties\n      -post-init:                called after initialization of project properties\n      -pre-compile:              called before javac compilation\n      -post-compile:             called after javac compilation\n      -pre-compile-single:       called before javac compilation of single file\n      -post-compile-single:      called after javac compilation of single file\n      -pre-compile-test:         called before javac compilation of JUnit tests\n      -post-compile-test:        called after javac compilation of JUnit tests\n      -pre-compile-test-single:  called before javac compilation of single JUnit test\n      -post-compile-test-single: called after javac compilation of single JUunit test\n      -pre-jar:                  called before JAR building\n      -post-jar:                 called after JAR building\n      -post-clean:               called after cleaning build products\n\n    (Targets beginning with '-' are not intended to be called on their own.)\n\n    Example of inserting an obfuscator after compilation could look like this:\n\n        <target name=\"-post-compile\">\n            <obfuscate>\n                <fileset dir=\"${build.classes.dir}\"/>\n            </obfuscate>\n        </target>\n\n    For list of available properties check the imported \n    nbproject/build-impl.xml file. \n\n\n    Another way to customize the build is by overriding existing main targets.\n    The targets of interest are: \n\n      -init-macrodef-javac:     defines macro for javac compilation\n      -init-macrodef-junit:     defines macro for junit execution\n      -init-macrodef-debug:     defines macro for class debugging\n      -init-macrodef-java:      defines macro for class execution\n      -do-jar:                  JAR building\n      run:                      execution of project \n      -javadoc-build:           Javadoc generation\n      test-report:              JUnit report generation\n\n    An example of overriding the target for project execution could look like this:\n\n        <target name=\"run\" depends=\"四则运算-impl.jar\">\n            <exec dir=\"bin\" executable=\"launcher.exe\">\n                <arg file=\"${dist.jar}\"/>\n            </exec>\n        </target>\n\n    Notice that the overridden target depends on the jar target and not only on \n    the compile target as the regular run target does. Again, for a list of available \n    properties which you can use, check the target you are overriding in the\n    nbproject/build-impl.xml file. \n\n    -->\n</project>\n"
  },
  {
    "path": "day25/code/四则运算/manifest.mf",
    "content": "Manifest-Version: 1.0\nX-COMMENT: Main-Class will be added automatically by build\n\n"
  },
  {
    "path": "day25/code/四则运算/nbproject/build-impl.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n*** GENERATED FROM project.xml - DO NOT EDIT  ***\n***         EDIT ../build.xml INSTEAD         ***\n\nFor the purpose of easier reading the script\nis divided into following sections:\n\n  - initialization\n  - compilation\n  - jar\n  - execution\n  - debugging\n  - javadoc\n  - test compilation\n  - test execution\n  - test debugging\n  - applet\n  - cleanup\n\n        -->\n<project xmlns:j2seproject1=\"http://www.netbeans.org/ns/j2se-project/1\" xmlns:j2seproject3=\"http://www.netbeans.org/ns/j2se-project/3\" xmlns:jaxrpc=\"http://www.netbeans.org/ns/j2se-project/jax-rpc\" basedir=\"..\" default=\"default\" name=\"四则运算-impl\">\n    <fail message=\"Please build using Ant 1.8.0 or higher.\">\n        <condition>\n            <not>\n                <antversion atleast=\"1.8.0\"/>\n            </not>\n        </condition>\n    </fail>\n    <target depends=\"test,jar,javadoc\" description=\"Build and test whole project.\" name=\"default\"/>\n    <!-- \n                ======================\n                INITIALIZATION SECTION \n                ======================\n            -->\n    <target name=\"-pre-init\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target depends=\"-pre-init\" name=\"-init-private\">\n        <property file=\"nbproject/private/config.properties\"/>\n        <property file=\"nbproject/private/configs/${config}.properties\"/>\n        <property file=\"nbproject/private/private.properties\"/>\n    </target>\n    <target depends=\"-pre-init,-init-private\" name=\"-init-user\">\n        <property file=\"${user.properties.file}\"/>\n        <!-- The two properties below are usually overridden -->\n        <!-- by the active platform. Just a fallback. -->\n        <property name=\"default.javac.source\" value=\"1.4\"/>\n        <property name=\"default.javac.target\" value=\"1.4\"/>\n    </target>\n    <target depends=\"-pre-init,-init-private,-init-user\" name=\"-init-project\">\n        <property file=\"nbproject/configs/${config}.properties\"/>\n        <property file=\"nbproject/project.properties\"/>\n    </target>\n    <target depends=\"-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property\" name=\"-do-init\">\n        <property name=\"platform.java\" value=\"${java.home}/bin/java\"/>\n        <available file=\"${manifest.file}\" property=\"manifest.available\"/>\n        <condition property=\"splashscreen.available\">\n            <and>\n                <not>\n                    <equals arg1=\"${application.splash}\" arg2=\"\" trim=\"true\"/>\n                </not>\n                <available file=\"${application.splash}\"/>\n            </and>\n        </condition>\n        <condition property=\"main.class.available\">\n            <and>\n                <isset property=\"main.class\"/>\n                <not>\n                    <equals arg1=\"${main.class}\" arg2=\"\" trim=\"true\"/>\n                </not>\n            </and>\n        </condition>\n        <condition property=\"profile.available\">\n            <and>\n                <isset property=\"javac.profile\"/>\n                <length length=\"0\" string=\"${javac.profile}\" when=\"greater\"/>\n                <matches pattern=\"1\\.[89](\\..*)?\" string=\"${javac.source}\"/>\n            </and>\n        </condition>\n        <condition property=\"do.archive\">\n            <not>\n                <istrue value=\"${jar.archive.disabled}\"/>\n            </not>\n        </condition>\n        <condition property=\"do.mkdist\">\n            <and>\n                <isset property=\"do.archive\"/>\n                <isset property=\"libs.CopyLibs.classpath\"/>\n                <not>\n                    <istrue value=\"${mkdist.disabled}\"/>\n                </not>\n            </and>\n        </condition>\n        <condition property=\"do.archive+manifest.available\">\n            <and>\n                <isset property=\"manifest.available\"/>\n                <istrue value=\"${do.archive}\"/>\n            </and>\n        </condition>\n        <condition property=\"do.archive+main.class.available\">\n            <and>\n                <isset property=\"main.class.available\"/>\n                <istrue value=\"${do.archive}\"/>\n            </and>\n        </condition>\n        <condition property=\"do.archive+splashscreen.available\">\n            <and>\n                <isset property=\"splashscreen.available\"/>\n                <istrue value=\"${do.archive}\"/>\n            </and>\n        </condition>\n        <condition property=\"do.archive+profile.available\">\n            <and>\n                <isset property=\"profile.available\"/>\n                <istrue value=\"${do.archive}\"/>\n            </and>\n        </condition>\n        <condition property=\"have.tests\">\n            <or>\n                <available file=\"${test.src.dir}\"/>\n            </or>\n        </condition>\n        <condition property=\"have.sources\">\n            <or>\n                <available file=\"${src.dir}\"/>\n            </or>\n        </condition>\n        <condition property=\"netbeans.home+have.tests\">\n            <and>\n                <isset property=\"netbeans.home\"/>\n                <isset property=\"have.tests\"/>\n            </and>\n        </condition>\n        <condition property=\"no.javadoc.preview\">\n            <and>\n                <isset property=\"javadoc.preview\"/>\n                <isfalse value=\"${javadoc.preview}\"/>\n            </and>\n        </condition>\n        <property name=\"run.jvmargs\" value=\"\"/>\n        <property name=\"run.jvmargs.ide\" value=\"\"/>\n        <property name=\"javac.compilerargs\" value=\"\"/>\n        <property name=\"work.dir\" value=\"${basedir}\"/>\n        <condition property=\"no.deps\">\n            <and>\n                <istrue value=\"${no.dependencies}\"/>\n            </and>\n        </condition>\n        <property name=\"javac.debug\" value=\"true\"/>\n        <property name=\"javadoc.preview\" value=\"true\"/>\n        <property name=\"application.args\" value=\"\"/>\n        <property name=\"source.encoding\" value=\"${file.encoding}\"/>\n        <property name=\"runtime.encoding\" value=\"${source.encoding}\"/>\n        <condition property=\"javadoc.encoding.used\" value=\"${javadoc.encoding}\">\n            <and>\n                <isset property=\"javadoc.encoding\"/>\n                <not>\n                    <equals arg1=\"${javadoc.encoding}\" arg2=\"\"/>\n                </not>\n            </and>\n        </condition>\n        <property name=\"javadoc.encoding.used\" value=\"${source.encoding}\"/>\n        <property name=\"includes\" value=\"**\"/>\n        <property name=\"excludes\" value=\"\"/>\n        <property name=\"do.depend\" value=\"false\"/>\n        <condition property=\"do.depend.true\">\n            <istrue value=\"${do.depend}\"/>\n        </condition>\n        <path id=\"endorsed.classpath.path\" path=\"${endorsed.classpath}\"/>\n        <condition else=\"\" property=\"endorsed.classpath.cmd.line.arg\" value=\"-Xbootclasspath/p:'${toString:endorsed.classpath.path}'\">\n            <and>\n                <isset property=\"endorsed.classpath\"/>\n                <not>\n                    <equals arg1=\"${endorsed.classpath}\" arg2=\"\" trim=\"true\"/>\n                </not>\n            </and>\n        </condition>\n        <condition else=\"\" property=\"javac.profile.cmd.line.arg\" value=\"-profile ${javac.profile}\">\n            <isset property=\"profile.available\"/>\n        </condition>\n        <condition else=\"false\" property=\"jdkBug6558476\">\n            <and>\n                <matches pattern=\"1\\.[56]\" string=\"${java.specification.version}\"/>\n                <not>\n                    <os family=\"unix\"/>\n                </not>\n            </and>\n        </condition>\n        <property name=\"javac.fork\" value=\"${jdkBug6558476}\"/>\n        <property name=\"jar.index\" value=\"false\"/>\n        <property name=\"jar.index.metainf\" value=\"${jar.index}\"/>\n        <property name=\"copylibs.rebase\" value=\"true\"/>\n        <available file=\"${meta.inf.dir}/persistence.xml\" property=\"has.persistence.xml\"/>\n        <condition property=\"junit.available\">\n            <or>\n                <available classname=\"org.junit.Test\" classpath=\"${run.test.classpath}\"/>\n                <available classname=\"junit.framework.Test\" classpath=\"${run.test.classpath}\"/>\n            </or>\n        </condition>\n        <condition property=\"testng.available\">\n            <available classname=\"org.testng.annotations.Test\" classpath=\"${run.test.classpath}\"/>\n        </condition>\n        <condition property=\"junit+testng.available\">\n            <and>\n                <istrue value=\"${junit.available}\"/>\n                <istrue value=\"${testng.available}\"/>\n            </and>\n        </condition>\n        <condition else=\"testng\" property=\"testng.mode\" value=\"mixed\">\n            <istrue value=\"${junit+testng.available}\"/>\n        </condition>\n        <condition else=\"\" property=\"testng.debug.mode\" value=\"-mixed\">\n            <istrue value=\"${junit+testng.available}\"/>\n        </condition>\n    </target>\n    <target name=\"-post-init\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target depends=\"-pre-init,-init-private,-init-user,-init-project,-do-init\" name=\"-init-check\">\n        <fail unless=\"src.dir\">Must set src.dir</fail>\n        <fail unless=\"test.src.dir\">Must set test.src.dir</fail>\n        <fail unless=\"build.dir\">Must set build.dir</fail>\n        <fail unless=\"dist.dir\">Must set dist.dir</fail>\n        <fail unless=\"build.classes.dir\">Must set build.classes.dir</fail>\n        <fail unless=\"dist.javadoc.dir\">Must set dist.javadoc.dir</fail>\n        <fail unless=\"build.test.classes.dir\">Must set build.test.classes.dir</fail>\n        <fail unless=\"build.test.results.dir\">Must set build.test.results.dir</fail>\n        <fail unless=\"build.classes.excludes\">Must set build.classes.excludes</fail>\n        <fail unless=\"dist.jar\">Must set dist.jar</fail>\n    </target>\n    <target name=\"-init-macrodef-property\">\n        <macrodef name=\"property\" uri=\"http://www.netbeans.org/ns/j2se-project/1\">\n            <attribute name=\"name\"/>\n            <attribute name=\"value\"/>\n            <sequential>\n                <property name=\"@{name}\" value=\"${@{value}}\"/>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-init-ap-cmdline-properties\" if=\"ap.supported.internal\" name=\"-init-macrodef-javac-with-processors\">\n        <macrodef name=\"javac\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${src.dir}\" name=\"srcdir\"/>\n            <attribute default=\"${build.classes.dir}\" name=\"destdir\"/>\n            <attribute default=\"${javac.classpath}\" name=\"classpath\"/>\n            <attribute default=\"${javac.processorpath}\" name=\"processorpath\"/>\n            <attribute default=\"${build.generated.sources.dir}/ap-source-output\" name=\"apgeneratedsrcdir\"/>\n            <attribute default=\"${includes}\" name=\"includes\"/>\n            <attribute default=\"${excludes}\" name=\"excludes\"/>\n            <attribute default=\"${javac.debug}\" name=\"debug\"/>\n            <attribute default=\"${empty.dir}\" name=\"sourcepath\"/>\n            <attribute default=\"${empty.dir}\" name=\"gensrcdir\"/>\n            <element name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <property location=\"${build.dir}/empty\" name=\"empty.dir\"/>\n                <mkdir dir=\"${empty.dir}\"/>\n                <mkdir dir=\"@{apgeneratedsrcdir}\"/>\n                <javac debug=\"@{debug}\" deprecation=\"${javac.deprecation}\" destdir=\"@{destdir}\" encoding=\"${source.encoding}\" excludes=\"@{excludes}\" fork=\"${javac.fork}\" includeantruntime=\"false\" includes=\"@{includes}\" source=\"${javac.source}\" sourcepath=\"@{sourcepath}\" srcdir=\"@{srcdir}\" target=\"${javac.target}\" tempdir=\"${java.io.tmpdir}\">\n                    <src>\n                        <dirset dir=\"@{gensrcdir}\" erroronmissingdir=\"false\">\n                            <include name=\"*\"/>\n                        </dirset>\n                    </src>\n                    <classpath>\n                        <path path=\"@{classpath}\"/>\n                    </classpath>\n                    <compilerarg line=\"${endorsed.classpath.cmd.line.arg}\"/>\n                    <compilerarg line=\"${javac.profile.cmd.line.arg}\"/>\n                    <compilerarg line=\"${javac.compilerargs}\"/>\n                    <compilerarg value=\"-processorpath\"/>\n                    <compilerarg path=\"@{processorpath}:${empty.dir}\"/>\n                    <compilerarg line=\"${ap.processors.internal}\"/>\n                    <compilerarg line=\"${annotation.processing.processor.options}\"/>\n                    <compilerarg value=\"-s\"/>\n                    <compilerarg path=\"@{apgeneratedsrcdir}\"/>\n                    <compilerarg line=\"${ap.proc.none.internal}\"/>\n                    <customize/>\n                </javac>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-init-ap-cmdline-properties\" name=\"-init-macrodef-javac-without-processors\" unless=\"ap.supported.internal\">\n        <macrodef name=\"javac\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${src.dir}\" name=\"srcdir\"/>\n            <attribute default=\"${build.classes.dir}\" name=\"destdir\"/>\n            <attribute default=\"${javac.classpath}\" name=\"classpath\"/>\n            <attribute default=\"${javac.processorpath}\" name=\"processorpath\"/>\n            <attribute default=\"${build.generated.sources.dir}/ap-source-output\" name=\"apgeneratedsrcdir\"/>\n            <attribute default=\"${includes}\" name=\"includes\"/>\n            <attribute default=\"${excludes}\" name=\"excludes\"/>\n            <attribute default=\"${javac.debug}\" name=\"debug\"/>\n            <attribute default=\"${empty.dir}\" name=\"sourcepath\"/>\n            <attribute default=\"${empty.dir}\" name=\"gensrcdir\"/>\n            <element name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <property location=\"${build.dir}/empty\" name=\"empty.dir\"/>\n                <mkdir dir=\"${empty.dir}\"/>\n                <javac debug=\"@{debug}\" deprecation=\"${javac.deprecation}\" destdir=\"@{destdir}\" encoding=\"${source.encoding}\" excludes=\"@{excludes}\" fork=\"${javac.fork}\" includeantruntime=\"false\" includes=\"@{includes}\" source=\"${javac.source}\" sourcepath=\"@{sourcepath}\" srcdir=\"@{srcdir}\" target=\"${javac.target}\" tempdir=\"${java.io.tmpdir}\">\n                    <src>\n                        <dirset dir=\"@{gensrcdir}\" erroronmissingdir=\"false\">\n                            <include name=\"*\"/>\n                        </dirset>\n                    </src>\n                    <classpath>\n                        <path path=\"@{classpath}\"/>\n                    </classpath>\n                    <compilerarg line=\"${endorsed.classpath.cmd.line.arg}\"/>\n                    <compilerarg line=\"${javac.profile.cmd.line.arg}\"/>\n                    <compilerarg line=\"${javac.compilerargs}\"/>\n                    <customize/>\n                </javac>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-init-macrodef-javac-with-processors,-init-macrodef-javac-without-processors\" name=\"-init-macrodef-javac\">\n        <macrodef name=\"depend\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${src.dir}\" name=\"srcdir\"/>\n            <attribute default=\"${build.classes.dir}\" name=\"destdir\"/>\n            <attribute default=\"${javac.classpath}\" name=\"classpath\"/>\n            <sequential>\n                <depend cache=\"${build.dir}/depcache\" destdir=\"@{destdir}\" excludes=\"${excludes}\" includes=\"${includes}\" srcdir=\"@{srcdir}\">\n                    <classpath>\n                        <path path=\"@{classpath}\"/>\n                    </classpath>\n                </depend>\n            </sequential>\n        </macrodef>\n        <macrodef name=\"force-recompile\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${build.classes.dir}\" name=\"destdir\"/>\n            <sequential>\n                <fail unless=\"javac.includes\">Must set javac.includes</fail>\n                <pathconvert pathsep=\"${line.separator}\" property=\"javac.includes.binary\">\n                    <path>\n                        <filelist dir=\"@{destdir}\" files=\"${javac.includes}\"/>\n                    </path>\n                    <globmapper from=\"*.java\" to=\"*.class\"/>\n                </pathconvert>\n                <tempfile deleteonexit=\"true\" property=\"javac.includesfile.binary\"/>\n                <echo file=\"${javac.includesfile.binary}\" message=\"${javac.includes.binary}\"/>\n                <delete>\n                    <files includesfile=\"${javac.includesfile.binary}\"/>\n                </delete>\n                <delete>\n                    <fileset file=\"${javac.includesfile.binary}\"/>\n                </delete>\n            </sequential>\n        </macrodef>\n    </target>\n    <target if=\"${junit.available}\" name=\"-init-macrodef-junit-init\">\n        <condition else=\"false\" property=\"nb.junit.batch\" value=\"true\">\n            <and>\n                <istrue value=\"${junit.available}\"/>\n                <not>\n                    <isset property=\"test.method\"/>\n                </not>\n            </and>\n        </condition>\n        <condition else=\"false\" property=\"nb.junit.single\" value=\"true\">\n            <and>\n                <istrue value=\"${junit.available}\"/>\n                <isset property=\"test.method\"/>\n            </and>\n        </condition>\n    </target>\n    <target name=\"-init-test-properties\">\n        <property name=\"test.binaryincludes\" value=\"&lt;nothing&gt;\"/>\n        <property name=\"test.binarytestincludes\" value=\"\"/>\n        <property name=\"test.binaryexcludes\" value=\"\"/>\n    </target>\n    <target if=\"${nb.junit.single}\" name=\"-init-macrodef-junit-single\" unless=\"${nb.junit.batch}\">\n        <macrodef name=\"junit\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${includes}\" name=\"includes\"/>\n            <attribute default=\"${excludes}\" name=\"excludes\"/>\n            <attribute default=\"**\" name=\"testincludes\"/>\n            <attribute default=\"\" name=\"testmethods\"/>\n            <element name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <property name=\"junit.forkmode\" value=\"perTest\"/>\n                <junit dir=\"${work.dir}\" errorproperty=\"tests.failed\" failureproperty=\"tests.failed\" fork=\"true\" forkmode=\"${junit.forkmode}\" showoutput=\"true\" tempdir=\"${build.dir}\">\n                    <test methods=\"@{testmethods}\" name=\"@{testincludes}\" todir=\"${build.test.results.dir}\"/>\n                    <syspropertyset>\n                        <propertyref prefix=\"test-sys-prop.\"/>\n                        <mapper from=\"test-sys-prop.*\" to=\"*\" type=\"glob\"/>\n                    </syspropertyset>\n                    <formatter type=\"brief\" usefile=\"false\"/>\n                    <formatter type=\"xml\"/>\n                    <jvmarg value=\"-ea\"/>\n                    <customize/>\n                </junit>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-init-test-properties\" if=\"${nb.junit.batch}\" name=\"-init-macrodef-junit-batch\" unless=\"${nb.junit.single}\">\n        <macrodef name=\"junit\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${includes}\" name=\"includes\"/>\n            <attribute default=\"${excludes}\" name=\"excludes\"/>\n            <attribute default=\"**\" name=\"testincludes\"/>\n            <attribute default=\"\" name=\"testmethods\"/>\n            <element name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <property name=\"junit.forkmode\" value=\"perTest\"/>\n                <junit dir=\"${work.dir}\" errorproperty=\"tests.failed\" failureproperty=\"tests.failed\" fork=\"true\" forkmode=\"${junit.forkmode}\" showoutput=\"true\" tempdir=\"${build.dir}\">\n                    <batchtest todir=\"${build.test.results.dir}\">\n                        <fileset dir=\"${test.src.dir}\" excludes=\"@{excludes},${excludes}\" includes=\"@{includes}\">\n                            <filename name=\"@{testincludes}\"/>\n                        </fileset>\n                        <fileset dir=\"${build.test.classes.dir}\" excludes=\"@{excludes},${excludes},${test.binaryexcludes}\" includes=\"${test.binaryincludes}\">\n                            <filename name=\"${test.binarytestincludes}\"/>\n                        </fileset>\n                    </batchtest>\n                    <syspropertyset>\n                        <propertyref prefix=\"test-sys-prop.\"/>\n                        <mapper from=\"test-sys-prop.*\" to=\"*\" type=\"glob\"/>\n                    </syspropertyset>\n                    <formatter type=\"brief\" usefile=\"false\"/>\n                    <formatter type=\"xml\"/>\n                    <jvmarg value=\"-ea\"/>\n                    <customize/>\n                </junit>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-init-macrodef-junit-init,-init-macrodef-junit-single, -init-macrodef-junit-batch\" if=\"${junit.available}\" name=\"-init-macrodef-junit\"/>\n    <target if=\"${testng.available}\" name=\"-init-macrodef-testng\">\n        <macrodef name=\"testng\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${includes}\" name=\"includes\"/>\n            <attribute default=\"${excludes}\" name=\"excludes\"/>\n            <attribute default=\"**\" name=\"testincludes\"/>\n            <attribute default=\"\" name=\"testmethods\"/>\n            <element name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <condition else=\"\" property=\"testng.methods.arg\" value=\"@{testincludes}.@{testmethods}\">\n                    <isset property=\"test.method\"/>\n                </condition>\n                <union id=\"test.set\">\n                    <fileset dir=\"${test.src.dir}\" excludes=\"@{excludes},**/*.xml,${excludes}\" includes=\"@{includes}\">\n                        <filename name=\"@{testincludes}\"/>\n                    </fileset>\n                </union>\n                <taskdef classname=\"org.testng.TestNGAntTask\" classpath=\"${run.test.classpath}\" name=\"testng\"/>\n                <testng classfilesetref=\"test.set\" failureProperty=\"tests.failed\" listeners=\"org.testng.reporters.VerboseReporter\" methods=\"${testng.methods.arg}\" mode=\"${testng.mode}\" outputdir=\"${build.test.results.dir}\" suitename=\"四则运算\" testname=\"TestNG tests\" workingDir=\"${work.dir}\">\n                    <xmlfileset dir=\"${build.test.classes.dir}\" includes=\"@{testincludes}\"/>\n                    <propertyset>\n                        <propertyref prefix=\"test-sys-prop.\"/>\n                        <mapper from=\"test-sys-prop.*\" to=\"*\" type=\"glob\"/>\n                    </propertyset>\n                    <customize/>\n                </testng>\n            </sequential>\n        </macrodef>\n    </target>\n    <target name=\"-init-macrodef-test-impl\">\n        <macrodef name=\"test-impl\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${includes}\" name=\"includes\"/>\n            <attribute default=\"${excludes}\" name=\"excludes\"/>\n            <attribute default=\"**\" name=\"testincludes\"/>\n            <attribute default=\"\" name=\"testmethods\"/>\n            <element implicit=\"true\" name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <echo>No tests executed.</echo>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-init-macrodef-junit\" if=\"${junit.available}\" name=\"-init-macrodef-junit-impl\">\n        <macrodef name=\"test-impl\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${includes}\" name=\"includes\"/>\n            <attribute default=\"${excludes}\" name=\"excludes\"/>\n            <attribute default=\"**\" name=\"testincludes\"/>\n            <attribute default=\"\" name=\"testmethods\"/>\n            <element implicit=\"true\" name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <j2seproject3:junit excludes=\"@{excludes}\" includes=\"@{includes}\" testincludes=\"@{testincludes}\" testmethods=\"@{testmethods}\">\n                    <customize/>\n                </j2seproject3:junit>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-init-macrodef-testng\" if=\"${testng.available}\" name=\"-init-macrodef-testng-impl\">\n        <macrodef name=\"test-impl\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${includes}\" name=\"includes\"/>\n            <attribute default=\"${excludes}\" name=\"excludes\"/>\n            <attribute default=\"**\" name=\"testincludes\"/>\n            <attribute default=\"\" name=\"testmethods\"/>\n            <element implicit=\"true\" name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <j2seproject3:testng excludes=\"@{excludes}\" includes=\"@{includes}\" testincludes=\"@{testincludes}\" testmethods=\"@{testmethods}\">\n                    <customize/>\n                </j2seproject3:testng>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-init-macrodef-test-impl,-init-macrodef-junit-impl,-init-macrodef-testng-impl\" name=\"-init-macrodef-test\">\n        <macrodef name=\"test\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${includes}\" name=\"includes\"/>\n            <attribute default=\"${excludes}\" name=\"excludes\"/>\n            <attribute default=\"**\" name=\"testincludes\"/>\n            <attribute default=\"\" name=\"testmethods\"/>\n            <sequential>\n                <j2seproject3:test-impl excludes=\"@{excludes}\" includes=\"@{includes}\" testincludes=\"@{testincludes}\" testmethods=\"@{testmethods}\">\n                    <customize>\n                        <classpath>\n                            <path path=\"${run.test.classpath}\"/>\n                        </classpath>\n                        <jvmarg line=\"${endorsed.classpath.cmd.line.arg}\"/>\n                        <jvmarg line=\"${run.jvmargs}\"/>\n                        <jvmarg line=\"${run.jvmargs.ide}\"/>\n                    </customize>\n                </j2seproject3:test-impl>\n            </sequential>\n        </macrodef>\n    </target>\n    <target if=\"${junit.available}\" name=\"-init-macrodef-junit-debug\" unless=\"${nb.junit.batch}\">\n        <macrodef name=\"junit-debug\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${includes}\" name=\"includes\"/>\n            <attribute default=\"${excludes}\" name=\"excludes\"/>\n            <attribute default=\"**\" name=\"testincludes\"/>\n            <attribute default=\"\" name=\"testmethods\"/>\n            <element name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <property name=\"junit.forkmode\" value=\"perTest\"/>\n                <junit dir=\"${work.dir}\" errorproperty=\"tests.failed\" failureproperty=\"tests.failed\" fork=\"true\" forkmode=\"${junit.forkmode}\" showoutput=\"true\" tempdir=\"${build.dir}\">\n                    <test methods=\"@{testmethods}\" name=\"@{testincludes}\" todir=\"${build.test.results.dir}\"/>\n                    <syspropertyset>\n                        <propertyref prefix=\"test-sys-prop.\"/>\n                        <mapper from=\"test-sys-prop.*\" to=\"*\" type=\"glob\"/>\n                    </syspropertyset>\n                    <formatter type=\"brief\" usefile=\"false\"/>\n                    <formatter type=\"xml\"/>\n                    <jvmarg value=\"-ea\"/>\n                    <jvmarg line=\"${debug-args-line}\"/>\n                    <jvmarg value=\"-Xrunjdwp:transport=${debug-transport},address=${jpda.address}\"/>\n                    <customize/>\n                </junit>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-init-test-properties\" if=\"${nb.junit.batch}\" name=\"-init-macrodef-junit-debug-batch\">\n        <macrodef name=\"junit-debug\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${includes}\" name=\"includes\"/>\n            <attribute default=\"${excludes}\" name=\"excludes\"/>\n            <attribute default=\"**\" name=\"testincludes\"/>\n            <attribute default=\"\" name=\"testmethods\"/>\n            <element name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <property name=\"junit.forkmode\" value=\"perTest\"/>\n                <junit dir=\"${work.dir}\" errorproperty=\"tests.failed\" failureproperty=\"tests.failed\" fork=\"true\" forkmode=\"${junit.forkmode}\" showoutput=\"true\" tempdir=\"${build.dir}\">\n                    <batchtest todir=\"${build.test.results.dir}\">\n                        <fileset dir=\"${test.src.dir}\" excludes=\"@{excludes},${excludes}\" includes=\"@{includes}\">\n                            <filename name=\"@{testincludes}\"/>\n                        </fileset>\n                        <fileset dir=\"${build.test.classes.dir}\" excludes=\"@{excludes},${excludes},${test.binaryexcludes}\" includes=\"${test.binaryincludes}\">\n                            <filename name=\"${test.binarytestincludes}\"/>\n                        </fileset>\n                    </batchtest>\n                    <syspropertyset>\n                        <propertyref prefix=\"test-sys-prop.\"/>\n                        <mapper from=\"test-sys-prop.*\" to=\"*\" type=\"glob\"/>\n                    </syspropertyset>\n                    <formatter type=\"brief\" usefile=\"false\"/>\n                    <formatter type=\"xml\"/>\n                    <jvmarg value=\"-ea\"/>\n                    <jvmarg line=\"${debug-args-line}\"/>\n                    <jvmarg value=\"-Xrunjdwp:transport=${debug-transport},address=${jpda.address}\"/>\n                    <customize/>\n                </junit>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-init-macrodef-junit-debug,-init-macrodef-junit-debug-batch\" if=\"${junit.available}\" name=\"-init-macrodef-junit-debug-impl\">\n        <macrodef name=\"test-debug-impl\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${includes}\" name=\"includes\"/>\n            <attribute default=\"${excludes}\" name=\"excludes\"/>\n            <attribute default=\"**\" name=\"testincludes\"/>\n            <attribute default=\"\" name=\"testmethods\"/>\n            <element implicit=\"true\" name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <j2seproject3:junit-debug excludes=\"@{excludes}\" includes=\"@{includes}\" testincludes=\"@{testincludes}\" testmethods=\"@{testmethods}\">\n                    <customize/>\n                </j2seproject3:junit-debug>\n            </sequential>\n        </macrodef>\n    </target>\n    <target if=\"${testng.available}\" name=\"-init-macrodef-testng-debug\">\n        <macrodef name=\"testng-debug\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${main.class}\" name=\"testClass\"/>\n            <attribute default=\"\" name=\"testMethod\"/>\n            <element name=\"customize2\" optional=\"true\"/>\n            <sequential>\n                <condition else=\"-testclass @{testClass}\" property=\"test.class.or.method\" value=\"-methods @{testClass}.@{testMethod}\">\n                    <isset property=\"test.method\"/>\n                </condition>\n                <condition else=\"-suitename 四则运算 -testname @{testClass} ${test.class.or.method}\" property=\"testng.cmd.args\" value=\"@{testClass}\">\n                    <matches pattern=\".*\\.xml\" string=\"@{testClass}\"/>\n                </condition>\n                <delete dir=\"${build.test.results.dir}\" quiet=\"true\"/>\n                <mkdir dir=\"${build.test.results.dir}\"/>\n                <j2seproject3:debug classname=\"org.testng.TestNG\" classpath=\"${debug.test.classpath}\">\n                    <customize>\n                        <customize2/>\n                        <jvmarg value=\"-ea\"/>\n                        <arg line=\"${testng.debug.mode}\"/>\n                        <arg line=\"-d ${build.test.results.dir}\"/>\n                        <arg line=\"-listener org.testng.reporters.VerboseReporter\"/>\n                        <arg line=\"${testng.cmd.args}\"/>\n                    </customize>\n                </j2seproject3:debug>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-init-macrodef-testng-debug\" if=\"${testng.available}\" name=\"-init-macrodef-testng-debug-impl\">\n        <macrodef name=\"testng-debug-impl\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${main.class}\" name=\"testClass\"/>\n            <attribute default=\"\" name=\"testMethod\"/>\n            <element implicit=\"true\" name=\"customize2\" optional=\"true\"/>\n            <sequential>\n                <j2seproject3:testng-debug testClass=\"@{testClass}\" testMethod=\"@{testMethod}\">\n                    <customize2/>\n                </j2seproject3:testng-debug>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-init-macrodef-junit-debug-impl\" if=\"${junit.available}\" name=\"-init-macrodef-test-debug-junit\">\n        <macrodef name=\"test-debug\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${includes}\" name=\"includes\"/>\n            <attribute default=\"${excludes}\" name=\"excludes\"/>\n            <attribute default=\"**\" name=\"testincludes\"/>\n            <attribute default=\"\" name=\"testmethods\"/>\n            <attribute default=\"${main.class}\" name=\"testClass\"/>\n            <attribute default=\"\" name=\"testMethod\"/>\n            <sequential>\n                <j2seproject3:test-debug-impl excludes=\"@{excludes}\" includes=\"@{includes}\" testincludes=\"@{testincludes}\" testmethods=\"@{testmethods}\">\n                    <customize>\n                        <classpath>\n                            <path path=\"${run.test.classpath}\"/>\n                        </classpath>\n                        <jvmarg line=\"${endorsed.classpath.cmd.line.arg}\"/>\n                        <jvmarg line=\"${run.jvmargs}\"/>\n                        <jvmarg line=\"${run.jvmargs.ide}\"/>\n                    </customize>\n                </j2seproject3:test-debug-impl>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-init-macrodef-testng-debug-impl\" if=\"${testng.available}\" name=\"-init-macrodef-test-debug-testng\">\n        <macrodef name=\"test-debug\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${includes}\" name=\"includes\"/>\n            <attribute default=\"${excludes}\" name=\"excludes\"/>\n            <attribute default=\"**\" name=\"testincludes\"/>\n            <attribute default=\"\" name=\"testmethods\"/>\n            <attribute default=\"${main.class}\" name=\"testClass\"/>\n            <attribute default=\"\" name=\"testMethod\"/>\n            <sequential>\n                <j2seproject3:testng-debug-impl testClass=\"@{testClass}\" testMethod=\"@{testMethod}\">\n                    <customize2>\n                        <syspropertyset>\n                            <propertyref prefix=\"test-sys-prop.\"/>\n                            <mapper from=\"test-sys-prop.*\" to=\"*\" type=\"glob\"/>\n                        </syspropertyset>\n                    </customize2>\n                </j2seproject3:testng-debug-impl>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-init-macrodef-test-debug-junit,-init-macrodef-test-debug-testng\" name=\"-init-macrodef-test-debug\"/>\n    <!--\n                pre NB7.2 profiling section; consider it deprecated\n            -->\n    <target depends=\"-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile, -profile-init-check\" if=\"profiler.info.jvmargs.agent\" name=\"profile-init\"/>\n    <target if=\"profiler.info.jvmargs.agent\" name=\"-profile-pre-init\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target if=\"profiler.info.jvmargs.agent\" name=\"-profile-post-init\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target if=\"profiler.info.jvmargs.agent\" name=\"-profile-init-macrodef-profile\">\n        <macrodef name=\"resolve\">\n            <attribute name=\"name\"/>\n            <attribute name=\"value\"/>\n            <sequential>\n                <property name=\"@{name}\" value=\"${env.@{value}}\"/>\n            </sequential>\n        </macrodef>\n        <macrodef name=\"profile\">\n            <attribute default=\"${main.class}\" name=\"classname\"/>\n            <element name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <property environment=\"env\"/>\n                <resolve name=\"profiler.current.path\" value=\"${profiler.info.pathvar}\"/>\n                <java classname=\"@{classname}\" dir=\"${profiler.info.dir}\" fork=\"true\" jvm=\"${profiler.info.jvm}\">\n                    <jvmarg line=\"${endorsed.classpath.cmd.line.arg}\"/>\n                    <jvmarg value=\"${profiler.info.jvmargs.agent}\"/>\n                    <jvmarg line=\"${profiler.info.jvmargs}\"/>\n                    <env key=\"${profiler.info.pathvar}\" path=\"${profiler.info.agentpath}:${profiler.current.path}\"/>\n                    <arg line=\"${application.args}\"/>\n                    <classpath>\n                        <path path=\"${run.classpath}\"/>\n                    </classpath>\n                    <syspropertyset>\n                        <propertyref prefix=\"run-sys-prop.\"/>\n                        <mapper from=\"run-sys-prop.*\" to=\"*\" type=\"glob\"/>\n                    </syspropertyset>\n                    <customize/>\n                </java>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile\" if=\"profiler.info.jvmargs.agent\" name=\"-profile-init-check\">\n        <fail unless=\"profiler.info.jvm\">Must set JVM to use for profiling in profiler.info.jvm</fail>\n        <fail unless=\"profiler.info.jvmargs.agent\">Must set profiler agent JVM arguments in profiler.info.jvmargs.agent</fail>\n    </target>\n    <!--\n                end of pre NB7.2 profiling section\n            -->\n    <target depends=\"-init-debug-args\" name=\"-init-macrodef-nbjpda\">\n        <macrodef name=\"nbjpdastart\" uri=\"http://www.netbeans.org/ns/j2se-project/1\">\n            <attribute default=\"${main.class}\" name=\"name\"/>\n            <attribute default=\"${debug.classpath}\" name=\"classpath\"/>\n            <attribute default=\"\" name=\"stopclassname\"/>\n            <sequential>\n                <nbjpdastart addressproperty=\"jpda.address\" name=\"@{name}\" stopclassname=\"@{stopclassname}\" transport=\"${debug-transport}\">\n                    <classpath>\n                        <path path=\"@{classpath}\"/>\n                    </classpath>\n                </nbjpdastart>\n            </sequential>\n        </macrodef>\n        <macrodef name=\"nbjpdareload\" uri=\"http://www.netbeans.org/ns/j2se-project/1\">\n            <attribute default=\"${build.classes.dir}\" name=\"dir\"/>\n            <sequential>\n                <nbjpdareload>\n                    <fileset dir=\"@{dir}\" includes=\"${fix.classes}\">\n                        <include name=\"${fix.includes}*.class\"/>\n                    </fileset>\n                </nbjpdareload>\n            </sequential>\n        </macrodef>\n    </target>\n    <target name=\"-init-debug-args\">\n        <property name=\"version-output\" value=\"java version &quot;${ant.java.version}\"/>\n        <condition property=\"have-jdk-older-than-1.4\">\n            <or>\n                <contains string=\"${version-output}\" substring=\"java version &quot;1.0\"/>\n                <contains string=\"${version-output}\" substring=\"java version &quot;1.1\"/>\n                <contains string=\"${version-output}\" substring=\"java version &quot;1.2\"/>\n                <contains string=\"${version-output}\" substring=\"java version &quot;1.3\"/>\n            </or>\n        </condition>\n        <condition else=\"-Xdebug\" property=\"debug-args-line\" value=\"-Xdebug -Xnoagent -Djava.compiler=none\">\n            <istrue value=\"${have-jdk-older-than-1.4}\"/>\n        </condition>\n        <condition else=\"dt_socket\" property=\"debug-transport-by-os\" value=\"dt_shmem\">\n            <os family=\"windows\"/>\n        </condition>\n        <condition else=\"${debug-transport-by-os}\" property=\"debug-transport\" value=\"${debug.transport}\">\n            <isset property=\"debug.transport\"/>\n        </condition>\n    </target>\n    <target depends=\"-init-debug-args\" name=\"-init-macrodef-debug\">\n        <macrodef name=\"debug\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${main.class}\" name=\"classname\"/>\n            <attribute default=\"${debug.classpath}\" name=\"classpath\"/>\n            <element name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <java classname=\"@{classname}\" dir=\"${work.dir}\" fork=\"true\">\n                    <jvmarg line=\"${endorsed.classpath.cmd.line.arg}\"/>\n                    <jvmarg line=\"${debug-args-line}\"/>\n                    <jvmarg value=\"-Xrunjdwp:transport=${debug-transport},address=${jpda.address}\"/>\n                    <jvmarg value=\"-Dfile.encoding=${runtime.encoding}\"/>\n                    <redirector errorencoding=\"${runtime.encoding}\" inputencoding=\"${runtime.encoding}\" outputencoding=\"${runtime.encoding}\"/>\n                    <jvmarg line=\"${run.jvmargs}\"/>\n                    <jvmarg line=\"${run.jvmargs.ide}\"/>\n                    <classpath>\n                        <path path=\"@{classpath}\"/>\n                    </classpath>\n                    <syspropertyset>\n                        <propertyref prefix=\"run-sys-prop.\"/>\n                        <mapper from=\"run-sys-prop.*\" to=\"*\" type=\"glob\"/>\n                    </syspropertyset>\n                    <customize/>\n                </java>\n            </sequential>\n        </macrodef>\n    </target>\n    <target name=\"-init-macrodef-java\">\n        <macrodef name=\"java\" uri=\"http://www.netbeans.org/ns/j2se-project/1\">\n            <attribute default=\"${main.class}\" name=\"classname\"/>\n            <attribute default=\"${run.classpath}\" name=\"classpath\"/>\n            <attribute default=\"jvm\" name=\"jvm\"/>\n            <element name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <java classname=\"@{classname}\" dir=\"${work.dir}\" fork=\"true\">\n                    <jvmarg line=\"${endorsed.classpath.cmd.line.arg}\"/>\n                    <jvmarg value=\"-Dfile.encoding=${runtime.encoding}\"/>\n                    <redirector errorencoding=\"${runtime.encoding}\" inputencoding=\"${runtime.encoding}\" outputencoding=\"${runtime.encoding}\"/>\n                    <jvmarg line=\"${run.jvmargs}\"/>\n                    <jvmarg line=\"${run.jvmargs.ide}\"/>\n                    <classpath>\n                        <path path=\"@{classpath}\"/>\n                    </classpath>\n                    <syspropertyset>\n                        <propertyref prefix=\"run-sys-prop.\"/>\n                        <mapper from=\"run-sys-prop.*\" to=\"*\" type=\"glob\"/>\n                    </syspropertyset>\n                    <customize/>\n                </java>\n            </sequential>\n        </macrodef>\n    </target>\n    <target name=\"-init-macrodef-copylibs\">\n        <macrodef name=\"copylibs\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${manifest.file}\" name=\"manifest\"/>\n            <element name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <property location=\"${build.classes.dir}\" name=\"build.classes.dir.resolved\"/>\n                <pathconvert property=\"run.classpath.without.build.classes.dir\">\n                    <path path=\"${run.classpath}\"/>\n                    <map from=\"${build.classes.dir.resolved}\" to=\"\"/>\n                </pathconvert>\n                <pathconvert pathsep=\" \" property=\"jar.classpath\">\n                    <path path=\"${run.classpath.without.build.classes.dir}\"/>\n                    <chainedmapper>\n                        <flattenmapper/>\n                        <filtermapper>\n                            <replacestring from=\" \" to=\"%20\"/>\n                        </filtermapper>\n                        <globmapper from=\"*\" to=\"lib/*\"/>\n                    </chainedmapper>\n                </pathconvert>\n                <taskdef classname=\"org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs\" classpath=\"${libs.CopyLibs.classpath}\" name=\"copylibs\"/>\n                <copylibs compress=\"${jar.compress}\" excludeFromCopy=\"${copylibs.excludes}\" index=\"${jar.index}\" indexMetaInf=\"${jar.index.metainf}\" jarfile=\"${dist.jar}\" manifest=\"@{manifest}\" rebase=\"${copylibs.rebase}\" runtimeclasspath=\"${run.classpath.without.build.classes.dir}\">\n                    <fileset dir=\"${build.classes.dir}\" excludes=\"${dist.archive.excludes}\"/>\n                    <manifest>\n                        <attribute name=\"Class-Path\" value=\"${jar.classpath}\"/>\n                        <customize/>\n                    </manifest>\n                </copylibs>\n            </sequential>\n        </macrodef>\n    </target>\n    <target name=\"-init-presetdef-jar\">\n        <presetdef name=\"jar\" uri=\"http://www.netbeans.org/ns/j2se-project/1\">\n            <jar compress=\"${jar.compress}\" index=\"${jar.index}\" jarfile=\"${dist.jar}\">\n                <j2seproject1:fileset dir=\"${build.classes.dir}\" excludes=\"${dist.archive.excludes}\"/>\n            </jar>\n        </presetdef>\n    </target>\n    <target name=\"-init-ap-cmdline-properties\">\n        <property name=\"annotation.processing.enabled\" value=\"true\"/>\n        <property name=\"annotation.processing.processors.list\" value=\"\"/>\n        <property name=\"annotation.processing.processor.options\" value=\"\"/>\n        <property name=\"annotation.processing.run.all.processors\" value=\"true\"/>\n        <property name=\"javac.processorpath\" value=\"${javac.classpath}\"/>\n        <property name=\"javac.test.processorpath\" value=\"${javac.test.classpath}\"/>\n        <condition property=\"ap.supported.internal\" value=\"true\">\n            <not>\n                <matches pattern=\"1\\.[0-5](\\..*)?\" string=\"${javac.source}\"/>\n            </not>\n        </condition>\n    </target>\n    <target depends=\"-init-ap-cmdline-properties\" if=\"ap.supported.internal\" name=\"-init-ap-cmdline-supported\">\n        <condition else=\"\" property=\"ap.processors.internal\" value=\"-processor ${annotation.processing.processors.list}\">\n            <isfalse value=\"${annotation.processing.run.all.processors}\"/>\n        </condition>\n        <condition else=\"\" property=\"ap.proc.none.internal\" value=\"-proc:none\">\n            <isfalse value=\"${annotation.processing.enabled}\"/>\n        </condition>\n    </target>\n    <target depends=\"-init-ap-cmdline-properties,-init-ap-cmdline-supported\" name=\"-init-ap-cmdline\">\n        <property name=\"ap.cmd.line.internal\" value=\"\"/>\n    </target>\n    <target depends=\"-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-test,-init-macrodef-test-debug,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar,-init-ap-cmdline\" name=\"init\"/>\n    <!--\n                ===================\n                COMPILATION SECTION\n                ===================\n            -->\n    <target name=\"-deps-jar-init\" unless=\"built-jar.properties\">\n        <property location=\"${build.dir}/built-jar.properties\" name=\"built-jar.properties\"/>\n        <delete file=\"${built-jar.properties}\" quiet=\"true\"/>\n    </target>\n    <target if=\"already.built.jar.${basedir}\" name=\"-warn-already-built-jar\">\n        <echo level=\"warn\" message=\"Cycle detected: 四则运算 was already built\"/>\n    </target>\n    <target depends=\"init,-deps-jar-init\" name=\"deps-jar\" unless=\"no.deps\">\n        <mkdir dir=\"${build.dir}\"/>\n        <touch file=\"${built-jar.properties}\" verbose=\"false\"/>\n        <property file=\"${built-jar.properties}\" prefix=\"already.built.jar.\"/>\n        <antcall target=\"-warn-already-built-jar\"/>\n        <propertyfile file=\"${built-jar.properties}\">\n            <entry key=\"${basedir}\" value=\"\"/>\n        </propertyfile>\n    </target>\n    <target depends=\"init,-check-automatic-build,-clean-after-automatic-build\" name=\"-verify-automatic-build\"/>\n    <target depends=\"init\" name=\"-check-automatic-build\">\n        <available file=\"${build.classes.dir}/.netbeans_automatic_build\" property=\"netbeans.automatic.build\"/>\n    </target>\n    <target depends=\"init\" if=\"netbeans.automatic.build\" name=\"-clean-after-automatic-build\">\n        <antcall target=\"clean\"/>\n    </target>\n    <target depends=\"init,deps-jar\" name=\"-pre-pre-compile\">\n        <mkdir dir=\"${build.classes.dir}\"/>\n    </target>\n    <target name=\"-pre-compile\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target if=\"do.depend.true\" name=\"-compile-depend\">\n        <pathconvert property=\"build.generated.subdirs\">\n            <dirset dir=\"${build.generated.sources.dir}\" erroronmissingdir=\"false\">\n                <include name=\"*\"/>\n            </dirset>\n        </pathconvert>\n        <j2seproject3:depend srcdir=\"${src.dir}:${build.generated.subdirs}\"/>\n    </target>\n    <target depends=\"init,deps-jar,-pre-pre-compile,-pre-compile, -copy-persistence-xml,-compile-depend\" if=\"have.sources\" name=\"-do-compile\">\n        <j2seproject3:javac gensrcdir=\"${build.generated.sources.dir}\"/>\n        <copy todir=\"${build.classes.dir}\">\n            <fileset dir=\"${src.dir}\" excludes=\"${build.classes.excludes},${excludes}\" includes=\"${includes}\"/>\n        </copy>\n    </target>\n    <target if=\"has.persistence.xml\" name=\"-copy-persistence-xml\">\n        <mkdir dir=\"${build.classes.dir}/META-INF\"/>\n        <copy todir=\"${build.classes.dir}/META-INF\">\n            <fileset dir=\"${meta.inf.dir}\" includes=\"persistence.xml orm.xml\"/>\n        </copy>\n    </target>\n    <target name=\"-post-compile\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target depends=\"init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile,-do-compile,-post-compile\" description=\"Compile project.\" name=\"compile\"/>\n    <target name=\"-pre-compile-single\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target depends=\"init,deps-jar,-pre-pre-compile\" name=\"-do-compile-single\">\n        <fail unless=\"javac.includes\">Must select some files in the IDE or set javac.includes</fail>\n        <j2seproject3:force-recompile/>\n        <j2seproject3:javac excludes=\"\" gensrcdir=\"${build.generated.sources.dir}\" includes=\"${javac.includes}\" sourcepath=\"${src.dir}\"/>\n    </target>\n    <target name=\"-post-compile-single\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target depends=\"init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single\" name=\"compile-single\"/>\n    <!--\n                ====================\n                JAR BUILDING SECTION\n                ====================\n            -->\n    <target depends=\"init\" name=\"-pre-pre-jar\">\n        <dirname file=\"${dist.jar}\" property=\"dist.jar.dir\"/>\n        <mkdir dir=\"${dist.jar.dir}\"/>\n    </target>\n    <target name=\"-pre-jar\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target depends=\"init\" if=\"do.archive\" name=\"-do-jar-create-manifest\" unless=\"manifest.available\">\n        <tempfile deleteonexit=\"true\" destdir=\"${build.dir}\" property=\"tmp.manifest.file\"/>\n        <touch file=\"${tmp.manifest.file}\" verbose=\"false\"/>\n    </target>\n    <target depends=\"init\" if=\"do.archive+manifest.available\" name=\"-do-jar-copy-manifest\">\n        <tempfile deleteonexit=\"true\" destdir=\"${build.dir}\" property=\"tmp.manifest.file\"/>\n        <copy file=\"${manifest.file}\" tofile=\"${tmp.manifest.file}\"/>\n    </target>\n    <target depends=\"init,-do-jar-create-manifest,-do-jar-copy-manifest\" if=\"do.archive+main.class.available\" name=\"-do-jar-set-mainclass\">\n        <manifest file=\"${tmp.manifest.file}\" mode=\"update\">\n            <attribute name=\"Main-Class\" value=\"${main.class}\"/>\n        </manifest>\n    </target>\n    <target depends=\"init,-do-jar-create-manifest,-do-jar-copy-manifest\" if=\"do.archive+profile.available\" name=\"-do-jar-set-profile\">\n        <manifest file=\"${tmp.manifest.file}\" mode=\"update\">\n            <attribute name=\"Profile\" value=\"${javac.profile}\"/>\n        </manifest>\n    </target>\n    <target depends=\"init,-do-jar-create-manifest,-do-jar-copy-manifest\" if=\"do.archive+splashscreen.available\" name=\"-do-jar-set-splashscreen\">\n        <basename file=\"${application.splash}\" property=\"splashscreen.basename\"/>\n        <mkdir dir=\"${build.classes.dir}/META-INF\"/>\n        <copy failonerror=\"false\" file=\"${application.splash}\" todir=\"${build.classes.dir}/META-INF\"/>\n        <manifest file=\"${tmp.manifest.file}\" mode=\"update\">\n            <attribute name=\"SplashScreen-Image\" value=\"META-INF/${splashscreen.basename}\"/>\n        </manifest>\n    </target>\n    <target depends=\"init,-init-macrodef-copylibs,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen\" if=\"do.mkdist\" name=\"-do-jar-copylibs\">\n        <j2seproject3:copylibs manifest=\"${tmp.manifest.file}\"/>\n        <echo level=\"info\">To run this application from the command line without Ant, try:</echo>\n        <property location=\"${dist.jar}\" name=\"dist.jar.resolved\"/>\n        <echo level=\"info\">java -jar \"${dist.jar.resolved}\"</echo>\n    </target>\n    <target depends=\"init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen\" if=\"do.archive\" name=\"-do-jar-jar\" unless=\"do.mkdist\">\n        <j2seproject1:jar manifest=\"${tmp.manifest.file}\"/>\n        <property location=\"${build.classes.dir}\" name=\"build.classes.dir.resolved\"/>\n        <property location=\"${dist.jar}\" name=\"dist.jar.resolved\"/>\n        <pathconvert property=\"run.classpath.with.dist.jar\">\n            <path path=\"${run.classpath}\"/>\n            <map from=\"${build.classes.dir.resolved}\" to=\"${dist.jar.resolved}\"/>\n        </pathconvert>\n        <condition else=\"\" property=\"jar.usage.message\" value=\"To run this application from the command line without Ant, try:${line.separator}${platform.java} -cp ${run.classpath.with.dist.jar} ${main.class}\">\n            <isset property=\"main.class.available\"/>\n        </condition>\n        <condition else=\"debug\" property=\"jar.usage.level\" value=\"info\">\n            <isset property=\"main.class.available\"/>\n        </condition>\n        <echo level=\"${jar.usage.level}\" message=\"${jar.usage.message}\"/>\n    </target>\n    <target depends=\"-do-jar-copylibs\" if=\"do.archive\" name=\"-do-jar-delete-manifest\">\n        <delete>\n            <fileset file=\"${tmp.manifest.file}\"/>\n        </delete>\n    </target>\n    <target depends=\"init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-jar,-do-jar-delete-manifest\" name=\"-do-jar-without-libraries\"/>\n    <target depends=\"init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-copylibs,-do-jar-delete-manifest\" name=\"-do-jar-with-libraries\"/>\n    <target name=\"-post-jar\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target depends=\"init,compile,-pre-jar,-do-jar-without-libraries,-do-jar-with-libraries,-post-jar\" name=\"-do-jar\"/>\n    <target depends=\"init,compile,-pre-jar,-do-jar,-post-jar\" description=\"Build JAR.\" name=\"jar\"/>\n    <!--\n                =================\n                EXECUTION SECTION\n                =================\n            -->\n    <target depends=\"init,compile\" description=\"Run a main class.\" name=\"run\">\n        <j2seproject1:java>\n            <customize>\n                <arg line=\"${application.args}\"/>\n            </customize>\n        </j2seproject1:java>\n    </target>\n    <target name=\"-do-not-recompile\">\n        <property name=\"javac.includes.binary\" value=\"\"/>\n    </target>\n    <target depends=\"init,compile-single\" name=\"run-single\">\n        <fail unless=\"run.class\">Must select one file in the IDE or set run.class</fail>\n        <j2seproject1:java classname=\"${run.class}\"/>\n    </target>\n    <target depends=\"init,compile-test-single\" name=\"run-test-with-main\">\n        <fail unless=\"run.class\">Must select one file in the IDE or set run.class</fail>\n        <j2seproject1:java classname=\"${run.class}\" classpath=\"${run.test.classpath}\"/>\n    </target>\n    <!--\n                =================\n                DEBUGGING SECTION\n                =================\n            -->\n    <target depends=\"init\" if=\"netbeans.home\" name=\"-debug-start-debugger\">\n        <j2seproject1:nbjpdastart name=\"${debug.class}\"/>\n    </target>\n    <target depends=\"init\" if=\"netbeans.home\" name=\"-debug-start-debugger-main-test\">\n        <j2seproject1:nbjpdastart classpath=\"${debug.test.classpath}\" name=\"${debug.class}\"/>\n    </target>\n    <target depends=\"init,compile\" name=\"-debug-start-debuggee\">\n        <j2seproject3:debug>\n            <customize>\n                <arg line=\"${application.args}\"/>\n            </customize>\n        </j2seproject3:debug>\n    </target>\n    <target depends=\"init,compile,-debug-start-debugger,-debug-start-debuggee\" description=\"Debug project in IDE.\" if=\"netbeans.home\" name=\"debug\"/>\n    <target depends=\"init\" if=\"netbeans.home\" name=\"-debug-start-debugger-stepinto\">\n        <j2seproject1:nbjpdastart stopclassname=\"${main.class}\"/>\n    </target>\n    <target depends=\"init,compile,-debug-start-debugger-stepinto,-debug-start-debuggee\" if=\"netbeans.home\" name=\"debug-stepinto\"/>\n    <target depends=\"init,compile-single\" if=\"netbeans.home\" name=\"-debug-start-debuggee-single\">\n        <fail unless=\"debug.class\">Must select one file in the IDE or set debug.class</fail>\n        <j2seproject3:debug classname=\"${debug.class}\"/>\n    </target>\n    <target depends=\"init,compile-single,-debug-start-debugger,-debug-start-debuggee-single\" if=\"netbeans.home\" name=\"debug-single\"/>\n    <target depends=\"init,compile-test-single\" if=\"netbeans.home\" name=\"-debug-start-debuggee-main-test\">\n        <fail unless=\"debug.class\">Must select one file in the IDE or set debug.class</fail>\n        <j2seproject3:debug classname=\"${debug.class}\" classpath=\"${debug.test.classpath}\"/>\n    </target>\n    <target depends=\"init,compile-test-single,-debug-start-debugger-main-test,-debug-start-debuggee-main-test\" if=\"netbeans.home\" name=\"debug-test-with-main\"/>\n    <target depends=\"init\" name=\"-pre-debug-fix\">\n        <fail unless=\"fix.includes\">Must set fix.includes</fail>\n        <property name=\"javac.includes\" value=\"${fix.includes}.java\"/>\n    </target>\n    <target depends=\"init,-pre-debug-fix,compile-single\" if=\"netbeans.home\" name=\"-do-debug-fix\">\n        <j2seproject1:nbjpdareload/>\n    </target>\n    <target depends=\"init,-pre-debug-fix,-do-debug-fix\" if=\"netbeans.home\" name=\"debug-fix\"/>\n    <!--\n                =================\n                PROFILING SECTION\n                =================\n            -->\n    <!--\n                pre NB7.2 profiler integration\n            -->\n    <target depends=\"profile-init,compile\" description=\"Profile a project in the IDE.\" if=\"profiler.info.jvmargs.agent\" name=\"-profile-pre72\">\n        <fail unless=\"netbeans.home\">This target only works when run from inside the NetBeans IDE.</fail>\n        <nbprofiledirect>\n            <classpath>\n                <path path=\"${run.classpath}\"/>\n            </classpath>\n        </nbprofiledirect>\n        <profile/>\n    </target>\n    <target depends=\"profile-init,compile-single\" description=\"Profile a selected class in the IDE.\" if=\"profiler.info.jvmargs.agent\" name=\"-profile-single-pre72\">\n        <fail unless=\"profile.class\">Must select one file in the IDE or set profile.class</fail>\n        <fail unless=\"netbeans.home\">This target only works when run from inside the NetBeans IDE.</fail>\n        <nbprofiledirect>\n            <classpath>\n                <path path=\"${run.classpath}\"/>\n            </classpath>\n        </nbprofiledirect>\n        <profile classname=\"${profile.class}\"/>\n    </target>\n    <target depends=\"profile-init,compile-single\" if=\"profiler.info.jvmargs.agent\" name=\"-profile-applet-pre72\">\n        <fail unless=\"netbeans.home\">This target only works when run from inside the NetBeans IDE.</fail>\n        <nbprofiledirect>\n            <classpath>\n                <path path=\"${run.classpath}\"/>\n            </classpath>\n        </nbprofiledirect>\n        <profile classname=\"sun.applet.AppletViewer\">\n            <customize>\n                <arg value=\"${applet.url}\"/>\n            </customize>\n        </profile>\n    </target>\n    <target depends=\"profile-init,compile-test-single\" if=\"profiler.info.jvmargs.agent\" name=\"-profile-test-single-pre72\">\n        <fail unless=\"netbeans.home\">This target only works when run from inside the NetBeans IDE.</fail>\n        <nbprofiledirect>\n            <classpath>\n                <path path=\"${run.test.classpath}\"/>\n            </classpath>\n        </nbprofiledirect>\n        <junit dir=\"${profiler.info.dir}\" errorproperty=\"tests.failed\" failureproperty=\"tests.failed\" fork=\"true\" jvm=\"${profiler.info.jvm}\" showoutput=\"true\">\n            <env key=\"${profiler.info.pathvar}\" path=\"${profiler.info.agentpath}:${profiler.current.path}\"/>\n            <jvmarg value=\"${profiler.info.jvmargs.agent}\"/>\n            <jvmarg line=\"${profiler.info.jvmargs}\"/>\n            <test name=\"${profile.class}\"/>\n            <classpath>\n                <path path=\"${run.test.classpath}\"/>\n            </classpath>\n            <syspropertyset>\n                <propertyref prefix=\"test-sys-prop.\"/>\n                <mapper from=\"test-sys-prop.*\" to=\"*\" type=\"glob\"/>\n            </syspropertyset>\n            <formatter type=\"brief\" usefile=\"false\"/>\n            <formatter type=\"xml\"/>\n        </junit>\n    </target>\n    <!--\n                end of pre NB72 profiling section\n            -->\n    <target if=\"netbeans.home\" name=\"-profile-check\">\n        <condition property=\"profiler.configured\">\n            <or>\n                <contains casesensitive=\"true\" string=\"${run.jvmargs.ide}\" substring=\"-agentpath:\"/>\n                <contains casesensitive=\"true\" string=\"${run.jvmargs.ide}\" substring=\"-javaagent:\"/>\n            </or>\n        </condition>\n    </target>\n    <target depends=\"-profile-check,-profile-pre72\" description=\"Profile a project in the IDE.\" if=\"profiler.configured\" name=\"profile\" unless=\"profiler.info.jvmargs.agent\">\n        <startprofiler/>\n        <antcall target=\"run\"/>\n    </target>\n    <target depends=\"-profile-check,-profile-single-pre72\" description=\"Profile a selected class in the IDE.\" if=\"profiler.configured\" name=\"profile-single\" unless=\"profiler.info.jvmargs.agent\">\n        <fail unless=\"run.class\">Must select one file in the IDE or set run.class</fail>\n        <startprofiler/>\n        <antcall target=\"run-single\"/>\n    </target>\n    <target depends=\"-profile-test-single-pre72\" description=\"Profile a selected test in the IDE.\" name=\"profile-test-single\"/>\n    <target depends=\"-profile-check\" description=\"Profile a selected test in the IDE.\" if=\"profiler.configured\" name=\"profile-test\" unless=\"profiler.info.jvmargs\">\n        <fail unless=\"test.includes\">Must select some files in the IDE or set test.includes</fail>\n        <startprofiler/>\n        <antcall target=\"test-single\"/>\n    </target>\n    <target depends=\"-profile-check\" description=\"Profile a selected class in the IDE.\" if=\"profiler.configured\" name=\"profile-test-with-main\">\n        <fail unless=\"run.class\">Must select one file in the IDE or set run.class</fail>\n        <startprofiler/>\n        <antcal target=\"run-test-with-main\"/>\n    </target>\n    <target depends=\"-profile-check,-profile-applet-pre72\" if=\"profiler.configured\" name=\"profile-applet\" unless=\"profiler.info.jvmargs.agent\">\n        <fail unless=\"applet.url\">Must select one file in the IDE or set applet.url</fail>\n        <startprofiler/>\n        <antcall target=\"run-applet\"/>\n    </target>\n    <!--\n                ===============\n                JAVADOC SECTION\n                ===============\n            -->\n    <target depends=\"init\" if=\"have.sources\" name=\"-javadoc-build\">\n        <mkdir dir=\"${dist.javadoc.dir}\"/>\n        <condition else=\"\" property=\"javadoc.endorsed.classpath.cmd.line.arg\" value=\"-J${endorsed.classpath.cmd.line.arg}\">\n            <and>\n                <isset property=\"endorsed.classpath.cmd.line.arg\"/>\n                <not>\n                    <equals arg1=\"${endorsed.classpath.cmd.line.arg}\" arg2=\"\"/>\n                </not>\n            </and>\n        </condition>\n        <javadoc additionalparam=\"${javadoc.additionalparam}\" author=\"${javadoc.author}\" charset=\"UTF-8\" destdir=\"${dist.javadoc.dir}\" docencoding=\"UTF-8\" encoding=\"${javadoc.encoding.used}\" failonerror=\"true\" noindex=\"${javadoc.noindex}\" nonavbar=\"${javadoc.nonavbar}\" notree=\"${javadoc.notree}\" private=\"${javadoc.private}\" source=\"${javac.source}\" splitindex=\"${javadoc.splitindex}\" use=\"${javadoc.use}\" useexternalfile=\"true\" version=\"${javadoc.version}\" windowtitle=\"${javadoc.windowtitle}\">\n            <classpath>\n                <path path=\"${javac.classpath}\"/>\n            </classpath>\n            <fileset dir=\"${src.dir}\" excludes=\"*.java,${excludes}\" includes=\"${includes}\">\n                <filename name=\"**/*.java\"/>\n            </fileset>\n            <fileset dir=\"${build.generated.sources.dir}\" erroronmissingdir=\"false\">\n                <include name=\"**/*.java\"/>\n                <exclude name=\"*.java\"/>\n            </fileset>\n            <arg line=\"${javadoc.endorsed.classpath.cmd.line.arg}\"/>\n        </javadoc>\n        <copy todir=\"${dist.javadoc.dir}\">\n            <fileset dir=\"${src.dir}\" excludes=\"${excludes}\" includes=\"${includes}\">\n                <filename name=\"**/doc-files/**\"/>\n            </fileset>\n            <fileset dir=\"${build.generated.sources.dir}\" erroronmissingdir=\"false\">\n                <include name=\"**/doc-files/**\"/>\n            </fileset>\n        </copy>\n    </target>\n    <target depends=\"init,-javadoc-build\" if=\"netbeans.home\" name=\"-javadoc-browse\" unless=\"no.javadoc.preview\">\n        <nbbrowse file=\"${dist.javadoc.dir}/index.html\"/>\n    </target>\n    <target depends=\"init,-javadoc-build,-javadoc-browse\" description=\"Build Javadoc.\" name=\"javadoc\"/>\n    <!--\n                =========================\n                TEST COMPILATION SECTION\n                =========================\n            -->\n    <target depends=\"init,compile\" if=\"have.tests\" name=\"-pre-pre-compile-test\">\n        <mkdir dir=\"${build.test.classes.dir}\"/>\n    </target>\n    <target name=\"-pre-compile-test\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target if=\"do.depend.true\" name=\"-compile-test-depend\">\n        <j2seproject3:depend classpath=\"${javac.test.classpath}\" destdir=\"${build.test.classes.dir}\" srcdir=\"${test.src.dir}\"/>\n    </target>\n    <target depends=\"init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend\" if=\"have.tests\" name=\"-do-compile-test\">\n        <j2seproject3:javac apgeneratedsrcdir=\"${build.test.classes.dir}\" classpath=\"${javac.test.classpath}\" debug=\"true\" destdir=\"${build.test.classes.dir}\" processorpath=\"${javac.test.processorpath}\" srcdir=\"${test.src.dir}\"/>\n        <copy todir=\"${build.test.classes.dir}\">\n            <fileset dir=\"${test.src.dir}\" excludes=\"${build.classes.excludes},${excludes}\" includes=\"${includes}\"/>\n        </copy>\n    </target>\n    <target name=\"-post-compile-test\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target depends=\"init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test\" name=\"compile-test\"/>\n    <target name=\"-pre-compile-test-single\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target depends=\"init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test-single\" if=\"have.tests\" name=\"-do-compile-test-single\">\n        <fail unless=\"javac.includes\">Must select some files in the IDE or set javac.includes</fail>\n        <j2seproject3:force-recompile destdir=\"${build.test.classes.dir}\"/>\n        <j2seproject3:javac apgeneratedsrcdir=\"${build.test.classes.dir}\" classpath=\"${javac.test.classpath}\" debug=\"true\" destdir=\"${build.test.classes.dir}\" excludes=\"\" includes=\"${javac.includes}\" processorpath=\"${javac.test.processorpath}\" sourcepath=\"${test.src.dir}\" srcdir=\"${test.src.dir}\"/>\n        <copy todir=\"${build.test.classes.dir}\">\n            <fileset dir=\"${test.src.dir}\" excludes=\"${build.classes.excludes},${excludes}\" includes=\"${includes}\"/>\n        </copy>\n    </target>\n    <target name=\"-post-compile-test-single\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target depends=\"init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single\" name=\"compile-test-single\"/>\n    <!--\n                =======================\n                TEST EXECUTION SECTION\n                =======================\n            -->\n    <target depends=\"init\" if=\"have.tests\" name=\"-pre-test-run\">\n        <mkdir dir=\"${build.test.results.dir}\"/>\n    </target>\n    <target depends=\"init,compile-test,-pre-test-run\" if=\"have.tests\" name=\"-do-test-run\">\n        <j2seproject3:test testincludes=\"**/*Test.java\"/>\n    </target>\n    <target depends=\"init,compile-test,-pre-test-run,-do-test-run\" if=\"have.tests\" name=\"-post-test-run\">\n        <fail if=\"tests.failed\" unless=\"ignore.failing.tests\">Some tests failed; see details above.</fail>\n    </target>\n    <target depends=\"init\" if=\"have.tests\" name=\"test-report\"/>\n    <target depends=\"init\" if=\"netbeans.home+have.tests\" name=\"-test-browse\"/>\n    <target depends=\"init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse\" description=\"Run unit tests.\" name=\"test\"/>\n    <target depends=\"init\" if=\"have.tests\" name=\"-pre-test-run-single\">\n        <mkdir dir=\"${build.test.results.dir}\"/>\n    </target>\n    <target depends=\"init,compile-test-single,-pre-test-run-single\" if=\"have.tests\" name=\"-do-test-run-single\">\n        <fail unless=\"test.includes\">Must select some files in the IDE or set test.includes</fail>\n        <j2seproject3:test excludes=\"\" includes=\"${test.includes}\" testincludes=\"${test.includes}\"/>\n    </target>\n    <target depends=\"init,compile-test-single,-pre-test-run-single,-do-test-run-single\" if=\"have.tests\" name=\"-post-test-run-single\">\n        <fail if=\"tests.failed\" unless=\"ignore.failing.tests\">Some tests failed; see details above.</fail>\n    </target>\n    <target depends=\"init,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single\" description=\"Run single unit test.\" name=\"test-single\"/>\n    <target depends=\"init,compile-test-single,-pre-test-run-single\" if=\"have.tests\" name=\"-do-test-run-single-method\">\n        <fail unless=\"test.class\">Must select some files in the IDE or set test.class</fail>\n        <fail unless=\"test.method\">Must select some method in the IDE or set test.method</fail>\n        <j2seproject3:test excludes=\"\" includes=\"${javac.includes}\" testincludes=\"${test.class}\" testmethods=\"${test.method}\"/>\n    </target>\n    <target depends=\"init,compile-test-single,-pre-test-run-single,-do-test-run-single-method\" if=\"have.tests\" name=\"-post-test-run-single-method\">\n        <fail if=\"tests.failed\" unless=\"ignore.failing.tests\">Some tests failed; see details above.</fail>\n    </target>\n    <target depends=\"init,compile-test-single,-pre-test-run-single,-do-test-run-single-method,-post-test-run-single-method\" description=\"Run single unit test.\" name=\"test-single-method\"/>\n    <!--\n                =======================\n                TEST DEBUGGING SECTION\n                =======================\n            -->\n    <target depends=\"init,compile-test-single,-pre-test-run-single\" if=\"have.tests\" name=\"-debug-start-debuggee-test\">\n        <fail unless=\"test.class\">Must select one file in the IDE or set test.class</fail>\n        <j2seproject3:test-debug excludes=\"\" includes=\"${javac.includes}\" testClass=\"${test.class}\" testincludes=\"${javac.includes}\"/>\n    </target>\n    <target depends=\"init,compile-test-single,-pre-test-run-single\" if=\"have.tests\" name=\"-debug-start-debuggee-test-method\">\n        <fail unless=\"test.class\">Must select one file in the IDE or set test.class</fail>\n        <fail unless=\"test.method\">Must select some method in the IDE or set test.method</fail>\n        <j2seproject3:test-debug excludes=\"\" includes=\"${javac.includes}\" testClass=\"${test.class}\" testMethod=\"${test.method}\" testincludes=\"${test.class}\" testmethods=\"${test.method}\"/>\n    </target>\n    <target depends=\"init,compile-test\" if=\"netbeans.home+have.tests\" name=\"-debug-start-debugger-test\">\n        <j2seproject1:nbjpdastart classpath=\"${debug.test.classpath}\" name=\"${test.class}\"/>\n    </target>\n    <target depends=\"init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test\" name=\"debug-test\"/>\n    <target depends=\"init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test-method\" name=\"debug-test-method\"/>\n    <target depends=\"init,-pre-debug-fix,compile-test-single\" if=\"netbeans.home\" name=\"-do-debug-fix-test\">\n        <j2seproject1:nbjpdareload dir=\"${build.test.classes.dir}\"/>\n    </target>\n    <target depends=\"init,-pre-debug-fix,-do-debug-fix-test\" if=\"netbeans.home\" name=\"debug-fix-test\"/>\n    <!--\n                =========================\n                APPLET EXECUTION SECTION\n                =========================\n            -->\n    <target depends=\"init,compile-single\" name=\"run-applet\">\n        <fail unless=\"applet.url\">Must select one file in the IDE or set applet.url</fail>\n        <j2seproject1:java classname=\"sun.applet.AppletViewer\">\n            <customize>\n                <arg value=\"${applet.url}\"/>\n            </customize>\n        </j2seproject1:java>\n    </target>\n    <!--\n                =========================\n                APPLET DEBUGGING  SECTION\n                =========================\n            -->\n    <target depends=\"init,compile-single\" if=\"netbeans.home\" name=\"-debug-start-debuggee-applet\">\n        <fail unless=\"applet.url\">Must select one file in the IDE or set applet.url</fail>\n        <j2seproject3:debug classname=\"sun.applet.AppletViewer\">\n            <customize>\n                <arg value=\"${applet.url}\"/>\n            </customize>\n        </j2seproject3:debug>\n    </target>\n    <target depends=\"init,compile-single,-debug-start-debugger,-debug-start-debuggee-applet\" if=\"netbeans.home\" name=\"debug-applet\"/>\n    <!--\n                ===============\n                CLEANUP SECTION\n                ===============\n            -->\n    <target name=\"-deps-clean-init\" unless=\"built-clean.properties\">\n        <property location=\"${build.dir}/built-clean.properties\" name=\"built-clean.properties\"/>\n        <delete file=\"${built-clean.properties}\" quiet=\"true\"/>\n    </target>\n    <target if=\"already.built.clean.${basedir}\" name=\"-warn-already-built-clean\">\n        <echo level=\"warn\" message=\"Cycle detected: 四则运算 was already built\"/>\n    </target>\n    <target depends=\"init,-deps-clean-init\" name=\"deps-clean\" unless=\"no.deps\">\n        <mkdir dir=\"${build.dir}\"/>\n        <touch file=\"${built-clean.properties}\" verbose=\"false\"/>\n        <property file=\"${built-clean.properties}\" prefix=\"already.built.clean.\"/>\n        <antcall target=\"-warn-already-built-clean\"/>\n        <propertyfile file=\"${built-clean.properties}\">\n            <entry key=\"${basedir}\" value=\"\"/>\n        </propertyfile>\n    </target>\n    <target depends=\"init\" name=\"-do-clean\">\n        <delete dir=\"${build.dir}\"/>\n        <delete dir=\"${dist.dir}\" followsymlinks=\"false\" includeemptydirs=\"true\"/>\n    </target>\n    <target name=\"-post-clean\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target depends=\"init,deps-clean,-do-clean,-post-clean\" description=\"Clean build products.\" name=\"clean\"/>\n    <target name=\"-check-call-dep\">\n        <property file=\"${call.built.properties}\" prefix=\"already.built.\"/>\n        <condition property=\"should.call.dep\">\n            <and>\n                <not>\n                    <isset property=\"already.built.${call.subproject}\"/>\n                </not>\n                <available file=\"${call.script}\"/>\n            </and>\n        </condition>\n    </target>\n    <target depends=\"-check-call-dep\" if=\"should.call.dep\" name=\"-maybe-call-dep\">\n        <ant antfile=\"${call.script}\" inheritall=\"false\" target=\"${call.target}\">\n            <propertyset>\n                <propertyref prefix=\"transfer.\"/>\n                <mapper from=\"transfer.*\" to=\"*\" type=\"glob\"/>\n            </propertyset>\n        </ant>\n    </target>\n</project>\n"
  },
  {
    "path": "day25/code/四则运算/nbproject/genfiles.properties",
    "content": "build.xml.data.CRC32=d258e380\nbuild.xml.script.CRC32=cb3323dd\nbuild.xml.stylesheet.CRC32=8064a381@1.68.1.46\n# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.\n# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.\nnbproject/build-impl.xml.data.CRC32=d258e380\nnbproject/build-impl.xml.script.CRC32=1c040c79\nnbproject/build-impl.xml.stylesheet.CRC32=5a01deb7@1.68.1.46\n"
  },
  {
    "path": "day25/code/四则运算/nbproject/private/private.properties",
    "content": "compile.on.save=true\nuser.properties.file=C:\\\\Users\\\\fqy\\\\AppData\\\\Roaming\\\\NetBeans\\\\7.4\\\\build.properties\n"
  },
  {
    "path": "day25/code/四则运算/nbproject/private/private.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project-private xmlns=\"http://www.netbeans.org/ns/project-private/1\">\n    <editor-bookmarks xmlns=\"http://www.netbeans.org/ns/editor-bookmarks/2\" lastBookmarkId=\"0\"/>\n    <open-files xmlns=\"http://www.netbeans.org/ns/projectui-open-files/2\">\n        <group/>\n    </open-files>\n</project-private>\n"
  },
  {
    "path": "day25/code/四则运算/nbproject/project.properties",
    "content": "annotation.processing.enabled=true\nannotation.processing.enabled.in.editor=false\nannotation.processing.processor.options=\nannotation.processing.processors.list=\nannotation.processing.run.all.processors=true\nannotation.processing.source.output=${build.generated.sources.dir}/ap-source-output\nbuild.classes.dir=${build.dir}/classes\nbuild.classes.excludes=**/*.java,**/*.form\n# This directory is removed when the project is cleaned:\nbuild.dir=build\nbuild.generated.dir=${build.dir}/generated\nbuild.generated.sources.dir=${build.dir}/generated-sources\n# Only compile against the classpath explicitly listed here:\nbuild.sysclasspath=ignore\nbuild.test.classes.dir=${build.dir}/test/classes\nbuild.test.results.dir=${build.dir}/test/results\n# Uncomment to specify the preferred debugger connection transport:\n#debug.transport=dt_socket\ndebug.classpath=\\\n    ${run.classpath}\ndebug.test.classpath=\\\n    ${run.test.classpath}\n# build.classes.dir \\u4e2d\\u5e94\\u4ece\\u5206\\u53d1 jar \\u4e2d\\u6392\\u9664\\u7684\\u6587\\u4ef6\ndist.archive.excludes=\n# This directory is removed when the project is cleaned:\ndist.dir=dist\ndist.jar=${dist.dir}/____.jar\ndist.javadoc.dir=${dist.dir}/javadoc\nexcludes=\nfile.reference.JTattoo.jar=D:\\\\itcast\\\\20150306\\\\day25\\\\code\\\\\\u4fee\\u6539\\u76ae\\u80a4\\u8981\\u4f7f\\u7528\\u7684\\u8d44\\u6e90\\\\JTattoo.jar\nfile.reference.liquidlnf.jar=D:\\\\itcast\\\\20150306\\\\day25\\\\code\\\\\\u4fee\\u6539\\u76ae\\u80a4\\u8981\\u4f7f\\u7528\\u7684\\u8d44\\u6e90\\\\liquidlnf.jar\nincludes=**\njar.compress=false\njavac.classpath=\\\n    ${file.reference.JTattoo.jar}:\\\n    ${file.reference.liquidlnf.jar}\n# Space-separated list of extra javac options\njavac.compilerargs=\njavac.deprecation=false\njavac.processorpath=\\\n    ${javac.classpath}\njavac.source=1.7\njavac.target=1.7\njavac.test.classpath=\\\n    ${javac.classpath}:\\\n    ${build.classes.dir}\njavac.test.processorpath=\\\n    ${javac.test.classpath}\njavadoc.additionalparam=\njavadoc.author=false\njavadoc.encoding=${source.encoding}\njavadoc.noindex=false\njavadoc.nonavbar=false\njavadoc.notree=false\njavadoc.private=false\njavadoc.splitindex=true\njavadoc.use=true\njavadoc.version=false\njavadoc.windowtitle=\nmain.class=cn.itcast_01.OperatorJFrame\nmanifest.file=manifest.mf\nmeta.inf.dir=${src.dir}/META-INF\nmkdist.disabled=false\nplatform.active=default_platform\nrun.classpath=\\\n    ${javac.classpath}:\\\n    ${build.classes.dir}\n# Space-separated list of JVM arguments used when running the project.\n# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value.\n# To set system properties for unit tests define test-sys-prop.name=value:\nrun.jvmargs=\nrun.test.classpath=\\\n    ${javac.test.classpath}:\\\n    ${build.test.classes.dir}\nsource.encoding=UTF-8\nsrc.dir=src\ntest.src.dir=test\n"
  },
  {
    "path": "day25/code/四则运算/nbproject/project.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://www.netbeans.org/ns/project/1\">\n    <type>org.netbeans.modules.java.j2seproject</type>\n    <configuration>\n        <data xmlns=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <name>四则运算</name>\n            <source-roots>\n                <root id=\"src.dir\"/>\n            </source-roots>\n            <test-roots>\n                <root id=\"test.src.dir\"/>\n            </test-roots>\n        </data>\n    </configuration>\n</project>\n"
  },
  {
    "path": "day25/code/四则运算/src/cn/itcast/util/MyLookAndFeel.java",
    "content": "/*\n * To change this license header, choose License Headers in Project Properties.\n * To change this template file, choose Tools | Templates\n * and open the template in the editor.\n */\n\npackage cn.itcast.util;\n\n/**\n *\n * @author fqy\n */\npublic abstract class MyLookAndFeel {\n    // 系统自带皮肤,5种都能用\n\tpublic static String SYS_METAL = \"javax.swing.plaf.metal.MetalLookAndFeel\";\n\tpublic static String SYS_NIMBUS = \"com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel\";\n\t// 有个性\n\tpublic static String SYS_CDE_MOTIF = \"com.sun.java.swing.plaf.motif.MotifLookAndFeel\";\n\tpublic static String SYS_WINDOWS = \"com.sun.java.swing.plaf.windows.WindowsLookAndFeel\";\n\tpublic static String SYS_WINDOWS_CLASSIC = \"com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel\";\n\t// JIattoo jar包资源\n\tpublic static String JTATTOO_ACRYL = \"com.jtattoo.plaf.acryl.AcrylLookAndFeel\";\n\tpublic static String JTATTOO_AERO = \"com.jtattoo.plaf.aero.AeroLookAndFeel\";\n\t// 还可以\n\tpublic static String JTATTOO_ALUMINUM = \"com.jtattoo.plaf.aluminium.AluminiumLookAndFeel\";\n\t// 很喜欢\n\tpublic static String JTATTOO_BERNSTEIN = \"com.jtattoo.plaf.bernstein.BernsteinLookAndFeel\";\n\tpublic static String JTATTOO_FAST = \"com.jtattoo.plaf.fast.FastLookAndFeel\";\n\t// 有个性\n\tpublic static String JTATTOO_HIFI = \"com.jtattoo.plaf.hifi.HiFiLookAndFeel\";\n\tpublic static String JTATTOO_LUNA = \"com.jtattoo.plaf.luna.LunaLookAndFeel\";\n\t// 很喜欢\n\tpublic static String JTATTOO_MCWIN = \"com.jtattoo.plaf.mcwin.McWinLookAndFeel\";\n\tpublic static String JTATTOO_MINT = \"com.jtattoo.plaf.mint.MintLookAndFeel\";\n\t// 有个性\n\tpublic static String JTATTOO_NOIRE = \"com.jtattoo.plaf.noire.NoireLookAndFeel\";\n\tpublic static String JTATTOO_SMART = \"com.jtattoo.plaf.smart.SmartLookAndFeel\";\n\t// liquidlnf.jar包资源\n\t// 很喜欢\n\tpublic static String LIQUIDINF = \"com.birosoft.liquid.LiquidLookAndFeel\";\n}\n"
  },
  {
    "path": "day25/code/四则运算/src/cn/itcast/util/UiUtil.java",
    "content": "/*\n * To change this license header, choose License Headers in Project Properties.\n * To change this template file, choose Tools | Templates\n * and open the template in the editor.\n */\n\npackage cn.itcast.util;\n\nimport java.awt.Dimension;\nimport java.awt.Image;\nimport java.awt.Toolkit;\nimport javax.swing.JFrame;\n\n/**\n * 工具类\n * @author fqy\n */\npublic class UiUtil {\n    \n    private UiUtil(){}\n    \n    /**\n     * 修改窗体图标\n     * @param jf \n     */\n    public static void setFrameIcon(JFrame jf,String imagePath){\n        //获取工具类\n        Toolkit took = Toolkit.getDefaultToolkit();\n        //根据路径获取图片\n        Image image = took.getImage(imagePath);\n        //设置图标\n        jf.setIconImage(image);\n    }\n    \n    /**\n     * 设置窗体居中\n     * @param jf \n     */\n    public static void setFrameCenter(JFrame jf){\n        /*\n        思路：\n            获取屏幕的宽和高\n            获取窗体的宽和高\n        */\n        //获取工具类\n        Toolkit took = Toolkit.getDefaultToolkit();\n        \n        //获取屏幕的宽和高\n        Dimension screen = took.getScreenSize();\n        \n       double screenWidth =  screen.getWidth();\n       double screenHeight = screen.getHeight();\n       \n       //获取窗体的宽和高\n       int jfWidth = jf.getWidth();\n       int jfHeight = jf.getHeight();\n       \n       //设置坐标\n       int width = (int)(screenWidth-jfWidth)/2;\n       int height = (int)(screenHeight-jfHeight)/2;\n       \n      jf.setLocation(width,height);\n    }\n}\n"
  },
  {
    "path": "day25/code/四则运算/src/cn/itcast_01/OperatorJFrame.form",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<Form version=\"1.3\" maxVersion=\"1.9\" type=\"org.netbeans.modules.form.forminfo.JFrameFormInfo\">\n  <Properties>\n    <Property name=\"defaultCloseOperation\" type=\"int\" value=\"3\"/>\n  </Properties>\n  <SyntheticProperties>\n    <SyntheticProperty name=\"formSizePolicy\" type=\"int\" value=\"1\"/>\n    <SyntheticProperty name=\"generateCenter\" type=\"boolean\" value=\"false\"/>\n  </SyntheticProperties>\n  <AuxValues>\n    <AuxValue name=\"FormSettings_autoResourcing\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_autoSetComponentName\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_generateFQN\" type=\"java.lang.Boolean\" value=\"true\"/>\n    <AuxValue name=\"FormSettings_generateMnemonicsCode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_i18nAutoMode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_layoutCodeTarget\" type=\"java.lang.Integer\" value=\"1\"/>\n    <AuxValue name=\"FormSettings_listenerGenerationStyle\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_variablesLocal\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_variablesModifier\" type=\"java.lang.Integer\" value=\"2\"/>\n  </AuxValues>\n\n  <Layout>\n    <DimensionLayout dim=\"0\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"0\" attributes=\"0\">\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"0\" max=\"-2\" attributes=\"0\">\n                  <Component id=\"jLabel1\" max=\"32767\" attributes=\"0\"/>\n                  <Component id=\"firstNumber\" max=\"32767\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"1\" attributes=\"0\">\n                  <Group type=\"102\" attributes=\"0\">\n                      <Component id=\"choiceOperator\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                      <EmptySpace max=\"-2\" attributes=\"0\"/>\n                      <Component id=\"secondNumber\" min=\"-2\" pref=\"72\" max=\"-2\" attributes=\"0\"/>\n                  </Group>\n                  <Component id=\"jLabel2\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Component id=\"jLabel3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n                  <Component id=\"jiSuanButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"resultNumber\" min=\"-2\" pref=\"72\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jLabel4\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace max=\"32767\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n    <DimensionLayout dim=\"1\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"0\" attributes=\"0\">\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"jLabel1\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jLabel2\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jLabel4\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"firstNumber\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"choiceOperator\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"secondNumber\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jLabel3\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"resultNumber\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace type=\"separate\" max=\"-2\" attributes=\"0\"/>\n              <Component id=\"jiSuanButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              <EmptySpace max=\"32767\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n  </Layout>\n  <SubComponents>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel1\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x7b2c;&#x4e00;&#x4e2a;&#x64cd;&#x4f5c;&#x6570;\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JTextField\" name=\"firstNumber\">\n    </Component>\n    <Component class=\"javax.swing.JComboBox\" name=\"choiceOperator\">\n      <Properties>\n        <Property name=\"model\" type=\"javax.swing.ComboBoxModel\" editor=\"org.netbeans.modules.form.editors2.ComboBoxModelEditor\">\n          <StringArray count=\"4\">\n            <StringItem index=\"0\" value=\"+\"/>\n            <StringItem index=\"1\" value=\"-\"/>\n            <StringItem index=\"2\" value=\"*\"/>\n            <StringItem index=\"3\" value=\"/\"/>\n          </StringArray>\n        </Property>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel2\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x7b2c;&#x4e8c;&#x4e2a;&#x64cd;&#x4f5c;&#x6570;\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JTextField\" name=\"secondNumber\">\n    </Component>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel3\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"=\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JTextField\" name=\"resultNumber\">\n    </Component>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel4\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x7ed3;&#x679c;\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JButton\" name=\"jiSuanButton\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x8ba1;&#x7b97;\"/>\n      </Properties>\n      <Events>\n        <EventHandler event=\"mouseClicked\" listener=\"java.awt.event.MouseListener\" parameters=\"java.awt.event.MouseEvent\" handler=\"jiSuanButtonMouseClicked\"/>\n      </Events>\n    </Component>\n  </SubComponents>\n</Form>\n"
  },
  {
    "path": "day25/code/四则运算/src/cn/itcast_01/OperatorJFrame.java",
    "content": "/*\n * To change this license header, choose License Headers in Project Properties.\n * To change this template file, choose Tools | Templates\n * and open the template in the editor.\n */\npackage cn.itcast_01;\n\n/**\n *\n * @author fqy\n */\npublic class OperatorJFrame extends javax.swing.JFrame {\n\n    /**\n     * Creates new form OperatorJFrame\n     */\n    public OperatorJFrame() {\n        initComponents();\n    }\n\n    /**\n     * This method is called from within the constructor to initialize the form.\n     * WARNING: Do NOT modify this code. The content of this method is always\n     * regenerated by the Form Editor.\n     */\n    @SuppressWarnings(\"unchecked\")\n    // <editor-fold defaultstate=\"collapsed\" desc=\"Generated Code\">//GEN-BEGIN:initComponents\n    private void initComponents() {\n\n        jLabel1 = new javax.swing.JLabel();\n        firstNumber = new javax.swing.JTextField();\n        choiceOperator = new javax.swing.JComboBox();\n        jLabel2 = new javax.swing.JLabel();\n        secondNumber = new javax.swing.JTextField();\n        jLabel3 = new javax.swing.JLabel();\n        resultNumber = new javax.swing.JTextField();\n        jLabel4 = new javax.swing.JLabel();\n        jiSuanButton = new javax.swing.JButton();\n\n        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);\n\n        jLabel1.setText(\"第一个操作数\");\n\n        choiceOperator.setModel(new javax.swing.DefaultComboBoxModel(new String[] { \"+\", \"-\", \"*\", \"/\" }));\n\n        jLabel2.setText(\"第二个操作数\");\n\n        jLabel3.setText(\"=\");\n\n        jLabel4.setText(\"结果\");\n\n        jiSuanButton.setText(\"计算\");\n        jiSuanButton.addMouseListener(new java.awt.event.MouseAdapter() {\n            public void mouseClicked(java.awt.event.MouseEvent evt) {\n                jiSuanButtonMouseClicked(evt);\n            }\n        });\n\n        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());\n        getContentPane().setLayout(layout);\n        layout.setHorizontalGroup(\n            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)\n            .addGroup(layout.createSequentialGroup()\n                .addContainerGap()\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)\n                    .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)\n                    .addComponent(firstNumber))\n                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)\n                    .addGroup(layout.createSequentialGroup()\n                        .addComponent(choiceOperator, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)\n                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)\n                        .addComponent(secondNumber, javax.swing.GroupLayout.PREFERRED_SIZE, 72, javax.swing.GroupLayout.PREFERRED_SIZE))\n                    .addComponent(jLabel2))\n                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)\n                .addComponent(jLabel3)\n                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)\n                    .addComponent(jiSuanButton)\n                    .addComponent(resultNumber, javax.swing.GroupLayout.PREFERRED_SIZE, 72, javax.swing.GroupLayout.PREFERRED_SIZE)\n                    .addComponent(jLabel4))\n                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))\n        );\n        layout.setVerticalGroup(\n            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)\n            .addGroup(layout.createSequentialGroup()\n                .addContainerGap()\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)\n                    .addComponent(jLabel1)\n                    .addComponent(jLabel2)\n                    .addComponent(jLabel4))\n                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)\n                    .addComponent(firstNumber, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)\n                    .addComponent(choiceOperator, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)\n                    .addComponent(secondNumber, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)\n                    .addComponent(jLabel3)\n                    .addComponent(resultNumber, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))\n                .addGap(18, 18, 18)\n                .addComponent(jiSuanButton)\n                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))\n        );\n\n        pack();\n    }// </editor-fold>//GEN-END:initComponents\n\n    private void jiSuanButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jiSuanButtonMouseClicked\n        /*\n         思路：\n         1:获取操作数和运算符\n         2:根据运算符，进行相应的运算\n         3:把运算的结果赋值给最后一个文本框\n         */\n        String firstNumberString = this.firstNumber.getText();\n        String operatorString = String.valueOf(this.choiceOperator.getSelectedItem());\n        String secondNumberString = this.secondNumber.getText();\n\n//        System.out.println(\"firstNumberString:\" + firstNumberString);\n//        System.out.println(\"operatorString:\" + operatorString);\n//        System.out.println(\"secondNumberString:\" + secondNumberString);\n        //把字符串转换为数据类型\n        int firstNumber = Integer.parseInt(firstNumberString);\n        int secondNumber = Integer.parseInt(secondNumberString);\n\n        //定义变量，用于保存运算的结果\n        int result = 0;\n\n        switch (operatorString) {\n            case \"+\":\n                result = firstNumber + secondNumber;\n                break;\n            case \"-\":\n                result = firstNumber - secondNumber;\n                break;\n            case \"*\":\n                result = firstNumber * secondNumber;\n                break;\n            case \"/\":\n                result = firstNumber / secondNumber;\n                break;\n        }\n        \n        //把运算的结果赋值给最后一个文本框\n        this.resultNumber.setText(String.valueOf(result));\n    }//GEN-LAST:event_jiSuanButtonMouseClicked\n\n    /**\n     * @param args the command line arguments\n     */\n    public static void main(String args[]) {\n        /* Set the Nimbus look and feel */\n        //<editor-fold defaultstate=\"collapsed\" desc=\" Look and feel setting code (optional) \">\n        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.\n         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html \n         */\n        try {\n            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {\n                if (\"Nimbus\".equals(info.getName())) {\n                    javax.swing.UIManager.setLookAndFeel(info.getClassName());\n                    break;\n                }\n            }\n        } catch (ClassNotFoundException ex) {\n            java.util.logging.Logger.getLogger(OperatorJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n        } catch (InstantiationException ex) {\n            java.util.logging.Logger.getLogger(OperatorJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n        } catch (IllegalAccessException ex) {\n            java.util.logging.Logger.getLogger(OperatorJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n        } catch (javax.swing.UnsupportedLookAndFeelException ex) {\n            java.util.logging.Logger.getLogger(OperatorJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n        }\n        //</editor-fold>\n\n        /* Create and display the form */\n        java.awt.EventQueue.invokeLater(new Runnable() {\n            public void run() {\n                new OperatorJFrame().setVisible(true);\n            }\n        });\n    }\n\n    // Variables declaration - do not modify//GEN-BEGIN:variables\n    private javax.swing.JComboBox choiceOperator;\n    private javax.swing.JTextField firstNumber;\n    private javax.swing.JLabel jLabel1;\n    private javax.swing.JLabel jLabel2;\n    private javax.swing.JLabel jLabel3;\n    private javax.swing.JLabel jLabel4;\n    private javax.swing.JButton jiSuanButton;\n    private javax.swing.JTextField resultNumber;\n    private javax.swing.JTextField secondNumber;\n    // End of variables declaration//GEN-END:variables\n}\n"
  },
  {
    "path": "day25/code/四则运算/src/cn/itcast_02/OperatorJFrame.form",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<Form version=\"1.3\" maxVersion=\"1.9\" type=\"org.netbeans.modules.form.forminfo.JFrameFormInfo\">\n  <Properties>\n    <Property name=\"defaultCloseOperation\" type=\"int\" value=\"3\"/>\n  </Properties>\n  <SyntheticProperties>\n    <SyntheticProperty name=\"formSizePolicy\" type=\"int\" value=\"1\"/>\n    <SyntheticProperty name=\"generateCenter\" type=\"boolean\" value=\"false\"/>\n  </SyntheticProperties>\n  <AuxValues>\n    <AuxValue name=\"FormSettings_autoResourcing\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_autoSetComponentName\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_generateFQN\" type=\"java.lang.Boolean\" value=\"true\"/>\n    <AuxValue name=\"FormSettings_generateMnemonicsCode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_i18nAutoMode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_layoutCodeTarget\" type=\"java.lang.Integer\" value=\"1\"/>\n    <AuxValue name=\"FormSettings_listenerGenerationStyle\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_variablesLocal\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_variablesModifier\" type=\"java.lang.Integer\" value=\"2\"/>\n  </AuxValues>\n\n  <Layout>\n    <DimensionLayout dim=\"0\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"0\" attributes=\"0\">\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"0\" max=\"-2\" attributes=\"0\">\n                  <Component id=\"jLabel1\" max=\"32767\" attributes=\"0\"/>\n                  <Component id=\"firstNumber\" max=\"32767\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"1\" attributes=\"0\">\n                  <Group type=\"102\" attributes=\"0\">\n                      <Component id=\"choiceOperator\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                      <EmptySpace max=\"-2\" attributes=\"0\"/>\n                      <Component id=\"secondNumber\" min=\"-2\" pref=\"72\" max=\"-2\" attributes=\"0\"/>\n                  </Group>\n                  <Component id=\"jLabel2\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Component id=\"jLabel3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n                  <Component id=\"jiSuanButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"resultNumber\" min=\"-2\" pref=\"72\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jLabel4\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace max=\"32767\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n    <DimensionLayout dim=\"1\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"0\" attributes=\"0\">\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"jLabel1\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jLabel2\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jLabel4\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"firstNumber\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"choiceOperator\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"secondNumber\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jLabel3\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"resultNumber\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace type=\"separate\" max=\"-2\" attributes=\"0\"/>\n              <Component id=\"jiSuanButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              <EmptySpace max=\"32767\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n  </Layout>\n  <SubComponents>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel1\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x7b2c;&#x4e00;&#x4e2a;&#x64cd;&#x4f5c;&#x6570;\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JTextField\" name=\"firstNumber\">\n    </Component>\n    <Component class=\"javax.swing.JComboBox\" name=\"choiceOperator\">\n      <Properties>\n        <Property name=\"model\" type=\"javax.swing.ComboBoxModel\" editor=\"org.netbeans.modules.form.editors2.ComboBoxModelEditor\">\n          <StringArray count=\"4\">\n            <StringItem index=\"0\" value=\"+\"/>\n            <StringItem index=\"1\" value=\"-\"/>\n            <StringItem index=\"2\" value=\"*\"/>\n            <StringItem index=\"3\" value=\"/\"/>\n          </StringArray>\n        </Property>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel2\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x7b2c;&#x4e8c;&#x4e2a;&#x64cd;&#x4f5c;&#x6570;\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JTextField\" name=\"secondNumber\">\n    </Component>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel3\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"=\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JTextField\" name=\"resultNumber\">\n    </Component>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel4\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x7ed3;&#x679c;\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JButton\" name=\"jiSuanButton\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x8ba1;&#x7b97;\"/>\n      </Properties>\n      <Events>\n        <EventHandler event=\"mouseClicked\" listener=\"java.awt.event.MouseListener\" parameters=\"java.awt.event.MouseEvent\" handler=\"jiSuanButtonMouseClicked\"/>\n      </Events>\n    </Component>\n  </SubComponents>\n</Form>\n"
  },
  {
    "path": "day25/code/四则运算/src/cn/itcast_02/OperatorJFrame.java",
    "content": "/*\n * To change this license header, choose License Headers in Project Properties.\n * To change this template file, choose Tools | Templates\n * and open the template in the editor.\n */\npackage cn.itcast_02;\n\nimport javax.swing.JOptionPane;\n\n/**\n *\n * @author fqy\n */\npublic class OperatorJFrame extends javax.swing.JFrame {\n\n    /**\n     * Creates new form OperatorJFrame\n     */\n    public OperatorJFrame() {\n        initComponents();\n    }\n\n    /**\n     * This method is called from within the constructor to initialize the form.\n     * WARNING: Do NOT modify this code. The content of this method is always\n     * regenerated by the Form Editor.\n     */\n    @SuppressWarnings(\"unchecked\")\n    // <editor-fold defaultstate=\"collapsed\" desc=\"Generated Code\">//GEN-BEGIN:initComponents\n    private void initComponents() {\n\n        jLabel1 = new javax.swing.JLabel();\n        firstNumber = new javax.swing.JTextField();\n        choiceOperator = new javax.swing.JComboBox();\n        jLabel2 = new javax.swing.JLabel();\n        secondNumber = new javax.swing.JTextField();\n        jLabel3 = new javax.swing.JLabel();\n        resultNumber = new javax.swing.JTextField();\n        jLabel4 = new javax.swing.JLabel();\n        jiSuanButton = new javax.swing.JButton();\n\n        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);\n\n        jLabel1.setText(\"第一个操作数\");\n\n        choiceOperator.setModel(new javax.swing.DefaultComboBoxModel(new String[] { \"+\", \"-\", \"*\", \"/\" }));\n\n        jLabel2.setText(\"第二个操作数\");\n\n        jLabel3.setText(\"=\");\n\n        jLabel4.setText(\"结果\");\n\n        jiSuanButton.setText(\"计算\");\n        jiSuanButton.addMouseListener(new java.awt.event.MouseAdapter() {\n            public void mouseClicked(java.awt.event.MouseEvent evt) {\n                jiSuanButtonMouseClicked(evt);\n            }\n        });\n\n        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());\n        getContentPane().setLayout(layout);\n        layout.setHorizontalGroup(\n            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)\n            .addGroup(layout.createSequentialGroup()\n                .addContainerGap()\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)\n                    .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)\n                    .addComponent(firstNumber))\n                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)\n                    .addGroup(layout.createSequentialGroup()\n                        .addComponent(choiceOperator, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)\n                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)\n                        .addComponent(secondNumber, javax.swing.GroupLayout.PREFERRED_SIZE, 72, javax.swing.GroupLayout.PREFERRED_SIZE))\n                    .addComponent(jLabel2))\n                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)\n                .addComponent(jLabel3)\n                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)\n                    .addComponent(jiSuanButton)\n                    .addComponent(resultNumber, javax.swing.GroupLayout.PREFERRED_SIZE, 72, javax.swing.GroupLayout.PREFERRED_SIZE)\n                    .addComponent(jLabel4))\n                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))\n        );\n        layout.setVerticalGroup(\n            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)\n            .addGroup(layout.createSequentialGroup()\n                .addContainerGap()\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)\n                    .addComponent(jLabel1)\n                    .addComponent(jLabel2)\n                    .addComponent(jLabel4))\n                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)\n                    .addComponent(firstNumber, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)\n                    .addComponent(choiceOperator, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)\n                    .addComponent(secondNumber, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)\n                    .addComponent(jLabel3)\n                    .addComponent(resultNumber, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))\n                .addGap(18, 18, 18)\n                .addComponent(jiSuanButton)\n                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))\n        );\n\n        pack();\n    }// </editor-fold>//GEN-END:initComponents\n\n    private void jiSuanButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jiSuanButtonMouseClicked\n        /*\n         思路：\n         1:获取操作数和运算符\n         2:根据运算符，进行相应的运算\n         3:把运算的结果赋值给最后一个文本框\n         */\n        String firstNumberString = this.firstNumber.getText();\n        String operatorString = String.valueOf(this.choiceOperator.getSelectedItem());\n        String secondNumberString = this.secondNumber.getText();\n\n        //加入数据校验\n        String regex = \"\\\\d+\";\n\n        if (!firstNumberString.matches(regex)) {\n//            System.out.println(\"你输入的数据有误\");\n            //弹出一个框框\n            // public static void showMessageDialog(Component parentComponent,Object message)\n            JOptionPane.showMessageDialog(this, \"第一个操作数不是数字\");\n            this.firstNumber.setText(\"\");\n            //获得焦点\n            this.firstNumber.requestFocus();\n            return;\n        }\n\n        if (!secondNumberString.matches(regex)) {\n            JOptionPane.showMessageDialog(this, \"第二个操作数不是数字\");\n            this.secondNumber.setText(\"\");\n            //获得焦点\n            this.secondNumber.requestFocus();\n            return;\n        }\n\n        //把字符串转换为数据类型\n        int firstNumber = Integer.parseInt(firstNumberString);\n        int secondNumber = Integer.parseInt(secondNumberString);\n\n        //定义变量，用于保存运算的结果\n        int result = 0;\n\n        switch (operatorString) {\n            case \"+\":\n                result = firstNumber + secondNumber;\n                break;\n            case \"-\":\n                result = firstNumber - secondNumber;\n                break;\n            case \"*\":\n                result = firstNumber * secondNumber;\n                break;\n            case \"/\":\n                if (secondNumber == 0) {\n                     JOptionPane.showMessageDialog(this, \"除数不能为0\");\n                    //获得焦点\n                    this.secondNumber.requestFocus();\n                    return;\n                } else {\n                    result = firstNumber / secondNumber;\n                }\n                break;\n        }\n\n        //把运算的结果赋值给最后一个文本框\n        this.resultNumber.setText(String.valueOf(result));\n    }//GEN-LAST:event_jiSuanButtonMouseClicked\n\n    /**\n     * @param args the command line arguments\n     */\n    public static void main(String args[]) {\n        /* Set the Nimbus look and feel */\n        //<editor-fold defaultstate=\"collapsed\" desc=\" Look and feel setting code (optional) \">\n        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.\n         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html \n         */\n        try {\n            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {\n                if (\"Nimbus\".equals(info.getName())) {\n                    javax.swing.UIManager.setLookAndFeel(info.getClassName());\n                    break;\n                }\n            }\n        } catch (ClassNotFoundException ex) {\n            java.util.logging.Logger.getLogger(OperatorJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n        } catch (InstantiationException ex) {\n            java.util.logging.Logger.getLogger(OperatorJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n        } catch (IllegalAccessException ex) {\n            java.util.logging.Logger.getLogger(OperatorJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n        } catch (javax.swing.UnsupportedLookAndFeelException ex) {\n            java.util.logging.Logger.getLogger(OperatorJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n        }\n        //</editor-fold>\n\n        /* Create and display the form */\n        java.awt.EventQueue.invokeLater(new Runnable() {\n            public void run() {\n                new OperatorJFrame().setVisible(true);\n            }\n        });\n    }\n\n    // Variables declaration - do not modify//GEN-BEGIN:variables\n    private javax.swing.JComboBox choiceOperator;\n    private javax.swing.JTextField firstNumber;\n    private javax.swing.JLabel jLabel1;\n    private javax.swing.JLabel jLabel2;\n    private javax.swing.JLabel jLabel3;\n    private javax.swing.JLabel jLabel4;\n    private javax.swing.JButton jiSuanButton;\n    private javax.swing.JTextField resultNumber;\n    private javax.swing.JTextField secondNumber;\n    // End of variables declaration//GEN-END:variables\n}\n"
  },
  {
    "path": "day25/code/四则运算/src/cn/itcast_03/OperatorJFrame.form",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<Form version=\"1.3\" maxVersion=\"1.9\" type=\"org.netbeans.modules.form.forminfo.JFrameFormInfo\">\n  <Properties>\n    <Property name=\"defaultCloseOperation\" type=\"int\" value=\"3\"/>\n  </Properties>\n  <SyntheticProperties>\n    <SyntheticProperty name=\"formSizePolicy\" type=\"int\" value=\"1\"/>\n    <SyntheticProperty name=\"generateCenter\" type=\"boolean\" value=\"false\"/>\n  </SyntheticProperties>\n  <AuxValues>\n    <AuxValue name=\"FormSettings_autoResourcing\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_autoSetComponentName\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_generateFQN\" type=\"java.lang.Boolean\" value=\"true\"/>\n    <AuxValue name=\"FormSettings_generateMnemonicsCode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_i18nAutoMode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_layoutCodeTarget\" type=\"java.lang.Integer\" value=\"1\"/>\n    <AuxValue name=\"FormSettings_listenerGenerationStyle\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_variablesLocal\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_variablesModifier\" type=\"java.lang.Integer\" value=\"2\"/>\n  </AuxValues>\n\n  <Layout>\n    <DimensionLayout dim=\"0\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"0\" attributes=\"0\">\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"0\" max=\"-2\" attributes=\"0\">\n                  <Component id=\"jLabel1\" max=\"32767\" attributes=\"0\"/>\n                  <Component id=\"firstNumber\" max=\"32767\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"1\" attributes=\"0\">\n                  <Group type=\"102\" attributes=\"0\">\n                      <Component id=\"choiceOperator\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                      <EmptySpace max=\"-2\" attributes=\"0\"/>\n                      <Component id=\"secondNumber\" min=\"-2\" pref=\"72\" max=\"-2\" attributes=\"0\"/>\n                  </Group>\n                  <Component id=\"jLabel2\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Component id=\"jLabel3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n                  <Component id=\"jiSuanButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"resultNumber\" min=\"-2\" pref=\"72\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jLabel4\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace max=\"32767\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n    <DimensionLayout dim=\"1\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"0\" attributes=\"0\">\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"jLabel1\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jLabel2\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jLabel4\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"firstNumber\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"choiceOperator\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"secondNumber\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jLabel3\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"resultNumber\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace type=\"separate\" max=\"-2\" attributes=\"0\"/>\n              <Component id=\"jiSuanButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              <EmptySpace max=\"32767\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n  </Layout>\n  <SubComponents>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel1\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x7b2c;&#x4e00;&#x4e2a;&#x64cd;&#x4f5c;&#x6570;\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JTextField\" name=\"firstNumber\">\n    </Component>\n    <Component class=\"javax.swing.JComboBox\" name=\"choiceOperator\">\n      <Properties>\n        <Property name=\"model\" type=\"javax.swing.ComboBoxModel\" editor=\"org.netbeans.modules.form.editors2.ComboBoxModelEditor\">\n          <StringArray count=\"4\">\n            <StringItem index=\"0\" value=\"+\"/>\n            <StringItem index=\"1\" value=\"-\"/>\n            <StringItem index=\"2\" value=\"*\"/>\n            <StringItem index=\"3\" value=\"/\"/>\n          </StringArray>\n        </Property>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel2\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x7b2c;&#x4e8c;&#x4e2a;&#x64cd;&#x4f5c;&#x6570;\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JTextField\" name=\"secondNumber\">\n    </Component>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel3\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"=\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JTextField\" name=\"resultNumber\">\n    </Component>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel4\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x7ed3;&#x679c;\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JButton\" name=\"jiSuanButton\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x8ba1;&#x7b97;\"/>\n      </Properties>\n      <Events>\n        <EventHandler event=\"mouseClicked\" listener=\"java.awt.event.MouseListener\" parameters=\"java.awt.event.MouseEvent\" handler=\"jiSuanButtonMouseClicked\"/>\n      </Events>\n    </Component>\n  </SubComponents>\n</Form>\n"
  },
  {
    "path": "day25/code/四则运算/src/cn/itcast_03/OperatorJFrame.java",
    "content": "/*\n * To change this license header, choose License Headers in Project Properties.\n * To change this template file, choose Tools | Templates\n * and open the template in the editor.\n */\npackage cn.itcast_03;\n\nimport cn.itcast.util.MyLookAndFeel;\nimport cn.itcast.util.UiUtil;\nimport cn.itcast_02.*;\nimport java.util.logging.Level;\nimport java.util.logging.Logger;\nimport javax.swing.JOptionPane;\nimport javax.swing.UIManager;\nimport javax.swing.UnsupportedLookAndFeelException;\n\n/**\n *\n * @author fqy\n */\npublic class OperatorJFrame extends javax.swing.JFrame {\n\n    /**\n     * Creates new form OperatorJFrame\n     */\n    public OperatorJFrame() {\n        initComponents();\n        init();\n    }\n    \n    private  void init() {\n        this.setTitle(\"模拟四则运算\");\n        UiUtil.setFrameIcon(this, \"src\\\\cn\\\\itcast\\\\resource\\\\jjcc.jpg\");\n        UiUtil.setFrameCenter(this);\n    }\n\n    /**\n     * This method is called from within the constructor to initialize the form.\n     * WARNING: Do NOT modify this code. The content of this method is always\n     * regenerated by the Form Editor.\n     */\n    @SuppressWarnings(\"unchecked\")\n    // <editor-fold defaultstate=\"collapsed\" desc=\"Generated Code\">//GEN-BEGIN:initComponents\n    private void initComponents() {\n\n        jLabel1 = new javax.swing.JLabel();\n        firstNumber = new javax.swing.JTextField();\n        choiceOperator = new javax.swing.JComboBox();\n        jLabel2 = new javax.swing.JLabel();\n        secondNumber = new javax.swing.JTextField();\n        jLabel3 = new javax.swing.JLabel();\n        resultNumber = new javax.swing.JTextField();\n        jLabel4 = new javax.swing.JLabel();\n        jiSuanButton = new javax.swing.JButton();\n\n        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);\n\n        jLabel1.setText(\"第一个操作数\");\n\n        choiceOperator.setModel(new javax.swing.DefaultComboBoxModel(new String[] { \"+\", \"-\", \"*\", \"/\" }));\n\n        jLabel2.setText(\"第二个操作数\");\n\n        jLabel3.setText(\"=\");\n\n        jLabel4.setText(\"结果\");\n\n        jiSuanButton.setText(\"计算\");\n        jiSuanButton.addMouseListener(new java.awt.event.MouseAdapter() {\n            public void mouseClicked(java.awt.event.MouseEvent evt) {\n                jiSuanButtonMouseClicked(evt);\n            }\n        });\n\n        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());\n        getContentPane().setLayout(layout);\n        layout.setHorizontalGroup(\n            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)\n            .addGroup(layout.createSequentialGroup()\n                .addContainerGap()\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)\n                    .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)\n                    .addComponent(firstNumber))\n                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)\n                    .addGroup(layout.createSequentialGroup()\n                        .addComponent(choiceOperator, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)\n                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)\n                        .addComponent(secondNumber, javax.swing.GroupLayout.PREFERRED_SIZE, 72, javax.swing.GroupLayout.PREFERRED_SIZE))\n                    .addComponent(jLabel2))\n                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)\n                .addComponent(jLabel3)\n                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)\n                    .addComponent(jiSuanButton)\n                    .addComponent(resultNumber, javax.swing.GroupLayout.PREFERRED_SIZE, 72, javax.swing.GroupLayout.PREFERRED_SIZE)\n                    .addComponent(jLabel4))\n                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))\n        );\n        layout.setVerticalGroup(\n            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)\n            .addGroup(layout.createSequentialGroup()\n                .addContainerGap()\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)\n                    .addComponent(jLabel1)\n                    .addComponent(jLabel2)\n                    .addComponent(jLabel4))\n                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)\n                    .addComponent(firstNumber, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)\n                    .addComponent(choiceOperator, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)\n                    .addComponent(secondNumber, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)\n                    .addComponent(jLabel3)\n                    .addComponent(resultNumber, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))\n                .addGap(18, 18, 18)\n                .addComponent(jiSuanButton)\n                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))\n        );\n\n        pack();\n    }// </editor-fold>//GEN-END:initComponents\n\n    private void jiSuanButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jiSuanButtonMouseClicked\n        /*\n         思路：\n         1:获取操作数和运算符\n         2:根据运算符，进行相应的运算\n         3:把运算的结果赋值给最后一个文本框\n         */\n        String firstNumberString = this.firstNumber.getText();\n        String operatorString = String.valueOf(this.choiceOperator.getSelectedItem());\n        String secondNumberString = this.secondNumber.getText();\n\n        //加入数据校验\n        String regex = \"\\\\d+\";\n\n        if (!firstNumberString.matches(regex)) {\n//            System.out.println(\"你输入的数据有误\");\n            //弹出一个框框\n            // public static void showMessageDialog(Component parentComponent,Object message)\n            JOptionPane.showMessageDialog(this, \"第一个操作数不是数字\");\n            this.firstNumber.setText(\"\");\n            //获得焦点\n            this.firstNumber.requestFocus();\n            return;\n        }\n\n        if (!secondNumberString.matches(regex)) {\n            JOptionPane.showMessageDialog(this, \"第二个操作数不是数字\");\n            this.secondNumber.setText(\"\");\n            //获得焦点\n            this.secondNumber.requestFocus();\n            return;\n        }\n\n        //把字符串转换为数据类型\n        int firstNumber = Integer.parseInt(firstNumberString);\n        int secondNumber = Integer.parseInt(secondNumberString);\n\n        //定义变量，用于保存运算的结果\n        int result = 0;\n\n        switch (operatorString) {\n            case \"+\":\n                result = firstNumber + secondNumber;\n                break;\n            case \"-\":\n                result = firstNumber - secondNumber;\n                break;\n            case \"*\":\n                result = firstNumber * secondNumber;\n                break;\n            case \"/\":\n                if (secondNumber == 0) {\n                     JOptionPane.showMessageDialog(this, \"除数不能为0\");\n                    //获得焦点\n                    this.secondNumber.requestFocus();\n                    return;\n                } else {\n                    result = firstNumber / secondNumber;\n                }\n                break;\n        }\n\n        //把运算的结果赋值给最后一个文本框\n        this.resultNumber.setText(String.valueOf(result));\n    }//GEN-LAST:event_jiSuanButtonMouseClicked\n\n    /**\n     * @param args the command line arguments\n     */\n    public static void main(String args[]) {\n        /* Set the Nimbus look and feel */\n        //<editor-fold defaultstate=\"collapsed\" desc=\" Look and feel setting code (optional) \">\n        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.\n         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html \n         */\n        try {\n            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {\n                if (\"Nimbus\".equals(info.getName())) {\n                    javax.swing.UIManager.setLookAndFeel(info.getClassName());\n                    break;\n                }\n            }\n        } catch (ClassNotFoundException ex) {\n            java.util.logging.Logger.getLogger(OperatorJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n        } catch (InstantiationException ex) {\n            java.util.logging.Logger.getLogger(OperatorJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n        } catch (IllegalAccessException ex) {\n            java.util.logging.Logger.getLogger(OperatorJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n        } catch (javax.swing.UnsupportedLookAndFeelException ex) {\n            java.util.logging.Logger.getLogger(OperatorJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n        }\n        //</editor-fold>\n        try {\n            //修改皮肤\n            UIManager.setLookAndFeel(MyLookAndFeel.LIQUIDINF);\n        } catch (ClassNotFoundException ex) {\n            Logger.getLogger(OperatorJFrame.class.getName()).log(Level.SEVERE, null, ex);\n        } catch (InstantiationException ex) {\n            Logger.getLogger(OperatorJFrame.class.getName()).log(Level.SEVERE, null, ex);\n        } catch (IllegalAccessException ex) {\n            Logger.getLogger(OperatorJFrame.class.getName()).log(Level.SEVERE, null, ex);\n        } catch (UnsupportedLookAndFeelException ex) {\n            Logger.getLogger(OperatorJFrame.class.getName()).log(Level.SEVERE, null, ex);\n        }\n        \n        /* Create and display the form */\n        java.awt.EventQueue.invokeLater(new Runnable() {\n            public void run() {\n                new OperatorJFrame().setVisible(true);\n            }\n        });\n    }\n\n    // Variables declaration - do not modify//GEN-BEGIN:variables\n    private javax.swing.JComboBox choiceOperator;\n    private javax.swing.JTextField firstNumber;\n    private javax.swing.JLabel jLabel1;\n    private javax.swing.JLabel jLabel2;\n    private javax.swing.JLabel jLabel3;\n    private javax.swing.JLabel jLabel4;\n    private javax.swing.JButton jiSuanButton;\n    private javax.swing.JTextField resultNumber;\n    private javax.swing.JTextField secondNumber;\n    // End of variables declaration//GEN-END:variables\n}\n"
  },
  {
    "path": "day25/code/登录注册/build/built-jar.properties",
    "content": "#Mon, 13 Apr 2015 17:02:10 +0800\n\n\nC\\:\\\\Users\\\\fqy\\\\Documents\\\\NetBeansProjects\\\\\\u767b\\u5f55\\u6ce8\\u518c=\n"
  },
  {
    "path": "day25/code/登录注册/build/classes/登录注册.txt",
    "content": "登录注册：\n\n有哪些类?\n    用户类\n        用户描述类\n        用户操作类\n    登录窗体\n    注册窗体\n类有哪些成员?\n    用户类\n        用户描述类\n               用户名,密码\n        用户操作类\n                登录,注册\n类与类的关系?\n    在登录窗体上点击登录按钮，调用登录功能\n    在注册窗体上点击注册按钮，调用注册功能\n\n\n分包：\n    cn.itcast.pojo  用户基本描述类\n    cn.itcast.dao   用户操作接口\n    cn.itcast.dao.impl  用户操作具体实现类\n    cn.itcast.util  工具类\n    cn.itcast.view  窗体类"
  },
  {
    "path": "day25/code/登录注册/build.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!-- You may freely edit this file. See commented blocks below for -->\n<!-- some examples of how to customize the build. -->\n<!-- (If you delete it and reopen the project it will be recreated.) -->\n<!-- By default, only the Clean and Build commands use this build script. -->\n<!-- Commands such as Run, Debug, and Test only use this build script if -->\n<!-- the Compile on Save feature is turned off for the project. -->\n<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->\n<!-- in the project's Project Properties dialog box.-->\n<project name=\"登录注册\" default=\"default\" basedir=\".\">\n    <description>Builds, tests, and runs the project 登录注册.</description>\n    <import file=\"nbproject/build-impl.xml\"/>\n    <!--\n\n    There exist several targets which are by default empty and which can be \n    used for execution of your tasks. These targets are usually executed \n    before and after some main targets. They are: \n\n      -pre-init:                 called before initialization of project properties\n      -post-init:                called after initialization of project properties\n      -pre-compile:              called before javac compilation\n      -post-compile:             called after javac compilation\n      -pre-compile-single:       called before javac compilation of single file\n      -post-compile-single:      called after javac compilation of single file\n      -pre-compile-test:         called before javac compilation of JUnit tests\n      -post-compile-test:        called after javac compilation of JUnit tests\n      -pre-compile-test-single:  called before javac compilation of single JUnit test\n      -post-compile-test-single: called after javac compilation of single JUunit test\n      -pre-jar:                  called before JAR building\n      -post-jar:                 called after JAR building\n      -post-clean:               called after cleaning build products\n\n    (Targets beginning with '-' are not intended to be called on their own.)\n\n    Example of inserting an obfuscator after compilation could look like this:\n\n        <target name=\"-post-compile\">\n            <obfuscate>\n                <fileset dir=\"${build.classes.dir}\"/>\n            </obfuscate>\n        </target>\n\n    For list of available properties check the imported \n    nbproject/build-impl.xml file. \n\n\n    Another way to customize the build is by overriding existing main targets.\n    The targets of interest are: \n\n      -init-macrodef-javac:     defines macro for javac compilation\n      -init-macrodef-junit:     defines macro for junit execution\n      -init-macrodef-debug:     defines macro for class debugging\n      -init-macrodef-java:      defines macro for class execution\n      -do-jar:                  JAR building\n      run:                      execution of project \n      -javadoc-build:           Javadoc generation\n      test-report:              JUnit report generation\n\n    An example of overriding the target for project execution could look like this:\n\n        <target name=\"run\" depends=\"登录注册-impl.jar\">\n            <exec dir=\"bin\" executable=\"launcher.exe\">\n                <arg file=\"${dist.jar}\"/>\n            </exec>\n        </target>\n\n    Notice that the overridden target depends on the jar target and not only on \n    the compile target as the regular run target does. Again, for a list of available \n    properties which you can use, check the target you are overriding in the\n    nbproject/build-impl.xml file. \n\n    -->\n</project>\n"
  },
  {
    "path": "day25/code/登录注册/count.txt",
    "content": "count=5"
  },
  {
    "path": "day25/code/登录注册/dist/README.TXT",
    "content": "========================\nBUILD OUTPUT DESCRIPTION\n========================\n\nWhen you build an Java application project that has a main class, the IDE\nautomatically copies all of the JAR\nfiles on the projects classpath to your projects dist/lib folder. The IDE\nalso adds each of the JAR files to the Class-Path element in the application\nJAR files manifest file (MANIFEST.MF).\n\nTo run the project from the command line, go to the dist folder and\ntype the following:\n\njava -jar \"____.jar\" \n\nTo distribute this project, zip up the dist folder (including the lib folder)\nand distribute the ZIP file.\n\nNotes:\n\n* If two JAR files on the project classpath have the same name, only the first\nJAR file is copied to the lib folder.\n* Only JAR files are copied to the lib folder.\nIf the classpath contains other types of files or folders, these files (folders)\nare not copied.\n* If a library on the projects classpath also has a Class-Path element\nspecified in the manifest,the content of the Class-Path element has to be on\nthe projects runtime path.\n* To set a main class in a standard Java project, right-click the project node\nin the Projects window and choose Properties. Then click Run and enter the\nclass name in the Main Class field. Alternatively, you can manually type the\nclass name in the manifest Main-Class element.\n"
  },
  {
    "path": "day25/code/登录注册/manifest.mf",
    "content": "Manifest-Version: 1.0\nX-COMMENT: Main-Class will be added automatically by build\n\n"
  },
  {
    "path": "day25/code/登录注册/nbproject/build-impl.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n*** GENERATED FROM project.xml - DO NOT EDIT  ***\n***         EDIT ../build.xml INSTEAD         ***\n\nFor the purpose of easier reading the script\nis divided into following sections:\n\n  - initialization\n  - compilation\n  - jar\n  - execution\n  - debugging\n  - javadoc\n  - test compilation\n  - test execution\n  - test debugging\n  - applet\n  - cleanup\n\n        -->\n<project xmlns:j2seproject1=\"http://www.netbeans.org/ns/j2se-project/1\" xmlns:j2seproject3=\"http://www.netbeans.org/ns/j2se-project/3\" xmlns:jaxrpc=\"http://www.netbeans.org/ns/j2se-project/jax-rpc\" basedir=\"..\" default=\"default\" name=\"登录注册-impl\">\n    <fail message=\"Please build using Ant 1.8.0 or higher.\">\n        <condition>\n            <not>\n                <antversion atleast=\"1.8.0\"/>\n            </not>\n        </condition>\n    </fail>\n    <target depends=\"test,jar,javadoc\" description=\"Build and test whole project.\" name=\"default\"/>\n    <!-- \n                ======================\n                INITIALIZATION SECTION \n                ======================\n            -->\n    <target name=\"-pre-init\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target depends=\"-pre-init\" name=\"-init-private\">\n        <property file=\"nbproject/private/config.properties\"/>\n        <property file=\"nbproject/private/configs/${config}.properties\"/>\n        <property file=\"nbproject/private/private.properties\"/>\n    </target>\n    <target depends=\"-pre-init,-init-private\" name=\"-init-user\">\n        <property file=\"${user.properties.file}\"/>\n        <!-- The two properties below are usually overridden -->\n        <!-- by the active platform. Just a fallback. -->\n        <property name=\"default.javac.source\" value=\"1.4\"/>\n        <property name=\"default.javac.target\" value=\"1.4\"/>\n    </target>\n    <target depends=\"-pre-init,-init-private,-init-user\" name=\"-init-project\">\n        <property file=\"nbproject/configs/${config}.properties\"/>\n        <property file=\"nbproject/project.properties\"/>\n    </target>\n    <target depends=\"-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property\" name=\"-do-init\">\n        <property name=\"platform.java\" value=\"${java.home}/bin/java\"/>\n        <available file=\"${manifest.file}\" property=\"manifest.available\"/>\n        <condition property=\"splashscreen.available\">\n            <and>\n                <not>\n                    <equals arg1=\"${application.splash}\" arg2=\"\" trim=\"true\"/>\n                </not>\n                <available file=\"${application.splash}\"/>\n            </and>\n        </condition>\n        <condition property=\"main.class.available\">\n            <and>\n                <isset property=\"main.class\"/>\n                <not>\n                    <equals arg1=\"${main.class}\" arg2=\"\" trim=\"true\"/>\n                </not>\n            </and>\n        </condition>\n        <condition property=\"profile.available\">\n            <and>\n                <isset property=\"javac.profile\"/>\n                <length length=\"0\" string=\"${javac.profile}\" when=\"greater\"/>\n                <matches pattern=\"1\\.[89](\\..*)?\" string=\"${javac.source}\"/>\n            </and>\n        </condition>\n        <condition property=\"do.archive\">\n            <not>\n                <istrue value=\"${jar.archive.disabled}\"/>\n            </not>\n        </condition>\n        <condition property=\"do.mkdist\">\n            <and>\n                <isset property=\"do.archive\"/>\n                <isset property=\"libs.CopyLibs.classpath\"/>\n                <not>\n                    <istrue value=\"${mkdist.disabled}\"/>\n                </not>\n            </and>\n        </condition>\n        <condition property=\"do.archive+manifest.available\">\n            <and>\n                <isset property=\"manifest.available\"/>\n                <istrue value=\"${do.archive}\"/>\n            </and>\n        </condition>\n        <condition property=\"do.archive+main.class.available\">\n            <and>\n                <isset property=\"main.class.available\"/>\n                <istrue value=\"${do.archive}\"/>\n            </and>\n        </condition>\n        <condition property=\"do.archive+splashscreen.available\">\n            <and>\n                <isset property=\"splashscreen.available\"/>\n                <istrue value=\"${do.archive}\"/>\n            </and>\n        </condition>\n        <condition property=\"do.archive+profile.available\">\n            <and>\n                <isset property=\"profile.available\"/>\n                <istrue value=\"${do.archive}\"/>\n            </and>\n        </condition>\n        <condition property=\"have.tests\">\n            <or>\n                <available file=\"${test.src.dir}\"/>\n            </or>\n        </condition>\n        <condition property=\"have.sources\">\n            <or>\n                <available file=\"${src.dir}\"/>\n            </or>\n        </condition>\n        <condition property=\"netbeans.home+have.tests\">\n            <and>\n                <isset property=\"netbeans.home\"/>\n                <isset property=\"have.tests\"/>\n            </and>\n        </condition>\n        <condition property=\"no.javadoc.preview\">\n            <and>\n                <isset property=\"javadoc.preview\"/>\n                <isfalse value=\"${javadoc.preview}\"/>\n            </and>\n        </condition>\n        <property name=\"run.jvmargs\" value=\"\"/>\n        <property name=\"run.jvmargs.ide\" value=\"\"/>\n        <property name=\"javac.compilerargs\" value=\"\"/>\n        <property name=\"work.dir\" value=\"${basedir}\"/>\n        <condition property=\"no.deps\">\n            <and>\n                <istrue value=\"${no.dependencies}\"/>\n            </and>\n        </condition>\n        <property name=\"javac.debug\" value=\"true\"/>\n        <property name=\"javadoc.preview\" value=\"true\"/>\n        <property name=\"application.args\" value=\"\"/>\n        <property name=\"source.encoding\" value=\"${file.encoding}\"/>\n        <property name=\"runtime.encoding\" value=\"${source.encoding}\"/>\n        <condition property=\"javadoc.encoding.used\" value=\"${javadoc.encoding}\">\n            <and>\n                <isset property=\"javadoc.encoding\"/>\n                <not>\n                    <equals arg1=\"${javadoc.encoding}\" arg2=\"\"/>\n                </not>\n            </and>\n        </condition>\n        <property name=\"javadoc.encoding.used\" value=\"${source.encoding}\"/>\n        <property name=\"includes\" value=\"**\"/>\n        <property name=\"excludes\" value=\"\"/>\n        <property name=\"do.depend\" value=\"false\"/>\n        <condition property=\"do.depend.true\">\n            <istrue value=\"${do.depend}\"/>\n        </condition>\n        <path id=\"endorsed.classpath.path\" path=\"${endorsed.classpath}\"/>\n        <condition else=\"\" property=\"endorsed.classpath.cmd.line.arg\" value=\"-Xbootclasspath/p:'${toString:endorsed.classpath.path}'\">\n            <and>\n                <isset property=\"endorsed.classpath\"/>\n                <not>\n                    <equals arg1=\"${endorsed.classpath}\" arg2=\"\" trim=\"true\"/>\n                </not>\n            </and>\n        </condition>\n        <condition else=\"\" property=\"javac.profile.cmd.line.arg\" value=\"-profile ${javac.profile}\">\n            <isset property=\"profile.available\"/>\n        </condition>\n        <condition else=\"false\" property=\"jdkBug6558476\">\n            <and>\n                <matches pattern=\"1\\.[56]\" string=\"${java.specification.version}\"/>\n                <not>\n                    <os family=\"unix\"/>\n                </not>\n            </and>\n        </condition>\n        <property name=\"javac.fork\" value=\"${jdkBug6558476}\"/>\n        <property name=\"jar.index\" value=\"false\"/>\n        <property name=\"jar.index.metainf\" value=\"${jar.index}\"/>\n        <property name=\"copylibs.rebase\" value=\"true\"/>\n        <available file=\"${meta.inf.dir}/persistence.xml\" property=\"has.persistence.xml\"/>\n        <condition property=\"junit.available\">\n            <or>\n                <available classname=\"org.junit.Test\" classpath=\"${run.test.classpath}\"/>\n                <available classname=\"junit.framework.Test\" classpath=\"${run.test.classpath}\"/>\n            </or>\n        </condition>\n        <condition property=\"testng.available\">\n            <available classname=\"org.testng.annotations.Test\" classpath=\"${run.test.classpath}\"/>\n        </condition>\n        <condition property=\"junit+testng.available\">\n            <and>\n                <istrue value=\"${junit.available}\"/>\n                <istrue value=\"${testng.available}\"/>\n            </and>\n        </condition>\n        <condition else=\"testng\" property=\"testng.mode\" value=\"mixed\">\n            <istrue value=\"${junit+testng.available}\"/>\n        </condition>\n        <condition else=\"\" property=\"testng.debug.mode\" value=\"-mixed\">\n            <istrue value=\"${junit+testng.available}\"/>\n        </condition>\n    </target>\n    <target name=\"-post-init\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target depends=\"-pre-init,-init-private,-init-user,-init-project,-do-init\" name=\"-init-check\">\n        <fail unless=\"src.dir\">Must set src.dir</fail>\n        <fail unless=\"test.src.dir\">Must set test.src.dir</fail>\n        <fail unless=\"build.dir\">Must set build.dir</fail>\n        <fail unless=\"dist.dir\">Must set dist.dir</fail>\n        <fail unless=\"build.classes.dir\">Must set build.classes.dir</fail>\n        <fail unless=\"dist.javadoc.dir\">Must set dist.javadoc.dir</fail>\n        <fail unless=\"build.test.classes.dir\">Must set build.test.classes.dir</fail>\n        <fail unless=\"build.test.results.dir\">Must set build.test.results.dir</fail>\n        <fail unless=\"build.classes.excludes\">Must set build.classes.excludes</fail>\n        <fail unless=\"dist.jar\">Must set dist.jar</fail>\n    </target>\n    <target name=\"-init-macrodef-property\">\n        <macrodef name=\"property\" uri=\"http://www.netbeans.org/ns/j2se-project/1\">\n            <attribute name=\"name\"/>\n            <attribute name=\"value\"/>\n            <sequential>\n                <property name=\"@{name}\" value=\"${@{value}}\"/>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-init-ap-cmdline-properties\" if=\"ap.supported.internal\" name=\"-init-macrodef-javac-with-processors\">\n        <macrodef name=\"javac\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${src.dir}\" name=\"srcdir\"/>\n            <attribute default=\"${build.classes.dir}\" name=\"destdir\"/>\n            <attribute default=\"${javac.classpath}\" name=\"classpath\"/>\n            <attribute default=\"${javac.processorpath}\" name=\"processorpath\"/>\n            <attribute default=\"${build.generated.sources.dir}/ap-source-output\" name=\"apgeneratedsrcdir\"/>\n            <attribute default=\"${includes}\" name=\"includes\"/>\n            <attribute default=\"${excludes}\" name=\"excludes\"/>\n            <attribute default=\"${javac.debug}\" name=\"debug\"/>\n            <attribute default=\"${empty.dir}\" name=\"sourcepath\"/>\n            <attribute default=\"${empty.dir}\" name=\"gensrcdir\"/>\n            <element name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <property location=\"${build.dir}/empty\" name=\"empty.dir\"/>\n                <mkdir dir=\"${empty.dir}\"/>\n                <mkdir dir=\"@{apgeneratedsrcdir}\"/>\n                <javac debug=\"@{debug}\" deprecation=\"${javac.deprecation}\" destdir=\"@{destdir}\" encoding=\"${source.encoding}\" excludes=\"@{excludes}\" fork=\"${javac.fork}\" includeantruntime=\"false\" includes=\"@{includes}\" source=\"${javac.source}\" sourcepath=\"@{sourcepath}\" srcdir=\"@{srcdir}\" target=\"${javac.target}\" tempdir=\"${java.io.tmpdir}\">\n                    <src>\n                        <dirset dir=\"@{gensrcdir}\" erroronmissingdir=\"false\">\n                            <include name=\"*\"/>\n                        </dirset>\n                    </src>\n                    <classpath>\n                        <path path=\"@{classpath}\"/>\n                    </classpath>\n                    <compilerarg line=\"${endorsed.classpath.cmd.line.arg}\"/>\n                    <compilerarg line=\"${javac.profile.cmd.line.arg}\"/>\n                    <compilerarg line=\"${javac.compilerargs}\"/>\n                    <compilerarg value=\"-processorpath\"/>\n                    <compilerarg path=\"@{processorpath}:${empty.dir}\"/>\n                    <compilerarg line=\"${ap.processors.internal}\"/>\n                    <compilerarg line=\"${annotation.processing.processor.options}\"/>\n                    <compilerarg value=\"-s\"/>\n                    <compilerarg path=\"@{apgeneratedsrcdir}\"/>\n                    <compilerarg line=\"${ap.proc.none.internal}\"/>\n                    <customize/>\n                </javac>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-init-ap-cmdline-properties\" name=\"-init-macrodef-javac-without-processors\" unless=\"ap.supported.internal\">\n        <macrodef name=\"javac\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${src.dir}\" name=\"srcdir\"/>\n            <attribute default=\"${build.classes.dir}\" name=\"destdir\"/>\n            <attribute default=\"${javac.classpath}\" name=\"classpath\"/>\n            <attribute default=\"${javac.processorpath}\" name=\"processorpath\"/>\n            <attribute default=\"${build.generated.sources.dir}/ap-source-output\" name=\"apgeneratedsrcdir\"/>\n            <attribute default=\"${includes}\" name=\"includes\"/>\n            <attribute default=\"${excludes}\" name=\"excludes\"/>\n            <attribute default=\"${javac.debug}\" name=\"debug\"/>\n            <attribute default=\"${empty.dir}\" name=\"sourcepath\"/>\n            <attribute default=\"${empty.dir}\" name=\"gensrcdir\"/>\n            <element name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <property location=\"${build.dir}/empty\" name=\"empty.dir\"/>\n                <mkdir dir=\"${empty.dir}\"/>\n                <javac debug=\"@{debug}\" deprecation=\"${javac.deprecation}\" destdir=\"@{destdir}\" encoding=\"${source.encoding}\" excludes=\"@{excludes}\" fork=\"${javac.fork}\" includeantruntime=\"false\" includes=\"@{includes}\" source=\"${javac.source}\" sourcepath=\"@{sourcepath}\" srcdir=\"@{srcdir}\" target=\"${javac.target}\" tempdir=\"${java.io.tmpdir}\">\n                    <src>\n                        <dirset dir=\"@{gensrcdir}\" erroronmissingdir=\"false\">\n                            <include name=\"*\"/>\n                        </dirset>\n                    </src>\n                    <classpath>\n                        <path path=\"@{classpath}\"/>\n                    </classpath>\n                    <compilerarg line=\"${endorsed.classpath.cmd.line.arg}\"/>\n                    <compilerarg line=\"${javac.profile.cmd.line.arg}\"/>\n                    <compilerarg line=\"${javac.compilerargs}\"/>\n                    <customize/>\n                </javac>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-init-macrodef-javac-with-processors,-init-macrodef-javac-without-processors\" name=\"-init-macrodef-javac\">\n        <macrodef name=\"depend\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${src.dir}\" name=\"srcdir\"/>\n            <attribute default=\"${build.classes.dir}\" name=\"destdir\"/>\n            <attribute default=\"${javac.classpath}\" name=\"classpath\"/>\n            <sequential>\n                <depend cache=\"${build.dir}/depcache\" destdir=\"@{destdir}\" excludes=\"${excludes}\" includes=\"${includes}\" srcdir=\"@{srcdir}\">\n                    <classpath>\n                        <path path=\"@{classpath}\"/>\n                    </classpath>\n                </depend>\n            </sequential>\n        </macrodef>\n        <macrodef name=\"force-recompile\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${build.classes.dir}\" name=\"destdir\"/>\n            <sequential>\n                <fail unless=\"javac.includes\">Must set javac.includes</fail>\n                <pathconvert pathsep=\"${line.separator}\" property=\"javac.includes.binary\">\n                    <path>\n                        <filelist dir=\"@{destdir}\" files=\"${javac.includes}\"/>\n                    </path>\n                    <globmapper from=\"*.java\" to=\"*.class\"/>\n                </pathconvert>\n                <tempfile deleteonexit=\"true\" property=\"javac.includesfile.binary\"/>\n                <echo file=\"${javac.includesfile.binary}\" message=\"${javac.includes.binary}\"/>\n                <delete>\n                    <files includesfile=\"${javac.includesfile.binary}\"/>\n                </delete>\n                <delete>\n                    <fileset file=\"${javac.includesfile.binary}\"/>\n                </delete>\n            </sequential>\n        </macrodef>\n    </target>\n    <target if=\"${junit.available}\" name=\"-init-macrodef-junit-init\">\n        <condition else=\"false\" property=\"nb.junit.batch\" value=\"true\">\n            <and>\n                <istrue value=\"${junit.available}\"/>\n                <not>\n                    <isset property=\"test.method\"/>\n                </not>\n            </and>\n        </condition>\n        <condition else=\"false\" property=\"nb.junit.single\" value=\"true\">\n            <and>\n                <istrue value=\"${junit.available}\"/>\n                <isset property=\"test.method\"/>\n            </and>\n        </condition>\n    </target>\n    <target name=\"-init-test-properties\">\n        <property name=\"test.binaryincludes\" value=\"&lt;nothing&gt;\"/>\n        <property name=\"test.binarytestincludes\" value=\"\"/>\n        <property name=\"test.binaryexcludes\" value=\"\"/>\n    </target>\n    <target if=\"${nb.junit.single}\" name=\"-init-macrodef-junit-single\" unless=\"${nb.junit.batch}\">\n        <macrodef name=\"junit\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${includes}\" name=\"includes\"/>\n            <attribute default=\"${excludes}\" name=\"excludes\"/>\n            <attribute default=\"**\" name=\"testincludes\"/>\n            <attribute default=\"\" name=\"testmethods\"/>\n            <element name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <property name=\"junit.forkmode\" value=\"perTest\"/>\n                <junit dir=\"${work.dir}\" errorproperty=\"tests.failed\" failureproperty=\"tests.failed\" fork=\"true\" forkmode=\"${junit.forkmode}\" showoutput=\"true\" tempdir=\"${build.dir}\">\n                    <test methods=\"@{testmethods}\" name=\"@{testincludes}\" todir=\"${build.test.results.dir}\"/>\n                    <syspropertyset>\n                        <propertyref prefix=\"test-sys-prop.\"/>\n                        <mapper from=\"test-sys-prop.*\" to=\"*\" type=\"glob\"/>\n                    </syspropertyset>\n                    <formatter type=\"brief\" usefile=\"false\"/>\n                    <formatter type=\"xml\"/>\n                    <jvmarg value=\"-ea\"/>\n                    <customize/>\n                </junit>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-init-test-properties\" if=\"${nb.junit.batch}\" name=\"-init-macrodef-junit-batch\" unless=\"${nb.junit.single}\">\n        <macrodef name=\"junit\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${includes}\" name=\"includes\"/>\n            <attribute default=\"${excludes}\" name=\"excludes\"/>\n            <attribute default=\"**\" name=\"testincludes\"/>\n            <attribute default=\"\" name=\"testmethods\"/>\n            <element name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <property name=\"junit.forkmode\" value=\"perTest\"/>\n                <junit dir=\"${work.dir}\" errorproperty=\"tests.failed\" failureproperty=\"tests.failed\" fork=\"true\" forkmode=\"${junit.forkmode}\" showoutput=\"true\" tempdir=\"${build.dir}\">\n                    <batchtest todir=\"${build.test.results.dir}\">\n                        <fileset dir=\"${test.src.dir}\" excludes=\"@{excludes},${excludes}\" includes=\"@{includes}\">\n                            <filename name=\"@{testincludes}\"/>\n                        </fileset>\n                        <fileset dir=\"${build.test.classes.dir}\" excludes=\"@{excludes},${excludes},${test.binaryexcludes}\" includes=\"${test.binaryincludes}\">\n                            <filename name=\"${test.binarytestincludes}\"/>\n                        </fileset>\n                    </batchtest>\n                    <syspropertyset>\n                        <propertyref prefix=\"test-sys-prop.\"/>\n                        <mapper from=\"test-sys-prop.*\" to=\"*\" type=\"glob\"/>\n                    </syspropertyset>\n                    <formatter type=\"brief\" usefile=\"false\"/>\n                    <formatter type=\"xml\"/>\n                    <jvmarg value=\"-ea\"/>\n                    <customize/>\n                </junit>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-init-macrodef-junit-init,-init-macrodef-junit-single, -init-macrodef-junit-batch\" if=\"${junit.available}\" name=\"-init-macrodef-junit\"/>\n    <target if=\"${testng.available}\" name=\"-init-macrodef-testng\">\n        <macrodef name=\"testng\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${includes}\" name=\"includes\"/>\n            <attribute default=\"${excludes}\" name=\"excludes\"/>\n            <attribute default=\"**\" name=\"testincludes\"/>\n            <attribute default=\"\" name=\"testmethods\"/>\n            <element name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <condition else=\"\" property=\"testng.methods.arg\" value=\"@{testincludes}.@{testmethods}\">\n                    <isset property=\"test.method\"/>\n                </condition>\n                <union id=\"test.set\">\n                    <fileset dir=\"${test.src.dir}\" excludes=\"@{excludes},**/*.xml,${excludes}\" includes=\"@{includes}\">\n                        <filename name=\"@{testincludes}\"/>\n                    </fileset>\n                </union>\n                <taskdef classname=\"org.testng.TestNGAntTask\" classpath=\"${run.test.classpath}\" name=\"testng\"/>\n                <testng classfilesetref=\"test.set\" failureProperty=\"tests.failed\" listeners=\"org.testng.reporters.VerboseReporter\" methods=\"${testng.methods.arg}\" mode=\"${testng.mode}\" outputdir=\"${build.test.results.dir}\" suitename=\"登录注册\" testname=\"TestNG tests\" workingDir=\"${work.dir}\">\n                    <xmlfileset dir=\"${build.test.classes.dir}\" includes=\"@{testincludes}\"/>\n                    <propertyset>\n                        <propertyref prefix=\"test-sys-prop.\"/>\n                        <mapper from=\"test-sys-prop.*\" to=\"*\" type=\"glob\"/>\n                    </propertyset>\n                    <customize/>\n                </testng>\n            </sequential>\n        </macrodef>\n    </target>\n    <target name=\"-init-macrodef-test-impl\">\n        <macrodef name=\"test-impl\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${includes}\" name=\"includes\"/>\n            <attribute default=\"${excludes}\" name=\"excludes\"/>\n            <attribute default=\"**\" name=\"testincludes\"/>\n            <attribute default=\"\" name=\"testmethods\"/>\n            <element implicit=\"true\" name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <echo>No tests executed.</echo>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-init-macrodef-junit\" if=\"${junit.available}\" name=\"-init-macrodef-junit-impl\">\n        <macrodef name=\"test-impl\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${includes}\" name=\"includes\"/>\n            <attribute default=\"${excludes}\" name=\"excludes\"/>\n            <attribute default=\"**\" name=\"testincludes\"/>\n            <attribute default=\"\" name=\"testmethods\"/>\n            <element implicit=\"true\" name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <j2seproject3:junit excludes=\"@{excludes}\" includes=\"@{includes}\" testincludes=\"@{testincludes}\" testmethods=\"@{testmethods}\">\n                    <customize/>\n                </j2seproject3:junit>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-init-macrodef-testng\" if=\"${testng.available}\" name=\"-init-macrodef-testng-impl\">\n        <macrodef name=\"test-impl\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${includes}\" name=\"includes\"/>\n            <attribute default=\"${excludes}\" name=\"excludes\"/>\n            <attribute default=\"**\" name=\"testincludes\"/>\n            <attribute default=\"\" name=\"testmethods\"/>\n            <element implicit=\"true\" name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <j2seproject3:testng excludes=\"@{excludes}\" includes=\"@{includes}\" testincludes=\"@{testincludes}\" testmethods=\"@{testmethods}\">\n                    <customize/>\n                </j2seproject3:testng>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-init-macrodef-test-impl,-init-macrodef-junit-impl,-init-macrodef-testng-impl\" name=\"-init-macrodef-test\">\n        <macrodef name=\"test\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${includes}\" name=\"includes\"/>\n            <attribute default=\"${excludes}\" name=\"excludes\"/>\n            <attribute default=\"**\" name=\"testincludes\"/>\n            <attribute default=\"\" name=\"testmethods\"/>\n            <sequential>\n                <j2seproject3:test-impl excludes=\"@{excludes}\" includes=\"@{includes}\" testincludes=\"@{testincludes}\" testmethods=\"@{testmethods}\">\n                    <customize>\n                        <classpath>\n                            <path path=\"${run.test.classpath}\"/>\n                        </classpath>\n                        <jvmarg line=\"${endorsed.classpath.cmd.line.arg}\"/>\n                        <jvmarg line=\"${run.jvmargs}\"/>\n                        <jvmarg line=\"${run.jvmargs.ide}\"/>\n                    </customize>\n                </j2seproject3:test-impl>\n            </sequential>\n        </macrodef>\n    </target>\n    <target if=\"${junit.available}\" name=\"-init-macrodef-junit-debug\" unless=\"${nb.junit.batch}\">\n        <macrodef name=\"junit-debug\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${includes}\" name=\"includes\"/>\n            <attribute default=\"${excludes}\" name=\"excludes\"/>\n            <attribute default=\"**\" name=\"testincludes\"/>\n            <attribute default=\"\" name=\"testmethods\"/>\n            <element name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <property name=\"junit.forkmode\" value=\"perTest\"/>\n                <junit dir=\"${work.dir}\" errorproperty=\"tests.failed\" failureproperty=\"tests.failed\" fork=\"true\" forkmode=\"${junit.forkmode}\" showoutput=\"true\" tempdir=\"${build.dir}\">\n                    <test methods=\"@{testmethods}\" name=\"@{testincludes}\" todir=\"${build.test.results.dir}\"/>\n                    <syspropertyset>\n                        <propertyref prefix=\"test-sys-prop.\"/>\n                        <mapper from=\"test-sys-prop.*\" to=\"*\" type=\"glob\"/>\n                    </syspropertyset>\n                    <formatter type=\"brief\" usefile=\"false\"/>\n                    <formatter type=\"xml\"/>\n                    <jvmarg value=\"-ea\"/>\n                    <jvmarg line=\"${debug-args-line}\"/>\n                    <jvmarg value=\"-Xrunjdwp:transport=${debug-transport},address=${jpda.address}\"/>\n                    <customize/>\n                </junit>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-init-test-properties\" if=\"${nb.junit.batch}\" name=\"-init-macrodef-junit-debug-batch\">\n        <macrodef name=\"junit-debug\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${includes}\" name=\"includes\"/>\n            <attribute default=\"${excludes}\" name=\"excludes\"/>\n            <attribute default=\"**\" name=\"testincludes\"/>\n            <attribute default=\"\" name=\"testmethods\"/>\n            <element name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <property name=\"junit.forkmode\" value=\"perTest\"/>\n                <junit dir=\"${work.dir}\" errorproperty=\"tests.failed\" failureproperty=\"tests.failed\" fork=\"true\" forkmode=\"${junit.forkmode}\" showoutput=\"true\" tempdir=\"${build.dir}\">\n                    <batchtest todir=\"${build.test.results.dir}\">\n                        <fileset dir=\"${test.src.dir}\" excludes=\"@{excludes},${excludes}\" includes=\"@{includes}\">\n                            <filename name=\"@{testincludes}\"/>\n                        </fileset>\n                        <fileset dir=\"${build.test.classes.dir}\" excludes=\"@{excludes},${excludes},${test.binaryexcludes}\" includes=\"${test.binaryincludes}\">\n                            <filename name=\"${test.binarytestincludes}\"/>\n                        </fileset>\n                    </batchtest>\n                    <syspropertyset>\n                        <propertyref prefix=\"test-sys-prop.\"/>\n                        <mapper from=\"test-sys-prop.*\" to=\"*\" type=\"glob\"/>\n                    </syspropertyset>\n                    <formatter type=\"brief\" usefile=\"false\"/>\n                    <formatter type=\"xml\"/>\n                    <jvmarg value=\"-ea\"/>\n                    <jvmarg line=\"${debug-args-line}\"/>\n                    <jvmarg value=\"-Xrunjdwp:transport=${debug-transport},address=${jpda.address}\"/>\n                    <customize/>\n                </junit>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-init-macrodef-junit-debug,-init-macrodef-junit-debug-batch\" if=\"${junit.available}\" name=\"-init-macrodef-junit-debug-impl\">\n        <macrodef name=\"test-debug-impl\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${includes}\" name=\"includes\"/>\n            <attribute default=\"${excludes}\" name=\"excludes\"/>\n            <attribute default=\"**\" name=\"testincludes\"/>\n            <attribute default=\"\" name=\"testmethods\"/>\n            <element implicit=\"true\" name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <j2seproject3:junit-debug excludes=\"@{excludes}\" includes=\"@{includes}\" testincludes=\"@{testincludes}\" testmethods=\"@{testmethods}\">\n                    <customize/>\n                </j2seproject3:junit-debug>\n            </sequential>\n        </macrodef>\n    </target>\n    <target if=\"${testng.available}\" name=\"-init-macrodef-testng-debug\">\n        <macrodef name=\"testng-debug\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${main.class}\" name=\"testClass\"/>\n            <attribute default=\"\" name=\"testMethod\"/>\n            <element name=\"customize2\" optional=\"true\"/>\n            <sequential>\n                <condition else=\"-testclass @{testClass}\" property=\"test.class.or.method\" value=\"-methods @{testClass}.@{testMethod}\">\n                    <isset property=\"test.method\"/>\n                </condition>\n                <condition else=\"-suitename 登录注册 -testname @{testClass} ${test.class.or.method}\" property=\"testng.cmd.args\" value=\"@{testClass}\">\n                    <matches pattern=\".*\\.xml\" string=\"@{testClass}\"/>\n                </condition>\n                <delete dir=\"${build.test.results.dir}\" quiet=\"true\"/>\n                <mkdir dir=\"${build.test.results.dir}\"/>\n                <j2seproject3:debug classname=\"org.testng.TestNG\" classpath=\"${debug.test.classpath}\">\n                    <customize>\n                        <customize2/>\n                        <jvmarg value=\"-ea\"/>\n                        <arg line=\"${testng.debug.mode}\"/>\n                        <arg line=\"-d ${build.test.results.dir}\"/>\n                        <arg line=\"-listener org.testng.reporters.VerboseReporter\"/>\n                        <arg line=\"${testng.cmd.args}\"/>\n                    </customize>\n                </j2seproject3:debug>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-init-macrodef-testng-debug\" if=\"${testng.available}\" name=\"-init-macrodef-testng-debug-impl\">\n        <macrodef name=\"testng-debug-impl\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${main.class}\" name=\"testClass\"/>\n            <attribute default=\"\" name=\"testMethod\"/>\n            <element implicit=\"true\" name=\"customize2\" optional=\"true\"/>\n            <sequential>\n                <j2seproject3:testng-debug testClass=\"@{testClass}\" testMethod=\"@{testMethod}\">\n                    <customize2/>\n                </j2seproject3:testng-debug>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-init-macrodef-junit-debug-impl\" if=\"${junit.available}\" name=\"-init-macrodef-test-debug-junit\">\n        <macrodef name=\"test-debug\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${includes}\" name=\"includes\"/>\n            <attribute default=\"${excludes}\" name=\"excludes\"/>\n            <attribute default=\"**\" name=\"testincludes\"/>\n            <attribute default=\"\" name=\"testmethods\"/>\n            <attribute default=\"${main.class}\" name=\"testClass\"/>\n            <attribute default=\"\" name=\"testMethod\"/>\n            <sequential>\n                <j2seproject3:test-debug-impl excludes=\"@{excludes}\" includes=\"@{includes}\" testincludes=\"@{testincludes}\" testmethods=\"@{testmethods}\">\n                    <customize>\n                        <classpath>\n                            <path path=\"${run.test.classpath}\"/>\n                        </classpath>\n                        <jvmarg line=\"${endorsed.classpath.cmd.line.arg}\"/>\n                        <jvmarg line=\"${run.jvmargs}\"/>\n                        <jvmarg line=\"${run.jvmargs.ide}\"/>\n                    </customize>\n                </j2seproject3:test-debug-impl>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-init-macrodef-testng-debug-impl\" if=\"${testng.available}\" name=\"-init-macrodef-test-debug-testng\">\n        <macrodef name=\"test-debug\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${includes}\" name=\"includes\"/>\n            <attribute default=\"${excludes}\" name=\"excludes\"/>\n            <attribute default=\"**\" name=\"testincludes\"/>\n            <attribute default=\"\" name=\"testmethods\"/>\n            <attribute default=\"${main.class}\" name=\"testClass\"/>\n            <attribute default=\"\" name=\"testMethod\"/>\n            <sequential>\n                <j2seproject3:testng-debug-impl testClass=\"@{testClass}\" testMethod=\"@{testMethod}\">\n                    <customize2>\n                        <syspropertyset>\n                            <propertyref prefix=\"test-sys-prop.\"/>\n                            <mapper from=\"test-sys-prop.*\" to=\"*\" type=\"glob\"/>\n                        </syspropertyset>\n                    </customize2>\n                </j2seproject3:testng-debug-impl>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-init-macrodef-test-debug-junit,-init-macrodef-test-debug-testng\" name=\"-init-macrodef-test-debug\"/>\n    <!--\n                pre NB7.2 profiling section; consider it deprecated\n            -->\n    <target depends=\"-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile, -profile-init-check\" if=\"profiler.info.jvmargs.agent\" name=\"profile-init\"/>\n    <target if=\"profiler.info.jvmargs.agent\" name=\"-profile-pre-init\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target if=\"profiler.info.jvmargs.agent\" name=\"-profile-post-init\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target if=\"profiler.info.jvmargs.agent\" name=\"-profile-init-macrodef-profile\">\n        <macrodef name=\"resolve\">\n            <attribute name=\"name\"/>\n            <attribute name=\"value\"/>\n            <sequential>\n                <property name=\"@{name}\" value=\"${env.@{value}}\"/>\n            </sequential>\n        </macrodef>\n        <macrodef name=\"profile\">\n            <attribute default=\"${main.class}\" name=\"classname\"/>\n            <element name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <property environment=\"env\"/>\n                <resolve name=\"profiler.current.path\" value=\"${profiler.info.pathvar}\"/>\n                <java classname=\"@{classname}\" dir=\"${profiler.info.dir}\" fork=\"true\" jvm=\"${profiler.info.jvm}\">\n                    <jvmarg line=\"${endorsed.classpath.cmd.line.arg}\"/>\n                    <jvmarg value=\"${profiler.info.jvmargs.agent}\"/>\n                    <jvmarg line=\"${profiler.info.jvmargs}\"/>\n                    <env key=\"${profiler.info.pathvar}\" path=\"${profiler.info.agentpath}:${profiler.current.path}\"/>\n                    <arg line=\"${application.args}\"/>\n                    <classpath>\n                        <path path=\"${run.classpath}\"/>\n                    </classpath>\n                    <syspropertyset>\n                        <propertyref prefix=\"run-sys-prop.\"/>\n                        <mapper from=\"run-sys-prop.*\" to=\"*\" type=\"glob\"/>\n                    </syspropertyset>\n                    <customize/>\n                </java>\n            </sequential>\n        </macrodef>\n    </target>\n    <target depends=\"-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile\" if=\"profiler.info.jvmargs.agent\" name=\"-profile-init-check\">\n        <fail unless=\"profiler.info.jvm\">Must set JVM to use for profiling in profiler.info.jvm</fail>\n        <fail unless=\"profiler.info.jvmargs.agent\">Must set profiler agent JVM arguments in profiler.info.jvmargs.agent</fail>\n    </target>\n    <!--\n                end of pre NB7.2 profiling section\n            -->\n    <target depends=\"-init-debug-args\" name=\"-init-macrodef-nbjpda\">\n        <macrodef name=\"nbjpdastart\" uri=\"http://www.netbeans.org/ns/j2se-project/1\">\n            <attribute default=\"${main.class}\" name=\"name\"/>\n            <attribute default=\"${debug.classpath}\" name=\"classpath\"/>\n            <attribute default=\"\" name=\"stopclassname\"/>\n            <sequential>\n                <nbjpdastart addressproperty=\"jpda.address\" name=\"@{name}\" stopclassname=\"@{stopclassname}\" transport=\"${debug-transport}\">\n                    <classpath>\n                        <path path=\"@{classpath}\"/>\n                    </classpath>\n                </nbjpdastart>\n            </sequential>\n        </macrodef>\n        <macrodef name=\"nbjpdareload\" uri=\"http://www.netbeans.org/ns/j2se-project/1\">\n            <attribute default=\"${build.classes.dir}\" name=\"dir\"/>\n            <sequential>\n                <nbjpdareload>\n                    <fileset dir=\"@{dir}\" includes=\"${fix.classes}\">\n                        <include name=\"${fix.includes}*.class\"/>\n                    </fileset>\n                </nbjpdareload>\n            </sequential>\n        </macrodef>\n    </target>\n    <target name=\"-init-debug-args\">\n        <property name=\"version-output\" value=\"java version &quot;${ant.java.version}\"/>\n        <condition property=\"have-jdk-older-than-1.4\">\n            <or>\n                <contains string=\"${version-output}\" substring=\"java version &quot;1.0\"/>\n                <contains string=\"${version-output}\" substring=\"java version &quot;1.1\"/>\n                <contains string=\"${version-output}\" substring=\"java version &quot;1.2\"/>\n                <contains string=\"${version-output}\" substring=\"java version &quot;1.3\"/>\n            </or>\n        </condition>\n        <condition else=\"-Xdebug\" property=\"debug-args-line\" value=\"-Xdebug -Xnoagent -Djava.compiler=none\">\n            <istrue value=\"${have-jdk-older-than-1.4}\"/>\n        </condition>\n        <condition else=\"dt_socket\" property=\"debug-transport-by-os\" value=\"dt_shmem\">\n            <os family=\"windows\"/>\n        </condition>\n        <condition else=\"${debug-transport-by-os}\" property=\"debug-transport\" value=\"${debug.transport}\">\n            <isset property=\"debug.transport\"/>\n        </condition>\n    </target>\n    <target depends=\"-init-debug-args\" name=\"-init-macrodef-debug\">\n        <macrodef name=\"debug\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${main.class}\" name=\"classname\"/>\n            <attribute default=\"${debug.classpath}\" name=\"classpath\"/>\n            <element name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <java classname=\"@{classname}\" dir=\"${work.dir}\" fork=\"true\">\n                    <jvmarg line=\"${endorsed.classpath.cmd.line.arg}\"/>\n                    <jvmarg line=\"${debug-args-line}\"/>\n                    <jvmarg value=\"-Xrunjdwp:transport=${debug-transport},address=${jpda.address}\"/>\n                    <jvmarg value=\"-Dfile.encoding=${runtime.encoding}\"/>\n                    <redirector errorencoding=\"${runtime.encoding}\" inputencoding=\"${runtime.encoding}\" outputencoding=\"${runtime.encoding}\"/>\n                    <jvmarg line=\"${run.jvmargs}\"/>\n                    <jvmarg line=\"${run.jvmargs.ide}\"/>\n                    <classpath>\n                        <path path=\"@{classpath}\"/>\n                    </classpath>\n                    <syspropertyset>\n                        <propertyref prefix=\"run-sys-prop.\"/>\n                        <mapper from=\"run-sys-prop.*\" to=\"*\" type=\"glob\"/>\n                    </syspropertyset>\n                    <customize/>\n                </java>\n            </sequential>\n        </macrodef>\n    </target>\n    <target name=\"-init-macrodef-java\">\n        <macrodef name=\"java\" uri=\"http://www.netbeans.org/ns/j2se-project/1\">\n            <attribute default=\"${main.class}\" name=\"classname\"/>\n            <attribute default=\"${run.classpath}\" name=\"classpath\"/>\n            <attribute default=\"jvm\" name=\"jvm\"/>\n            <element name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <java classname=\"@{classname}\" dir=\"${work.dir}\" fork=\"true\">\n                    <jvmarg line=\"${endorsed.classpath.cmd.line.arg}\"/>\n                    <jvmarg value=\"-Dfile.encoding=${runtime.encoding}\"/>\n                    <redirector errorencoding=\"${runtime.encoding}\" inputencoding=\"${runtime.encoding}\" outputencoding=\"${runtime.encoding}\"/>\n                    <jvmarg line=\"${run.jvmargs}\"/>\n                    <jvmarg line=\"${run.jvmargs.ide}\"/>\n                    <classpath>\n                        <path path=\"@{classpath}\"/>\n                    </classpath>\n                    <syspropertyset>\n                        <propertyref prefix=\"run-sys-prop.\"/>\n                        <mapper from=\"run-sys-prop.*\" to=\"*\" type=\"glob\"/>\n                    </syspropertyset>\n                    <customize/>\n                </java>\n            </sequential>\n        </macrodef>\n    </target>\n    <target name=\"-init-macrodef-copylibs\">\n        <macrodef name=\"copylibs\" uri=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <attribute default=\"${manifest.file}\" name=\"manifest\"/>\n            <element name=\"customize\" optional=\"true\"/>\n            <sequential>\n                <property location=\"${build.classes.dir}\" name=\"build.classes.dir.resolved\"/>\n                <pathconvert property=\"run.classpath.without.build.classes.dir\">\n                    <path path=\"${run.classpath}\"/>\n                    <map from=\"${build.classes.dir.resolved}\" to=\"\"/>\n                </pathconvert>\n                <pathconvert pathsep=\" \" property=\"jar.classpath\">\n                    <path path=\"${run.classpath.without.build.classes.dir}\"/>\n                    <chainedmapper>\n                        <flattenmapper/>\n                        <filtermapper>\n                            <replacestring from=\" \" to=\"%20\"/>\n                        </filtermapper>\n                        <globmapper from=\"*\" to=\"lib/*\"/>\n                    </chainedmapper>\n                </pathconvert>\n                <taskdef classname=\"org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs\" classpath=\"${libs.CopyLibs.classpath}\" name=\"copylibs\"/>\n                <copylibs compress=\"${jar.compress}\" excludeFromCopy=\"${copylibs.excludes}\" index=\"${jar.index}\" indexMetaInf=\"${jar.index.metainf}\" jarfile=\"${dist.jar}\" manifest=\"@{manifest}\" rebase=\"${copylibs.rebase}\" runtimeclasspath=\"${run.classpath.without.build.classes.dir}\">\n                    <fileset dir=\"${build.classes.dir}\" excludes=\"${dist.archive.excludes}\"/>\n                    <manifest>\n                        <attribute name=\"Class-Path\" value=\"${jar.classpath}\"/>\n                        <customize/>\n                    </manifest>\n                </copylibs>\n            </sequential>\n        </macrodef>\n    </target>\n    <target name=\"-init-presetdef-jar\">\n        <presetdef name=\"jar\" uri=\"http://www.netbeans.org/ns/j2se-project/1\">\n            <jar compress=\"${jar.compress}\" index=\"${jar.index}\" jarfile=\"${dist.jar}\">\n                <j2seproject1:fileset dir=\"${build.classes.dir}\" excludes=\"${dist.archive.excludes}\"/>\n            </jar>\n        </presetdef>\n    </target>\n    <target name=\"-init-ap-cmdline-properties\">\n        <property name=\"annotation.processing.enabled\" value=\"true\"/>\n        <property name=\"annotation.processing.processors.list\" value=\"\"/>\n        <property name=\"annotation.processing.processor.options\" value=\"\"/>\n        <property name=\"annotation.processing.run.all.processors\" value=\"true\"/>\n        <property name=\"javac.processorpath\" value=\"${javac.classpath}\"/>\n        <property name=\"javac.test.processorpath\" value=\"${javac.test.classpath}\"/>\n        <condition property=\"ap.supported.internal\" value=\"true\">\n            <not>\n                <matches pattern=\"1\\.[0-5](\\..*)?\" string=\"${javac.source}\"/>\n            </not>\n        </condition>\n    </target>\n    <target depends=\"-init-ap-cmdline-properties\" if=\"ap.supported.internal\" name=\"-init-ap-cmdline-supported\">\n        <condition else=\"\" property=\"ap.processors.internal\" value=\"-processor ${annotation.processing.processors.list}\">\n            <isfalse value=\"${annotation.processing.run.all.processors}\"/>\n        </condition>\n        <condition else=\"\" property=\"ap.proc.none.internal\" value=\"-proc:none\">\n            <isfalse value=\"${annotation.processing.enabled}\"/>\n        </condition>\n    </target>\n    <target depends=\"-init-ap-cmdline-properties,-init-ap-cmdline-supported\" name=\"-init-ap-cmdline\">\n        <property name=\"ap.cmd.line.internal\" value=\"\"/>\n    </target>\n    <target depends=\"-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-test,-init-macrodef-test-debug,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar,-init-ap-cmdline\" name=\"init\"/>\n    <!--\n                ===================\n                COMPILATION SECTION\n                ===================\n            -->\n    <target name=\"-deps-jar-init\" unless=\"built-jar.properties\">\n        <property location=\"${build.dir}/built-jar.properties\" name=\"built-jar.properties\"/>\n        <delete file=\"${built-jar.properties}\" quiet=\"true\"/>\n    </target>\n    <target if=\"already.built.jar.${basedir}\" name=\"-warn-already-built-jar\">\n        <echo level=\"warn\" message=\"Cycle detected: 登录注册 was already built\"/>\n    </target>\n    <target depends=\"init,-deps-jar-init\" name=\"deps-jar\" unless=\"no.deps\">\n        <mkdir dir=\"${build.dir}\"/>\n        <touch file=\"${built-jar.properties}\" verbose=\"false\"/>\n        <property file=\"${built-jar.properties}\" prefix=\"already.built.jar.\"/>\n        <antcall target=\"-warn-already-built-jar\"/>\n        <propertyfile file=\"${built-jar.properties}\">\n            <entry key=\"${basedir}\" value=\"\"/>\n        </propertyfile>\n    </target>\n    <target depends=\"init,-check-automatic-build,-clean-after-automatic-build\" name=\"-verify-automatic-build\"/>\n    <target depends=\"init\" name=\"-check-automatic-build\">\n        <available file=\"${build.classes.dir}/.netbeans_automatic_build\" property=\"netbeans.automatic.build\"/>\n    </target>\n    <target depends=\"init\" if=\"netbeans.automatic.build\" name=\"-clean-after-automatic-build\">\n        <antcall target=\"clean\"/>\n    </target>\n    <target depends=\"init,deps-jar\" name=\"-pre-pre-compile\">\n        <mkdir dir=\"${build.classes.dir}\"/>\n    </target>\n    <target name=\"-pre-compile\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target if=\"do.depend.true\" name=\"-compile-depend\">\n        <pathconvert property=\"build.generated.subdirs\">\n            <dirset dir=\"${build.generated.sources.dir}\" erroronmissingdir=\"false\">\n                <include name=\"*\"/>\n            </dirset>\n        </pathconvert>\n        <j2seproject3:depend srcdir=\"${src.dir}:${build.generated.subdirs}\"/>\n    </target>\n    <target depends=\"init,deps-jar,-pre-pre-compile,-pre-compile, -copy-persistence-xml,-compile-depend\" if=\"have.sources\" name=\"-do-compile\">\n        <j2seproject3:javac gensrcdir=\"${build.generated.sources.dir}\"/>\n        <copy todir=\"${build.classes.dir}\">\n            <fileset dir=\"${src.dir}\" excludes=\"${build.classes.excludes},${excludes}\" includes=\"${includes}\"/>\n        </copy>\n    </target>\n    <target if=\"has.persistence.xml\" name=\"-copy-persistence-xml\">\n        <mkdir dir=\"${build.classes.dir}/META-INF\"/>\n        <copy todir=\"${build.classes.dir}/META-INF\">\n            <fileset dir=\"${meta.inf.dir}\" includes=\"persistence.xml orm.xml\"/>\n        </copy>\n    </target>\n    <target name=\"-post-compile\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target depends=\"init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile,-do-compile,-post-compile\" description=\"Compile project.\" name=\"compile\"/>\n    <target name=\"-pre-compile-single\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target depends=\"init,deps-jar,-pre-pre-compile\" name=\"-do-compile-single\">\n        <fail unless=\"javac.includes\">Must select some files in the IDE or set javac.includes</fail>\n        <j2seproject3:force-recompile/>\n        <j2seproject3:javac excludes=\"\" gensrcdir=\"${build.generated.sources.dir}\" includes=\"${javac.includes}\" sourcepath=\"${src.dir}\"/>\n    </target>\n    <target name=\"-post-compile-single\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target depends=\"init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single\" name=\"compile-single\"/>\n    <!--\n                ====================\n                JAR BUILDING SECTION\n                ====================\n            -->\n    <target depends=\"init\" name=\"-pre-pre-jar\">\n        <dirname file=\"${dist.jar}\" property=\"dist.jar.dir\"/>\n        <mkdir dir=\"${dist.jar.dir}\"/>\n    </target>\n    <target name=\"-pre-jar\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target depends=\"init\" if=\"do.archive\" name=\"-do-jar-create-manifest\" unless=\"manifest.available\">\n        <tempfile deleteonexit=\"true\" destdir=\"${build.dir}\" property=\"tmp.manifest.file\"/>\n        <touch file=\"${tmp.manifest.file}\" verbose=\"false\"/>\n    </target>\n    <target depends=\"init\" if=\"do.archive+manifest.available\" name=\"-do-jar-copy-manifest\">\n        <tempfile deleteonexit=\"true\" destdir=\"${build.dir}\" property=\"tmp.manifest.file\"/>\n        <copy file=\"${manifest.file}\" tofile=\"${tmp.manifest.file}\"/>\n    </target>\n    <target depends=\"init,-do-jar-create-manifest,-do-jar-copy-manifest\" if=\"do.archive+main.class.available\" name=\"-do-jar-set-mainclass\">\n        <manifest file=\"${tmp.manifest.file}\" mode=\"update\">\n            <attribute name=\"Main-Class\" value=\"${main.class}\"/>\n        </manifest>\n    </target>\n    <target depends=\"init,-do-jar-create-manifest,-do-jar-copy-manifest\" if=\"do.archive+profile.available\" name=\"-do-jar-set-profile\">\n        <manifest file=\"${tmp.manifest.file}\" mode=\"update\">\n            <attribute name=\"Profile\" value=\"${javac.profile}\"/>\n        </manifest>\n    </target>\n    <target depends=\"init,-do-jar-create-manifest,-do-jar-copy-manifest\" if=\"do.archive+splashscreen.available\" name=\"-do-jar-set-splashscreen\">\n        <basename file=\"${application.splash}\" property=\"splashscreen.basename\"/>\n        <mkdir dir=\"${build.classes.dir}/META-INF\"/>\n        <copy failonerror=\"false\" file=\"${application.splash}\" todir=\"${build.classes.dir}/META-INF\"/>\n        <manifest file=\"${tmp.manifest.file}\" mode=\"update\">\n            <attribute name=\"SplashScreen-Image\" value=\"META-INF/${splashscreen.basename}\"/>\n        </manifest>\n    </target>\n    <target depends=\"init,-init-macrodef-copylibs,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen\" if=\"do.mkdist\" name=\"-do-jar-copylibs\">\n        <j2seproject3:copylibs manifest=\"${tmp.manifest.file}\"/>\n        <echo level=\"info\">To run this application from the command line without Ant, try:</echo>\n        <property location=\"${dist.jar}\" name=\"dist.jar.resolved\"/>\n        <echo level=\"info\">java -jar \"${dist.jar.resolved}\"</echo>\n    </target>\n    <target depends=\"init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen\" if=\"do.archive\" name=\"-do-jar-jar\" unless=\"do.mkdist\">\n        <j2seproject1:jar manifest=\"${tmp.manifest.file}\"/>\n        <property location=\"${build.classes.dir}\" name=\"build.classes.dir.resolved\"/>\n        <property location=\"${dist.jar}\" name=\"dist.jar.resolved\"/>\n        <pathconvert property=\"run.classpath.with.dist.jar\">\n            <path path=\"${run.classpath}\"/>\n            <map from=\"${build.classes.dir.resolved}\" to=\"${dist.jar.resolved}\"/>\n        </pathconvert>\n        <condition else=\"\" property=\"jar.usage.message\" value=\"To run this application from the command line without Ant, try:${line.separator}${platform.java} -cp ${run.classpath.with.dist.jar} ${main.class}\">\n            <isset property=\"main.class.available\"/>\n        </condition>\n        <condition else=\"debug\" property=\"jar.usage.level\" value=\"info\">\n            <isset property=\"main.class.available\"/>\n        </condition>\n        <echo level=\"${jar.usage.level}\" message=\"${jar.usage.message}\"/>\n    </target>\n    <target depends=\"-do-jar-copylibs\" if=\"do.archive\" name=\"-do-jar-delete-manifest\">\n        <delete>\n            <fileset file=\"${tmp.manifest.file}\"/>\n        </delete>\n    </target>\n    <target depends=\"init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-jar,-do-jar-delete-manifest\" name=\"-do-jar-without-libraries\"/>\n    <target depends=\"init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-copylibs,-do-jar-delete-manifest\" name=\"-do-jar-with-libraries\"/>\n    <target name=\"-post-jar\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target depends=\"init,compile,-pre-jar,-do-jar-without-libraries,-do-jar-with-libraries,-post-jar\" name=\"-do-jar\"/>\n    <target depends=\"init,compile,-pre-jar,-do-jar,-post-jar\" description=\"Build JAR.\" name=\"jar\"/>\n    <!--\n                =================\n                EXECUTION SECTION\n                =================\n            -->\n    <target depends=\"init,compile\" description=\"Run a main class.\" name=\"run\">\n        <j2seproject1:java>\n            <customize>\n                <arg line=\"${application.args}\"/>\n            </customize>\n        </j2seproject1:java>\n    </target>\n    <target name=\"-do-not-recompile\">\n        <property name=\"javac.includes.binary\" value=\"\"/>\n    </target>\n    <target depends=\"init,compile-single\" name=\"run-single\">\n        <fail unless=\"run.class\">Must select one file in the IDE or set run.class</fail>\n        <j2seproject1:java classname=\"${run.class}\"/>\n    </target>\n    <target depends=\"init,compile-test-single\" name=\"run-test-with-main\">\n        <fail unless=\"run.class\">Must select one file in the IDE or set run.class</fail>\n        <j2seproject1:java classname=\"${run.class}\" classpath=\"${run.test.classpath}\"/>\n    </target>\n    <!--\n                =================\n                DEBUGGING SECTION\n                =================\n            -->\n    <target depends=\"init\" if=\"netbeans.home\" name=\"-debug-start-debugger\">\n        <j2seproject1:nbjpdastart name=\"${debug.class}\"/>\n    </target>\n    <target depends=\"init\" if=\"netbeans.home\" name=\"-debug-start-debugger-main-test\">\n        <j2seproject1:nbjpdastart classpath=\"${debug.test.classpath}\" name=\"${debug.class}\"/>\n    </target>\n    <target depends=\"init,compile\" name=\"-debug-start-debuggee\">\n        <j2seproject3:debug>\n            <customize>\n                <arg line=\"${application.args}\"/>\n            </customize>\n        </j2seproject3:debug>\n    </target>\n    <target depends=\"init,compile,-debug-start-debugger,-debug-start-debuggee\" description=\"Debug project in IDE.\" if=\"netbeans.home\" name=\"debug\"/>\n    <target depends=\"init\" if=\"netbeans.home\" name=\"-debug-start-debugger-stepinto\">\n        <j2seproject1:nbjpdastart stopclassname=\"${main.class}\"/>\n    </target>\n    <target depends=\"init,compile,-debug-start-debugger-stepinto,-debug-start-debuggee\" if=\"netbeans.home\" name=\"debug-stepinto\"/>\n    <target depends=\"init,compile-single\" if=\"netbeans.home\" name=\"-debug-start-debuggee-single\">\n        <fail unless=\"debug.class\">Must select one file in the IDE or set debug.class</fail>\n        <j2seproject3:debug classname=\"${debug.class}\"/>\n    </target>\n    <target depends=\"init,compile-single,-debug-start-debugger,-debug-start-debuggee-single\" if=\"netbeans.home\" name=\"debug-single\"/>\n    <target depends=\"init,compile-test-single\" if=\"netbeans.home\" name=\"-debug-start-debuggee-main-test\">\n        <fail unless=\"debug.class\">Must select one file in the IDE or set debug.class</fail>\n        <j2seproject3:debug classname=\"${debug.class}\" classpath=\"${debug.test.classpath}\"/>\n    </target>\n    <target depends=\"init,compile-test-single,-debug-start-debugger-main-test,-debug-start-debuggee-main-test\" if=\"netbeans.home\" name=\"debug-test-with-main\"/>\n    <target depends=\"init\" name=\"-pre-debug-fix\">\n        <fail unless=\"fix.includes\">Must set fix.includes</fail>\n        <property name=\"javac.includes\" value=\"${fix.includes}.java\"/>\n    </target>\n    <target depends=\"init,-pre-debug-fix,compile-single\" if=\"netbeans.home\" name=\"-do-debug-fix\">\n        <j2seproject1:nbjpdareload/>\n    </target>\n    <target depends=\"init,-pre-debug-fix,-do-debug-fix\" if=\"netbeans.home\" name=\"debug-fix\"/>\n    <!--\n                =================\n                PROFILING SECTION\n                =================\n            -->\n    <!--\n                pre NB7.2 profiler integration\n            -->\n    <target depends=\"profile-init,compile\" description=\"Profile a project in the IDE.\" if=\"profiler.info.jvmargs.agent\" name=\"-profile-pre72\">\n        <fail unless=\"netbeans.home\">This target only works when run from inside the NetBeans IDE.</fail>\n        <nbprofiledirect>\n            <classpath>\n                <path path=\"${run.classpath}\"/>\n            </classpath>\n        </nbprofiledirect>\n        <profile/>\n    </target>\n    <target depends=\"profile-init,compile-single\" description=\"Profile a selected class in the IDE.\" if=\"profiler.info.jvmargs.agent\" name=\"-profile-single-pre72\">\n        <fail unless=\"profile.class\">Must select one file in the IDE or set profile.class</fail>\n        <fail unless=\"netbeans.home\">This target only works when run from inside the NetBeans IDE.</fail>\n        <nbprofiledirect>\n            <classpath>\n                <path path=\"${run.classpath}\"/>\n            </classpath>\n        </nbprofiledirect>\n        <profile classname=\"${profile.class}\"/>\n    </target>\n    <target depends=\"profile-init,compile-single\" if=\"profiler.info.jvmargs.agent\" name=\"-profile-applet-pre72\">\n        <fail unless=\"netbeans.home\">This target only works when run from inside the NetBeans IDE.</fail>\n        <nbprofiledirect>\n            <classpath>\n                <path path=\"${run.classpath}\"/>\n            </classpath>\n        </nbprofiledirect>\n        <profile classname=\"sun.applet.AppletViewer\">\n            <customize>\n                <arg value=\"${applet.url}\"/>\n            </customize>\n        </profile>\n    </target>\n    <target depends=\"profile-init,compile-test-single\" if=\"profiler.info.jvmargs.agent\" name=\"-profile-test-single-pre72\">\n        <fail unless=\"netbeans.home\">This target only works when run from inside the NetBeans IDE.</fail>\n        <nbprofiledirect>\n            <classpath>\n                <path path=\"${run.test.classpath}\"/>\n            </classpath>\n        </nbprofiledirect>\n        <junit dir=\"${profiler.info.dir}\" errorproperty=\"tests.failed\" failureproperty=\"tests.failed\" fork=\"true\" jvm=\"${profiler.info.jvm}\" showoutput=\"true\">\n            <env key=\"${profiler.info.pathvar}\" path=\"${profiler.info.agentpath}:${profiler.current.path}\"/>\n            <jvmarg value=\"${profiler.info.jvmargs.agent}\"/>\n            <jvmarg line=\"${profiler.info.jvmargs}\"/>\n            <test name=\"${profile.class}\"/>\n            <classpath>\n                <path path=\"${run.test.classpath}\"/>\n            </classpath>\n            <syspropertyset>\n                <propertyref prefix=\"test-sys-prop.\"/>\n                <mapper from=\"test-sys-prop.*\" to=\"*\" type=\"glob\"/>\n            </syspropertyset>\n            <formatter type=\"brief\" usefile=\"false\"/>\n            <formatter type=\"xml\"/>\n        </junit>\n    </target>\n    <!--\n                end of pre NB72 profiling section\n            -->\n    <target if=\"netbeans.home\" name=\"-profile-check\">\n        <condition property=\"profiler.configured\">\n            <or>\n                <contains casesensitive=\"true\" string=\"${run.jvmargs.ide}\" substring=\"-agentpath:\"/>\n                <contains casesensitive=\"true\" string=\"${run.jvmargs.ide}\" substring=\"-javaagent:\"/>\n            </or>\n        </condition>\n    </target>\n    <target depends=\"-profile-check,-profile-pre72\" description=\"Profile a project in the IDE.\" if=\"profiler.configured\" name=\"profile\" unless=\"profiler.info.jvmargs.agent\">\n        <startprofiler/>\n        <antcall target=\"run\"/>\n    </target>\n    <target depends=\"-profile-check,-profile-single-pre72\" description=\"Profile a selected class in the IDE.\" if=\"profiler.configured\" name=\"profile-single\" unless=\"profiler.info.jvmargs.agent\">\n        <fail unless=\"run.class\">Must select one file in the IDE or set run.class</fail>\n        <startprofiler/>\n        <antcall target=\"run-single\"/>\n    </target>\n    <target depends=\"-profile-test-single-pre72\" description=\"Profile a selected test in the IDE.\" name=\"profile-test-single\"/>\n    <target depends=\"-profile-check\" description=\"Profile a selected test in the IDE.\" if=\"profiler.configured\" name=\"profile-test\" unless=\"profiler.info.jvmargs\">\n        <fail unless=\"test.includes\">Must select some files in the IDE or set test.includes</fail>\n        <startprofiler/>\n        <antcall target=\"test-single\"/>\n    </target>\n    <target depends=\"-profile-check\" description=\"Profile a selected class in the IDE.\" if=\"profiler.configured\" name=\"profile-test-with-main\">\n        <fail unless=\"run.class\">Must select one file in the IDE or set run.class</fail>\n        <startprofiler/>\n        <antcal target=\"run-test-with-main\"/>\n    </target>\n    <target depends=\"-profile-check,-profile-applet-pre72\" if=\"profiler.configured\" name=\"profile-applet\" unless=\"profiler.info.jvmargs.agent\">\n        <fail unless=\"applet.url\">Must select one file in the IDE or set applet.url</fail>\n        <startprofiler/>\n        <antcall target=\"run-applet\"/>\n    </target>\n    <!--\n                ===============\n                JAVADOC SECTION\n                ===============\n            -->\n    <target depends=\"init\" if=\"have.sources\" name=\"-javadoc-build\">\n        <mkdir dir=\"${dist.javadoc.dir}\"/>\n        <condition else=\"\" property=\"javadoc.endorsed.classpath.cmd.line.arg\" value=\"-J${endorsed.classpath.cmd.line.arg}\">\n            <and>\n                <isset property=\"endorsed.classpath.cmd.line.arg\"/>\n                <not>\n                    <equals arg1=\"${endorsed.classpath.cmd.line.arg}\" arg2=\"\"/>\n                </not>\n            </and>\n        </condition>\n        <javadoc additionalparam=\"${javadoc.additionalparam}\" author=\"${javadoc.author}\" charset=\"UTF-8\" destdir=\"${dist.javadoc.dir}\" docencoding=\"UTF-8\" encoding=\"${javadoc.encoding.used}\" failonerror=\"true\" noindex=\"${javadoc.noindex}\" nonavbar=\"${javadoc.nonavbar}\" notree=\"${javadoc.notree}\" private=\"${javadoc.private}\" source=\"${javac.source}\" splitindex=\"${javadoc.splitindex}\" use=\"${javadoc.use}\" useexternalfile=\"true\" version=\"${javadoc.version}\" windowtitle=\"${javadoc.windowtitle}\">\n            <classpath>\n                <path path=\"${javac.classpath}\"/>\n            </classpath>\n            <fileset dir=\"${src.dir}\" excludes=\"*.java,${excludes}\" includes=\"${includes}\">\n                <filename name=\"**/*.java\"/>\n            </fileset>\n            <fileset dir=\"${build.generated.sources.dir}\" erroronmissingdir=\"false\">\n                <include name=\"**/*.java\"/>\n                <exclude name=\"*.java\"/>\n            </fileset>\n            <arg line=\"${javadoc.endorsed.classpath.cmd.line.arg}\"/>\n        </javadoc>\n        <copy todir=\"${dist.javadoc.dir}\">\n            <fileset dir=\"${src.dir}\" excludes=\"${excludes}\" includes=\"${includes}\">\n                <filename name=\"**/doc-files/**\"/>\n            </fileset>\n            <fileset dir=\"${build.generated.sources.dir}\" erroronmissingdir=\"false\">\n                <include name=\"**/doc-files/**\"/>\n            </fileset>\n        </copy>\n    </target>\n    <target depends=\"init,-javadoc-build\" if=\"netbeans.home\" name=\"-javadoc-browse\" unless=\"no.javadoc.preview\">\n        <nbbrowse file=\"${dist.javadoc.dir}/index.html\"/>\n    </target>\n    <target depends=\"init,-javadoc-build,-javadoc-browse\" description=\"Build Javadoc.\" name=\"javadoc\"/>\n    <!--\n                =========================\n                TEST COMPILATION SECTION\n                =========================\n            -->\n    <target depends=\"init,compile\" if=\"have.tests\" name=\"-pre-pre-compile-test\">\n        <mkdir dir=\"${build.test.classes.dir}\"/>\n    </target>\n    <target name=\"-pre-compile-test\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target if=\"do.depend.true\" name=\"-compile-test-depend\">\n        <j2seproject3:depend classpath=\"${javac.test.classpath}\" destdir=\"${build.test.classes.dir}\" srcdir=\"${test.src.dir}\"/>\n    </target>\n    <target depends=\"init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend\" if=\"have.tests\" name=\"-do-compile-test\">\n        <j2seproject3:javac apgeneratedsrcdir=\"${build.test.classes.dir}\" classpath=\"${javac.test.classpath}\" debug=\"true\" destdir=\"${build.test.classes.dir}\" processorpath=\"${javac.test.processorpath}\" srcdir=\"${test.src.dir}\"/>\n        <copy todir=\"${build.test.classes.dir}\">\n            <fileset dir=\"${test.src.dir}\" excludes=\"${build.classes.excludes},${excludes}\" includes=\"${includes}\"/>\n        </copy>\n    </target>\n    <target name=\"-post-compile-test\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target depends=\"init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test\" name=\"compile-test\"/>\n    <target name=\"-pre-compile-test-single\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target depends=\"init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test-single\" if=\"have.tests\" name=\"-do-compile-test-single\">\n        <fail unless=\"javac.includes\">Must select some files in the IDE or set javac.includes</fail>\n        <j2seproject3:force-recompile destdir=\"${build.test.classes.dir}\"/>\n        <j2seproject3:javac apgeneratedsrcdir=\"${build.test.classes.dir}\" classpath=\"${javac.test.classpath}\" debug=\"true\" destdir=\"${build.test.classes.dir}\" excludes=\"\" includes=\"${javac.includes}\" processorpath=\"${javac.test.processorpath}\" sourcepath=\"${test.src.dir}\" srcdir=\"${test.src.dir}\"/>\n        <copy todir=\"${build.test.classes.dir}\">\n            <fileset dir=\"${test.src.dir}\" excludes=\"${build.classes.excludes},${excludes}\" includes=\"${includes}\"/>\n        </copy>\n    </target>\n    <target name=\"-post-compile-test-single\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target depends=\"init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single\" name=\"compile-test-single\"/>\n    <!--\n                =======================\n                TEST EXECUTION SECTION\n                =======================\n            -->\n    <target depends=\"init\" if=\"have.tests\" name=\"-pre-test-run\">\n        <mkdir dir=\"${build.test.results.dir}\"/>\n    </target>\n    <target depends=\"init,compile-test,-pre-test-run\" if=\"have.tests\" name=\"-do-test-run\">\n        <j2seproject3:test testincludes=\"**/*Test.java\"/>\n    </target>\n    <target depends=\"init,compile-test,-pre-test-run,-do-test-run\" if=\"have.tests\" name=\"-post-test-run\">\n        <fail if=\"tests.failed\" unless=\"ignore.failing.tests\">Some tests failed; see details above.</fail>\n    </target>\n    <target depends=\"init\" if=\"have.tests\" name=\"test-report\"/>\n    <target depends=\"init\" if=\"netbeans.home+have.tests\" name=\"-test-browse\"/>\n    <target depends=\"init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse\" description=\"Run unit tests.\" name=\"test\"/>\n    <target depends=\"init\" if=\"have.tests\" name=\"-pre-test-run-single\">\n        <mkdir dir=\"${build.test.results.dir}\"/>\n    </target>\n    <target depends=\"init,compile-test-single,-pre-test-run-single\" if=\"have.tests\" name=\"-do-test-run-single\">\n        <fail unless=\"test.includes\">Must select some files in the IDE or set test.includes</fail>\n        <j2seproject3:test excludes=\"\" includes=\"${test.includes}\" testincludes=\"${test.includes}\"/>\n    </target>\n    <target depends=\"init,compile-test-single,-pre-test-run-single,-do-test-run-single\" if=\"have.tests\" name=\"-post-test-run-single\">\n        <fail if=\"tests.failed\" unless=\"ignore.failing.tests\">Some tests failed; see details above.</fail>\n    </target>\n    <target depends=\"init,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single\" description=\"Run single unit test.\" name=\"test-single\"/>\n    <target depends=\"init,compile-test-single,-pre-test-run-single\" if=\"have.tests\" name=\"-do-test-run-single-method\">\n        <fail unless=\"test.class\">Must select some files in the IDE or set test.class</fail>\n        <fail unless=\"test.method\">Must select some method in the IDE or set test.method</fail>\n        <j2seproject3:test excludes=\"\" includes=\"${javac.includes}\" testincludes=\"${test.class}\" testmethods=\"${test.method}\"/>\n    </target>\n    <target depends=\"init,compile-test-single,-pre-test-run-single,-do-test-run-single-method\" if=\"have.tests\" name=\"-post-test-run-single-method\">\n        <fail if=\"tests.failed\" unless=\"ignore.failing.tests\">Some tests failed; see details above.</fail>\n    </target>\n    <target depends=\"init,compile-test-single,-pre-test-run-single,-do-test-run-single-method,-post-test-run-single-method\" description=\"Run single unit test.\" name=\"test-single-method\"/>\n    <!--\n                =======================\n                TEST DEBUGGING SECTION\n                =======================\n            -->\n    <target depends=\"init,compile-test-single,-pre-test-run-single\" if=\"have.tests\" name=\"-debug-start-debuggee-test\">\n        <fail unless=\"test.class\">Must select one file in the IDE or set test.class</fail>\n        <j2seproject3:test-debug excludes=\"\" includes=\"${javac.includes}\" testClass=\"${test.class}\" testincludes=\"${javac.includes}\"/>\n    </target>\n    <target depends=\"init,compile-test-single,-pre-test-run-single\" if=\"have.tests\" name=\"-debug-start-debuggee-test-method\">\n        <fail unless=\"test.class\">Must select one file in the IDE or set test.class</fail>\n        <fail unless=\"test.method\">Must select some method in the IDE or set test.method</fail>\n        <j2seproject3:test-debug excludes=\"\" includes=\"${javac.includes}\" testClass=\"${test.class}\" testMethod=\"${test.method}\" testincludes=\"${test.class}\" testmethods=\"${test.method}\"/>\n    </target>\n    <target depends=\"init,compile-test\" if=\"netbeans.home+have.tests\" name=\"-debug-start-debugger-test\">\n        <j2seproject1:nbjpdastart classpath=\"${debug.test.classpath}\" name=\"${test.class}\"/>\n    </target>\n    <target depends=\"init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test\" name=\"debug-test\"/>\n    <target depends=\"init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test-method\" name=\"debug-test-method\"/>\n    <target depends=\"init,-pre-debug-fix,compile-test-single\" if=\"netbeans.home\" name=\"-do-debug-fix-test\">\n        <j2seproject1:nbjpdareload dir=\"${build.test.classes.dir}\"/>\n    </target>\n    <target depends=\"init,-pre-debug-fix,-do-debug-fix-test\" if=\"netbeans.home\" name=\"debug-fix-test\"/>\n    <!--\n                =========================\n                APPLET EXECUTION SECTION\n                =========================\n            -->\n    <target depends=\"init,compile-single\" name=\"run-applet\">\n        <fail unless=\"applet.url\">Must select one file in the IDE or set applet.url</fail>\n        <j2seproject1:java classname=\"sun.applet.AppletViewer\">\n            <customize>\n                <arg value=\"${applet.url}\"/>\n            </customize>\n        </j2seproject1:java>\n    </target>\n    <!--\n                =========================\n                APPLET DEBUGGING  SECTION\n                =========================\n            -->\n    <target depends=\"init,compile-single\" if=\"netbeans.home\" name=\"-debug-start-debuggee-applet\">\n        <fail unless=\"applet.url\">Must select one file in the IDE or set applet.url</fail>\n        <j2seproject3:debug classname=\"sun.applet.AppletViewer\">\n            <customize>\n                <arg value=\"${applet.url}\"/>\n            </customize>\n        </j2seproject3:debug>\n    </target>\n    <target depends=\"init,compile-single,-debug-start-debugger,-debug-start-debuggee-applet\" if=\"netbeans.home\" name=\"debug-applet\"/>\n    <!--\n                ===============\n                CLEANUP SECTION\n                ===============\n            -->\n    <target name=\"-deps-clean-init\" unless=\"built-clean.properties\">\n        <property location=\"${build.dir}/built-clean.properties\" name=\"built-clean.properties\"/>\n        <delete file=\"${built-clean.properties}\" quiet=\"true\"/>\n    </target>\n    <target if=\"already.built.clean.${basedir}\" name=\"-warn-already-built-clean\">\n        <echo level=\"warn\" message=\"Cycle detected: 登录注册 was already built\"/>\n    </target>\n    <target depends=\"init,-deps-clean-init\" name=\"deps-clean\" unless=\"no.deps\">\n        <mkdir dir=\"${build.dir}\"/>\n        <touch file=\"${built-clean.properties}\" verbose=\"false\"/>\n        <property file=\"${built-clean.properties}\" prefix=\"already.built.clean.\"/>\n        <antcall target=\"-warn-already-built-clean\"/>\n        <propertyfile file=\"${built-clean.properties}\">\n            <entry key=\"${basedir}\" value=\"\"/>\n        </propertyfile>\n    </target>\n    <target depends=\"init\" name=\"-do-clean\">\n        <delete dir=\"${build.dir}\"/>\n        <delete dir=\"${dist.dir}\" followsymlinks=\"false\" includeemptydirs=\"true\"/>\n    </target>\n    <target name=\"-post-clean\">\n        <!-- Empty placeholder for easier customization. -->\n        <!-- You can override this target in the ../build.xml file. -->\n    </target>\n    <target depends=\"init,deps-clean,-do-clean,-post-clean\" description=\"Clean build products.\" name=\"clean\"/>\n    <target name=\"-check-call-dep\">\n        <property file=\"${call.built.properties}\" prefix=\"already.built.\"/>\n        <condition property=\"should.call.dep\">\n            <and>\n                <not>\n                    <isset property=\"already.built.${call.subproject}\"/>\n                </not>\n                <available file=\"${call.script}\"/>\n            </and>\n        </condition>\n    </target>\n    <target depends=\"-check-call-dep\" if=\"should.call.dep\" name=\"-maybe-call-dep\">\n        <ant antfile=\"${call.script}\" inheritall=\"false\" target=\"${call.target}\">\n            <propertyset>\n                <propertyref prefix=\"transfer.\"/>\n                <mapper from=\"transfer.*\" to=\"*\" type=\"glob\"/>\n            </propertyset>\n        </ant>\n    </target>\n</project>\n"
  },
  {
    "path": "day25/code/登录注册/nbproject/genfiles.properties",
    "content": "build.xml.data.CRC32=0cf90b53\nbuild.xml.script.CRC32=f3f7c5ff\nbuild.xml.stylesheet.CRC32=8064a381@1.68.1.46\n# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.\n# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.\nnbproject/build-impl.xml.data.CRC32=0cf90b53\nnbproject/build-impl.xml.script.CRC32=3bed2163\nnbproject/build-impl.xml.stylesheet.CRC32=5a01deb7@1.68.1.46\n"
  },
  {
    "path": "day25/code/登录注册/nbproject/private/private.properties",
    "content": "compile.on.save=true\nuser.properties.file=C:\\\\Users\\\\fqy\\\\AppData\\\\Roaming\\\\NetBeans\\\\7.4\\\\build.properties\n"
  },
  {
    "path": "day25/code/登录注册/nbproject/private/private.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project-private xmlns=\"http://www.netbeans.org/ns/project-private/1\">\n    <editor-bookmarks xmlns=\"http://www.netbeans.org/ns/editor-bookmarks/2\" lastBookmarkId=\"0\"/>\n    <open-files xmlns=\"http://www.netbeans.org/ns/projectui-open-files/2\">\n        <group/>\n    </open-files>\n</project-private>\n"
  },
  {
    "path": "day25/code/登录注册/nbproject/project.properties",
    "content": "annotation.processing.enabled=true\nannotation.processing.enabled.in.editor=false\nannotation.processing.processor.options=\nannotation.processing.processors.list=\nannotation.processing.run.all.processors=true\nannotation.processing.source.output=${build.generated.sources.dir}/ap-source-output\nbuild.classes.dir=${build.dir}/classes\nbuild.classes.excludes=**/*.java,**/*.form\n# This directory is removed when the project is cleaned:\nbuild.dir=build\nbuild.generated.dir=${build.dir}/generated\nbuild.generated.sources.dir=${build.dir}/generated-sources\n# Only compile against the classpath explicitly listed here:\nbuild.sysclasspath=ignore\nbuild.test.classes.dir=${build.dir}/test/classes\nbuild.test.results.dir=${build.dir}/test/results\n# Uncomment to specify the preferred debugger connection transport:\n#debug.transport=dt_socket\ndebug.classpath=\\\n    ${run.classpath}\ndebug.test.classpath=\\\n    ${run.test.classpath}\n# build.classes.dir \\u4e2d\\u5e94\\u4ece\\u5206\\u53d1 jar \\u4e2d\\u6392\\u9664\\u7684\\u6587\\u4ef6\ndist.archive.excludes=\n# This directory is removed when the project is cleaned:\ndist.dir=dist\ndist.jar=${dist.dir}/____.jar\ndist.javadoc.dir=${dist.dir}/javadoc\nexcludes=\nincludes=**\njar.compress=false\njavac.classpath=\n# Space-separated list of extra javac options\njavac.compilerargs=\njavac.deprecation=false\njavac.processorpath=\\\n    ${javac.classpath}\njavac.source=1.7\njavac.target=1.7\njavac.test.classpath=\\\n    ${javac.classpath}:\\\n    ${build.classes.dir}\njavac.test.processorpath=\\\n    ${javac.test.classpath}\njavadoc.additionalparam=\njavadoc.author=false\njavadoc.encoding=${source.encoding}\njavadoc.noindex=false\njavadoc.nonavbar=false\njavadoc.notree=false\njavadoc.private=false\njavadoc.splitindex=true\njavadoc.use=true\njavadoc.version=false\njavadoc.windowtitle=\nmain.class=cn.itcast.view.LoginJFrame\nmanifest.file=manifest.mf\nmeta.inf.dir=${src.dir}/META-INF\nmkdist.disabled=false\nplatform.active=default_platform\nrun.classpath=\\\n    ${javac.classpath}:\\\n    ${build.classes.dir}\n# Space-separated list of JVM arguments used when running the project.\n# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value.\n# To set system properties for unit tests define test-sys-prop.name=value:\nrun.jvmargs=\nrun.test.classpath=\\\n    ${javac.test.classpath}:\\\n    ${build.test.classes.dir}\nsource.encoding=UTF-8\nsrc.dir=src\ntest.src.dir=test\n"
  },
  {
    "path": "day25/code/登录注册/nbproject/project.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://www.netbeans.org/ns/project/1\">\n    <type>org.netbeans.modules.java.j2seproject</type>\n    <configuration>\n        <data xmlns=\"http://www.netbeans.org/ns/j2se-project/3\">\n            <name>登录注册</name>\n            <source-roots>\n                <root id=\"src.dir\"/>\n            </source-roots>\n            <test-roots>\n                <root id=\"test.src.dir\"/>\n            </test-roots>\n        </data>\n    </configuration>\n</project>\n"
  },
  {
    "path": "day25/code/登录注册/src/cn/itcast/dao/UserDao.java",
    "content": "/*\n * To change this license header, choose License Headers in Project Properties.\n * To change this template file, choose Tools | Templates\n * and open the template in the editor.\n */\n\npackage cn.itcast.dao;\n\nimport cn.itcast.pojo.User;\n\n/**\n *\n * @author fqy\n */\npublic interface UserDao {\n    public abstract  boolean isLogin(String username,String password);\n    public abstract  void regist(User user);\n}\n"
  },
  {
    "path": "day25/code/登录注册/src/cn/itcast/dao/impl/UserDaoImpl.java",
    "content": "/*\n * To change this license header, choose License Headers in Project Properties.\n * To change this template file, choose Tools | Templates\n * and open the template in the editor.\n */\npackage cn.itcast.dao.impl;\n\nimport cn.itcast.dao.UserDao;\nimport cn.itcast.pojo.User;\nimport java.io.BufferedReader;\nimport java.io.BufferedWriter;\nimport java.io.File;\nimport java.io.FileReader;\nimport java.io.FileWriter;\nimport java.io.IOException;\n\n/**\n *\n * @author fqy\n */\npublic class UserDaoImpl implements UserDao {\n\n    private static File file = new File(\"user.txt\");\n\n    static {\n        try {\n            file.createNewFile();\n        } catch (IOException ex) {\n            ex.printStackTrace();\n        }\n    }\n\n    @Override\n    public boolean isLogin(String username, String password) {\n        boolean flag = false;\n\n        BufferedReader br = null;\n        try {\n            br = new BufferedReader(new FileReader(file));\n            String line = null;\n            while ((line = br.readLine()) != null) {\n                String[] datas = line.split(\"=\");\n                if (username.equals(datas[0]) && password.equals(datas[1])) {\n                    flag = true;\n                    break;\n                }\n            }\n        } catch (IOException e) {\n            e.printStackTrace();\n        } finally {\n            if (br != null) {\n                try {\n                    br.close();\n                } catch (IOException ex) {\n                    ex.printStackTrace();\n                }\n            }\n        }\n        return flag;\n    }\n\n    @Override\n    public void regist(User user) {\n        BufferedWriter bw = null;\n        try {\n            bw = new BufferedWriter(new FileWriter(file, true));\n            bw.write(user.getUsername() + \"=\" + user.getPassword());\n            bw.newLine();\n            bw.flush();\n        } catch (IOException e) {\n            e.printStackTrace();\n        } finally {\n            if (bw != null) {\n                try {\n                    bw.close();\n                } catch (IOException ex) {\n                    ex.printStackTrace();\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "day25/code/登录注册/src/cn/itcast/pojo/User.java",
    "content": "/*\n * To change this license header, choose License Headers in Project Properties.\n * To change this template file, choose Tools | Templates\n * and open the template in the editor.\n */\npackage cn.itcast.pojo;\n\n/**\n *\n * @author fqy\n */\npublic class User {\n\n    private String username;\n    private String password;\n\n    public User() {\n    }\n\n    public User(String username, String password) {\n        this.username = username;\n        this.password = password;\n    }\n\n    /**\n     * @return the username\n     */\n    public String getUsername() {\n        return username;\n    }\n\n    /**\n     * @param username the username to set\n     */\n    public void setUsername(String username) {\n        this.username = username;\n    }\n\n    /**\n     * @return the password\n     */\n    public String getPassword() {\n        return password;\n    }\n\n    /**\n     * @param password the password to set\n     */\n    public void setPassword(String password) {\n        this.password = password;\n    }\n\n}\n"
  },
  {
    "path": "day25/code/登录注册/src/cn/itcast/util/UiUtil.java",
    "content": "/*\n * To change this license header, choose License Headers in Project Properties.\n * To change this template file, choose Tools | Templates\n * and open the template in the editor.\n */\n\npackage cn.itcast.util;\n\nimport java.awt.Dimension;\nimport java.awt.Image;\nimport java.awt.Toolkit;\nimport javax.swing.JFrame;\n\n/**\n * 工具类\n * @author fqy\n */\npublic class UiUtil {\n    \n    private UiUtil(){}\n    \n    /**\n     * 修改窗体图标\n     * @param jf \n     */\n    public static void setFrameIcon(JFrame jf,String imagePath){\n        //获取工具类\n        Toolkit took = Toolkit.getDefaultToolkit();\n        //根据路径获取图片\n        Image image = took.getImage(imagePath);\n        //设置图标\n        jf.setIconImage(image);\n    }\n    \n    /**\n     * 设置窗体居中\n     * @param jf \n     */\n    public static void setFrameCenter(JFrame jf){\n        /*\n        思路：\n            获取屏幕的宽和高\n            获取窗体的宽和高\n        */\n        //获取工具类\n        Toolkit took = Toolkit.getDefaultToolkit();\n        \n        //获取屏幕的宽和高\n        Dimension screen = took.getScreenSize();\n        \n       double screenWidth =  screen.getWidth();\n       double screenHeight = screen.getHeight();\n       \n       //获取窗体的宽和高\n       int jfWidth = jf.getWidth();\n       int jfHeight = jf.getHeight();\n       \n       //设置坐标\n       int width = (int)(screenWidth-jfWidth)/2;\n       int height = (int)(screenHeight-jfHeight)/2;\n       \n      jf.setLocation(width,height);\n    }\n}\n"
  },
  {
    "path": "day25/code/登录注册/src/cn/itcast/view/GuessNumberJFrame.form",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<Form version=\"1.3\" maxVersion=\"1.9\" type=\"org.netbeans.modules.form.forminfo.JFrameFormInfo\">\n  <Properties>\n    <Property name=\"defaultCloseOperation\" type=\"int\" value=\"3\"/>\n  </Properties>\n  <SyntheticProperties>\n    <SyntheticProperty name=\"formSizePolicy\" type=\"int\" value=\"1\"/>\n    <SyntheticProperty name=\"generateCenter\" type=\"boolean\" value=\"false\"/>\n  </SyntheticProperties>\n  <AuxValues>\n    <AuxValue name=\"FormSettings_autoResourcing\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_autoSetComponentName\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_generateFQN\" type=\"java.lang.Boolean\" value=\"true\"/>\n    <AuxValue name=\"FormSettings_generateMnemonicsCode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_i18nAutoMode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_layoutCodeTarget\" type=\"java.lang.Integer\" value=\"1\"/>\n    <AuxValue name=\"FormSettings_listenerGenerationStyle\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_variablesLocal\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_variablesModifier\" type=\"java.lang.Integer\" value=\"2\"/>\n  </AuxValues>\n\n  <Layout>\n    <DimensionLayout dim=\"0\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"1\" attributes=\"0\">\n              <EmptySpace max=\"32767\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n                  <Group type=\"102\" attributes=\"0\">\n                      <Component id=\"jtfGuessNumber\" min=\"-2\" pref=\"154\" max=\"-2\" attributes=\"0\"/>\n                      <EmptySpace type=\"separate\" max=\"-2\" attributes=\"0\"/>\n                      <Component id=\"guessButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  </Group>\n                  <Component id=\"jLabel1\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace min=\"-2\" pref=\"46\" max=\"-2\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n    <DimensionLayout dim=\"1\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"0\" attributes=\"0\">\n              <EmptySpace min=\"-2\" pref=\"46\" max=\"-2\" attributes=\"0\"/>\n              <Component id=\"jLabel1\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              <EmptySpace min=\"-2\" pref=\"24\" max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"jtfGuessNumber\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"guessButton\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace pref=\"36\" max=\"32767\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n  </Layout>\n  <SubComponents>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel1\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x7cfb;&#x7edf;&#x5df2;&#x7ecf;&#x4ea7;&#x751f;&#x4e86;&#x4e00;&#x4e2a;&#x968f;&#x673a;&#x6570;,&#x8bf7;&#x8f93;&#x5165;&#x4f60;&#x8981;&#x731c;&#x7684;&#x6570;&#x636e;(1-100)\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JTextField\" name=\"jtfGuessNumber\">\n    </Component>\n    <Component class=\"javax.swing.JButton\" name=\"guessButton\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x6211;&#x731c;\"/>\n      </Properties>\n      <Events>\n        <EventHandler event=\"actionPerformed\" listener=\"java.awt.event.ActionListener\" parameters=\"java.awt.event.ActionEvent\" handler=\"guessButtonActionPerformed\"/>\n      </Events>\n    </Component>\n  </SubComponents>\n</Form>\n"
  },
  {
    "path": "day25/code/登录注册/src/cn/itcast/view/GuessNumberJFrame.java",
    "content": "/*\n * To change this license header, choose License Headers in Project Properties.\n * To change this template file, choose Tools | Templates\n * and open the template in the editor.\n */\npackage cn.itcast.view;\n\nimport cn.itcast.util.UiUtil;\nimport java.io.BufferedWriter;\nimport java.io.File;\nimport java.io.FileReader;\nimport java.io.FileWriter;\nimport java.io.IOException;\nimport java.util.Properties;\nimport javax.swing.JOptionPane;\n\n/**\n *\n * @author fqy\n */\npublic class GuessNumberJFrame extends javax.swing.JFrame {\n\n    private int number;\n\n//    private static File file = new File(\"count.txt\");\n//    static {\n//        BufferedWriter bw = null;\n//        try {\n////            file.createNewFile();\n//            bw = new BufferedWriter(new FileWriter(file));\n//            bw.write(\"count=0\");\n//            bw.newLine();\n//            bw.flush();\n//        } catch (IOException ex) {\n//            ex.printStackTrace();\n//        } finally {\n//            if (bw != null) {\n//                try {\n//                    bw.close();\n//                } catch (IOException ex) {\n//                    ex.printStackTrace();\n//                }\n//            }\n//        }\n//    }\n\n    /**\n     * Creates new form GuessNumberJFrame\n     */\n    public GuessNumberJFrame() {\n        initComponents();\n    }\n\n    public GuessNumberJFrame(String username) {\n        initComponents();\n        init(username);\n        checkGame();\n    }\n\n    private void init(String username) {\n        this.setTitle(\"欢迎\" + username + \"光临\");\n        UiUtil.setFrameCenter(this);\n        number = getRandomNumber();\n        System.out.println(\"number:\" + number);\n    }\n\n    private int getRandomNumber() {\n        return (int) (Math.random() * 100) + 1;\n    }\n\n    /**\n     * This method is called from within the constructor to initialize the form.\n     * WARNING: Do NOT modify this code. The content of this method is always\n     * regenerated by the Form Editor.\n     */\n    @SuppressWarnings(\"unchecked\")\n    // <editor-fold defaultstate=\"collapsed\" desc=\"Generated Code\">//GEN-BEGIN:initComponents\n    private void initComponents() {\n\n        jLabel1 = new javax.swing.JLabel();\n        jtfGuessNumber = new javax.swing.JTextField();\n        guessButton = new javax.swing.JButton();\n\n        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);\n\n        jLabel1.setText(\"系统已经产生了一个随机数,请输入你要猜的数据(1-100)\");\n\n        guessButton.setText(\"我猜\");\n        guessButton.addActionListener(new java.awt.event.ActionListener() {\n            public void actionPerformed(java.awt.event.ActionEvent evt) {\n                guessButtonActionPerformed(evt);\n            }\n        });\n\n        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());\n        getContentPane().setLayout(layout);\n        layout.setHorizontalGroup(\n            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)\n            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()\n                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)\n                    .addGroup(layout.createSequentialGroup()\n                        .addComponent(jtfGuessNumber, javax.swing.GroupLayout.PREFERRED_SIZE, 154, javax.swing.GroupLayout.PREFERRED_SIZE)\n                        .addGap(18, 18, 18)\n                        .addComponent(guessButton))\n                    .addComponent(jLabel1))\n                .addGap(46, 46, 46))\n        );\n        layout.setVerticalGroup(\n            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)\n            .addGroup(layout.createSequentialGroup()\n                .addGap(46, 46, 46)\n                .addComponent(jLabel1)\n                .addGap(24, 24, 24)\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)\n                    .addComponent(jtfGuessNumber, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)\n                    .addComponent(guessButton))\n                .addContainerGap(36, Short.MAX_VALUE))\n        );\n\n        pack();\n    }// </editor-fold>//GEN-END:initComponents\n\n    private void checkGame() {\n         Properties prop = new Properties();\n        try {\n            FileReader fr = new FileReader(\"count.txt\");\n            prop.load(fr);\n            fr.close();\n\n            String countString = prop.getProperty(\"count\");\n            int count = Integer.parseInt(countString);\n            if (count >= 5) {\n                JOptionPane.showMessageDialog(this, \"试玩结束,要想继续玩,请充值\");\n                System.exit(0);\n            } else {\n                count++;\n                prop.setProperty(\"count\", String.valueOf(count));\n\n                FileWriter fw = new FileWriter(\"count.txt\");\n                prop.store(fw, null);\n                fw.close();\n            }\n\n        } catch (IOException e) {\n            e.printStackTrace();\n        }\n    }\n    \n    private void guessButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_guessButtonActionPerformed\n       checkGame();\n\n        //获取数据\n        String guessNumberString = this.jtfGuessNumber.getText().trim();\n\n        //判断必须是数字\n        String regex = \"\\\\d{1,3}\";\n\n        //判断\n        if (!guessNumberString.matches(regex)) {\n            JOptionPane.showMessageDialog(this, \"你猜的数据不是数字\");\n            this.jtfGuessNumber.setText(\"\");\n            this.jtfGuessNumber.requestFocus();\n            return;\n        }\n\n        //转换为数据\n        int guessNumber = Integer.parseInt(guessNumberString);\n\n        if (guessNumber < 0 || guessNumber > 100) {\n            JOptionPane.showMessageDialog(this, \"你猜的数字超出范围(1-100)\");\n            this.jtfGuessNumber.setText(\"\");\n            this.jtfGuessNumber.requestFocus();\n            return;\n        }\n\n        if (guessNumber > number) {\n            JOptionPane.showMessageDialog(this, \"你猜的数字\" + guessNumber + \"大了\");\n            this.jtfGuessNumber.setText(\"\");\n            this.jtfGuessNumber.requestFocus();\n        } else if (guessNumber < number) {\n            JOptionPane.showMessageDialog(this, \"你猜的数字\" + guessNumber + \"小了\");\n            this.jtfGuessNumber.setText(\"\");\n            this.jtfGuessNumber.requestFocus();\n        } else {\n            JOptionPane.showMessageDialog(this, \"恭喜你猜中了\");\n\n            //public static int showConfirmDialog(Component parentComponent,Object message)\n            int choice = JOptionPane.showConfirmDialog(this, \"还要玩吗\");\n            //System.out.println(\"choice:\"+choice);\n            if (choice == 0) {\n                number = getRandomNumber();\n                JOptionPane.showMessageDialog(this, \"随机数再次产生，祝玩的开心\");\n                this.jtfGuessNumber.setText(\"\");\n                this.jtfGuessNumber.requestFocus();\n            }\n        }\n    }//GEN-LAST:event_guessButtonActionPerformed\n\n    /**\n     * @param args the command line arguments\n     */\n//    public static void main(String args[]) {\n//        /* Set the Nimbus look and feel */\n//        //<editor-fold defaultstate=\"collapsed\" desc=\" Look and feel setting code (optional) \">\n//        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.\n//         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html \n//         */\n//        try {\n//            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {\n//                if (\"Nimbus\".equals(info.getName())) {\n//                    javax.swing.UIManager.setLookAndFeel(info.getClassName());\n//                    break;\n//                }\n//            }\n//        } catch (ClassNotFoundException ex) {\n//            java.util.logging.Logger.getLogger(GuessNumberJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n//        } catch (InstantiationException ex) {\n//            java.util.logging.Logger.getLogger(GuessNumberJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n//        } catch (IllegalAccessException ex) {\n//            java.util.logging.Logger.getLogger(GuessNumberJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n//        } catch (javax.swing.UnsupportedLookAndFeelException ex) {\n//            java.util.logging.Logger.getLogger(GuessNumberJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n//        }\n//        //</editor-fold>\n//\n//        /* Create and display the form */\n//        java.awt.EventQueue.invokeLater(new Runnable() {\n//            public void run() {\n//                new GuessNumberJFrame().setVisible(true);\n//            }\n//        });\n//    }\n\n    // Variables declaration - do not modify//GEN-BEGIN:variables\n    private javax.swing.JButton guessButton;\n    private javax.swing.JLabel jLabel1;\n    private javax.swing.JTextField jtfGuessNumber;\n    // End of variables declaration//GEN-END:variables\n}\n"
  },
  {
    "path": "day25/code/登录注册/src/cn/itcast/view/LoginJFrame.form",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<Form version=\"1.3\" maxVersion=\"1.9\" type=\"org.netbeans.modules.form.forminfo.JFrameFormInfo\">\n  <NonVisualComponents>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel2\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"jLabel2\"/>\n      </Properties>\n    </Component>\n  </NonVisualComponents>\n  <Properties>\n    <Property name=\"defaultCloseOperation\" type=\"int\" value=\"3\"/>\n    <Property name=\"resizable\" type=\"boolean\" value=\"false\"/>\n  </Properties>\n  <SyntheticProperties>\n    <SyntheticProperty name=\"formSizePolicy\" type=\"int\" value=\"1\"/>\n    <SyntheticProperty name=\"generateCenter\" type=\"boolean\" value=\"false\"/>\n  </SyntheticProperties>\n  <AuxValues>\n    <AuxValue name=\"FormSettings_autoResourcing\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_autoSetComponentName\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_generateFQN\" type=\"java.lang.Boolean\" value=\"true\"/>\n    <AuxValue name=\"FormSettings_generateMnemonicsCode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_i18nAutoMode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_layoutCodeTarget\" type=\"java.lang.Integer\" value=\"1\"/>\n    <AuxValue name=\"FormSettings_listenerGenerationStyle\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_variablesLocal\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_variablesModifier\" type=\"java.lang.Integer\" value=\"2\"/>\n  </AuxValues>\n\n  <Layout>\n    <DimensionLayout dim=\"0\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"0\" attributes=\"0\">\n              <EmptySpace min=\"-2\" pref=\"48\" max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"0\" max=\"-2\" attributes=\"0\">\n                  <Group type=\"102\" attributes=\"0\">\n                      <Component id=\"loginButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                      <EmptySpace pref=\"124\" max=\"32767\" attributes=\"0\"/>\n                      <Component id=\"resetButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  </Group>\n                  <Group type=\"102\" attributes=\"0\">\n                      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n                          <Component id=\"jLabel1\" alignment=\"0\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                          <Component id=\"jLabel3\" alignment=\"0\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                      </Group>\n                      <EmptySpace type=\"unrelated\" max=\"-2\" attributes=\"0\"/>\n                      <Group type=\"103\" groupAlignment=\"0\" max=\"-2\" attributes=\"0\">\n                          <Component id=\"jtfUsername\" max=\"32767\" attributes=\"0\"/>\n                          <Component id=\"jpfPassword\" pref=\"190\" max=\"32767\" attributes=\"0\"/>\n                      </Group>\n                  </Group>\n              </Group>\n              <EmptySpace type=\"unrelated\" max=\"-2\" attributes=\"0\"/>\n              <Component id=\"registButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              <EmptySpace max=\"32767\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n    <DimensionLayout dim=\"1\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"0\" attributes=\"0\">\n              <EmptySpace min=\"-2\" pref=\"34\" max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"jLabel1\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jtfUsername\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"registButton\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace min=\"-2\" pref=\"32\" max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"jLabel3\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jpfPassword\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace pref=\"57\" max=\"32767\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"loginButton\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"resetButton\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace min=\"-2\" pref=\"79\" max=\"-2\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n  </Layout>\n  <SubComponents>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel1\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x7528;&#x6237;&#x540d;:\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel3\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x5bc6;&#x7801;:\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JTextField\" name=\"jtfUsername\">\n    </Component>\n    <Component class=\"javax.swing.JPasswordField\" name=\"jpfPassword\">\n    </Component>\n    <Component class=\"javax.swing.JButton\" name=\"loginButton\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x767b;&#x5f55;\"/>\n      </Properties>\n      <Events>\n        <EventHandler event=\"actionPerformed\" listener=\"java.awt.event.ActionListener\" parameters=\"java.awt.event.ActionEvent\" handler=\"loginButtonActionPerformed\"/>\n      </Events>\n    </Component>\n    <Component class=\"javax.swing.JButton\" name=\"resetButton\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x91cd;&#x7f6e;\"/>\n      </Properties>\n      <Events>\n        <EventHandler event=\"actionPerformed\" listener=\"java.awt.event.ActionListener\" parameters=\"java.awt.event.ActionEvent\" handler=\"resetButtonActionPerformed\"/>\n      </Events>\n    </Component>\n    <Component class=\"javax.swing.JButton\" name=\"registButton\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x6ce8;&#x518c;\"/>\n      </Properties>\n      <Events>\n        <EventHandler event=\"actionPerformed\" listener=\"java.awt.event.ActionListener\" parameters=\"java.awt.event.ActionEvent\" handler=\"registButtonActionPerformed\"/>\n      </Events>\n    </Component>\n  </SubComponents>\n</Form>\n"
  },
  {
    "path": "day25/code/登录注册/src/cn/itcast/view/LoginJFrame.java",
    "content": "/*\n * To change this license header, choose License Headers in Project Properties.\n * To change this template file, choose Tools | Templates\n * and open the template in the editor.\n */\npackage cn.itcast.view;\n\nimport cn.itcast.dao.UserDao;\nimport cn.itcast.dao.impl.UserDaoImpl;\nimport cn.itcast.util.UiUtil;\nimport javax.swing.JOptionPane;\n\n/**\n *\n * @author fqy\n */\npublic class LoginJFrame extends javax.swing.JFrame {\n\n    /**\n     * Creates new form LoginJFrame\n     */\n    public LoginJFrame() {\n        initComponents();\n        init();\n    }\n\n    private void init() {\n        this.setTitle(\"登录界面\");\n        UiUtil.setFrameIcon(this, \"src\\\\cn\\\\itcast\\\\resource\\\\user.jpg\");\n        UiUtil.setFrameCenter(this);\n    }\n\n    /**\n     * This method is called from within the constructor to initialize the form.\n     * WARNING: Do NOT modify this code. The content of this method is always\n     * regenerated by the Form Editor.\n     */\n    @SuppressWarnings(\"unchecked\")\n    // <editor-fold defaultstate=\"collapsed\" desc=\"Generated Code\">//GEN-BEGIN:initComponents\n    private void initComponents() {\n\n        jLabel2 = new javax.swing.JLabel();\n        jLabel1 = new javax.swing.JLabel();\n        jLabel3 = new javax.swing.JLabel();\n        jtfUsername = new javax.swing.JTextField();\n        jpfPassword = new javax.swing.JPasswordField();\n        loginButton = new javax.swing.JButton();\n        resetButton = new javax.swing.JButton();\n        registButton = new javax.swing.JButton();\n\n        jLabel2.setText(\"jLabel2\");\n\n        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);\n        setResizable(false);\n\n        jLabel1.setText(\"用户名:\");\n\n        jLabel3.setText(\"密码:\");\n\n        loginButton.setText(\"登录\");\n        loginButton.addActionListener(new java.awt.event.ActionListener() {\n            public void actionPerformed(java.awt.event.ActionEvent evt) {\n                loginButtonActionPerformed(evt);\n            }\n        });\n\n        resetButton.setText(\"重置\");\n        resetButton.addActionListener(new java.awt.event.ActionListener() {\n            public void actionPerformed(java.awt.event.ActionEvent evt) {\n                resetButtonActionPerformed(evt);\n            }\n        });\n\n        registButton.setText(\"注册\");\n        registButton.addActionListener(new java.awt.event.ActionListener() {\n            public void actionPerformed(java.awt.event.ActionEvent evt) {\n                registButtonActionPerformed(evt);\n            }\n        });\n\n        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());\n        getContentPane().setLayout(layout);\n        layout.setHorizontalGroup(\n            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)\n            .addGroup(layout.createSequentialGroup()\n                .addGap(48, 48, 48)\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)\n                    .addGroup(layout.createSequentialGroup()\n                        .addComponent(loginButton)\n                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 124, Short.MAX_VALUE)\n                        .addComponent(resetButton))\n                    .addGroup(layout.createSequentialGroup()\n                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)\n                            .addComponent(jLabel1)\n                            .addComponent(jLabel3))\n                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)\n                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)\n                            .addComponent(jtfUsername)\n                            .addComponent(jpfPassword, javax.swing.GroupLayout.DEFAULT_SIZE, 190, Short.MAX_VALUE))))\n                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)\n                .addComponent(registButton)\n                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))\n        );\n        layout.setVerticalGroup(\n            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)\n            .addGroup(layout.createSequentialGroup()\n                .addGap(34, 34, 34)\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)\n                    .addComponent(jLabel1)\n                    .addComponent(jtfUsername, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)\n                    .addComponent(registButton))\n                .addGap(32, 32, 32)\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)\n                    .addComponent(jLabel3)\n                    .addComponent(jpfPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))\n                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 57, Short.MAX_VALUE)\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)\n                    .addComponent(loginButton)\n                    .addComponent(resetButton))\n                .addGap(79, 79, 79))\n        );\n\n        pack();\n    }// </editor-fold>//GEN-END:initComponents\n\n    private void registButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_registButtonActionPerformed\n        RegistJFrame rjf = new RegistJFrame();\n//        this.setVisible(false);\n        this.dispose();\n        rjf.setVisible(true);\n    }//GEN-LAST:event_registButtonActionPerformed\n\n    private void clearData() {\n        this.jtfUsername.setText(\"\");\n        this.jpfPassword.setText(\"\");\n        this.jtfUsername.requestFocus();\n    }\n    \n    private void resetButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_resetButtonActionPerformed\n       clearData();\n    }//GEN-LAST:event_resetButtonActionPerformed\n\n    private void loginButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_loginButtonActionPerformed\n        //获取用户名和密码\n        String username = this.jtfUsername.getText().trim();\n//        String password = this.jpfPassword.getText().trim();\n        String password = String.valueOf(this.jpfPassword.getPassword());\n        \n        //校验数据\n        //定义规则\n        String regex = \"\\\\w{6,12}\";\n        \n        //校验用户名\n        if(!username.matches(regex)) {\n            JOptionPane.showMessageDialog(this, \"用户名不满足条件(6~12位字符)\");\n            this.jtfUsername.setText(\"\");\n            this.jtfUsername.requestFocus();\n            return;\n        }\n        \n        //校验密码\n        if(!password.matches(regex)) {\n            JOptionPane.showMessageDialog(this, \"密码不满足条件(6~12位字符)\");\n            this.jpfPassword.setText(\"\");\n            this.jpfPassword.requestFocus();\n            return;\n        }\n        \n        //调用登录功能\n        UserDao ud = new UserDaoImpl();\n        boolean flag =  ud.isLogin(username, password);\n        if(flag) {\n             JOptionPane.showMessageDialog(this, \"登录成功,可以开始玩游戏了\");\n             GuessNumberJFrame gjf = new GuessNumberJFrame(username);\n             this.dispose();\n             gjf.setVisible(true);\n        }else{\n            JOptionPane.showMessageDialog(this, \"用户名或者密码有误\");\n            clearData();\n        }\n    }//GEN-LAST:event_loginButtonActionPerformed\n\n    /**\n     * @param args the command line arguments\n     */\n    public static void main(String args[]) {\n        /* Set the Nimbus look and feel */\n        //<editor-fold defaultstate=\"collapsed\" desc=\" Look and feel setting code (optional) \">\n        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.\n         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html \n         */\n        try {\n            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {\n                if (\"Nimbus\".equals(info.getName())) {\n                    javax.swing.UIManager.setLookAndFeel(info.getClassName());\n                    break;\n                }\n            }\n        } catch (ClassNotFoundException ex) {\n            java.util.logging.Logger.getLogger(LoginJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n        } catch (InstantiationException ex) {\n            java.util.logging.Logger.getLogger(LoginJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n        } catch (IllegalAccessException ex) {\n            java.util.logging.Logger.getLogger(LoginJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n        } catch (javax.swing.UnsupportedLookAndFeelException ex) {\n            java.util.logging.Logger.getLogger(LoginJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n        }\n        //</editor-fold>\n\n        /* Create and display the form */\n        java.awt.EventQueue.invokeLater(new Runnable() {\n            public void run() {\n                new LoginJFrame().setVisible(true);\n            }\n        });\n    }\n\n    // Variables declaration - do not modify//GEN-BEGIN:variables\n    private javax.swing.JLabel jLabel1;\n    private javax.swing.JLabel jLabel2;\n    private javax.swing.JLabel jLabel3;\n    private javax.swing.JPasswordField jpfPassword;\n    private javax.swing.JTextField jtfUsername;\n    private javax.swing.JButton loginButton;\n    private javax.swing.JButton registButton;\n    private javax.swing.JButton resetButton;\n    // End of variables declaration//GEN-END:variables\n\n}\n"
  },
  {
    "path": "day25/code/登录注册/src/cn/itcast/view/RegistJFrame.form",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<Form version=\"1.3\" maxVersion=\"1.9\" type=\"org.netbeans.modules.form.forminfo.JFrameFormInfo\">\n  <NonVisualComponents>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel2\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"jLabel2\"/>\n      </Properties>\n    </Component>\n  </NonVisualComponents>\n  <Properties>\n    <Property name=\"defaultCloseOperation\" type=\"int\" value=\"3\"/>\n  </Properties>\n  <SyntheticProperties>\n    <SyntheticProperty name=\"formSizePolicy\" type=\"int\" value=\"1\"/>\n    <SyntheticProperty name=\"generateCenter\" type=\"boolean\" value=\"false\"/>\n  </SyntheticProperties>\n  <AuxValues>\n    <AuxValue name=\"FormSettings_autoResourcing\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_autoSetComponentName\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_generateFQN\" type=\"java.lang.Boolean\" value=\"true\"/>\n    <AuxValue name=\"FormSettings_generateMnemonicsCode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_i18nAutoMode\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_layoutCodeTarget\" type=\"java.lang.Integer\" value=\"1\"/>\n    <AuxValue name=\"FormSettings_listenerGenerationStyle\" type=\"java.lang.Integer\" value=\"0\"/>\n    <AuxValue name=\"FormSettings_variablesLocal\" type=\"java.lang.Boolean\" value=\"false\"/>\n    <AuxValue name=\"FormSettings_variablesModifier\" type=\"java.lang.Integer\" value=\"2\"/>\n  </AuxValues>\n\n  <Layout>\n    <DimensionLayout dim=\"0\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"0\" attributes=\"0\">\n              <EmptySpace min=\"-2\" pref=\"48\" max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"0\" max=\"-2\" attributes=\"0\">\n                  <Group type=\"102\" attributes=\"0\">\n                      <Component id=\"registButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                      <EmptySpace pref=\"124\" max=\"32767\" attributes=\"0\"/>\n                      <Component id=\"cancleButton\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  </Group>\n                  <Group type=\"102\" attributes=\"0\">\n                      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n                          <Component id=\"jLabel1\" alignment=\"0\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                          <Component id=\"jLabel3\" alignment=\"0\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                      </Group>\n                      <EmptySpace type=\"unrelated\" max=\"-2\" attributes=\"0\"/>\n                      <Group type=\"103\" groupAlignment=\"0\" max=\"-2\" attributes=\"0\">\n                          <Component id=\"jtfUsername\" max=\"32767\" attributes=\"0\"/>\n                          <Component id=\"jpfPassword\" pref=\"190\" max=\"32767\" attributes=\"0\"/>\n                      </Group>\n                  </Group>\n              </Group>\n              <EmptySpace pref=\"79\" max=\"32767\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n    <DimensionLayout dim=\"1\">\n      <Group type=\"103\" groupAlignment=\"0\" attributes=\"0\">\n          <Group type=\"102\" alignment=\"0\" attributes=\"0\">\n              <EmptySpace min=\"-2\" pref=\"36\" max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"jLabel1\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jtfUsername\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace min=\"-2\" pref=\"34\" max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"jLabel3\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"jpfPassword\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace min=\"-2\" pref=\"59\" max=\"-2\" attributes=\"0\"/>\n              <Group type=\"103\" groupAlignment=\"3\" attributes=\"0\">\n                  <Component id=\"registButton\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n                  <Component id=\"cancleButton\" alignment=\"3\" min=\"-2\" max=\"-2\" attributes=\"0\"/>\n              </Group>\n              <EmptySpace pref=\"77\" max=\"32767\" attributes=\"0\"/>\n          </Group>\n      </Group>\n    </DimensionLayout>\n  </Layout>\n  <SubComponents>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel1\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x7528;&#x6237;&#x540d;:\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JLabel\" name=\"jLabel3\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x5bc6;&#x7801;:\"/>\n      </Properties>\n    </Component>\n    <Component class=\"javax.swing.JTextField\" name=\"jtfUsername\">\n    </Component>\n    <Component class=\"javax.swing.JPasswordField\" name=\"jpfPassword\">\n    </Component>\n    <Component class=\"javax.swing.JButton\" name=\"registButton\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x6ce8;&#x518c;\"/>\n      </Properties>\n      <Events>\n        <EventHandler event=\"actionPerformed\" listener=\"java.awt.event.ActionListener\" parameters=\"java.awt.event.ActionEvent\" handler=\"registButtonActionPerformed\"/>\n      </Events>\n    </Component>\n    <Component class=\"javax.swing.JButton\" name=\"cancleButton\">\n      <Properties>\n        <Property name=\"text\" type=\"java.lang.String\" value=\"&#x53d6;&#x6d88;\"/>\n      </Properties>\n      <Events>\n        <EventHandler event=\"actionPerformed\" listener=\"java.awt.event.ActionListener\" parameters=\"java.awt.event.ActionEvent\" handler=\"cancleButtonActionPerformed\"/>\n      </Events>\n    </Component>\n  </SubComponents>\n</Form>\n"
  },
  {
    "path": "day25/code/登录注册/src/cn/itcast/view/RegistJFrame.java",
    "content": "/*\n * To change this license header, choose License Headers in Project Properties.\n * To change this template file, choose Tools | Templates\n * and open the template in the editor.\n */\npackage cn.itcast.view;\n\nimport cn.itcast.dao.UserDao;\nimport cn.itcast.dao.impl.UserDaoImpl;\nimport cn.itcast.pojo.User;\nimport cn.itcast.util.UiUtil;\nimport javax.swing.JOptionPane;\n\n/**\n *\n * @author fqy\n */\npublic class RegistJFrame extends javax.swing.JFrame {\n\n    /**\n     * Creates new form LoginJFrame\n     */\n    public RegistJFrame() {\n        initComponents();\n        init();\n    }\n\n    private void init() {\n        this.setTitle(\"注册界面\");\n        UiUtil.setFrameIcon(this, \"src\\\\cn\\\\itcast\\\\resource\\\\user.jpg\");\n        UiUtil.setFrameCenter(this);\n    }\n\n    /**\n     * This method is called from within the constructor to initialize the form.\n     * WARNING: Do NOT modify this code. The content of this method is always\n     * regenerated by the Form Editor.\n     */\n    @SuppressWarnings(\"unchecked\")\n    // <editor-fold defaultstate=\"collapsed\" desc=\"Generated Code\">//GEN-BEGIN:initComponents\n    private void initComponents() {\n\n        jLabel2 = new javax.swing.JLabel();\n        jLabel1 = new javax.swing.JLabel();\n        jLabel3 = new javax.swing.JLabel();\n        jtfUsername = new javax.swing.JTextField();\n        jpfPassword = new javax.swing.JPasswordField();\n        registButton = new javax.swing.JButton();\n        cancleButton = new javax.swing.JButton();\n\n        jLabel2.setText(\"jLabel2\");\n\n        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);\n\n        jLabel1.setText(\"用户名:\");\n\n        jLabel3.setText(\"密码:\");\n\n        registButton.setText(\"注册\");\n        registButton.addActionListener(new java.awt.event.ActionListener() {\n            public void actionPerformed(java.awt.event.ActionEvent evt) {\n                registButtonActionPerformed(evt);\n            }\n        });\n\n        cancleButton.setText(\"取消\");\n        cancleButton.addActionListener(new java.awt.event.ActionListener() {\n            public void actionPerformed(java.awt.event.ActionEvent evt) {\n                cancleButtonActionPerformed(evt);\n            }\n        });\n\n        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());\n        getContentPane().setLayout(layout);\n        layout.setHorizontalGroup(\n            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)\n            .addGroup(layout.createSequentialGroup()\n                .addGap(48, 48, 48)\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)\n                    .addGroup(layout.createSequentialGroup()\n                        .addComponent(registButton)\n                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 124, Short.MAX_VALUE)\n                        .addComponent(cancleButton))\n                    .addGroup(layout.createSequentialGroup()\n                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)\n                            .addComponent(jLabel1)\n                            .addComponent(jLabel3))\n                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)\n                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)\n                            .addComponent(jtfUsername)\n                            .addComponent(jpfPassword, javax.swing.GroupLayout.DEFAULT_SIZE, 190, Short.MAX_VALUE))))\n                .addContainerGap(79, Short.MAX_VALUE))\n        );\n        layout.setVerticalGroup(\n            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)\n            .addGroup(layout.createSequentialGroup()\n                .addGap(36, 36, 36)\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)\n                    .addComponent(jLabel1)\n                    .addComponent(jtfUsername, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))\n                .addGap(34, 34, 34)\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)\n                    .addComponent(jLabel3)\n                    .addComponent(jpfPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))\n                .addGap(59, 59, 59)\n                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)\n                    .addComponent(registButton)\n                    .addComponent(cancleButton))\n                .addContainerGap(77, Short.MAX_VALUE))\n        );\n\n        pack();\n    }// </editor-fold>//GEN-END:initComponents\n\n    private void goLoginView() {\n        LoginJFrame ljf = new LoginJFrame();\n        this.dispose();\n        ljf.setVisible(true);\n    }\n\n    private void cancleButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancleButtonActionPerformed\n        goLoginView();\n    }//GEN-LAST:event_cancleButtonActionPerformed\n\n    private void registButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_registButtonActionPerformed\n        //获取用户名和密码\n        String username = this.jtfUsername.getText().trim();\n//        String password = this.jpfPassword.getText().trim();\n        String password = String.valueOf(this.jpfPassword.getPassword());\n\n        //校验数据\n        //定义规则\n        String regex = \"\\\\w{6,12}\";\n\n        //校验用户名\n        if (!username.matches(regex)) {\n            JOptionPane.showMessageDialog(this, \"用户名不满足条件(6~12位字符)\");\n            this.jtfUsername.setText(\"\");\n            this.jtfUsername.requestFocus();\n            return;\n        }\n\n        //校验密码\n        if (!password.matches(regex)) {\n            JOptionPane.showMessageDialog(this, \"密码不满足条件(6~12位字符)\");\n            this.jpfPassword.setText(\"\");\n            this.jpfPassword.requestFocus();\n            return;\n        }\n\n        //封装对象\n        User user = new User();\n        user.setUsername(username);\n        user.setPassword(password);\n\n        //调用注册功能\n        UserDao ud = new UserDaoImpl();\n        ud.regist(user);\n\n        JOptionPane.showMessageDialog(this, \"注册成功\");\n\n        //返回到登录界面\n        goLoginView();\n    }//GEN-LAST:event_registButtonActionPerformed\n\n    /**\n     * @param args the command line arguments\n     */\n//    public static void main(String args[]) {\n//        /* Set the Nimbus look and feel */\n//        //<editor-fold defaultstate=\"collapsed\" desc=\" Look and feel setting code (optional) \">\n//        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.\n//         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html \n//         */\n//        try {\n//            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {\n//                if (\"Nimbus\".equals(info.getName())) {\n//                    javax.swing.UIManager.setLookAndFeel(info.getClassName());\n//                    break;\n//                }\n//            }\n//        } catch (ClassNotFoundException ex) {\n//            java.util.logging.Logger.getLogger(RegistJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n//        } catch (InstantiationException ex) {\n//            java.util.logging.Logger.getLogger(RegistJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n//        } catch (IllegalAccessException ex) {\n//            java.util.logging.Logger.getLogger(RegistJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n//        } catch (javax.swing.UnsupportedLookAndFeelException ex) {\n//            java.util.logging.Logger.getLogger(RegistJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);\n//        }\n//        //</editor-fold>\n//\n//        /* Create and display the form */\n//        java.awt.EventQueue.invokeLater(new Runnable() {\n//            public void run() {\n//                new RegistJFrame().setVisible(true);\n//            }\n//        });\n//    }\n\n    // Variables declaration - do not modify//GEN-BEGIN:variables\n    private javax.swing.JButton cancleButton;\n    private javax.swing.JLabel jLabel1;\n    private javax.swing.JLabel jLabel2;\n    private javax.swing.JLabel jLabel3;\n    private javax.swing.JPasswordField jpfPassword;\n    private javax.swing.JTextField jtfUsername;\n    private javax.swing.JButton registButton;\n    // End of variables declaration//GEN-END:variables\n}\n"
  },
  {
    "path": "day25/code/登录注册/src/登录注册.txt",
    "content": "登录注册：\n\n有哪些类?\n    用户类\n        用户描述类\n        用户操作类\n    登录窗体\n    注册窗体\n类有哪些成员?\n    用户类\n        用户描述类\n               用户名,密码\n        用户操作类\n                登录,注册\n类与类的关系?\n    在登录窗体上点击登录按钮，调用登录功能\n    在注册窗体上点击注册按钮，调用注册功能\n\n\n分包：\n    cn.itcast.pojo  用户基本描述类\n    cn.itcast.dao   用户操作接口\n    cn.itcast.dao.impl  用户操作具体实现类\n    cn.itcast.util  工具类\n    cn.itcast.view  窗体类"
  },
  {
    "path": "day25/code/登录注册/user.txt",
    "content": "adminadmin=adminadmin\nwoaigame=woaigame\nLoveJava=123456\n"
  },
  {
    "path": "day25/day25总结.txt",
    "content": "1GUI(˽)\n\t(1)ûͼν\n\t\tӦCLI˵ġ\n\t(2)֪\n\t\tjava.awt\n\t\tjavax.swing\n\t(3)һ\n\t\tжܣ\n\t\t洢\n\t(4)¼()\n\t\tA:¼Դ\n\t\tB:¼\n\t\tC:¼\n\t\tD:¼\n\t(5)ģʽ()\n\t\tA:ӿ\n\t\tB:\n\t\tC:ʵ\n\t(6)\n\t\tA:HelloWorld\n\t\tB:Ӱť,԰ť¼\n\t\tC:תư\n\t\t\ta:ıı\n\t\t\tb:ļļת\n\t\tD:¼\n\t\tE:¼\n\t\tF:˵\n\t\t\ta:һ˵\n\t\t\tb:༶˵\n\t\tG:ģ\n\t\tH:¼ע᰸"
  },
  {
    "path": "day25/几句有用的代码.txt",
    "content": "1:޸Ƥ\n\tUIManager.setLookAndFeel(MyLookAndFeel.LIQUIDINF);\n\n2:޸Ĵͼ\n        Toolkit tk = Toolkit.getDefaultToolkit();\n        Image i = tk.getImage(\"src\\\\cn\\\\itcast\\\\resource\\\\jjcc.jpg\");\n        jf.setIconImage(i);\n\n3:ô\n        Toolkit tk = Toolkit.getDefaultToolkit();\n\n        Dimension d = tk.getScreenSize();\n        double srceenWidth = d.getWidth();\n        double srceenHeigth = d.getHeight();\n\n        int frameWidth = jf.getWidth();\n        int frameHeight = jf.getHeight();\n\n        int width = (int) (srceenWidth - frameWidth) / 2;\n        int height = (int) (srceenHeigth - frameHeight) / 2;\n\n        jf.setLocation(width, height);\n    }"
  },
  {
    "path": "day26/resource/chat_socket_client/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day26/resource/chat_socket_client/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>chat_socket_client</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day26/resource/chat_socket_client/.settings/org.eclipse.jdt.core.prefs",
    "content": "#Wed Oct 24 13:13:24 CST 2012\neclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.6\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.6\n"
  },
  {
    "path": "day26/resource/chat_socket_client/src/com/elient/Client.java",
    "content": "package com.elient;\n\nimport java.io.DataInputStream;\nimport java.io.DataOutputStream;\nimport java.io.IOException;\nimport java.net.Socket;\nimport java.net.UnknownHostException;\nimport java.util.ArrayList;\nimport java.util.HashMap;\nimport java.util.List;\nimport java.util.Map;\n\n\npublic class Client extends Thread{\n\n\tpublic Socket c_socket ;\n\tprivate Client_chatFrame c_chatFrame;\n\tprivate Client_enterFrame c_enterFrame;\n\tprivate Client_singleFrame c_singleFrame;\n\tpublic  DataInputStream dis = null;\n\tpublic DataOutputStream dos = null;\n\tprivate boolean flag_exit = false;\n\t\n\tprivate int threadID;\n\t\n\tpublic Map<String, Client_singleFrame> c_singleFrames;\n\tpublic  List<String> username_online;\n\tpublic  List<Integer> clientuserid;\n\tpublic String username = null;\n\tpublic String chat_re;\n\t//getter, setter\n\tpublic Client_chatFrame getC_chatFrame() {\n\t\treturn c_chatFrame;\n\t}\n\tpublic Client_singleFrame getC_singlFrame() {\n\t\treturn c_singleFrame;\n\t}\n\tpublic void setC_singlFrame(Client_singleFrame c_singlFrame) {\n\t\tthis.c_singleFrame = c_singlFrame;\n\t}\n\tpublic void setC_chatFrame(Client_chatFrame c_chatFrame) {\n\t\tthis.c_chatFrame = c_chatFrame;\n\t}\n\tpublic Client_enterFrame getC_enterFrame() {\n\t\treturn c_enterFrame;\n\t}\n\tpublic void setC_enterFrame(Client_enterFrame c_enterFrame) {\n\t\tthis.c_enterFrame = c_enterFrame;\n\t}\n\t\n\tpublic int getThreadID() {\n\t\treturn threadID;\n\t}\n\tpublic void setThreadID(int threadID) {\n\t\tthis.threadID = threadID;\n\t}\n\tpublic Client(){\n\t\tc_singleFrames = new HashMap<String, Client_singleFrame>();\n\t\tusername_online = new ArrayList<String>();\n\t\tclientuserid = new ArrayList<Integer>();\n//\t\tsignlechatuse = new ArrayList<String>();\n\t}\n\t\n\tpublic static void main(String[] args) {\n\t\tClient client = new Client();\n\t\tClient_enterFrame c_enterFrame = new Client_enterFrame(client);\n\t\tclient.setC_enterFrame(c_enterFrame);\n\t\tc_enterFrame.setVisible(true);\n\t}\n\t\n\tpublic String login(String username, String hostIp, String hostPort) {\n\t\tthis.username = username;\n\t\tString login_mess = null;\n\t\ttry {\n\t\t\tc_socket = new Socket(hostIp, Integer.parseInt(hostPort));\n\t\t} catch (NumberFormatException e) {\n\t\t\tlogin_mess = \"ӵķ˿ںportΪ,ȡֵΧΪ1024<port<65535\";\n\t\t\treturn login_mess;\n\t\t} catch (UnknownHostException e) {\n\t\t\tlogin_mess = \"ַ\";\n\t\t\treturn login_mess;\n\t\t} catch (IOException e) {\n\t\t\tlogin_mess = \"ӷʧܣԺ\";\n\t\t\treturn login_mess;\n\t\t}\n\t\treturn \"true\";\n\t}\n\tpublic void showChatFrame(String username) {\n\t\tgetDataInit();\n\t\tc_chatFrame = new Client_chatFrame(this,username);\n\t\tc_chatFrame.setVisible(true);\n\t\tflag_exit = true;\n\t\tthis.start();\n\t\t\n\t}\n\tprivate void getDataInit() {\n\t\ttry {\n\t\t\tdis = new DataInputStream(c_socket.getInputStream());\n\t\t\tdos = new DataOutputStream(c_socket.getOutputStream());\n\t\t} catch (IOException e) {\n\t\t\te.printStackTrace();\n\t\t}\n\t\t\n\t}\n\n\tpublic void run() {\n\t\twhile(flag_exit){\n\t\t\ttry {\n\t\t\t\tchat_re = dis.readUTF();\n\t\t\t} catch (IOException e) {\n\t\t\t\tflag_exit = false;\n\t\t\t\tif(!chat_re.contains(\"@serverexit\")){\n\t\t\t\t\tchat_re = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(chat_re != null){\n\t\t\t\tif(chat_re.contains(\"@clientThread\")){\n\t\t\t\t\tint local = chat_re.indexOf(\"@clientThread\");\n\t\t\t\t\tsetThreadID(Integer.parseInt(chat_re.substring(0, local)));\n\t\t\t\t\ttry {\n\t\t\t\t\t\tdos.writeUTF(username + \"@login\" + getThreadID() + \"@login\");\n\t\t\t\t\t} catch (IOException e) {\n\t\t\t\t\t\te.printStackTrace();\n\t\t\t\t\t}\n\t\t\t\t}else{\n\t\t\t\t\tif(chat_re.contains(\"@userlist\")){\n\t\t\t\t\t\tc_chatFrame.setDisUsers(chat_re);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tif(chat_re.contains(\"@chat\")){\n\t\t\t\t\t\t\tc_chatFrame.setDisMess(chat_re);\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\tif(chat_re.contains(\"@serverexit\")){\n\t\t\t\t\t\t\t\tc_chatFrame.closeClient();\n\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\tif(chat_re.contains(\"@single\")){\n\t\t\t\t\t\t\t\t\tc_chatFrame.setSingleFrame(chat_re);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tpublic void transMess(String mess) {\n\t\ttry {\n\t\t\tdos.writeUTF(username  + \"@chat\" + getThreadID() + \"@chat\"+ mess + \"@chat\");\n\t\t} catch (IOException e) {\n\t\t\te.printStackTrace();\n\t\t}\n\t}\n\tpublic void exitChat() {\n\t\ttry {\n\t\t\tdos.writeUTF(username + \"@exit\" + getThreadID() + \"@exit\");\n\t\t\tflag_exit = false;\n\t\t\tSystem.exit(0);\n\t\t} catch (IOException e) {\n\t\t\te.printStackTrace();\n\t\t}\n\t}\n\tpublic void exitLogin() {\n\t\tSystem.exit(0);\n\t}\n\tpublic void exitClient() {\n\t\tflag_exit = false;\n\t\tSystem.exit(0);\n\t}\n}\n"
  },
  {
    "path": "day26/resource/chat_socket_client/src/com/elient/Client_chatFrame.java",
    "content": "package com.elient;\n\nimport java.awt.Font;\nimport java.awt.Toolkit;\nimport java.awt.event.ActionEvent;\nimport java.awt.event.ActionListener;\nimport java.awt.event.KeyEvent;\nimport java.awt.event.KeyListener;\nimport java.awt.event.WindowAdapter;\nimport java.awt.event.WindowEvent;\nimport java.util.ArrayList;\nimport java.util.List;\n\nimport javax.swing.BorderFactory;\nimport javax.swing.JButton;\nimport javax.swing.JFrame;\nimport javax.swing.JList;\nimport javax.swing.JOptionPane;\nimport javax.swing.JScrollPane;\nimport javax.swing.JTextArea;\nimport javax.swing.JTextField;\nimport javax.swing.ListModel;\nimport javax.swing.ListSelectionModel;\nimport javax.swing.UIManager;\nimport javax.swing.UnsupportedLookAndFeelException;\nimport javax.swing.event.ListSelectionEvent;\nimport javax.swing.event.ListSelectionListener;\n\npublic class Client_chatFrame extends JFrame implements ActionListener,\n\t\tKeyListener, ListSelectionListener {\n\tpublic Client_chatFrame(Client client, String title) {\n\t\tthis.client = client;\n\t\ttry {\n\t\t\tUIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());\n\t\t} catch (ClassNotFoundException e) {\n\t\t\te.printStackTrace();\n\t\t} catch (InstantiationException e) {\n\t\t\te.printStackTrace();\n\t\t} catch (IllegalAccessException e) {\n\t\t\te.printStackTrace();\n\t\t} catch (UnsupportedLookAndFeelException e) {\n\t\t\te.printStackTrace();\n\t\t}\n\t\tsetIconImage(Toolkit.getDefaultToolkit().getImage(\"Images/socket.jpg\"));\n\t\tsetTitle(\"\\u804A\\u5929\\u5BA4\" + \"  \" + title);\n\t\tsetSize(450, 325);\n\t\tWinCenter.center(this);\n\t\tsetResizable(false);\n\t\taddWindowListener(new WindowAdapter() {\n\t\t\t@Override\n\t\t\tpublic void windowClosing(WindowEvent arg0) {\n\t\t\t\tjbt_exit.doClick();\n\t\t\t}\n\t\t});\n\t\tgetContentPane().setLayout(null);\n\n\t\tJScrollPane scrollPane = new JScrollPane();\n\t\tscrollPane.setBorder(BorderFactory.createTitledBorder(\"Ϣ\"));\n\t\tscrollPane.setBounds(10, 10, 283, 167);\n\t\tscrollPane.setWheelScrollingEnabled(true);\n\t\tgetContentPane().add(scrollPane);\n\n\t\tjta_disMess = new JTextArea();\n\t\tjta_disMess.setEditable(false);\n\t\tscrollPane.setViewportView(jta_disMess);\n\n\t\tjtf_inputMess = new JTextField();\n\t\tjtf_inputMess.addKeyListener(this);\n\t\tjtf_inputMess.setBounds(10, 242, 192, 32);\n\t\tgetContentPane().add(jtf_inputMess);\n\t\tjtf_inputMess.setColumns(10);\n\n\t\tjbt_trans = new JButton(\"\\u53D1  \\u9001\");\n\t\tjbt_trans.setFont(new Font(\"\", Font.PLAIN, 14));\n\t\tjbt_trans.setBounds(212, 241, 93, 32);\n\t\tjbt_trans.addActionListener(this);\n\t\tgetContentPane().add(jbt_trans);\n\n\t\tjbt_clear = new JButton(\"\\u6E05\\u9664\\u804A\\u5929\\u8BB0\\u5F55\");\n\t\tjbt_clear.setFont(new Font(\"\", Font.PLAIN, 14));\n\t\tjbt_clear.setBounds(158, 187, 135, 37);\n\t\tjbt_clear.addActionListener(this);\n\t\tgetContentPane().add(jbt_clear);\n\n\t\tjbt_exit = new JButton(\"\\u9000\\u51FA\\u804A\\u5929\\u5BA4\");\n\t\tjbt_exit.setFont(new Font(\"\", Font.PLAIN, 14));\n\t\tjbt_exit.setBounds(20, 189, 128, 37);\n\t\tjbt_exit.addActionListener(this);\n\t\tgetContentPane().add(jbt_exit);\n\n\t\tscrollPane_1 = new JScrollPane();\n\t\tscrollPane_1.setBorder(BorderFactory.createTitledBorder(\"û\"));\n\t\tscrollPane_1.setBounds(303, 10, 128, 214);\n\t\tgetContentPane().add(scrollPane_1);\n\n\t\tjlt_disUsers = new JList();\n\t\tjlt_disUsers.setVisibleRowCount(4);\n\t\tjlt_disUsers.setSelectedIndex(0);\n\t\tjlt_disUsers\n\t\t\t\t.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);\n\t\tjlt_disUsers.addListSelectionListener(this);\n\t\tscrollPane_1.setViewportView(jlt_disUsers);\n\n\t\tjbt_singlChat = new JButton(\"\\u5355\\u4EBA\\u804A\\u5929\");\n\t\tjbt_singlChat.setBounds(315, 241, 116, 32);\n\t\tjbt_singlChat.addActionListener(this);\n\t\tgetContentPane().add(jbt_singlChat);\n\t}\n\n\t/**\n\t * \n\t */\n\tprivate static final long serialVersionUID = 1L;\n\tprivate JTextField jtf_inputMess;\n\tprivate JTextArea jta_disMess;\n\tprivate JButton jbt_trans;\n\tprivate JButton jbt_clear;\n\tprivate JButton jbt_exit;\n\tprivate JList jlt_disUsers;\n\tprivate JButton jbt_singlChat;\n\tprivate JScrollPane scrollPane_1;\n\tprivate Client client;\n\n\t@Override\n\tpublic void actionPerformed(ActionEvent e) {\n\t\tif (e.getSource() == jbt_clear) {\n\t\t\tjta_disMess.setText(\"\");\n\t\t}\n\t\tif (e.getSource() == jbt_trans) {\n\t\t\tString mess = jtf_inputMess.getText();\n\t\t\tmess.trim();\n\t\t\tjtf_inputMess.setText(\"\");\n\t\t\tif (mess.equals(\"\")) {\n\t\t\t\tJOptionPane.showMessageDialog(this, \"ܷͿϢ\");\n\t\t\t\tjtf_inputMess.setText(\"\");\n\t\t\t} else {\n\t\t\t\tclient.transMess(mess);\n\t\t\t}\n\t\t}\n\t\tif (e.getSource() == jbt_exit) {\n\t\t\tif (JOptionPane.OK_OPTION == JOptionPane.showConfirmDialog(this,\n\t\t\t\t\t\"ǷȷҪ˳ң\", \"ʾ\", JOptionPane.OK_CANCEL_OPTION)) {\n\t\t\t\tthis.setVisible(false);\n\t\t\t\tclient.exitChat();\n\t\t\t\tSystem.exit(0);\n\t\t\t}\n\t\t}\n\t\tif (e.getSource() == jbt_singlChat) {\n\t\t\tString user_names = (String) jlt_disUsers.getSelectedValue();\n\t\t\tif (user_names == null) {\n\t\t\t\tJOptionPane.showMessageDialog(this, \"δѡ\\nѡҪĶ\");\n\t\t\t} else {\n\t\t\t\tif (!client.c_singleFrames.containsKey(user_names)) {\n\t\t\t\t\tcreateSingleChatFrame(user_names);\n\t\t\t\t} else {\n\t\t\t\t\tclient.c_singleFrames.get(user_names)\n\t\t\t\t\t\t\t.setFocusableWindowState(true);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t@Override\n\tpublic void keyPressed(KeyEvent arg0) {\n\t\tif (arg0.getKeyCode() == KeyEvent.VK_ENTER) {\n\t\t\tif (arg0.getSource() == jtf_inputMess) {\n\t\t\t\tjbt_trans.doClick();\n\t\t\t}\n\t\t}\n\t}\n\n\t@Override\n\tpublic void keyReleased(KeyEvent arg0) {\n\t}\n\n\t@Override\n\tpublic void keyTyped(KeyEvent arg0) {\n\t}\n\n\tpublic void setDisMess(String substring) {\n\t\tint local = substring.indexOf(\"@chat\");\n\t\tjta_disMess.append(substring.substring(0, local) + \"\\n\");\n\t\tjta_disMess.setCaretPosition(jta_disMess.getText().length());\n\t}\n\n\tpublic void setDisUsers(String chat_re) {\n\t\tString[] infos = chat_re.split(\"@userlist\");\n\t\tString[] info = new String[infos.length / 2];\n\t\tfor (int i = 1; i < infos.length; i++) {\n\t\t\tint id_user = 0;\n\t\t\ttry {\n\t\t\t\tid_user = Integer.parseInt(infos[i]);\n\t\t\t\tif (client.getThreadID() == id_user) {\n\t\t\t\t\tif (!client.username.equals(infos[i - 1])) {\n\t\t\t\t\t\tJOptionPane.showMessageDialog(this,\n\t\t\t\t\t\t\t\t\"ͬû¼û˱\");\n\t\t\t\t\t\tclient.username = infos[i - 1];\n\t\t\t\t\t\tthis.setTitle(\"    \" + client.username);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\ti++;\n\t\t\t\t}\n\t\t\t} catch (Exception e) {\n\t\t\t}\n\t\t}\n\t\tif (infos.length == 2) {\n\t\t\tString[] s = new String[] {};\n\t\t\tif (!client.c_singleFrames.isEmpty()) {\n\t\t\t\tListModel list = jlt_disUsers.getModel();\n\t\t\t\tfor (int i = 0; i < list.getSize(); i++) {\n\t\t\t\t\tif (client.c_singleFrames.get(list.getElementAt(i)) != null) {\n\t\t\t\t\t\tclient.c_singleFrames.get(list.getElementAt(i))\n\t\t\t\t\t\t\t\t.setExitNotify();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tjlt_disUsers.removeAll();\n\t\t\tjlt_disUsers.setListData(s);\n\t\t} else {\n\t\t\tif ((infos.length / 2 - 1) < client.username_online.size()) {\n\t\t\t\t// \n\t\t\t\tList<String> rec = new ArrayList<String>();\n\t\t\t\tint i = 0;\n\t\t\t\tfor (; i < infos.length; i++) {\n\t\t\t\t\trec.add(0, infos[i++]);\n\t\t\t\t}\n\t\t\t\tfor (i = 0; i < client.username_online.size(); i++) {\n\t\t\t\t\tif (!rec.contains(client.username_online.get(i))) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tString name = client.username_online.get(i);\n\t\t\t\tclient.username_online.remove(i);\n\t\t\t\ttry {\n\t\t\t\t\tclient.clientuserid.remove(i);\n\t\t\t\t} catch (Exception e) {\n\t\t\t\t\te.printStackTrace();\n\t\t\t\t}\n\n\t\t\t\tif (client.c_singleFrames.containsKey(name)) {\n\t\t\t\t\tclient.c_singleFrames.get(name).closeSingleFrame();\n\t\t\t\t\tclient.c_singleFrames.remove(name);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tList<Integer> online = new ArrayList<Integer>();\n\t\t\t\tfor (int i = 0; i < client.username_online.size(); i++) {\n\t\t\t\t\tonline.add(0, client.clientuserid.get(i));\n\t\t\t\t}\n\t\t\t\tif (online.isEmpty()) {\n\t\t\t\t\tfor (int i = 1; i < infos.length; i++) {\n\t\t\t\t\t\tif ((int) Integer.parseInt(infos[i]) != client\n\t\t\t\t\t\t\t\t.getThreadID()) {\n\t\t\t\t\t\t\tclient.username_online.add(0, infos[i - 1]);\n\t\t\t\t\t\t\tclient.clientuserid.add(0,\n\t\t\t\t\t\t\t\t\tInteger.parseInt(infos[i]));\n\t\t\t\t\t\t}\n\t\t\t\t\t\ti++;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfor (int i = 1; i < infos.length; i++) {\n\t\t\t\t\t\tif (Integer.parseInt(infos[i]) != client.getThreadID()) {\n\t\t\t\t\t\t\tif (!online.contains(Integer.parseInt(infos[i]))) {\n\t\t\t\t\t\t\t\tclient.username_online.add(0, infos[i - 1]);\n\t\t\t\t\t\t\t\tclient.clientuserid.add(0,\n\t\t\t\t\t\t\t\t\t\tInteger.parseInt(infos[i]));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tString name = client.username_online\n\t\t\t\t\t\t\t\t\t\t.get(client.clientuserid\n\t\t\t\t\t\t\t\t\t\t\t\t.indexOf(Integer\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.parseInt(infos[i])));\n\t\t\t\t\t\t\t\tif (!name.equals(infos[i - 1])) {\n\t\t\t\t\t\t\t\t\tif (client.c_singleFrames.containsKey(name)) {\n\t\t\t\t\t\t\t\t\t\tClient_singleFrame cf = client.c_singleFrames\n\t\t\t\t\t\t\t\t\t\t\t\t.get(name);\n\t\t\t\t\t\t\t\t\t\tcf.setTitle(name);\n\t\t\t\t\t\t\t\t\t\tclient.c_singleFrames.remove(name);\n\t\t\t\t\t\t\t\t\t\tclient.c_singleFrames.put(name, cf);\n\t\t\t\t\t\t\t\t\t\tcf.setVisible(false);\n\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tclient.username_online.remove(name);\n\t\t\t\t\t\t\t\t\tclient.clientuserid.remove(new Integer(\n\t\t\t\t\t\t\t\t\t\t\tInteger.parseInt(infos[i])));\n\t\t\t\t\t\t\t\t\tclient.username_online.add(0, infos[i - 1]);\n\t\t\t\t\t\t\t\t\tclient.clientuserid.add(0,\n\t\t\t\t\t\t\t\t\t\t\tInteger.parseInt(infos[i]));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\ti++;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tfor (int i = 0; i < client.username_online.size(); i++) {\n\t\t\t\t\tinfo[i] = client.username_online.get(i);\n\t\t\t\t}\n\n\t\t\t} catch (Exception e) {\n\t\t\t}\n\t\t\tjlt_disUsers.removeAll();\n\t\t\tjlt_disUsers.setListData(info);\n\t\t}\n\t}\n\n\tpublic void closeClient() {\n\t\tJOptionPane.showMessageDialog(this, \"ѹر\", \"ʾ\",\n\t\t\t\tJOptionPane.OK_OPTION);\n\t\tclient.exitClient();\n\t\tsetVisible(false);\n\t}\n\n\t@Override\n\tpublic void valueChanged(ListSelectionEvent e) {\n\t\tif (e.getSource() == jlt_disUsers) {\n\t\t}\n\t}\n\n\tpublic void createSingleChatFrame(String name) {\n\t\tClient_singleFrame c_singlFrame = new Client_singleFrame(client, name);\n\t\tclient.c_singleFrames.put(name, c_singlFrame);\n\t\ttry {\n\t\t\tc_singlFrame.userThreadID = client.clientuserid\n\t\t\t\t\t.get(client.username_online.indexOf(name));\n\t\t} catch (Exception e) {\n\t\t}\n\n\t\tc_singlFrame.setVisible(true);\n\t}\n\n\tpublic void setSingleFrame(String chat_re) {\n\t\tString[] infos = chat_re.split(\"@single\");\n\t\ttry {\n\t\t\tif (client.c_singleFrames.containsKey(infos[0])) {\n\t\t\t\tclient.c_singleFrames.get(infos[0]).setDisMess(infos[3]);\n\t\t\t} else {\n\t\t\t\tcreateSingleChatFrame(infos[0]);\n\t\t\t\tclient.c_singleFrames.get(infos[0]).setDisMess(infos[3]);\n\t\t\t}\n\t\t} catch (Exception e) {\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "day26/resource/chat_socket_client/src/com/elient/Client_enterFrame.java",
    "content": "package com.elient;\n\nimport javax.swing.JFrame;\nimport javax.swing.JLabel;\nimport javax.swing.JOptionPane;\nimport javax.swing.UIManager;\nimport javax.swing.UnsupportedLookAndFeelException;\n\nimport java.awt.Font;\nimport java.awt.Toolkit;\nimport java.awt.event.ActionEvent;\nimport java.awt.event.ActionListener;\nimport java.awt.event.KeyEvent;\nimport java.awt.event.KeyListener;\nimport java.awt.event.WindowAdapter;\nimport java.awt.event.WindowEvent;\nimport java.net.Inet4Address;\nimport java.net.UnknownHostException;\n\nimport javax.swing.JTextField;\nimport javax.swing.JButton;\n\npublic class Client_enterFrame extends JFrame implements ActionListener, KeyListener{\n\tpublic Client_enterFrame(Client client) {\n\t\tthis.client = client;\n\t\ttry {\n\t\t\tUIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());\n\t\t} catch (ClassNotFoundException e1) {\n\t\t\te1.printStackTrace();\n\t\t} catch (InstantiationException e1) {\n\t\t\te1.printStackTrace();\n\t\t} catch (IllegalAccessException e1) {\n\t\t\te1.printStackTrace();\n\t\t} catch (UnsupportedLookAndFeelException e1) {\n\t\t\te1.printStackTrace();\n\t\t}\n\t\tsetIconImage(Toolkit.getDefaultToolkit().getImage(\"Images/socket.jpg\"));\n\t\tsetTitle(\"\\u804A\\u5929\\u5BA4\");\n\t\tgetContentPane().setLayout(null);\n\t\tsetSize(296, 249);\n\t\tWinCenter.center(this);\n\t\tsetResizable(false);\n\t\taddWindowListener(new WindowAdapter() {\n\t\t\t@Override\n\t\t\tpublic void windowClosing(WindowEvent e) {\n\t\t\t\tjbt_exit.doClick();\n\t\t\t}\n\t\t});\n\t\t\n\t\tJLabel lblNewLabel = new JLabel(\"\\u7528\\u6237\\u540D\");\n\t\tlblNewLabel.setFont(new Font(\"\", Font.PLAIN, 14));\n\t\tlblNewLabel.setBounds(23, 30, 81, 34);\n\t\tgetContentPane().add(lblNewLabel);\n\t\t\n\t\tjtf_username = new JTextField();\n\t\tjtf_username.addKeyListener(this);\n\t\tjtf_username.setBounds(114, 30, 143, 34);\n\t\tgetContentPane().add(jtf_username);\n\t\tjtf_username.setColumns(10);\n\t\t\n\t\tJLabel lblNewLabel_1 = new JLabel(\"\\u670D\\u52A1\\u5668\\u5730\\u5740\");\n\t\tlblNewLabel_1.setFont(new Font(\"\", Font.PLAIN, 14));\n\t\tlblNewLabel_1.setBounds(23, 74, 81, 34);\n\t\tgetContentPane().add(lblNewLabel_1);\n\t\t\n\t\tjtf_hostIp = new JTextField();\n\t\tjtf_hostIp.setBounds(114, 74, 143, 34);\n\t\tjtf_hostIp.addKeyListener(this);\n\t\tgetContentPane().add(jtf_hostIp);\n\t\ttry {\n\t\t\tString ip = (String)Inet4Address.getLocalHost().getHostAddress();\n\t\t\tjtf_hostIp.setText(ip);\n\t\t} catch (UnknownHostException e) {\n\t\t\te.printStackTrace();\n\t\t}\n\t\tjtf_hostIp.setColumns(10);\n\t\t\n\t\tJLabel lblNewLabel_2 = new JLabel(\"\\u7AEF\\u53E3\\u53F7\");\n\t\tlblNewLabel_2.setFont(new Font(\"\", Font.PLAIN, 14));\n\t\tlblNewLabel_2.setBounds(23, 118, 81, 34);\n\t\tgetContentPane().add(lblNewLabel_2);\n\t\t\n\t\tjtf_hostPort = new JTextField();\n\t\tjtf_hostPort.addKeyListener(this);\n\t\tjtf_hostPort.setBounds(114, 118, 143, 34);\n\t\tgetContentPane().add(jtf_hostPort);\n\t\tjtf_hostPort.setText(\"5000\");\n\t\tjtf_hostPort.setColumns(10);\n\t\t\n\t\tjbt_enter = new JButton(\"\\u8FDB\\u5165\\u804A\\u5929\\u5BA4\");\n\t\tjbt_enter.addActionListener(this);\n\t\tjbt_enter.addKeyListener(this);\n\t\tjbt_enter.setFont(new Font(\"\", Font.PLAIN, 14));\n\t\tjbt_enter.setBounds(23, 162, 108, 39);\n\t\tgetContentPane().add(jbt_enter);\n\t\t\n\t\tjbt_exit = new JButton(\"\\u9000\\u51FA\\u804A\\u5929\\u5BA4\");\n\t\tjbt_exit.setFont(new Font(\"\", Font.PLAIN, 14));\n\t\tjbt_exit.setBounds(144, 162, 113, 39);\n\t\tjbt_exit.addActionListener(this);\n\t\tgetContentPane().add(jbt_exit);\n\t}\n\n\t/**\n\t * \n\t */\n\tprivate static final long serialVersionUID = 1L;\n\tprivate JTextField jtf_username;\n\tprivate JTextField jtf_hostIp;\n\tprivate JTextField jtf_hostPort;\n\tprivate JButton jbt_enter;\n\tprivate JButton jbt_exit;\n\tprivate Client client;\n\n\n\t@Override\n\tpublic void actionPerformed(ActionEvent e) {\n\t\tif(e.getSource() == jbt_exit){\n\t\t\tsetVisible(false);\n\t\t\tclient.exitLogin();\n\t\t}\n\t\tif(e.getSource() == jbt_enter){\n\t\t\tString username = jtf_username.getText();\n\t\t\tusername.trim();\n\t\t\tString hostIp = jtf_hostIp.getText();\n\t\t\thostIp.trim();\n\t\t\tString hostPort = jtf_hostPort.getText();\n\t\t\thostPort.trim();\n\t\t\tif(!username.equals(\"\")){\n\t\t\t\tif(!hostIp.equals(\"\")){\n\t\t\t\t\tif(!hostPort.equals(\"\")){\n\t\t\t\t\t\tString login_mess = client.login(username, hostIp, hostPort);\n\t\t\t\t\t\tif(login_mess.equals(\"true\")){\n\t\t\t\t\t\t\tthis.setVisible(false);\n\t\t\t\t\t\t\tclient.showChatFrame(username);\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\tJOptionPane.showMessageDialog(this, login_mess);\n\t\t\t\t\t\t}\n\t\t\t\t\t}else{\n\t\t\t\t\t\tJOptionPane.showMessageDialog(this, \"Ӷ˿ںŲΪգ\");\n\t\t\t\t\t}\n\t\t\t\t}else{\n\t\t\t\t\tJOptionPane.showMessageDialog(this, \"ַΪգ\");\n\t\t\t\t}\n\t\t\t}else{\n\t\t\t\tJOptionPane.showMessageDialog(this, \"ûΪգ\");\n\t\t\t}\n\t\t}\n\t}\n\n\t@Override\n\tpublic void keyPressed(KeyEvent arg0) {\n\t\tif(arg0.getKeyCode() == KeyEvent.VK_ENTER){\n\t\t\tjbt_enter.doClick();\n\t\t}\n\t}\n\n\t@Override\n\tpublic void keyReleased(KeyEvent arg0) {}\n\n\t@Override\n\tpublic void keyTyped(KeyEvent arg0) {}\n}\n"
  },
  {
    "path": "day26/resource/chat_socket_client/src/com/elient/Client_singleFrame.java",
    "content": "package com.elient;\n\nimport java.awt.BorderLayout;\nimport java.awt.Component;\nimport java.awt.Container;\nimport java.awt.Toolkit;\nimport java.awt.event.ActionEvent;\nimport java.awt.event.ActionListener;\nimport java.awt.event.KeyEvent;\nimport java.awt.event.KeyListener;\nimport java.awt.event.WindowAdapter;\nimport java.awt.event.WindowEvent;\nimport java.io.IOException;\nimport java.text.SimpleDateFormat;\nimport java.util.Date;\n\nimport javax.swing.BorderFactory;\nimport javax.swing.JButton;\nimport javax.swing.JFrame;\nimport javax.swing.JOptionPane;\nimport javax.swing.JPanel;\nimport javax.swing.JScrollPane;\nimport javax.swing.JTextArea;\nimport javax.swing.JTextField;\nimport javax.swing.UIManager;\nimport javax.swing.UnsupportedLookAndFeelException;\n\npublic class Client_singleFrame extends JFrame implements ActionListener, KeyListener{\n\n\t/**\n\t * \n\t */\n\tprivate static final long serialVersionUID = 1L;\n\tprivate static JTextArea jta_disMess;\n\tprivate JTextField jtf_inputMess;\n\tprivate JButton jbt_trans;\n\t\n\tpublic int userThreadID = 0;\n\t\n\tprivate Client client;\n\tpublic Client_singleFrame(Client client, String title) {\n\t\tthis.client = client;\n\t\tinit(title);\n\t}\n\n\tprivate void init(String title) {\n\t\ttry {\n\t\t\tUIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());\n\t\t} catch (ClassNotFoundException e1) {\n\t\t\te1.printStackTrace();\n\t\t} catch (InstantiationException e1) {\n\t\t\te1.printStackTrace();\n\t\t} catch (IllegalAccessException e1) {\n\t\t\te1.printStackTrace();\n\t\t} catch (UnsupportedLookAndFeelException e1) {\n\t\t\te1.printStackTrace();\n\t\t}\n\t\tsetIconImage(Toolkit.getDefaultToolkit().getImage(\"Images/socket.jpg\"));\n\t\tWinCenter.center(this);\n\t\tsetTitle(title);\n\t\tsetSize(400, 400);\n\t\tsetResizable(false);\n\t\tsetContentPane(createContentPanel());\n\t\taddWindowListener(new WindowAdapter() {\n\t\t\t@Override\n\t\t\tpublic void windowClosing(WindowEvent e) {\n\t\t\t\tcloseSingleFrame();\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate Container createContentPanel() {\n\t\tJPanel jp = new JPanel();\n\t\tjp.setBorder(BorderFactory.createTitledBorder(\"Ϣ\"));\n\t\tjp.setLayout(new BorderLayout());\n\t\tjta_disMess = new JTextArea();\n\t\tjta_disMess.setEditable(false);\n\t\tjp.add(BorderLayout.CENTER, new JScrollPane(jta_disMess));\n\t\tjp.add(BorderLayout.SOUTH, createInput());\n\t\treturn jp;\n\t}\n\n\tprivate Component createInput() {\n\t\tJPanel jp = new JPanel();\n\t\tjp.setBorder(BorderFactory.createTitledBorder(\"Ϣ\"));\n\t\tjp.setLayout(new BorderLayout());\n\t\tjtf_inputMess = new JTextField();\n\t\tjtf_inputMess.addKeyListener(this);\n\t\tjbt_trans = new JButton(\"\");\n\t\tjbt_trans.addActionListener(this);\n\t\tjp.add(jtf_inputMess, BorderLayout.CENTER);\n\t\tjp.add(jbt_trans, BorderLayout.EAST);\n\t\treturn jp;\n\t}\n\n\t@Override\n\tpublic void keyPressed(KeyEvent arg0) {\n\t\tif(arg0.getKeyCode() == KeyEvent.VK_ENTER){\n\t\t\tif(arg0.getSource() == jtf_inputMess){\n\t\t\t\tjbt_trans.doClick();\n\t\t\t}\n\t\t}\n\t}\n\n\t@Override\n\tpublic void keyReleased(KeyEvent arg0) {}\n\n\t@Override\n\tpublic void keyTyped(KeyEvent arg0) {}\n\n\t@Override\n\tpublic void actionPerformed(ActionEvent e) {\n\t\tif(e.getSource() == jbt_trans){\n\t\t\tString str = jtf_inputMess.getText();\n\t\t\tstr.trim();\n\t\t\tjtf_inputMess.setText(\"\");\n\t\t\tif(str.equals(\"\")){\n\t\t\t\tJOptionPane.showMessageDialog(this, \"ϢΪ\");\n\t\t\t}else{\n\t\t\t\tSimpleDateFormat form = new SimpleDateFormat(\"yyyy-MM-dd  HH:mm\");\n\t\t\t\tString date = form.format(new Date());\n\t\t\t\tString mess = client.username + \"  \" + date + \"\\n\" + str;\n\t\t\t\tjta_disMess.append(mess + \"\\n\");\n\t\t\t\tjta_disMess.setCaretPosition(jta_disMess.getText().length());\n\t\t\t\tint index = client.username_online.indexOf(this.getTitle());\n\t\t\t\tString info = client.username + \"@single\" + client.getThreadID() + \"@single\" +\n\t\t\t\t\t\t\t\t(int)client.clientuserid.get(index) + \"@single\" + \n\t\t\t\t\t\t\t\tmess + \"@single\";\n\t\t\t\ttry {\n\t\t\t\t\tclient.dos.writeUTF(info);\n\t\t\t\t} catch (IOException e1) {\n\t\t\t\t\te1.printStackTrace();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic void setDisMess(String chat_re) {\n\t\tjta_disMess.append(chat_re + \"\\n\");\n\t\tjta_disMess.setCaretPosition(jta_disMess.getText().length());\n\t}\n\n\tpublic void closeSingleFrame(){\n\t\tclient.c_singleFrames.remove(this.getTitle());\n\t\tsetVisible(false);\n\t}\n\n\tpublic void setExitNotify() {\n\t\tjta_disMess.append(this.getTitle() + \".....\");\n\t\tjbt_trans.setEnabled(false);\n\t}\n}\n"
  },
  {
    "path": "day26/resource/chat_socket_client/src/com/elient/WinCenter.java",
    "content": "package com.elient;\n\nimport java.awt.Dimension;\nimport java.awt.Toolkit;\nimport java.awt.Window;\n\npublic class WinCenter {\n\tpublic static void center(Window win){\n\t\tToolkit tkit = Toolkit.getDefaultToolkit();\n\t\tDimension sSize = tkit.getScreenSize();\n\t\tDimension wSize = win.getSize();\n\t\tif(wSize.height > sSize.height){\n\t\t\twSize.height = sSize.height;\n\t\t}\n\t\tif(wSize.width > sSize.width){\n\t\t\twSize.width = sSize.width;\n\t\t}\n\t\twin.setLocation((sSize.width - wSize.width)/ 2, (sSize.height - wSize.height)/ 2);\n\t}\n}\n"
  },
  {
    "path": "day26/resource/chat_socket_server/.classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": "day26/resource/chat_socket_server/.project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>chat_socket_server</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": "day26/resource/chat_socket_server/.settings/org.eclipse.jdt.core.prefs",
    "content": "#Wed Oct 24 13:27:56 CST 2012\neclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.6\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.source=1.6\n"
  },
  {
    "path": "day26/resource/chat_socket_server/src/com/server/BroadCast.java",
    "content": "package com.server;\n\nimport java.io.IOException;\n\n\n\npublic class BroadCast extends Thread {\n\n\tClientThread clientThread;\n\tServerThread serverThread;\n\tString str;\n\tprivate boolean flag_exit = false;\n\tpublic BroadCast(ServerThread serverThread){\n\t\tthis.serverThread = serverThread;\n\t}\n\t\n\t@Override\n\tpublic void run() {\n\t\tboolean flag = true;\n\t\twhile(flag_exit){\n\t\t\tsynchronized (serverThread.messages) {\n\t\t\t\tif(serverThread.messages.isEmpty()){\n\t\t\t\t\tcontinue;\n\t\t\t\t}else{\n\t\t\t\t\tstr = (String)serverThread.messages.firstElement();\n\t\t\t\t\tserverThread.messages.removeElement(str);\n\t\t\t\t\tif(str.contains(\"@clientThread\")){\n\t\t\t\t\t\tflag = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tsynchronized (serverThread.clients) {\n\t\t\t\tfor(int i=0; i < serverThread.clients.size(); i++)\n                {\n                    clientThread = serverThread.clients.elementAt(i);\n                    if(flag){\n                    \ttry\n                        {\n                        \t//¼ÿһͻ˷Ϣ\n                            if(str.contains(\"@exit\")){\n                            \tserverThread.clients.remove(i);\n                            \tclientThread.closeClienthread(clientThread);\n                            \tclientThread.dos.writeUTF(str);\n                            }\n                            if(str.contains(\"@chat\") || str.contains(\"@userlist\") || str.contains(\"@serverexit\")){\n                            \tclientThread.dos.writeUTF(str);\n                            }\n                            if(str.contains(\"@single\")){\n                            \tString[] info = str.split(\"@single\");\n                            \tint id_thread = Integer.parseInt(info[2]);\n                            \tfor(int j = 0; j < serverThread.clients.size(); j++){\n                            \t\tif(id_thread == serverThread.clients.get(j).getId()){\n                            \t\t\tserverThread.clients.get(j).dos.writeUTF(str);\n                            \t\t\ti = serverThread.clients.size();\n                            \t\t\tbreak;\n                            \t\t}\n                            \t}\n                            }\n                        }\n                        catch(IOException E){}\n                    }else{\n                    \tString value = serverThread.users.get((int)clientThread.getId());\n                    \tif(value.equals(\"@login@\")){\n                    \t\tflag = true;\n                    \t\ttry\n                            {\n                            \t//¼ÿһͻ˷Ϣ\n                                clientThread.dos.writeUTF(str);\n                                if(str.contains(\"@exit\")){\n                                \tserverThread.clients.remove(i);\n                                \tclientThread.closeClienthread(clientThread);\n                                }\n                            }\n                            catch(IOException E){}\n                    \t\tbreak;\n                    \t}\n                    }\n                }\n\t\t\t}\n\t\t\tif(str.contains(\"@serverexit\")){\n\t\t\t\tserverThread.users.clear();\n\t\t\t\tflag_exit = false;\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic void setFlag_exit(boolean b) {\n\t\tflag_exit = b;\n\t}\n\n\tpublic void stopBroadCase() {\n\t\tflag_exit  = false;\n\t}\n}\n"
  },
  {
    "path": "day26/resource/chat_socket_server/src/com/server/ClientThread.java",
    "content": "package com.server;\n\nimport java.io.DataInputStream;\nimport java.io.DataOutputStream;\nimport java.io.IOException;\nimport java.net.Socket;\nimport java.text.SimpleDateFormat;\nimport java.util.Date;\n\n\npublic class ClientThread extends Thread {\n\n\tpublic Socket clientSocket;\n\tpublic ServerThread serverThread;\n\tpublic DataInputStream dis;\n\tpublic DataOutputStream dos;\n\tpublic String client_userID;\n\tprivate boolean flag_exit = false;\n\tpublic ClientThread(Socket socket, ServerThread serverThread){\n\t\tclientSocket = socket;\n\t\tthis.serverThread = serverThread;\n\t\ttry {\n\t\t\tdis = new DataInputStream(clientSocket.getInputStream());\n\t\t\tdos = new DataOutputStream(clientSocket.getOutputStream());\n\t\t} catch (IOException e) {\n\t\t\te.printStackTrace();\n\t\t}\n\t}\n\t\n\t@Override\n\tpublic void run() {\n\t\twhile(flag_exit){\n\t\t\ttry {\n\t\t\t\tString Message = dis.readUTF();\n\t\t\t\tif(Message.contains(\"@login\")){\n\t\t\t\t\tString [] userInfo = Message.split(\"@login\");\n\t\t\t\t\tint userID = Integer.parseInt(userInfo[1]);\n\t\t\t\t\tserverThread.users.remove(userID);\n\t\t\t\t\tif(serverThread.users.containsValue(userInfo[0])){\n\t\t\t\t\t\tfor(int i = 0; i < serverThread.clients.size(); i++){\n\t\t\t\t\t\t\tint id = (int)serverThread.clients.get(i).getId();\n\t\t\t\t\t\t\tif(serverThread.users.get(id).equals(userInfo[0])){\n\t\t\t\t\t\t\t\tserverThread.users.remove(id);\n\t\t\t\t\t\t\t\tserverThread.users.put(id, userInfo[0] + \"_\" + id);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tserverThread.users.put(Integer.parseInt(userInfo[1]), userInfo[0] + \"_\" + userInfo[1]);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tserverThread.users.put(userID, userInfo[0]);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tMessage = null;\n\t\t\t\t\tStringBuffer sb = new StringBuffer();\n\t\t\t\t\tsynchronized (serverThread.clients) {\n\t\t\t\t\t\tfor(int i = 0; i < serverThread.clients.size(); i++){\n\t\t\t\t\t\t\tint threadID = (int) serverThread.clients.elementAt(i).getId();\n\t\t\t\t\t\t\tsb.append((String)serverThread.users.get(new Integer(threadID)) + \"@userlist\");\n\t\t\t\t\t\t\tsb.append(threadID + \"@userlist\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tString userNames = new String(sb);\n\t\t\t\t\tserverThread.serverFrame.setDisUsers(userNames);\n\t\t\t\t\tMessage = userNames;\n\t\t\t\t}else{\n\t\t\t\t\tif(Message.contains(\"@exit\")){\n\t\t\t\t\t\tString [] userInfo = Message.split(\"@exit\");\n\t\t\t\t\t\tint userID = Integer.parseInt(userInfo[1]);\n\t\t\t\t\t\tserverThread.users.remove(userID);\n\t\t\t\t\t\tMessage = null;\n\t\t\t\t\t\tStringBuffer sb = new StringBuffer();\n\t\t\t\t\t\tsynchronized (serverThread.clients) {\n\t\t\t\t\t\t\tfor(int i = 0; i < serverThread.clients.size(); i++){\n\t\t\t\t\t\t\t\tint threadID = (int) serverThread.clients.elementAt(i).getId();\n\t\t\t\t\t\t\t\tif(userID == threadID){\n\t\t\t\t\t\t\t\t\tserverThread.clients.removeElementAt(i);\n\t\t\t\t\t\t\t\t\ti--;\n\t\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\t\tsb.append((String)serverThread.users.get(new Integer(threadID)) + \"@userlist\");\n\t\t\t\t\t\t\t\t\tsb.append(threadID + \"@userlist\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tString userNames = new String(sb);\n\t\t\t\t\t\tif(userNames.equals(\"\")){\n\t\t\t\t\t\t\tserverThread.serverFrame.setDisUsers(\"@userlist\");\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\tserverThread.serverFrame.setDisUsers(userNames);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tMessage = userNames;\n\t\t\t\t\t}else{\n\t\t\t\t\t\tif(Message.contains(\"@chat\")){\n\t\t\t\t\t\t\tString[] chat = Message.split(\"@chat\");\n\t\t\t\t\t\t\tStringBuffer sb = new StringBuffer();\n\t\t\t\t\t\t\tSimpleDateFormat form = new SimpleDateFormat(\"yyyy-MM-dd  HH:mm:ss\");\n\t\t\t\t\t\t\tString date = form.format(new Date());\n\t\t\t\t\t\t\tsb.append(chat[0] + \"  \" + date + \"\\n\");\n\t\t\t\t\t\t\tsb.append(chat[2] + \"@chat\");\n\t\t\t\t\t\t\tString str = new String(sb);\n\t\t\t\t\t\t\tMessage = str;\n\t\t\t\t\t\t\tserverThread.serverFrame.setDisMess(Message);\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\tif(Message.contains(\"@single\")){\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tsynchronized (serverThread.messages) {\n\t\t\t\t\tif(Message != null){\n\t\t\t\t\t\tserverThread.messages.addElement(Message);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(Message.contains(\"@exit\")){\n\t\t\t\t\tthis.clientSocket.close();\n\t\t\t\t\tflag_exit = false;\n\t\t\t\t}\n\t\t\t} catch (IOException e) {}\n\t\t}\n\t}\n\n\tpublic void closeClienthread(ClientThread clientThread) {\n\t\tif(clientThread.clientSocket != null){\n\t\t\ttry {\n\t\t\t\tclientThread.clientSocket.close();\n\t\t\t} catch (IOException e) {\n\t\t\t\tSystem.out.println(\"server's clientSocket is null\");\n\t\t\t}\n\t\t}\n\t\t\n\t\ttry {\n\t\t\tsetFlag_exit(false);\n\t\t} catch (Throwable e) {\n\t\t\te.printStackTrace();\n\t\t}\n\t}\n\n\tpublic void setFlag_exit(boolean b) {\n\t\tflag_exit = b;\n\t}\n}\n"
  },
  {
    "path": "day26/resource/chat_socket_server/src/com/server/Server.java",
    "content": "package com.server;\n\n\n\npublic class Server {\n\t\n\tprivate ServerFrame serverFrame;\n\tprivate ServerThread serverThread;\n\t\n\tpublic ServerFrame getServerFrame() {\n\t\treturn serverFrame;\n\t}\n\n\tpublic void setServerFrame(ServerFrame serverFrame) {\n\t\tthis.serverFrame = serverFrame;\n\t}\n\n\tpublic Server(){}\n\t\n\tpublic void startServer() {\n\t\ttry{\n\t\t\tserverThread = new ServerThread(serverFrame);\n\t\t}catch(Exception e){\n\t\t\tSystem.exit(0);\n\t\t}\n\t\tserverThread.setFlag_exit(true);\n\t\tserverThread.start();\n\t}\n\n\tpublic void stopServer(){\n\t\tsynchronized (serverThread.messages) {\n\t\t\tString str = \"@serverexit\";\n\t\t\tserverThread.messages.add(str);\n\t\t}\n\t\tserverThread.serverFrame.setDisMess(\"@exit\");\n\t\tserverThread.serverFrame.setDisUsers(\"@exit\");\n\t\tserverThread.stopServer();\n\t}\n\n\t\n\n\tpublic static void main(String[] args) {\n\t\tServer server = new Server();\n\t\tServerFrame serverFrame = new ServerFrame(server);\n\t\tserver.setServerFrame(serverFrame);\n\t\tserverFrame.setVisible(true);\n\t}\n\n\tpublic void close() {\n\t\tif(serverThread != null){\n\t\t\tif(serverThread.isAlive()){\n\t\t\t\tserverThread.stopServer();\n\t\t\t}\n\t\t}\n\t\tSystem.exit(0);\n\t}\n\t\n}\n"
  },
  {
    "path": "day26/resource/chat_socket_server/src/com/server/ServerFrame.java",
    "content": "package com.server;\n\nimport java.awt.Toolkit;\nimport java.awt.event.ActionEvent;\nimport java.awt.event.ActionListener;\nimport java.awt.event.WindowAdapter;\nimport java.awt.event.WindowEvent;\nimport java.util.ArrayList;\nimport java.util.List;\n\nimport javax.swing.BorderFactory;\nimport javax.swing.JFrame;\nimport javax.swing.JButton;\nimport javax.swing.JOptionPane;\nimport javax.swing.JScrollPane;\nimport javax.swing.JTextArea;\nimport javax.swing.JList;\nimport javax.swing.UIManager;\nimport javax.swing.UnsupportedLookAndFeelException;\n\npublic class ServerFrame extends JFrame implements ActionListener {\n\t\n\tprivate JButton jbt_start;\n\tprivate JButton jbt_stop;\n\tprivate JButton jbt_exit;\n\tprivate JTextArea jta_disMess;\n\tprivate JList jlt_disUsers;\n\t\n\tprivate Server server;\n\t\n\tpublic List<String> online_usernames;\n\tpublic List<Integer> online_usernameids;\n\tpublic ServerFrame(Server server) {\n\t\tthis.server = server;\n\t\tonline_usernames = new ArrayList<String>();\n\t\tonline_usernameids = new ArrayList<Integer>();\n\t\ttry {\n\t\t\tUIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());\n\t\t} catch (ClassNotFoundException e) {\n\t\t\te.printStackTrace();\n\t\t} catch (InstantiationException e) {\n\t\t\te.printStackTrace();\n\t\t} catch (IllegalAccessException e) {\n\t\t\te.printStackTrace();\n\t\t} catch (UnsupportedLookAndFeelException e) {\n\t\t\te.printStackTrace();\n\t\t}\n\t\tsetTitle(\"\\u670D\\u52A1\\u5668\");\n\t\tsetIconImage(Toolkit.getDefaultToolkit().getImage(\"Images/socket.jpg\"));\n\t\tsetSize(449, 301);\n\t\tsetResizable(false);\n\t\tWinCenter.center(this);\n\t\taddWindowListener(new WindowAdapter() {\n\t\t\t@Override\n\t\t\tpublic void windowClosing(WindowEvent arg0) {\n\t\t\t\tjbt_exit.doClick();\n\t\t\t}\n\t\t});\n\t\tgetContentPane().setLayout(null);\n\t\t\n\t\tjbt_start = new JButton(\"\\u542F\\u52A8\\u670D\\u52A1\\u5668\");\n\t\tjbt_start.setBounds(32, 23, 103, 34);\n\t\tjbt_start.addActionListener(this);\n\t\tgetContentPane().add(jbt_start);\n\t\t\n\t\tjbt_stop = new JButton(\"\\u505C\\u6B62\\u670D\\u52A1\\u5668\");\n\t\tjbt_stop.setBounds(145, 23, 103, 34);\n\t\tjbt_stop.setEnabled(false);\n\t\tjbt_stop.addActionListener(this);\n\t\tgetContentPane().add(jbt_stop);\n\t\t\n\t\tjbt_exit = new JButton(\"\\u9000\\u51FA\\u670D\\u52A1\\u5668\");\n\t\tjbt_exit.setBounds(258, 23, 103, 34);\n\t\tjbt_exit.addActionListener(this);\n\t\tgetContentPane().add(jbt_exit);\n\t\t\n\t\tJScrollPane scrollPane = new JScrollPane();\n\t\tscrollPane.setBounds(10, 64, 221, 192);\n\t\tscrollPane.setWheelScrollingEnabled(true);\n\t\tscrollPane.setBorder(BorderFactory.createTitledBorder(\"Ϣ\"));\n\t\tgetContentPane().add(scrollPane);\n\t\t\n\t\tjta_disMess = new JTextArea();\n\t\tscrollPane.setViewportView(jta_disMess);\n\t\t\n\t\tJScrollPane scrollPane_1 = new JScrollPane();\n\t\tscrollPane_1.setBounds(258, 65, 157, 191);\n\t\tscrollPane_1.setBorder(BorderFactory.createTitledBorder(\"û\"));\n\t\tgetContentPane().add(scrollPane_1);\n\t\t\n\t\tjlt_disUsers = new JList();\n\t\tjlt_disUsers.setVisibleRowCount(4);\n\t\tscrollPane_1.setViewportView(jlt_disUsers);\n\t}\n\n\t/**\n\t * \n\t */\n\tprivate static final long serialVersionUID = 1L;\n\n\t@Override\n\tpublic void actionPerformed(ActionEvent arg0) {\n\t\tif(arg0.getSource() == jbt_start){\n\t\t\tjbt_start.setEnabled(false);\n\t\t\tjbt_stop.setEnabled(true);\n\t\t\tserver.startServer();\n\t\t}\n\t\tif(arg0.getSource() == jbt_stop){\n\t\t\tint flag = JOptionPane.showConfirmDialog(this, \"ǷҪֹͣ\", \"\", \n            \t\tJOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);\n            if(flag == JOptionPane.OK_OPTION){\n            \tserver.stopServer();\n            \tjbt_start.setEnabled(true);\n            \tjbt_stop.setEnabled(false);\n            }\n\t\t}\n\t\tif(arg0.getSource() == jbt_exit){\n\t\t\tif(jbt_stop.isEnabled()){\n\t\t\t\tjbt_stop.doClick();\n\t\t\t}\n\t\t\tserver.close();\n\t\t}\n\t}\n\n\tpublic void setDisUsers(String userNames) {\n\t\tif(userNames.equals(\"@userlist\")){\n\t\t\tjlt_disUsers.removeAll();\n\t\t\tString[] user_null = new String[]{};\n\t\t\tjlt_disUsers.setListData(user_null);\n\t\t}else{\n\t\t\tif(userNames.contains(\"@userlist\")){\n\t\t\t\tString[] dis = userNames.split(\"@userlist\");\n\t\t\t\tString [] disUsernames = new String[dis.length / 2];\n\t\t\t\tint j = 0;\n\t\t\t\tfor(int i = 0; i < dis.length; i++){\n\t\t\t\t\tdisUsernames[j++] = dis[i++];\n\t\t\t\t}\n\t\t\t\tjlt_disUsers.removeAll();\n\t\t\t\tjlt_disUsers.setListData(disUsernames);\n\t\t\t}\n\t\t\tif(userNames.contains(\"@exit\")){\n\t\t\t\tString[] dis = {};\n\t\t\t\tjlt_disUsers.setListData(dis);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic void setDisMess(String message) {\n\t\tif(message.contains(\"@chat\")){\n\t\t\tint local = message.indexOf(\"@chat\");\n\t\t\tjta_disMess.append(message.substring(0, local) + \"\\n\");\n\t\t\tjta_disMess.setCaretPosition(jta_disMess.getText().length());\n\t\t}\n\t\tif(message.contains(\"@exit\")){\n\t\t\tjta_disMess.setText(\"\");\n\t\t}\n\t}\n\n\tpublic void setStartAndStopUnable() {\n\t\tJOptionPane.showMessageDialog(this, \"ͬʱ\");\n\t\tjbt_start.setEnabled(false);\n\t\tjbt_stop.setEnabled(false);\n\t}\n}\n"
  },
  {
    "path": "day26/resource/chat_socket_server/src/com/server/ServerThread.java",
    "content": "package com.server;\n\nimport java.io.IOException;\nimport java.net.ServerSocket;\nimport java.net.Socket;\nimport java.net.SocketException;\nimport java.util.HashMap;\nimport java.util.Map;\nimport java.util.Vector;\n\npublic class ServerThread extends Thread {\n\n\tpublic ServerSocket serverSocket;\n\tpublic Vector<String> messages;\n\tpublic Vector<ClientThread> clients;\n\tpublic Map<Integer, String> users;\n\tpublic BroadCast broadcast;\n\tpublic int Port = 5000;\n\tpublic boolean login = true;\n\tpublic ServerFrame serverFrame;\n\tprivate boolean flag_exit = false;\n\tpublic ServerThread(ServerFrame serverFrame){\n\t\tthis.serverFrame = serverFrame;\n\t\tmessages = new Vector<String>();\n\t\tclients = new Vector<ClientThread>();\n\t\tusers = new HashMap<Integer, String>();\n\t\ttry {\n\t\t\tserverSocket = new ServerSocket(Port);\n\t\t} catch (IOException e) {\n\t\t\tthis.serverFrame.setStartAndStopUnable();\n\t\t\tSystem.exit(0);\n\t\t}\n\t\tbroadcast = new BroadCast(this);\n\t\tbroadcast.setFlag_exit(true);\n\t\tbroadcast.start();\n\t}\n\t\n\t@Override\n\tpublic void run() {\n\t\tSocket socket;\n\t\twhile(flag_exit){\n\t\t\t\ttry {\n\t\t\t\t\tif(serverSocket.isClosed()){\n\t\t\t\t\t\tflag_exit = false;\n\t\t\t\t\t}else{\n\t\t\t\t\t\ttry{\n\t\t\t\t\t\t\tsocket = serverSocket.accept();\n\t\t\t\t\t\t}catch(SocketException e){\n\t\t\t\t\t\t\tsocket = null;\n\t\t\t\t\t\t\tflag_exit = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif(socket != null){\n\t\t\t\t\t\t\tClientThread clientThread = new ClientThread(socket, this);\n\t\t\t\t\t\t\tclientThread.setFlag_exit(true);\n\t\t\t\t\t\t\tclientThread.start();\n\t\t\t\t\t\t\tsynchronized (clients) {\n\t\t\t\t\t\t\t\tclients.addElement(clientThread);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsynchronized (messages) {\n\t\t\t\t\t\t\t\tusers.put((int) clientThread.getId(), \"@login@\");\n\t\t\t\t\t\t\t\tmessages.add(clientThread.getId() + \"@clientThread\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch (IOException e) {\n\t\t\t\t\te.printStackTrace();\n\t\t\t\t}\n\t\t}\n\t}\n\n\tpublic void stopServer() {\n\t\ttry {\n\t\t\tif(this.isAlive()){\n\t\t\t\tserverSocket.close();\n\t\t\t\tsetFlag_exit(false);\n\t\t\t}\n\t\t} catch (Throwable e) {}\n\t}\n\n\tpublic void setFlag_exit(boolean b) {\n\t\tflag_exit = b;\n\t}\n}\n"
  },
  {
    "path": "day26/resource/chat_socket_server/src/com/server/WinCenter.java",
    "content": "package com.server;\n\nimport java.awt.Dimension;\nimport java.awt.Toolkit;\nimport java.awt.Window;\n\npublic class WinCenter {\n\tpublic static void center(Window win){\n\t\tToolkit tkit = Toolkit.getDefaultToolkit();\n\t\tDimension sSize = tkit.getScreenSize();\n\t\tDimension wSize = win.getSize();\n\t\tif(wSize.height > sSize.height){\n\t\t\twSize.height = sSize.height;\n\t\t}\n\t\tif(wSize.width > sSize.width){\n\t\t\twSize.width = sSize.width;\n\t\t}\n\t\twin.setLocation((sSize.width - wSize.width)/ 2, (sSize.height - wSize.height)/ 2);\n\t}\n}\n"
  },
  {
    "path": "复习/day01review.txt",
    "content": "1\n\tչ\n\tӲ\n\t\n\t\n\tjavaԣƽ̨ԣȫ\n\t\tJames Gosling:java֮\n\n2ÿ̨\n\t̷ ð س뵽ĳ\n\tcd Ŀ¼\n\tcd ༶Ŀ¼\n\tdir ʾĿ¼µļ\n\tmd Ŀ¼\n\trd ɾĿ¼\n\tcls \n\texit ˳\n\t䣺rd -sɾʱѯ\n\t      rd -q -sֱɾѯ\n\n3JVMJRE,JDKߵ͹ϵ\n\tJVM:java֤javaԵĿƽ̨ͣΪͬĲϵͳṩͬJVM\n\tJRE:ʱJVMͺ\n\tJDK߰JREͿ\n\n4JDKأװж\n\n5\n\tpathΪexeļĿ¼\n\tʽ\n\t  (1)ڻpathjavacjavaڵĿ¼ǰ棬жᰴ˳\n\t  (2)JAVA_HOMEΪexeĿ¼ڣpath:%JAVA_HOME%\\bin;ԭ·\n\n\tclasspathΪclassļָĿ¼\n\n6HelloWorld\n\n7\n8\n9\n10ע\n\tעͷࣺ\n\t\tע  //\n\t\tע  /*   */\n\t\tĵע  /**  */\n\n\tע͵ã\n\t\t˵ĵߴĿĶ\n\t\tԳ\n\n11ؼ\n\tjavaбľ⺬ĵ\n\n\tؼ\n\t\n\tע\n\t\tgotoconstjavaеĹؼֱǲδʹ\n\n\n12ʶ\n\tʶڸ࣬ӿڣķ\n\n\tɹ\n\t\tӢĴСдĸ\n\t\t\n\t\t_$\n\tע\n\t\tֿͷ\n\t\tǹؼ\n\t\tϸִСд\n\n\t\n\t\tļУڽͬ\n\t\t\tȫСд\n\t\n\t\t߽ӿڣÿһĸд(һAPIṩӿ淶)\n\n\t\t߱׸Сдд\n\n\t\tд֮_"
  },
  {
    "path": "复习/day02review.txt",
    "content": "1\n\tԶ峣\n\tֵ\n\t\tַ\n\t\tַ\n\t\t\n\t\tС\n\t\tnullճ\n\n2ת\n\tƣ\n\t\tƣ0b\n\t\t˽ƣ0\n\t\tʮƣ0x\n\n\tƵʮƣ\n\t\tϵ*^Ȩη֮\t\n\n\tʮƵƣ\n\t\tȡֱΪ㣬ת\n\n\t8421룺ת\n\n3зʾ\n\tԭ룺Ʊʾ\n\t\tλ0\tλ1\n\t룺ԭһ\tλΪ1λλȡ\n\t룺ԭһ\tɷ1\n\n\n4\n\t֣\n\t\tbyte\t1\n\t\tshort\t2\n\t\tint\t4\n\t\tlong\t8\n\n\t\tboolean\t1\n\t\tchar\t2\n\t\tfloat\t4\n\t\tdouble\t8\n\n\tĬintdouble\n\tlongͣĩβlL(Ƽôд)\n\tfloatͣĩβfF\n\n\tͣ\n\t\t飬࣬ӿ\n\n5\n\tִйֵᷢ仯\n\n6ת\n\tʽת\n\t\tbyteshortchar->int->long->float->double\n\n\t\tlongΪʲôתfloat\n\t\t\t  floatײ洢ṹͬ\n\t\t\t  ʾݷΧfloat\n\t\tעӣȼٿռ\n\t\t\t  ӣȿռټ\n\tǿת\n\t\t\n\n7ֵ\n8\n\t+-*/%\t++ --Լǰ\n\t+= -= *= /= %=\n9ϵ\n\t>< == >= <= !=\n10߼\n\t& | ! ^\n\t&& ||ж·Ч"
  },
  {
    "path": "复习/day03review.txt",
    "content": "1Ŀ"
  },
  {
    "path": "复习/day19review.txt",
    "content": "1쳣\n\t쳣쳣ǳֲ\n\t\t  ೤гΣ\n\t쳣ࣺ\n\t\tThrowable\n\t\t     |---Error\n\t\t     |---Exception\n\t\t\t  |---RuntimeException  ʱ쳣 ԴҲԲ  ҪĴ\n\t\t\t  |---RuntimeException ʱ쳣  봦ͨ\n\n\t쳣ʽ\n\t\tJVMĬϴķʽ쳣Ϣ̨\n\t\tAtry...catch...finally...\n\t\t\tֱʹãtrycatchfinallyеһʹ\n\t\tfinallyص㣺finallyƵ嶼ִ\n\t\t\tעfinallyƵֻҪJVM˳֮ǰִ\n\t\t\t\n\t\tBthrows\n\t\t\tܴ쳣׳һmainеõmain\t\t\tJVM\n\t\n\t쳣ע\n\t\tJDK7ԣ\n\t\t\tcatch(쳣1 | 쳣2 |...  e):쳣\n\t\ttry...catchжcatchʱΧ쳣һ\n\n\t\t쳣ֻ׳븸ͬ쳣ڸ쳣쳣\n\t\t쳣ֻ׳븸ͬ쳣ڸ쳣쳣\n\t\tû쳣û׳쳣Ҳ׳쳣\n\n\tԶ쳣\n\t\t̳RuntimeExceptionException\n\t׳Զ쳣\n\t\tpublic class MyException extends Exception {\n\t\t\tpublic MyException() {\n\t\t\t\tsuper();\n\t\t\t}\n\t\t\tpublic MyException(String message) {\n\t\t\t\tsuper(message);//ϢĹ췽\n\t\t\t}\n\t\t}\n\n\t⣺finalfinalizefinally\n\t\t\tfinalʾյη\n\t\t\t\tࣺ಻ܱ̳\n\t\t\t\tγԱܱд\n\t\t\t\tγԱΪ\n\t\t\tfinalizeObjectķڵSystem\t\t\t\tgc()һ\n\t\t\tfinally쳣try...catch...finallyʹã쳣ǻִ\t\t\t\tĴ\n\t\t\n\t\tthrowsthrow\n\t\t\tthrowsϣ׳쳣öŸʾ\t\t\t\t쳣Ŀ\n\t\t\tthrow󣬺ֻһ󣬱ʾĳ־쳣\n\n\t\tfinallyеreturn֮ǰִ֮\n\t\t\treturnص㣬һ·\n\t\t\n2File\n\tڱʾļļе\n\t\n\t췽\n\t\tpublic File(String pathname)\n\t\tpublic File(String parent,String filename)\n\t\tpublic File(File file, String name)\n\t\tpublic File(URI uri):ͳһԴλԴͨ·ļļж\t\t\t\t\t\n\n\tԱ\n\t\tܣ\n\t\t\tpublic boolean createNewFile():ļ\n\t\t\tpublic boolean mkdir():Ŀ¼\n\t\t\tpublic boolean mkdirs():Ŀ¼\n\n\t\tɾܣ\n\t\t\tpublic boolean delete():ɾִļļ\n\t\t\tɾص㣺ɾվֱɾ\n\n\t\tжϹܣ\n\t\t\tpublic boolean isDirectory():жǷΪļ\n\t\t\tpublic boolean isFile():жǷΪļ\n\t\t\tpublic boolean exists():жǷ\n\t\t\tpublic boolean canWrite():Ƿд\n\t\t\tpublic boolean canRead():Ƿɶ\n\t\t\tpublic boolean isHidden():Ƿ\n\t\tܣ\n\t\t\tpublic boolean rename(String dest):·ͬ·ͬ\t\t\t\t\t\tк\n\n\t\tȡܣ\n\t\t\tpublic String getAbsolutePath():\n\t\t\tpublic String getName():\n\t\t\tpublic String getPath():\n\t\t\tpublic int length():ȡļС\n\t\t\tpublic long lastModified():޸ʱĺֵ\n\t\t߼ȡܣ\n\t\t\tpublic String[] list():ַ洢ĳĿ¼ļļ\n\t\t\tpublic File[] listFile():ļ洢ĳĿ¼ļļ\n\n\t\tļ\n\t\t\tpublic String[] list(fileNameFilter filter):\n\t\t\tpublic File[] listFile(fileNameFilter filter):\n\t\t\t\tfileNameFilterڲ࣬дaccept\n\t\t\t\t\tnew fileNameFilter(){\n\t\t\t\t\t public boolean accept(File dir,String name){\n\t\t\t\treturn new file().isFile() && name.endswit(\".jpg\");\n\t\t\t\t\t }\n\t\t\t\t\t}\n\t\tĳĿ¼JPGβļ"
  }
]