CodeGym /Java-blogg /Tilfeldig /Gammelt nivå 09
John Squirrels
Nivå
San Francisco

Gammelt nivå 09

Publisert i gruppen

Kunnskap vs. ferdigheter

Gammelt nivå 09 - 1College lærte oss at det ikke er noen stor forskjell mellom teori og praksis. Vel, du forstår sikkert at det ikke er det samme. Men du ser ikke kjerneforskjellen. Likevel er det en. De fleste setter likhetstegnet mellom "jeg vet" og "jeg kan". Gjør du? Hva med noen få eksempler?
  1. Jeg vet at røyking er dårlig for meg, men jeg røyker.
  2. Jeg vet at hurtigmat er dårlig for meg, men jeg spiser det.
  3. Jeg kjenner trafikkreglene, men jeg kan ikke kjøre.
  4. Jeg vet jogging er bra for meg, men jeg jogger ikke om morgenen.
Det hender ofte at folk tar "jeg vet" for "jeg kan". Det er et godt eksempel med trafikkregler. Hvis en person kjenner regelverket og vet hvordan man kjører, betyr det at han kan kjøre? Nei. Hva om han tror han vet hvordan han skal kjøre? Så hvorfor skulle han trenge en instruktør - han vet allerede alt. Når du er sikker på at du vet alt allerede, vil du sannsynligvis ikke lære noe nytt. Og hvis du er sikker på at du vet hvordan du gjør alt, vil du ikke studere. En tanke som dette vil ikke engang streife deg. Og det betyr at du vil gå glipp av alle de fantastiske mulighetene til å lære noe. Vanlig høyskole gir deg kun kunnskap; du må tilegne deg ferdigheter på egen hånd. Men hva hører jeg? Har du hatt praksis ved siden av teori på høgskolen din? Ok, hvis du studerte på fysikkfakultetet, lag en arbeidsmodell av en dampmaskin med en effektivitet på minst 20%. Jeg vedder på at du vet hvordan du gjør det, men du vil faktisk ikke kunne gjøre det, har jeg rett? Er du kjemiker ? Lag røykfritt pulver. Du vet hvordan, men du kan ikke, ha? Matematiker, er du? Beregn banen til et artillerigranat. Ikke glem å ta hensyn til formen på skallet. Matematiske prikker flyr ikke i det virkelige liv. Og det er ingen sfæriske hester. Gammelt nivå 09 - 2Biolog? Isoler penicillin. Denne formen vokser på meloner, så du vet. Du vet hvordan - fantastisk! Kan du gjøre det? Økonom?Lag en prognose for prisvekst på olje. Ferdig? Og gjør det nå til $2 000 eller $200 000 i året basert på prognosen din. Har du noen gang spilt på FOREX? For ekte penger? Eller vet du bare hva det er? Internasjonal økonomi? Fantastisk! Hvor åpner jeg et offshoreselskap? I Hong-Cong, Irland eller i USA. Hvorfor? Selv om du vet det, noe som er tvilsomt, vil du neppe klare det, siden du faktisk aldri har gjort det. Du har ikke engang en anelse om hvordan du gjør det. Å, du studerte ikke det på college? Hvilken rett har jeg til å gi deg oppgaver du ikke er forberedt på? For dette er oppgavene i det virkelige liv. Dette ER praksis , alt du har studert på høgskolen er: sfæriske hester, perfekt konkurranse – ingenting av det eksisterer i det virkelige liv. Men hvorfor har jeg glemt å nevnemarkedsføringsspesialist ? Hva er den beste måten å bruke mine $500 på, slik at så mange som mulig vet om forelesningene mine? På reklame? Er du klar over at ikke bare klassisk reklame allerede er utdatert, men også konseptet USP (unique selling proposition), som jeg er sikker på at du ble lært på college som et nesten unikt universalmiddel. Glem at du vet noe. Spør deg selv – hva kan jeg gjøre? Nyttig, mener jeg? Noe folk ville betale penger for? Gode ​​penger, mener jeg? Så venner, la oss uttrykke takknemlighet til et så fantastisk kurs som CodeGym. På grunn av det vil du ikke bare vite hvordan du programmerer, men du vil faktisk kunne gjøre det. Du vil også kunne få jobb og tjene gode penger om noen år. Jeg håper disse pengene rekker til å bo hyggelig og koselig. Jeg sier det igjen, så du husker: det spiller ingen rolle hva du vet. Det eneste som betyr noe er hvilke nyttige ferdigheter du har, de som folk gjerne vil betale deg. Jo før du forstår dette, jo bedre.

