Programming MethodologyLecture26.docx

上传人:b****7 文档编号:10147627 上传时间:2023-02-08 格式:DOCX 页数:20 大小:29.34KB
下载 相关 举报
Programming MethodologyLecture26.docx_第1页
第1页 / 共20页
Programming MethodologyLecture26.docx_第2页
第2页 / 共20页
Programming MethodologyLecture26.docx_第3页
第3页 / 共20页
Programming MethodologyLecture26.docx_第4页
第4页 / 共20页
Programming MethodologyLecture26.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

Programming MethodologyLecture26.docx

《Programming MethodologyLecture26.docx》由会员分享,可在线阅读,更多相关《Programming MethodologyLecture26.docx(20页珍藏版)》请在冰豆网上搜索。

Programming MethodologyLecture26.docx

ProgrammingMethodologyLecture26

ProgrammingMethodology-Lecture26

Instructor(MehranSahami):

Allright.Welcomebackto?

whatkindofdayisitgoingtobein106a?

Anyonewantto?

fun-filledandexciting.Italwaysis.Thanksforplayingalong.Soacouplequickannouncementsbeforewestart.Oneannouncementisthatthereisonehandouttoday,soseveralpeoplehaveaskedinthepast,theseprogramsthatImakeintheseclassesarekindofcool.Iwouldliketobeabletosharethemwithmyfriendsandrelativesandwhoeverelse.We'regoingtotalkalittlebitabouthowyoudothattodayandwhatthatmeansunderneaththehood,butthehandoutactuallyexplainsitall.It'sthisnotionofajarfile.We'lltalkmoreaboutajarfileaswegoalong.

Thegraphicscontext,forthoseofyouwhoaredoingit,isduetoday.Justwondering,quickshowofhands,howmanypeopleenteredthegraphicscontest.Wow.NotasmanyasIwould'vethought.Therecouldbeacouplepeoplewhoareathome,evenifyoudon'twinofgetting100onthefinalinarandomdrawing.Sothat'sagoodsign.

OnethingIdowanttocheck,Ijustheardalittlebitbeforeclassthatsomefolkswerehavingsometroublesubmittingtheirgraphicscontestbecausethereactuallymighthavebeenanissuewiththeserverthattakessubmissions.Soifyousubmittedtothegraphicscontest,whetheryou'reinhereoryouhappentobewatchingthevideo,emailme,andletmeknowwhatthenameofyourcontestentrywas.Thatway,Iknowforsurethatweactuallygotallthecontestentriesthatwethinkwehad,andifwedidn'tgetone,Icanemailyouback.ThethingIwouldaskyouis,ifyoucan'temailmeanytimethisweekendbecausethisweekendisactually,whenwe'regoingtomakethefirstpasslookingoverallthecontestentries,andthenwe'regoingtohaveasmallpoolthatwe'lltaketothesectionleaders.Theywillvoteandgivethewinner.I'llannouncethewinnerinclassnextweek.

Imightshowademoofthewinningtwoaswell.Wemightdotherandomdrawinginclassaswelltoseewhoactuallygetsthethirdcovetedrandomdrawingspot,evenifyoudon'twin.Sopleaseemailmeifyouenteredthegraphicscontest,justtomakesure.

OneotherthingwithemailforSCPDstudents,Iknowit'sstillalittletooearlytothinkaboutfinalexams,butifyou'reanSCPDstudent,it'snottooearly.Ifyou'renotanSCPDstudent,it'snottooearly,either.ButforSCPDstudents,ifyou'retakingthefinalexam,ifyouplanoftakingitatyoursitesandyou'renotgoingtocomeoncampustotakeit,emailmeby5:

00p.m.December5,lettingmeknowthatyou'retakingitatyoursiteandthenameandemailofyoursitecoordinator,justlikethemidterm.Thatway,Icangettheinformationtoyoursitecoordinatorforthefinalwellbeforethefinal.

Ifyou'replanningoncomingoncampustotakethefinal,youcanfeelfreetosendmeanemailtosayyou'recomingoncampus.IfIdon'thearfromyou,Iwillassumeyou'recomingoncampus.Soyouonlyneedtoemailmeifyou'retakingitatyoursite,sopleasedothatifyou'reanSCPDstudentandyouplanontakingitatyoursite.

Anyquestionsaboutanythingwe'vedonesofarbeforewediveintoournextgreattopic?

Allright.

Oneofthethingsthatwe'vedonethewholetimeinthisclassisweusethesethingscalledtheACMlibraries.TheACMlibrariesareasetoflibrariesthatareactuallycreatedbyataskforceofpeople.TheACMistheAssociationofComputingMachinery.Wetalkedaboutthemattheverybeginningoftheclasswhenwetalkedabouttheselibraries.Theyputtogethersomenicelibrariesofstuffthatarereallyusefulforteaching,whichiswhyweusethem.

Today,whatI'mgoingtodoisliftalittlebitunderneaththehoodandtalkaboutstandardJava,whichiswhatyouwouldgetifyoudidn'tusetheACMlibrariesandyoujustusedthestandardJavalibraries.Now,there'snoreasonwhyyoucan'tcontinuetousetheACMlibrariesafterthisclass.They'rejustanothersetoflibrariesthatwerewrittenbyagroupofpeoplethatyou'recertainlywelcometouse.

Sothere'snoreasonwhyyoushouldstopusingthem,buttherewereacoupleimportantissuesrelatedtostandardJava.Nowit'stimeforyoutoknow.Sothefirstthingthat'srelatedtothinkingaboutstandardJavaiswhenyou'rerunningyourprograms,whenyougointoEclipseandyouclickonthelittlerunningguytocompileyourprograms.Itgiveyoualistofwhatclassesyouactuallymightwanttorun.

