文档介绍:TheScalaAPITheScalaAPIScalahasareputationofbeingadifficultlanguageSomepeoplefeelthatScalaisbeyondwhattheaverageprogrammercanmasterOtherssayit’snomoredifficultthanJavaSomethingshavebeenadded,butalothasbeensimplifiedEveryoneagreesthattheScalaAPIishardertounderstandthantheJavaAPIThiscertainlymakesScalaseemmoredifficultthanitisYoudon’thavetounderstandeverythingaboutamethodinordertouseiteffectivelyThislectureisanattempttode-mystifytheScalaAPI*SearchingTheAPIissearchoriented;everyframehasasearchfieldYoucanclickonaletterandsearchformethods*panionobject*ObjectsAclassisatemplateforcreatingobjectsButifyouneedonlyoneobjectofagiventype,youcanjustcreateitdirectlyobjectInstructor{valname="DavidMatuszek"}Scalaprovidesanumberofpredefinedobjects,suchasConsoleobjectTryIt{defmain(args:Array[String]):Unit={valc=Console("Hello,console!")}}Hello,console!*ClassesAclassisatemplateforcreatingobjects;itmaytakeparametersClassesmaybemarkedascase,abstract,orfinalcaseclasseshavespecialfeaturesTocreateanobject,youmayomitthewordnewCaseclassescanbeusedinpatternmatchingCaseclasseshaveautomaticallygeneratedtoString,hashCode,andequalsmethods(whichusetheconstructorparameters)abstractclassescannotbeinstantiatedfinalclassescannotbesubclassed*CreatingnewobjectsfromclassesWhenyoudefineaclass,youusuallyusethewordnewtocreateobjectsofthatclassobjectTryIt{defmain(args:Array[String]):Unit={valt=newThing(1)}}classThing(number:Int){println(s"I'mThing$number!")}Ifyoumaketheclassacaseclass,youdon’tneedthewordnewobjectTryIt{defmain(args:Array[String]):Unit={valt=Thing(1)}}caseclassThing(number:Int){println(s"I'mThing$number!")}Bothobjectsproducethisoutput:I'mThing1!*CompanionobjectsandclassesIfaclassandanobjecthavethesamenameandaredefinedonthesamesourcefile,esstoallthefeaturesoftheotherobjectThing{privatevarcount=0defmain(args:Array[String]):Unit={newThing(1,2,3)println(s"That's$countThings!")}}classThing(valnumbers:Int*){for(n<-numbers){println(s"I'mThing$n!")+=1}}I