Du har nådd et nytt nivå

Nivå 9

Gammelt nivå 09 - 3

1 Risha, Stack trace

Gammelt nivå 09 - 4- Hei! I dag skal jeg fortelle deg hva stabelsporet er. Men la meg først forklare deg hva stakken er. - Se for deg en bunke med papirer - oppgaver til en bestemt kontorist. En ny oppgave kan legges på toppen av stabelen, og han vil ta en oppgave fra toppen av stabelen. Dermed vil ikke oppdrag gjøres etter førstemann til mølla. Hver gang ekspeditøren tar oppdraget som kommer sist. En slik samlingsstruktur kalles en stack . - I Java er det en spesiell samling - Stack. Denne samlingen har metoder «legg til et element» og «take(få/ta bort) et element». Som du allerede vet, blir det siste elementet lagt til først. - Nynne. Det er ikke vanskelig, antar jeg. - Fint. Så la meg forklare hva en stabelsporinger. - Tenk deg at i Java kaller funksjon А funksjon B , og sistnevnte kaller funksjon C , som i sin tur kaller funksjon D . Så, for å avslutte funksjon B , må du først avslutte funksjon C , og for å gjøre det må du avslutte funksjon D. Dette ligner veldig på en stabel. – Og hva er likheten? – I stabelen, for å komme til en bestemt oppgave, må du også fullføre alle oppgavene som er lagt på toppen. - Vel, det er litt av en analogi, men jeg er ikke sikker på om jeg forstår alt rett. - Se her. I Java er en stabel et sett med elementer. Det er som ark i en stabel. For å ta det tredje fra toppen må du ta det andre arket, men før det må du ta det første. Du kan alltid legge og ta ark, men du kan bare legge dem på toppen og ta bare fra toppen. Det samme gjelder funksjonsanropet. Funksjon А kaller funksjon B , sistnevnte kaller funksjon C. For å gå ut av А , må du først gå ut av B , og for å gjøre dette må du gå ut av C. - Vent litt. Hvis jeg fikk det riktig, blir hele bunken i «bare det siste arket som ble lagt på stabelen kan tas» og «først skal den sist kalte funksjonen avsluttes». Er det slik? - Ja. Så, sekvensen av funksjonsanrop er «funksjonsanropsstabelen», eller ganske enkelt «anropsstabelen». Funksjonen som kalles sist må avsluttes først. La oss se på eksemplet: Gammelt nivå 09 - 5- OK. Alt er klart med funksjonskallet, antar jeg. Men hva er dette StackTraceElement ? - Java virtuell maskin logger alle funksjonsanropene. For dette formålet har den en spesiell samling - stabel. Når en funksjon kaller en annen, plasserer JVM et nytt element StackTraceElement i denne stabelen. Når funksjonen avsluttes, slettes elementet fra stabelen. Dermed lagrer denne stabelen alltid oppdatert informasjon om den nåværende tilstanden til «funksjonsanropsstakken». - Hvert StackTraceElementinneholder informasjon om kalt metode. Så du kan få navnet på denne metoden ved å bruke getMethodName . - Eksemplet ovenfor viser det:
  1. Få «anropsstabelen»:
  2. Iterer matrisen ved å bruke løkken for hver . Jeg håper du ikke har glemt det.
  3. Skriv ut metodenavn til System.out .
– En interessant ting, og tilsynelatende lett. Takk, Risha!

2 Diego, Task on stack trace display

- Hei, Amigo! Her er en liten oppgave for å vise en stabelsporing på skjermen.
Oppgaver
1 Hver metode skal returnere sin StackTrace
Write fem metoder som kaller hverandre. Hver metode skal returnere sin StackTrace.
2 StackTrace igjen
Skriv fem metoder som kaller hverandre. Hver metode skal returnere navnet på den som ringer metoden. Du kan få anropsmetoden ved å bruke StackTrace.
3 Metoden skal returnere linjenummeret til koden denne metoden ble kalt fra
Skriv fem metoder som kaller hverandre. Hver metode skal returnere linjenummeret til koden denne metoden ble kalt fra. Bruk funksjonen element.getLineNumber() .
4 Stabelsporing av 10 anrop
Skriv kode for å få stabelsporing av 10 anrop.
5 Metoden skal returnere et resultat - stabelsporingsdybden
Skriv en metode som viser og returnerer stabelsporingsdybden. Stabelsporingsdybde er antallet av metodene (antall elementer i listen).