Ifyouonlyhaveoneproject,youmayonlygetonechoice,butoneofthethingsyoukindofthinkaboutisinthenamesurferprogram,Iactuallyhavefourorfivedifferentclasses.Howcomeitalwaysknewwhichclasstorun?

HowcomeitalwaysknewthenamesurferclasswastheclassthatIactuallyshouldrun?

Anyonewanttoventureaguess?

Student:

[Inaudible].

Instructor(MehranSahami):

It'stheonlyclasswith[inaudible]whichisveryrelatedtoanunderlyingissue.It'stheonlyclassthatactuallywasextendingprograms.Sooneoftheextendedprograms,whatactuallywashappeningintheseACMlibrariesisyouweregettingamethodcalledmain.Mainisactuallytheplace?

you'reoldenoughtoseemain.MainisactuallythemethodatwhichJavaclassesactuallystartrunning.

Sooneofthethingsyoushouldthinknow,youneverwroteamethodcalledmain.Ineversawamethodcalledmain,andyou'retellingmethat'swhereJavaprogramsactuallystartrunning.Yeah,infactitis.It'sbecauseprogramsprovidedthismainmethodforyou.Whatthismainmethoddidintheprogramwasessentiallygettherestofyouprogramrunningbygettingafewthingssetupandthenkickingoffyourrunmethod.Soyoudidn'tactuallyneedtoworryaboutthis.

Butnowyou'resortofoldenoughtoactuallyseewhatthatmainmethodisallabout.Soifwethinkaboutwhatthismainmethoddoes,theheaderforthemainmethodisalsokindofweird.Thisispartofthereasonwhywenevershowedyouthemainmethodbefore.Theheaderforthemainmethodisactuallypublicstaticvoidmain,butwe'renotdoneyet.Mainactuallyhassomearguments.Ithasanarrayofstringscalledargsandarguments,andthensomethinginherehappensinsideofme.

Ifweshowedthistoyouonthefirstday,wewould'vehadtogothroughandexplainwhatallthesewordsmeantbeforeweexplainedwhatmainevenwas,beforeweexplainedhowyouwriteyourfirstprogram.Thatwould'vebeenapain.Nowwecanjusttellyou.Publicmainsisapublicmethod.Youknowthat.Youprobablyrecalltheotherpublicmethodsyou'vewritten.Staticmeansthatthisisactuallyamethodthatbelongstotheclass?

it'snotsomethingthatyouwouldactuallycallonaparticularobject.

Soyouneverhavesomeobject?

like,here'smyobjectX,andIcallX.main.Mainisjustsomethingthatgetscalled.It'saclassmethodasopposedtobeingamethodthatgetscalledonaninstance.Voidmeansitjustreturnsnothing.

Whatisgettingpassedinhereisanarrayofstrings.Whereisthatarrayofstringscomingfrom?

Thisactuallyharksbacktowhencomputersweren'tallniceandgraphicalandeverything.Whenpeoplewroteprograms,thewroteprogramandweretypingonwhat'scalledacommandline.Theywrongthenameoftheprogramout.Theyactuallytypedit,andthentheytypedabunchofthingsthattheywantedtobepassedintotheprogramsuchasinitialinformationtostartthatprogram.Thatwastheinitialthing,soifyouhadsomeprogramlikenamesurfer,youmightactuallystartoffbygivingthenameoftheprogram.

Thenafternamesurfer,youmightgiveitthenameofthedatafile,likedatadottext.Youmight'vegivenitsomeotherthingsaswellthatwereseparatedbyspaces.Thislistofstuffisessentiallywhatgetspassedinhereasarguments.They'restrings,andthisishowtheprogramwouldactuallyknowwhatcameinonthecommandlinewhentheprogramwaskickedoff.Java'snotthatoldofalanguage.Itsortofcamearoundandgainingpopularityin1995.Peopleweren'tdoingalotofthisin1995.Ialreadyhadmymouseandmyfoldersandallthisotherstuff,evenifyouweresixyearsold.Youprobablydid.

You'relike,Inevertypedthisstuff,sowhydoIcareaboutit?

ThereasonwhyJava'sderivedfromanotherlanguagecalledC,andthere'savariationcalledC++thatwascreatedwhenpeoplewerewritingprogramsinthedaysofyore.Thewholenotionofmainandhavingsomeargumentstogetpassedtomainkindofcamealongwiththebaggageofactuallyhavingaprogramlanguagethatmatchesthesamestyleprogramminglanguageswhentheydiddothis.

SoalotofthetimesinrealJavaprogramsthesedays,therearen'treallyanyarguments.Iftherearearguments,there'ssomesystemparametersorsomethinglikethat.Wedon'tusuallyworryaboutthem.SowhenyougoandlookatsomeotherJavaprogramthatisn'tusingtheACMlibrariesandyouseethismainthing,andyou'rewonderingwhatit'sallabout,youcanthinkofmainanalogouslytorun.It'sjustwherethewholetimeyou'vebeenthinkingofrunaswhereyou'reexecutionstarts,mainisreallywhereexecutionstarted.

Ifyouthinkaboutexecutionactuallystartedinmain,sohowdidthisthingactuallykickoffmyrunmethod?

Nowyou'resortofoldenoughtoseethat,too.Sowhatitactuallydid?

let'ssaythiswasthemainmethodissomethinglikenamesurfer.Sosomewhereinsideofaprogram,insideoftheACMlibrariesforprogram,wehadthismainmethodthatfiguredoutwhatthenameofyourclasswas.Essentially,ithadaone-linerinitthatwould'vebeenequivalenttothis.

Newnamesurferdotstartcards.Soit'saoneliner.Nowyouknowwhatthismeans.Whatwasitactuallydoing?

Whenmainst

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1