‫Welkom terug.
‫Het is weer tijd voor een uitdaging, en ik hoop dat het je lukt om de hele overervingsvideo te bekijken en te begrijpen
‫wat er aan de hand was en hoe je de post en de afbeeldingspost kunt maken en hoe ze met elkaar correleren, dus
‫hoe ze met elkaar verbonden zijn.
‫Dus die afbeeldingspost is de rijklasse en deed zich voor als de basisklasse, want nu is de kleine uitdaging
‫om een nieuwe klasse te creëren met de naam Videopost, een rijklasse met de eigenschapvideo die je URL en lengte
‫heeft.
‫Dit zijn dus unieke eigenschappen voor die videopost.
‫Dus stel je voor dat we nog steeds in dit soort dingen zitten en dat we normale berichten hebben die alleen tekst zijn
‫dan we hebben of die tekst kunnen zijn, maar ook iets anders.
‫Dan hebben we een afbeeldingspost die ook een afbeeldings-URL heeft.
‫En wat we nu willen hebben, is een videopost waarin we eigenlijk een video-URL hebben in plaats van
‫een afbeeldings-URL en ook de lengte van de video.
‫Dit is dus de informatie die we over elke videopost willen hebben.
‫Maak nu dus de vereiste constructors om een videopost te maken die overeenkomstig de stringmethode is
‫aangepast, omdat we in de afbeeldingspost hebben gezien dat de two string-methode wat meer informatie toevoegt op basis van de
‫informatie die hier al is verzonden.
‫Maar we willen nog meer weten over de videopost dan over de post.
‫Dus gewoon om de methode te stringen en vervolgens een instantie van videopost te maken.
‫Dus ongeveer hetzelfde als wat we hier deden met de afbeeldingspost.
‫Maak er gewoon een en rijd hem vervolgens op de console.
‫Dus misschien moet ik dat toevoegen en de methode met twee snaren gebruiken.
‫Als je dan zin hebt in een echte uitdaging, dan kun je doorgaan met de meer geavanceerde dingen.
‫Dus gebruik hier een timer en een callback-methode en je kunt het Googlen.
‫Je kunt gewoon ja, je kunt het zelf proberen of je kunt het googlen.
‫Het idee is dus dat onze videopost een methode heeft met de naam Afspelen en een die Stop en één keer
‫wordt genoemd.
‫Vervolgens moeten ze de huidige duur van de video schrijven.
‫Dus elke seconde dat er een vinkje zou moeten staan bij het schrijven op welke seconde van
‫de video we momenteel zijn en dan wordt er op één stop gedrukt, de timer wordt gestopt en er is ook een tekst geschreven, stop daarmee.
‫En dat is het beste met onze mensen.
‫En ja, dat is het zo'n beetje.
‫Dus speel de video af na het maken van de instantie en pauzeer deze wanneer de gebruiker op anarchie drukt of stop hem misschien
‫wanneer de gebruiker op een willekeurige toets drukt.
‫Dus met proces, elke toets, bedoel ik gewoon dat je daar een rode lijn hebt.
‫Dus houd het simpel of een riskantere beter.
‫Dus hou het gewoon simpel.
‫En dat is wat je hier ziet, zodat je later zelfs videospelers kunt maken.
‫Dus dat is eigenlijk maar een basisconcept en gebruik hier timers.
‫Maar zoals ik al zei, dit is het meer geavanceerde deel.
‫Als je er geen zin in hebt of als het te moeilijk is, dan is het ook goed.
‫Je kunt gewoon de video bekijken, maar ik raad je echt aan om dit te bekijken, omdat het je leert hoe je
‫timers en callbacks kunt gebruiken door er gewoon op te googlen.
‫En je kunt het beste gewoon zelf proberen om te ervaren hoe het werkt en dan zul je het de volgende keer dat
‫je timers wilt gebruiken zeker onthouden.
‫Oke.
‫Dus mogelijk, weet je, en probeer deze uitdaging aan te gaan.
‫Ik hoop dat je het al geprobeerd hebt, allereerst hebben we natuurlijk een nieuwe klas nodig.
‫En het wordt onze videopost en nu zou die videopost moeten erven van post en hier, zoals ik al
‫zei, zouden we een ander eigendom hebben of eigenlijk twee verschillende eigendommen, die we voorheen
‫niet hadden.
‫En een daarvan is de video die je een beveiligde stringvideo hebt.
‫Je bent L en het is een set krijgen, dan hetzelfde met de lengte beschermd int lengte met
‫een hoofdletter L. In het beste geval ook krijgen en instellen.
‫Vervolgens moeten we constructor.
‫Dus laten we hier een constructor maken, een openbare videopost en ik laat het weer leeg.
‫Dezelfde aanpak als in onze afbeeldingspost hier, waar we eenvoudig deze lege constructor hebben gemaakt omdat geen van beide
‫constructeurs een basisklasse aanroept.
‫Die van post zal zo genoemd worden, die hier.
‫Dus als we een entiteit hebben die u post, wordt de post-methode aangeroepen of de post-constructor
‫de standaard.
‫Maar we hebben er ook een waar we daadwerkelijk de benodigde informatie overhandigen.
‫Dus, bijvoorbeeld, voor een videobericht, wat daar interessant is, wel, het is aan de ene kant opnieuw de titel,
‫de tekenreekstitel en dan de gebruikersnaam.
‫Dus verzonden door gebruikersnaam, dan naar jou L-string video, je URL en de bool wordt gepubliceerd en zelfs de lengte zo in lengte
‫is hier ook handig.
‫Oke.
‫Dus nogal een lange constructor in termen van zijn parameters.
‫En nu moeten we natuurlijk deze stip gebruiken en natuurlijk is deze DOT, ID ophalen of volgende ID ophalen
‫hier ook vereist.
‫We willen dus geen ID maken die er al is.
‫We willen doorgaan en de volgende ID gebruiken.
‫En zoals je je misschien herinnert, keert de ingestelde volgende ID terug en verhoogt of verhoogt deze de huidige
‫post-ID, wat een statische variabele is.
‫Het is dus uniek voor dit hele programma, wat betekent dat het zal worden overschreven met de nieuwe waarde of dat we
‫zo ongeveer de nieuwe waarde zullen krijgen.
‫En het zal altijd maar één ID zijn.
‫Dus elke kant zal alleen maar uniek zijn en dat is hier heel belangrijk.
‫Dan wordt de titel titel en eigenlijk kunnen we zelfs doorgaan en dat vanaf hier kopiëren omdat het dezelfde
‫benadering is.
‫Rechts.
‫En.
‫We kunnen eenvoudig hier importeren en nu gaan we verder met onze unieke URL's, dus, um, eigendomsvideo, je URL
‫is lid van videopost en eigenlijk noemde ik het per ongeluk net gepubliceerd, maar het zou
‫als openbare videopost moeten zijn, maar niet van posten.
‫En dat wordt deze video.
‫Je URL wordt video YORO en deze lengte wordt een lengte.
‫Dus wat hier ook als argument wordt gegeven, moet worden meegenomen in de objecteigenschappen, namelijk lengte, video, URL en
‫natuurlijk degene die we van post hebben geërfd.
‫Oké, dus dat is onze constructor.
‫En nu hebben we een methode met twee snaren nodig.
‫Zoals we al zeiden, hebben we een specifieke string-methode nodig.
‫En het is het gemakkelijkst als we het gewoon uit de afbeeldingspost kopiëren en het opnieuw negeren.
‫Dus openbaar overschrijven string naar string.
‫Dus we overschrijven de methode van onze postklasse, wat betekent dat we deze methode hier overschrijven, die dat object opnieuw
‫overschrijft van het systeem.
‫Dus dat is het mooie van overerving die je kunt negeren en negeren.
‫Dus nu hebben we het tekenreeksformaat en het kan een beetje anders zijn.
‫Nou, anders.
‫We kunnen zelf beslissen of we dat willen of niet.
‫We kunnen de lengte hier insturen of we kunnen het laten zoals het is.
‫Het enige verschil is dus niet de afbeeldings-URL, maar de video die je nodig hebt.
‫En als je daar zin in hebt, kun je hier ook de lengte toevoegen.
‫Dus als u daarover wilt informeren.
‫Dus laten we dat misschien gewoon doen.
‫Misschien is het het makkelijkst om dat gewoon te doen.
‫En dat zal voor toen en hier zijn.
‫Ik ga gewoon dit toevoegen, die lengte en ik scheid door komma's.
‫Dus om het leesbaarder te maken, ga ik hier een tweede regel gebruiken.
‫Oké, dus dat is onze G-string-methode, en nu kunnen we doorgaan naar
‫onze post of eigenlijk in onze programmaklas en hier kunnen we een videopost, videopost maken.
‫We gaan het videopost noemen.
‫Een daarvan wordt een nieuwe videopost.
‫En we zouden zo door kunnen gaan.
‫Maar dan zou het een lege post zijn, dat is onze ID-zero post zoals deze hier, die net mijn eerste post heeft, als
‫geheel, het is openbaar en het is van Dennis Pennetta, maar dat is niet erg interessant.
‫Dus we gaan er een maken met onze eigen unieke waarden, die een unieke ID zullen hebben omdat we het op die manier hebben
‫gemaakt.
‫Dus we kunnen hier naar binnen.
‫En ik ga zeggen dat dit een mislukte video is en ik heb hem geüpload.
‫Dus dan is het geüpload en kun je het vinden onder https video dot com slash fail video of iets dergelijks.
‫Het is gewoon een nep-ID of een nep-link video dot com slash fail video.
‫En aangezien dit te lang is voor één rol, ga ik het over aan de volgende.
‫Wat we nu nodig hebben, als je het hier bekijkt, zijn er twee overbelastingen.
‫Dus laten we die van de opperheer eens bekijken.
‫We hebben aanvullende informatie nodig over de toegang en of deze openbaar is of niet.
‫Hier zijn we weer, publiek, en nu hebben we de lengte nodig.
‫Dus laten we zeggen dat deze video 15 seconden of misschien 10 seconden lang is.
‫Tien is prima.
‫Dus maak het gewoon 10 seconden lang.
‫En nu.
‫Dat was het zo'n beetje, dus we kunnen ons programma al starten en we zouden de informatie
‫over onze videopost moeten zien en natuurlijk ontbreekt het meer uitdagende deel nog steeds.
‫Dus daar zijn we.
‫Bekijk mijn nieuwe schoenen op afbeeldingen, punt com.
‫En eigenlijk noemen we de methode nog niet de two string methode.
‫Dus misschien moeten we dat doen.
‫En vervolgens moeten we deze videoberichten naar de string-methode noemen.
‫Oke.
‫Dus, tussen haakjes, als je je afvroeg hoe je een videokaart zou maken, je kunt zien dat er hier al meerdere methoden
‫zijn.
‫En we hebben die cijfers niet gemaakt.
‫Ze waren er gewoon.
‫En dat komt omdat we van post hebben geërfd, die dat object opnieuw van het systeem erft.
‫Trouwens, als je het ook bekijkt om er een te posten, plaats er dan een waarin je die methoden daar ook kunt zien.
‫Dus gelijk aan dat hash-code type update deze methoden, ze worden overgenomen van het systeem, die objectklasse.
‫Oke.
‫Dus nu hebben we de twee string.
‫Dus nu moeten we dat natuurlijk in een console stoppen.
‫Rechts.
‫En laten we deze code hier kopiëren en afbeeldingspost vervangen door video.
‫Plaats er een.
‫Oke.
‫En nu kunnen we ermee beginnen.
‫Daar zijn we.
‫Dus één ding is voor de verjaardagswensen, dan drie.
‫Zoals je kunt zien, heeft de videopost een andere I. D. dan onze afbeelding post.
‫Dus we hebben een, drie en twee.
‫Dat is gewoon de volgorde waarin we ze op de console schrijven.
‫Dus als je het hier bekijkt, het videobericht, ook al is het gemaakt na het afbeeldingsbericht dat we
‫eerder hebben afgedrukt, en dat geeft ons deze verkeerde volgorde als je wilt.
‫Maar de volgorde is niet zo belangrijk.
‫Als je goed bent, is het gebaseerd op wat je wilt laten zien.
‫Dus als je de afbeeldingen wilt tonen op basis van de volgorde waarin ze zijn gemaakt of de berichten in
‫het algemeen op basis van de volgorde waarin ze zijn gemaakt, of als je de nieuwste eerst wilt laten zien, dat soort dingen,
‫dan de volgorde van natuurlijk, zaken.
‫Maar in ons geval is het heel goed dat we het zo hebben.
‫U kunt dus zien dat de ID is ingesteld op het moment dat het object wordt gemaakt.
‫Dus ik deed er drie en ik deed er twee en niet op het moment dat het hier wordt genoemd, zoals de methode met twee
‫snaren.
‫Dus als u de juiste wilt hebben.
‫Volgorde voor de volgorde waarin ze zijn gemaakt, we zouden gewoon zo doorgaan en nu kunnen we één, twee en
‫drie zien.
‫Dus bedankt voor de verjaardagswensen dan onze afbeelding voor de nieuwe schoenen en de mislukte video van Dennis Panetta.
‫En zoals je hier kunt zien, wordt ook de lengte van tien verzonden.
‫Oke.
‫Dus dat was deel één.
‫En nu de meer geavanceerde uitdaging, namelijk het creëren van een timer en een callback-methode, die elke seconde wordt aangeroepen en
‫ons moet informeren over de duur van de video of de huidige duur van de video.
‫En natuurlijk moeten we de velden naar wens maken.
‫We hebben hier dus wat extra velden nodig.
‫We moeten bijvoorbeeld weten op welk punt in de video we ons bevinden.
‫Dus laten we doorgaan en laten we de velden voor de eigenschappen maken.
‫Dus hij heeft eigenschappen en laten we nu de ledenvelden maken.
‫En er wordt een beveiligde boolean afgespeeld, dat is handig, want als een video wordt afgespeeld, kun je
‫deze pauzeren.
‫Als het niet speelt, kun je stoppen met spelen.
‫Dus dat is echt belangrijk.
‫Dus als een video al wordt afgespeeld, zou je niet willen beginnen met spelen.
‫Daarom hebben we hier deze helper-boolean en dan hebben we een beschermde en cur-duur nodig.
‫Het is nu nul om de timer te bellen.
‫We creëren een nieuwe methode, laten we een openbare void play-methode maken en laten we ook de stop-methode maken.
‫Dus openbare leegte Stop.
‫Wat willen we hier nu doen?
‫Laten we eerst iets op de console schrijven, zoals spelen, zodat we weten, oké,
‫het spel is begonnen of speelt.
‫De video is gestart.
‫En hier wil ik de timer instellen en laten we eerst de timer maken.
‫Dus we hebben hier een timer nodig, een timer, en ik ga het een timer noemen.
‫Nu, om de timer te gebruiken, moeten we een systeem gebruiken dat threading, dat is degene die ik nodig heb om het systeem te
‫gebruiken, dat threading.
‫En wat we nu kunnen doen, is de timer initialiseren, op welke plaats je ook hebt gedrukt.
‫Dus timer wordt een nieuwe.
‫Timer, timer, callback zou de methode moeten zijn die wordt aangeroepen naar wat we hier moeten vermelden, waarvan ik alleen ga zeggen dat
‫het nu is.
‫Dus zoals je kunt zien, heb je een timer-callback nodig, dan heb je een object nodig.
‫Je moet tijd en een punt doen.
‫En de gepaste tijd is wanneer het zou moeten beginnen.
‫En de periode moet zijn hoe vaak moet worden herhaald of in welk tijdsbestek het moet worden herhaald.
‫Dus de juiste tijd ga ik het op nul zetten en de periode is 1000 milliseconden.
‫Dus nu moet ik natuurlijk deze timer-callback-methode hebben en ik ga gewoon door en creëer dat.
‫En het zou een privémethode moeten zijn, omdat ik niet wil dat iemand anders het alleen deze klasse zelf noemt.
‫Dus alleen ongeldige videopost zou deze timer-callback en de timer-callback moeten kunnen bellen.
‫Wel, het heeft een object nodig als parameter.
‫Ik ga gewoon zeggen, oh, ik ga het noemen.
‫Oh, en nu kan ik controleren of de huidige duur lager is dan de lengte van de video, dan wil
‫ik doorgaan en de huidige duur met één verhogen en deze op de console weergeven.
‫Dus CW-video op nul seconden zoals deze en dan moeten we de huidige duur hebben.
‫Dus dit zal doen is gewoon recht op de console.
‫Om de vuilnisman voor deze video te dwingen, gaan we gewoon GC-puntverzameling gebruiken.
‫Dus dat zal elke rommel opruimen.
‫En trouwens, als de huidige duur niet onder de lengte ligt, dus dat betekent dat de video voorbij is, willen
‫we de stop-methode aanroepen.
‫Dus hier gaan we gewoon stoppen.
‫En nu stoppen moet natuurlijk worden uitgevoerd.
‫Dus laten we eens kijken wat we nodig hebben in de Stop Console Todd rechter regel en dit wordt gestopt bij en dan zeggen we het gewoon, op
‫welk moment we de video stoppen.
‫Ik ga zeggen huidige duur.
‫En natuurlijk moeten we de huidige duur opnieuw instellen op nul en de timer stoppen en de tijd stoppen.
‫We noemen dit beide methoden.
‫Deze ruimt gewoon de tijd op of stopt de timer en stelt deze opnieuw in.
‫Om dit nog schoner te maken, zoals ik al zei, hebben we dit speelveld en dat kunnen we gebruiken
‫in onze speelmethode.
‫Dus we kunnen alleen zeggen dat het spelen vals is.
‫Dus we gebruiken het uitroepteken aan het begin.
‫Alleen dan wil ik dit doen.
‫Pas dan wil ik beginnen met spelen.
‫Pas dan wil ik de timer initialiseren.
‫En als het niet speelt, mag er niets gebeuren.
‫En hier kunnen we hetzelfde doen.
‫Dus in de stopmethode kunnen we controleren of zijn spel waar is, dus alleen als de speler aan het spelen is, zouden we het
‫moeten kunnen stoppen.
‫Oke.
‫Dus dat was het voor onze video-postklasse.
‫Dus nu zouden we het moeten kunnen bekijken door naar ons programma te gaan en op een gegeven moment te beginnen met het maken of afspelen
‫van de video.
‫Dus wat ik ga doen, is nadat ik de videopost heb gemaakt, ik ga hem afspelen.
‫En dan, zoals ik al zei, zou ik de gebruiker willen verlaten of laten stoppen met het afspelen van de video.
‫Dus hoe doen we die console die Key leest?
‫En daarna noem ik de stopmethode.
‫En tussendoor wil ik natuurlijk de gebruiker informeren over wat je moet doen.
‫Dus ik ga S gebruiken. W. hier console rechter lijn en ik ga zeggen druk op een willekeurige toets om de video te stoppen.
‫Oke.
‫En nu kunnen we het bekijken.
‫En kijk of wat we daar hebben gebouwd echt werkt, zodat we op een willekeurige toets drukken om de video te stoppen, zoals
‫je kunt zien, de video is gestart en loopt.
‫En laten we zeggen dat ik op een willekeurige toets wil drukken.
‫En eigenlijk was ik te traag.
‫Dus de video ging door en na 10 seconden stopte het.
‫En waarom is dat?
‫Dat komt omdat onze video maar 10 seconden duurt.
‫We hebben dus deze eigenschap length, die aangeeft hoe lang de video is.
‫Dus laten we zeggen dat we een andere video maken en dat we deze video willen, of we hebben de duur
‫van een videopost veranderd in slechts vijf seconden.
‫Dus laten we dat gewoon doen en het opnieuw doen, en dan zul je zien dat het na vijf seconden stopt.
‫En daar zijn we dan, de afgewerkte sneeuw.
‫Laten we het handmatig stoppen.
‫Laten we het opnieuw uitvoeren.
‫Daar zijn we en laten we op een willekeurige toets drukken om de video te stoppen, en het werkt niet, en
‫dat is omdat als we de post controleren die Klaus aan het spelen is, verkeerd is en daarom is zijn spel nooit waar.
‫Dus wat we hier moeten doen, is natuurlijk spelen op true.
‫En hetzelfde geldt voor onze stop hier.
‫Dus we zeggen dat hij vals speelt.
‫Oké, dus laten we nu hier teruggaan en het opnieuw laten lopen, en nu loopt de video en ik postte of ik stopte
‫het en er staat gestopt om vier uur en we kunnen zelfs doorgaan en het veranderen om die
‫vier seconden zoals deze te stoppen .
‫En om meer tijd te hebben, zoals je zag, was het redelijk dichtbij.
‫Ik ga mezelf weer 10 seconden geven.
‫Dus ik sleep het over.
‫Hier ben ik.
‫En ik stop ermee.
‫Dus ik drukte op de enter-toets.
‫Okeydokey, dus dat was best een uitdaging.
‫Ik hoop dat je erin geslaagd bent om dat te doen, zelfs als het meer geavanceerde is.
‫Maar wat echt interessant is, en ik heb er niet al te veel op ingegaan, is deze hele timer-methode.
‫Dus als je het gebruikt, dan begrijp je wat er gaande is of deze tijd van de les.
‫Er is dus een klasse genaamd Timer en je kunt het gebruiken om timermethoden te gebruiken, werken om een timer
‫te gebruiken.
‫Dus wat het doet, is dat je doorgaat en een nieuw timerobject maakt en je kunt een timer-callback gebruiken en
‫een timer-callback stelt je in staat om te worden gebeld of een code uit te voeren elke keer dat deze duur voorbij is.
‫Dus elke keer dat het tijdsbestek dat je hier hebt toegewezen.
‫Dus in mijn geval is duizend milliseconden voorbij of deze periode, en deze keer herinneren we eraan dat we het zouden
‫noemen.
‫Dus we worden in mijn geval elke seconde gebeld.
‫Daarom staat er video op één seconde, twee seconden enzovoort.
‫Dat is best gaaf, want nu kun je zo'n beetje een op timer gebaseerde methode of op timer gebaseerde programma's
‫maken.
‫En je zou een hele timer kunnen maken waar een gebruiker mee kan spelen en zelfs meer kan doen dan we hier net
‫deden.
‫Dus het algemene idee is dat je een nieuwe timer maakt, je maakt een timer-callback, dit keer
‫een callback-methode die een belangrijk object nodig heeft.
‫En dan hier kun je doorgaan of binnen de accolades, je kunt doorgaan en je code
‫regelmatig uitvoeren.
‫En dat zal om de zoveel seconden zijn.
‫Dan heeft het timer-object natuurlijk, als je ernaar kijkt, een tijd die je kunt toewijzen, en dat is deze
‫hier, en een status die je kunt toewijzen.
‫En ik gebruik gewoon het staatsmodel.
‫Oke.
‫Dus dat was het.
‫En we gaan door en zien nog meer wat we kunnen doen met overerving en objectgeoriënteerd programmeren in de
‫volgende video's.
‫Dus tot ziens daar.