3 Elly, feil og unntak

- Hei, Amigo! I dag har vi en veldig interessant leksjon. Jeg skal fortelle deg om unntak. Unntak er en spesiell mekanisme for å kontrollere feil i programmet. Her er noen eksempler på feil som kan oppstå i programmet:
  1. Programmet prøver å skrive en fil til hele disken.
  2. Programmet prøver å kalle en metode for en variabel som lagrer nullreferansen.
  3. Programmet prøver å dele et tall med 0.
Disse handlingene resulterer i en feil. Vanligvis fører dette til stenging av et program – det er ingen vits å fortsette å kjøre koden. - Hvorfor det? – Er det noen vits i å vri på hjulet når bilen faller utfor stup? – Mener du at programmet skal avsluttes? - Ja. Sånn var det før. Enhver feil førte til avslutning av et program. – Det er en veldig smart avgjørelse. – Ville det ikke vært bedre å prøve å jobbe videre? - Ja. Du har skrevet inn en stor tekst i MS Word, lagret den, den har ikke blitt lagret, men programmet forteller deg at alt er i orden. Og du fortsetter å skrive. Dumt, ikke sant? - Ja. - Så kom programmerere med et interessant trekk:hver funksjon returnerte statusen til arbeidet sitt. 0 betydde at funksjonen fungerte som den skulle, en hvilken som helst annen verdi – at det var en feil : denne verdien var en feilkode. – Men denne tilnærmingen hadde en ulempe. Etter hvert (!) funksjonsanrop måtte du sjekke koden (nummeret) returnert av funksjonen. For det første var det upraktisk: feilhåndteringskoden ble sjelden utført, men du måtte alltid skrive den. For det andre returnerer funksjonene i seg selv ofte forskjellige verdier - hva skal man gjøre med dem? - Ja. Det var det jeg skulle spørre om. – Så kom en lys fremtid – unntak og feilhåndtering hadde dukket opp. Slik fungerer det:
  1. Når det oppstår en feil, oppretter Java Virtual Machine et spesielt objekt – et unntak – som inneholder all informasjon om feilen. For forskjellige feil er det forskjellige unntak.
  2. Så tvinger dette unntaket programmet til å avbryte gjeldende funksjon umiddelbart, og neste funksjon, til den avslutter hovedmetoden. Etter det avsluttes programmet. Java-utviklere kaller denne prosessen «ruller tilbake samtalestakken».
– Men du har sagt at programmet ikke kommer til å gå ut helt sikkert. – Det stemmer, for det er en måte å fange opp unntaket på. Når og hvor som helst du trenger, kan du skrive en spesiell kode for å fange opp disse unntakene og gjøre noe viktig. - For å gjøre dette, er det en spesiell konstruksjonsprøvefangst . Se hvordan det fungerer: Gammelt nivå 09 - 6- Hvorfor «Etter metode1-kalling. Vil aldri bli vist» vil ikke vises på skjermen? - Jeg er glad du spurte om det. I linje 25 er det en divisjon med null. Dette fører til en feil – et unntak. Java virtual machine opprettet objektet ArithmeticException som inneholder feilinformasjonen. Dette objektet er et unntak. - Et unntak skjedde i metoden method1() .Dette resulterte i umiddelbar avslutning av metoden. Det ville også føre til avslutning av metoden main , hvis det ikke var noen try-catch- blokk. - Hvis det oppstår et unntak inne i try-blokken, vil det bli fanget opp i catch- blokken. Resten av koden i blokkforsøket vil ikke bli utført, utførelsen av blokkfangsten vil starte umiddelbart. – Jeg skjønner ikke helt. - Med andre ord, denne koden fungerer slik:
  1. Hvis det oppstår et unntak inne i try- blokken, kjøres ikke koden i denne blokken lenger, men utførelsen av blokkfangsten starter .
  2. Hvis det ikke skjedde noe unntak, kjøres try-blokken til slutten , og catch blir aldri utført .
