Test af It-komponent I programmeringssproget Java Programmet Login service Elev: Mads Funch Klasse 2.4 Mat, It, Programmering Skole: Roskilde Tekniske Gymnasium HTX Underviser: Karl Dato: 31-08-2016 Side 1 af 12
It- komponentens baggrund Hvordan kom det til? Java blev udviklet i årene mellem 1990 til 1995 af firmaet Sun Microsystems, med James Gosling som leder af projektet. Java er et objektorienteret programmeringssprog. Dette betyder at programmet betragter det område, som der er kodet for og skal ske noget med, som en mængde objekter. Programmeringssproget Java er desuden baseret på et andet programmeringssprog ved navn C++. Java blev først navngivet Oak, men dette navn var allerede i brug af et andet firma, så programmeringssproget Oak blev nødt til at skrifte navn, for ikke at bryde ophavsretten og valgte derfor at skrifte navn til Java, som programmeringssproget stadig kaldes i dag. Da programmet blev publiceret omkring år 1995, hvor deres mest kendte slogan var Write once, run anywhere. Grunden bag dette slogan, er at Java er meget kendt for ikke at skulle tage højre for forskellige maskiner eller styresystemer, når man skriver koden, idet at programmeringssproget Java, er udviklet med dette fokuspunkt. Et program kodet i Java kan derfor anvendes på alle styresystemer, så længe at styresystemet har en Java virtuel maskine (for at kunne læse Java-koden, bruges dette, da den analysrer, fortolker og oversætter koden til instruktioner til computeren), som mere eller mindre alle styresystemer har i dag. Ophavsmænd og licens Programmet Java er udviklet af et firma ved navn Standford University Netowork Microsystems (forkortes Sun Microsystems), som på nuværende tidspunkt ejes af It-firmate Oracle. Firmaet har desuden lavet styresystemet Solaris, samt tekstbehandlingsprogrammerne StarOffice og OpenOffice. Ud fra Java s egen hjemmeside, har de valgt at lave en underside med FAQ (Frequently Asked Questions = Ofte Stillede Spørgsmål), hvor de forklarer deres regler for brug af licens og distribution. På denne underside forklarer de at distributionen og licensreglerne af Java, både er lovlig at kopiere og installere på andre computere, heriblandt firmaers computere, at man må distribuere Java sammen med eget software og at man må kopiere Java på en cd, for derefter at installere det på f.eks. sit firmas computere. Typisk anvendelse og betydning for It Java er et af de største/bedste og mest kendte programmeringssprog ifølge mange programmører. Den primære funktion af programmet Java, er brugt til at udvikle applikationer/programmer i. Programmerne kan være alt fra spil til styresystemer og sikkerheden hos bankers webside, men mulighederne er uendelige og grænserne er kun sat af programmørerne. Side 2 af 12
Download og turtorials/information Til at downloade programmet Java, skal man først downloade Java JDK (Java Development Kit) også kaldet SDK (Standart Development Kit) på Javas egen hjemmeside: http://www.oracle.com/technetwork/java/javase/downloads/index.html. Herefter skal man downloade et IDE (Integrated Development Environment), som er selve det program, som man bruger til at programmere i. Dette program hjælper f.eks. en med selv at kompile koden og kan bl.a, også selv hjælpe med at slutte linjerne af din kode. Alt i alt gør dette program det lettere at kode, end hvis man ikke have kode i dette, men i f.eks. Notepad, hvor man selv skal gøre ovenstående, som programmet hjælper med. Til at programmere programmet Loginservice og HelloWorld applikationen i Java, har jeg primært lært den nødvendige kode ved at lære fra CodeAcademys praktiske guider på deres hjemmeside: https://www.codecademy.com/. Side 3 af 12
Login-service i Java og Hallo World applikation Åben programmet Java op, og luk eventuelle andre programmer ned, så man kan starte et nyt projekt For at starte et nyt projekt, skal man højreklikke ude i den venstre boks, hvorved at man bliver præcenteret for en række muligheder i den dialogboks som kommer frem. For at starte et nyt projekt, skal man markere og vælge muligheden new og derefter Java projekt. Side 4 af 12
Når man har valgt denne mulighed, vises denne boks. Her skal man skrive navnet på projektet, jeg kalder mit projekt LoginService, eftersom det beskriver mit projekt, og derefter gå videre, ved at trykke på knappen nederst til højre finish. Herefter laver man en såkaldt package, som man bruger til at sortere sine filer med i Java, og sørger for ikke at begrænse sine muligheder med programmet. Side 5 af 12
Efter at have valgt package, skal man angive navnet på denne package. Jeg har valgt navnet com.login, som pga. at have et punktum gør at man kommer dybere ind i filtræet, ved at det opretter en ny mappe, i den allerede eksisterende mappe for hele projektet. Side 6 af 12
Nu kan man vælge det projekt, som man skal til at lave, ved at åbne sit filtræ, hvor man højreklikker på den nyoprettede mappe og vælger at lave en ny classe. Man vælger først new og derefter class. Efter at have valgt denne mulighed, kommer der en boks op, som beder om et navn til denne nyoprettede class. Efter at have valgt navnet, trykker man på finish, for at komme videre. Det som man kommer videre til er følgende. Billedet viser hvordan en ny class ser ud. Der er fra start defineret at denne class kommer fra den package man først oprettede, og samtidig navnet på den class man lige har angivet navnet på og viser derved at det er den class, vil blive arbejdet med. Side 7 af 12
Hver gang man starter et nyt projekt, skal man angive starten af dette, for at programmet kan læse koden og vide hvad den skal gøre. Dette vil sige at selve programmet skal defineres/koden neden for dette, da det først er her programmet læser koden fra. Man skriver følgende: public static void main(string[] args) { } 1. Hvorved at public betyder at koden kan blive kaldt efter andre steder end denne class. 2. Hvorved at static betyder at der kun er en instence af den af den funktion, under hele programmets levetid. 3. Hvorved at void bruges til at definere en funktion, som ikke returnerer noget. 4. Hvorved at main(string[] args) definerer at args indeholder de givne argumenter kommende fra kommandopromten, som en array af String objekterne. 5. Hvorved at { og } definerer hvor at koden er Efter at have åbnet og oprettet overståedne filer, samt at skrive denne første linje i den nyoprettede class, er man nu klar til at begynde på selve den kode, som skal ende ud som en form for applikation/program - det er nu, at jeg skal til at kode en login-service med brugernavn og dertilhørende adgangskode. Side 8 af 12
Denne proces, som er beskrevet indtil nu, er grundlaget for Java-programmer (dog kalder man filerne andre navne, end beskrevet ovenfor, da det er filerne for en loginservice, der er beskrevet indtil nu) og derfor også en Hallo world applikation. En Hallo world applikation er et program, som man ofte bruger til at teste et nyt programmeringssprog i dette tilfælde programmet Java. Hallo world programmet anvendes til at teste et programmeringssprog, eftersom at det er et enkelt program, som giver brugeren en ide om hvordan programmeringssproget er bygget op, hvordan man anvender det og hvilke muligheder man har for at lave programmer i det. Den ny tilføjet kode, som ses på femte linje på skærmbilledet ovenfor (og gentaget nedenfor), er den nødvendige kode for en Hallo world applikation i Java. System.out.println( Hallo world ); Koden giver programmet informationen at systemet skal printe (vise) Hallo world og skifte line, hvis man skal printe mere ud. Det betyder at println = print og skift linje, at det der står inde i i parentes bliver printet og at system.out, er en kommando, for at programmet (sytemet) kan outputte (out) den efterfølgende kommando (println). Kort beskrevet, betyder koden, at programmet skal outputte det data, som står mellem ( og ), ved at printe (vise) det i konsollen. Side 9 af 12
Her ses programmet, efter at have kørt programmet. Som forventet giver programmet os teksten Hallo world. Nu er programmet blevet brugt til det mest basale, så nu kan man starte med et lidt mere advanceret program f.eks. en loginservice. Billedet ovenfor viser koden for førsteudgaven/implementeringen af loginservicen, og resultatet i Java-konsollen. Den første del af koden sørger for at man kan lave et userinput, her i form af at man kan altså skrive sit brugernavn. Derefter starter man et while loop, som forsætter den efterfølgende del, indtil at den enten ikke længere er true, eller man stopper den med at skrive break;. Inden i while-loopet printer man først Side 10 af 12
skriv brugernavn i konsollen, hvorefter at programmet laver en string af userinputtet. Herefter starter man et if-statement, altså sammenligner man om userinputtet, er identisk med det indkodet brugernavn. Her kommer en linje break;, som beskrevet ovenfor afslutter whileloopet. Den efterfølgende halvdel af koden (fra linje 16), er identisk med den beskrevet ovenfor, dog er denne kode, koden for adgangskoden til loginservicen, mens at den første halvdel er for brugernavnet. De sidste to linjer (fra linje 22), printer Du er nu logget ind i konsollen, såfremt at koden ovenfor er fuldendt (dvs. at brugernavnet og adgangskoden er korrekt, da while-loopet ellers henholdsvis, vil spørge efter et nyt brugernavn og en ny adgangskode). For at tillade systemet af have flere bruger (og derved flere adgangskoder), kan man i de to if-statements skrive (or-expression) og derefter det andet brugernavn/adgangskode. Ved at implementere dette i koden, skaber dog et problem. Man kan bruge begge adgangskoder til hver bruger, man har altså ikke en personlig adgangskode, men flere mulige. Side 11 af 12
Problemet er nu løst, efter et par tilføjelser og ændringer i koden. Jeg har oprettet et map. Et map indeholder en key med en value sat til denne key. Ved at bruge dette map, kan jeg nu sammenligne hvert brugernavn med hver adgangskode. Dette betyder at programmet ikke længere vil give Bruger2 adgang, ved at bruge adgangskoden til Bruger1 Derudover er der også tilføjet Line, efter input.next, for at programmet skifter linje i konsollen, hver gang der bliver kommer et input (også enter). Side 12 af 12