- Ahem! - Tenk deg at vi etter hvert metodekall sjekker om kalt metode avsluttet av seg selv eller på grunn av unntak. Hvis det var et unntak, begynner JVM å utføre blokkfangsten hvis den er tilgjengelig, og fanger opp et unntak. Hvis det ikke er noen catch-blokk, avslutter JVM den gjeldende metoden. Deretter begynner den samme kontrollen i metoden som kalte gjeldende metode. – Nå tror jeg at jeg har fått det til. - Det er greit. - Og hva er det unntaket i fangstblokken? Alle unntakene er klasser som er arvet fra klassen Unntak. Vi kan fange hvilken som helst av dem ved å spesifisere klassen i fangstenblokk, eller alle på en gang ved å spesifisere en felles overordnet klasse Unntak. Deretter, fra variabelen e (denne variabelen lagrer referansen til et unntaksobjekt) kan du få all nødvendig informasjon om feilen. - Flott! Og hva hvis det forekommer forskjellige unntak i min metode, kan jeg håndtere dem på forskjellige måter? - Du må. Du kan gjøre det slik: Gammelt nivå 09 - 7- Prøv-blokken kan inneholde flere fangstblokker , som hver vil fange opp unntak av sin type. - Umf. Vel, jeg skjønner det. Jeg kommer selvfølgelig ikke til å skrive noe slikt selv. Jeg vil imidlertid ikke bli redd hvis jeg møter en slik kode.

4 Elly, RuntimeException, kaster

Gammelt nivå 09 - 8– Jeg bestemte meg for å ta opp et annet tema i dag. I Java er alle unntak delt inn i to typer – kontrollert/kontrollert og ukontrollert/ukontrollert . Avmerkede unntak fanges opp, uavmerket kan fanges opp, men det er ikke nødvendig . – Er det mulig å kaste unntak i en kode med vilje? – I koden din kan du selv kaste unntak. Du kan til og med skrive dine egne unntak. Men vi kommer dypt ned i dette hullet senere. La oss nå lære hvordan du arbeider med unntakene fra Java Virtual Machine. - OK. - Hvis unntak ClassNotFoundException og FileNotFoundExceptionblir kastet (vises) i en metode, må programmereren spesifisere dem i signaturen til en metode (metodeoverskrift). Slike unntak kontrolleres. Det er slik det vanligvis ser ut: Gammelt nivå 09 - 9- Så, vi skriver bare kast og lister opp unntak atskilt med komma. Ikke sant? Er det slik? - Ja. Men det er en annen interessant ting. For at eksemplet nedenfor har blitt kompilert, må metoden som kaller metode1() enten fange opp disse unntakene eller kaste dem videre. Hvis du vil sende sjekket unntak fremover, må du spesifisere det i metodens overskrift . - Nok en gang, hvis du er i hovedmetoden , vil du kalle en metode som har i overskriftsfrasen kaster FileNotFoundException, ...da må du gjøre en av disse to tingene:
  1. for å fange unntak FileNotFoundException, …
    Du må pakke inn koden der du kaller en farlig metode med en try-catch- blokk
  2. for ikke å fange unntak FileNotFoundException, ...
Du må legge til disse unntakene til listen over kast i hovedmetoden din . – Vil du gi meg et eksempel? - Se her: Gammelt nivå 09 - 10- Dette eksemplet vil ikke bli kompilert, fordi metoden main kaller metoden method1(), som kaster unntak som må fanges opp. - For at eksemplet skal kompileres, må du legge til unntakshåndtering i metoden main . Du kan gjøre dette på to måter: Gammelt nivå 09 - 11- Og her fanger vi det med try-catch : Gammelt nivå 09 - 12- Det blir tydeligere, men veldig lite. - Se på eksemplet nedenfor: Gammelt nivå 09 - 13- Fortsatt er det et unntak - RuntimeException og klasser som er arvet fra det.Det er ikke nødvendig å fange eller kaste dem. Dette er ukontrollerte unntak. Disse unntakene anses som vanskelige å forutsi, så det er nesten umulig å forutsi deres forekomst. Du kan gjøre de samme tingene med dem, men det er ikke nødvendig å spesifisere dem i kast .

5 Risha, Rolling the call stack, hvordan gjøre det i unntak

– Jeg vil gjerne fortelle litt mer om hvordan unntak fungerer. Eksemplet nedenfor forklarer at: Gammelt nivå 09 - 14- Jeg skjønner det ikke. - Ok. Jeg skal forklare hva som skjer. – I eksempelet til venstre kaller vi flere metoder i kjedeordre. I metode2() oppretter og kaster vi spesifikt et unntak (for å starte en feil). – Eksempelet til høyre viser hva som skjer. Se på metode2() . Det er det opprettelse av et unntak forvandles til: vi lager et objekt av typen RuntimeException , lagrer det i et spesielt variabelunntak og avslutter umiddelbart metoden – return . - I metode1 , etter kallet til metode2, er det en sjekk,om det er et unntak eller ikke; hvis det er et unntak, avsluttes metode1 umiddelbart. Denne kontrollen gjøres implisitt etter å ha kalt hver (!) Java-metode. - Wow! - Nøyaktig. - I kolonnen til høyre i hovedmetoden skrev jeg hva som skjer når et unntak fanges opp av try-catch- blokken. Hvis det ikke var noe unntak, fortsetter koden å kjøre akkurat som planlagt. Hvis det var et unntak av typen spesifisert i catch , så håndterer vi det. - Og hva betyr kast og forekomst av ? - Se på den siste linjen til venstre, kast nye RuntimeException(s). På denne måten skaper og kaster vi et unntak. Dette er bare et eksempel. Vi vil ikke gjøre det så langt. - Ved å bruke kommandoen « а instans av B » i høyre blokk sjekker vi om objektet a har typen B . Det vil si om objektet som er lagret i variabelunntaket, har typen RuntimeException . Det er et logisk uttrykk. - Vel, det blir litt klarere.

6 Diego, Unntaksfangstoppgave

- Se her! Onkel Diego tok med noen få oppgaver med å fange for deg. Ønsker deg lykke til. Jeg tror du trenger det. Heh. Gammelt nivå 09 - 15- Hei, Amigo! Her er noen interessante unntaksfangstoppgaver.
Fangst opp oppgaver
1 1. Unntak når du opererer med tall
Fang unntaket som oppstår når du kjører koden:
int a = 42 / 0;
Vis unntaket på skjermen, spesifiser typen
2 2. Unntak når du opererer med strenger
Fang unntaket som oppstår når du kjører koden:
String s = null;
String m = s.toLowerCase();
Vis unntaket på skjermen, spesifiser typen.
3 3. Unntak ved drift med arrays
Fang unntaket som oppstår når koden kjøres:
int[] m = new int[2];
m[8] = 5;
Vis unntaket på skjermen, spesifiser typen.
4 4. Unntak når du opererer med List-samlinger.
Fang opp unntaket som oppstår når du kjører koden:
ArrayList<String> list = new ArrayList<String>();
String s = liste.get(18);
Vis unntaket på skjermen, spesifiser typen.
5 5. Unntak ved bruk av kartsamlinger.
Fang opp unntaket som oppstår når koden kjøres:
HashMap<String, String> map = new HashMap<String, String>(null);
map.put(null, null);
map.remove(null);
Vis unntaket på skjermen, spesifiser typen.
- Tips: skriv først et program, se deretter hvilket unntak som oppstår og endre deretter koden og fange opp det unntaket.

7 Risha, Hvordan multiple catch fungerer

Gammelt nivå 09 - 16- Nå, noen flere interessante forelesninger. Jeg liker å undervise så mye. – Jeg vil fortelle deg hvordan en multippelfangst fungerer . Egentlig er det veldig enkelt: når et unntak oppstår i blokken try , overføres programkjøringen til den første catch . - Hvis typen spesifisert i parentes til blokkfangsten er den samme som typen unntaksobjekt, starter kjøringen av koden inne i {}. Ellers går vi til neste fangst . Kontrollen gjentas der. - Hvis det ikke er flere fangstblokker , men unntaket ikke er fanget, blir det kastet frem, og den gjeldende metoden avbrytes. - Jeg skjønner. Den fangsten vil bli utført, hvis type samsvarer med typen unntak. - Ja, riktig. Egentlig er det litt mer komplisert: Poenget er at klassene kan arves fra hverandre. Hvis klassen «Ku» er arvet fra klassen «Dyr», kan objektet av typen «Ku» lagres ikke bare i en variabel av typen «Ku», men også i en variabel av typen «Dyr» . - Hva så? - Siden alle unntakene er arvet fra klassene Exception eller RuntimeException (som også er arvet fra Exception ), kan de alle fanges opp ved hjelp av kommandoene catch (Exception e) eller catch (RuntimeException e) . - Hva så? - Dette betyr at,For det første kan du fange ethvert unntak ved å bruke kommandoen catch(Exception e) . For det andre betyr rekkefølgen på fangblokkene . Eksempler: - Aritmetisk unntak som følge av divisjon med 0 fanges opp i den andre fangsten. Gammelt nivå 09 - 17- I eksemplet nedenfor er ArithmeticException fanget i den første catch , fordi klasser av alle unntakene er arvet fra Exception. Så, Exception fanger opp ethvert unntak . Gammelt nivå 09 - 18- I eksemplet nedenfor er unntaket ArithmeticException ikke fanget opp, men kastet videre til kallemetoden. Gammelt nivå 09 - 19– Vel, det blir klarere nå. Disse unntakene er ikke så enkle. – Det virker bare slik. Faktisk er det noe av det enkleste i Java. - Jeg er i tvil om jeg skal være fornøyd eller opprørt over det...

8 Diego, flere unntaksfangstoppgaver

- Hei, Amigo! I går ble jeg full og overkompliserte oppgavene dine, men jeg håper det ikke er noen harde følelser fra din side, og at du vil løse dem alle? Det er for ditt eget beste. Her:
Oppgaver
1 1. Unntak
Det er en metode som kaster to unntak som er arvet fra Exception , og de to andre arvet fra RuntimeException : NullPointerException , ArithmeticException , FileNotFoundException og URISyntaxException .

Du må fange NullPointerException og FileNotFoundException , men ikke fange ArithmeticException og URISyntaxException . Hvordan gjøre det?
2 2. Fange unntak
Det er tre unntak arvet sekvensielt fra Unntak :
klasse Unntak1 utvider Exception
class Exception2 utvider Exception1
klasse Exception3 utvider Exception2
Det er en metode som beskrives som følger:
public static void method1() kaster Exception1, Exception2, Exception3

Skriv en catch blokk for å fange opp alle de tre Unntak1 , Unntak2 og Unntak3
3 3. Å fange selektive unntak
1. Finn ut hvilke unntak som blir kastet av metoden BEAN.methodThrowExceptions .
2. Metoden processExceptions() skal kalle metoden BEAN.methodThrowExceptions og håndtere unntak:
2.1. hvis et unntak FileSystemException oppstår, logg det ved å kalle metoden BEAN.log og kast frem
2.2. hvis et unntak CharConversionException eller et annet IOException oppstår, bare logg det ved å kalle metoden BEAN.log
3. Legg til klassen/typen av unntaket du videresender i 2.1. til processExceptions()metodesignatur.
4. Håndter det gjenværende unntaket i metoden main() og logg det. Bruk try..catch

Tips:
Hvis du fanget unntaket MyException , som du ikke ville fange, kan du kaste det frem ved å bruke følgende kode:
catch (MyException e) {
throw e;
}
4 4. Fange sjekkede unntak
Håndter alle de sjekkede unntakene i metoden processExceptions() .
Du må vise på skjermen hvert avmerkede unntak som har skjedd.
Du kan bare bruke ett blokkforsøk .
5 5. Fange ukontrollerte unntak
Håndter alle ukontrollerte unntak i metoden processExceptions() .
Du må vise til skjermen et stabelspor av hvert oppstått unntak ved å bruke metoden printStack() .
Du kan bare bruke ett blokkforsøk .

9 Professor, Forelesning om unntak

– I dag har vi et superinteressant tema – unntak. På den tiden, da unge forskere og programmerere var dypt begeistret for dette emnet... - Beklager, jeg må gå til laboratoriet. Her er forelesningsnotater. Jeg tror du vil finne ut av det selv. Her: Java Exceptions (Oracle Documentation) Exception Handling i Java (Java T point) Java - Exceptions Handling (tutorials point) Basic Java Exception Handling

10 Julio

- Amigo, hva synes du om dagens leksjon? Har ikke positronhjernen din fungert ennå? Diegos oppgaver er nok til å slite ut hvem som helst. La oss ta en ølstund og slappe av. Står du fortsatt?

11 Kaptein Ekorn

- Hei, soldat! - God morgen, sir! - Jeg har noen fantastiske nyheter til deg. Her er en rask sjekk for å styrke ferdighetene dine. Gjør det hver dag, og du vil forbedre ferdighetene dine raskt. Oppgaver er spesielt designet for å gjøre i Intellij IDEA.
Ytterligere oppgaver å gjøre i Intellij Idea
1 1. Divisjon med null
Lag en metode offentlig statisk void divisionByZero() , hvor du må dele et hvilket som helst tall med null, og vise resultatet av delingen på skjermen.
Pakk divisionByZero() -metodekallet inn i en try..catch . Vis unntaksstabelsporingen på skjermen ved å bruke metoden exception.printStackTrace() .
2 2. Nedtelling fra 10 til 0
Skriv en løkke til nedtelling fra 10 til 0. Bruk Thread.sleep(100) for å lage en forsinkelse;
Pakk søvnsamtalen inn i et forsøk..fangst .
3 3. Pakk en metode inn i en try..catch
Les tall fra tastaturet. Skriv en kode for å lese tall fra tastaturet til en egen metode readData() .
Pakk inn hele denne metoden (hele koden inne i readData() -metoden, bortsett fra erklæringen av listen der tallene skal lagres) i en try..catch .

Hvis brukeren skriver inn litt tekst i stedet for å skrive inn et tall, må metoden fange opp unntaket og vise alle tall som er skrevet inn på skjermen.
Vis tall på skjermen. Hvert tall skal stå på en ny linje. Rekkefølgen på tallene skal være akkurat som den var i inndata.
4 4. Datokonverterer
Les fra tastaturet en dato i formatet «18.08.2013»
Vis til skjermen den datoen i form av «18.AUG, 2013».
Bruk objektene Date og SimpleDateFormat .
5 5. Vokaler og konsonanter
Skriv et program som leser linje fra tastaturet.
Programmet skal vise to strenger på skjermen:
1) den første strengen skal inneholde vokaler
2) den andre strengen skal inneholde konsonanter og tegnsettingstegn fra den angitte teksten.
Skille tegn med mellomrom.

Eksempelinngang:
Stopp se lytt
Eksempelutgang:
oooie
stplklstn
6 6. Historien om Rødhette
1. Det er fem klasser: Rødhette, bestemor, patty, vedhogger, ulv.
2. Hver klasse har to felt av typen ArrayList : drept og spist.
3. Nødvendige gjenstander er allerede opprettet (hette, bestemor, ...).
4. Skap det riktige forholdet (hvem spiste og drepte hvem) for å få logikken til «Rødhetten».
7 7. Flytt statiske modifikasjoner
Flytt statiske modifikatorer slik at koden kompileres.
8 8. Liste over matriser med tall
Lag en liste hvis elementer er matriser med tall. Legg til fem objektmatriser med lengde 5, 2, 4, 7, 0, henholdsvis. Fyll matriser med data og vis dem på skjermen.
9 9. Ti katter
Lag en klassekatt med et felt Strengnavn .
Lag en ordbok Kart<String, Cat> , legg til 10 katter på modellen «Name» - «Cat».
Få et sett med navn fra kartet og vis settet på skjermen.
– De oppgavene var for greener. Jeg la til bonusoppgaver med høyere kompleksitet. Kun for toppvåpen.
Bonusoppgaver
1 1. Programmet kompilerer og kjører ikke. Fiks det.
Oppgave: Programmet skal lese to filnavn fra tastaturet og kopiere den første filen til plasseringen spesifisert av det andre navnet.
2 2. Legg til ny funksjonalitet til programmet.
Gammel oppgave: Programmet skal lese to filnavn fra tastaturet og kopiere den første filen til plasseringen spesifisert av det andre navnet.
Ny oppgave: Programmet skal lese to filnavn fra tastaturet og kopiere den første filen til plasseringen spesifisert av det andre navnet.

Hvis filen (som skal kopieres) med det angitte navnet ikke eksisterer, bør programmet vise meldingen «File exists not not» på skjermen og prøve å lese filnavnet fra konsollen igjen før du leser filen navnet på den andre (mål)filen.
3 3. Lære og praktisere algoritme.
Les listen over ord og tall fra tastaturet. Vis på skjermen ord i stigende rekkefølge og tallene i synkende rekkefølge.

Eksempel på input:
Kirsebær
1
bønne
3
eple
2
0
vannmelon

Eksempel på utdata:
eple
3
bønne
2
kirsebær
1
0
vannmelon
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION