Scala Companion Object

Scala Companion Object
Ved å definere et klasseobjekt, kan vi inspisere klassens medlemmer og påkalle enhver metode på andre programmeringsspråk. Den spesifikke metoden kalles ved hjelp av det objektet. I artikkelen lager vi et objekt som ikke trenger en klasse for å erklære medlemmene. Scala introduserer Singleton -objekter eller ledsagerobjekter. Scala Class og Scala -objekt er med samme kildefil da; De er en følgesvenn til hverandre.

Hva er ledsagerobjekter i Scala?

Et ledsagerobjekt og klassen er i samme kildefil sammen med samme navn. Ledsagerobjekter er objekter som har et lignende navn som klassen de tilhører. Den samme objekt- og klassenavnskombinasjonen er veldig kraftige, vi kan få tilgang til både private metoder og felt i klassen.

Syntaks av Scala Companion -objekter

Den generelle syntaksen til ledsagerobjekt i Scala ser ut på denne måten:

Klasseklassenavn
// klasse kropp
Objekt objektnavn
// objekt kropp

Her er "class_name" navnet på klassen og objektnavnet er navnet på klasseobjektet. Klasse- og objektnavnet skal være det samme for å bli ledsagere for hverandre. Dette betyr at vi kan bruke feltene og metodene i forekomstene av klassen.

Hvordan bruke Scala Companion -objekter i Ubuntu 20.04?

For å forstå bruken av ledsagerobjektene i Scala, bør du ta en titt på følgende eksempler nedenfor:

Eksempel 1: Bruke Scala Companion Class and Object Method

Vi kan opprette et ledsagerobjekt ved å holde navnet på objektet det samme som klassenavnet. Deretter vurderte vi klassen og objektkompisen til hverandre. Nedenfor har vi opprettet en ledsagerobjekt.

I koden ovenfor har vi en klasse som eksempel1. Klassen har variabler STR1 og STR2 initialisert med strengverdien. Det er en metode “MyExample” som definerer klassen som skriver ut “Str1” og “Str2” -verdiene. I ledsagerobjektet får vi tilgang til metoden for den aktuelle klassen.

Du kan se i utgangen nedenfor; Vi har tilgang til medlemmet av ledsagerklassen med det "nye" nøkkelordet inn i ledsagerobjektet.

Eksempel 2: Bruke Apply Method for Scala Companion Object

Vi kan opprette en forekomst av en klasse gjennom Apply Method. La oss ha en anvendelsesmetodeimplementering nedenfor.

I koden ovenfor har vi erklært en klasse som heter "Frukt" og også opprettet et objekt i klassen. Klasseobjektet heter også “Fruits”. Ved å beholde navnet sitt, blir det samme ansett som ledsagerobjekter. Klassefrukten har blitt definert med en variabel “x”. Variabelen har en tom streng. Neste, vi har et ledsagerobjekt av følgesvenn. I ledsagerobjektet har vi brukt Apply -metoden som tar et argument for et følgesvennsklassemedlem. Deretter har vi laget en variabel 'y' i Apply Method. Variabelen “y” er å initialisere en forekomst av et objekt med nøkkelordet “nytt”. Ved å bruke Apply -metoden, kan vi ringe objektet fra klassen direkte.

Vi bruker pastemodus for anvendelsesmetoden. Etter å ha gått ut av en pastemodus, kan vi ringe medlem av klassen direkte. Vi har skrevet et mønstermatchende kode i Scala, og utgangen vises nedenfor.

Eksempel 3: Bruke Apply Method for å lage flere konstruktører

Ved å bruke Apply -metoden kan vi passere mer enn ett argument. Vi kan ha en anvendelsesmetode i ledsagerklassen mer enn en som vil gi flere konstruktører. Eksemplet er å ha to konstruktører i anvendelsesmetoden og to anvendelsesmetoder i ledsagerobjektet.

I koden ovenfor har vi opprettet en følgesvennsklasse som "språk" og definerte to variabler "L1" og "L2". Deretter har vi et ledsagerobjekt av navnet "Språk" det samme som følgesvennets navn. I ledsagerobjektet har vi brukt to anvendelsesmetoder. Den første er å ha en enkelt verdi bestått, og den andre anvendelsesmetoden tar to argumenter som konstruktør. Brukmetoden har variabelen “L3” som har et "nytt" nøkkelord med objektet. Vi kan generere en ny forekomst av et objekt med bruken av det "nye" nøkkelordet. “L3” tar verdier fra “L1” og “L2” i koden.

Utgangen vi kan få tilgang til gjennom pastemodus som implementering vises etter eksiteringsmodus. Vi kan ringe objektet ved å bruke Apply -metoden.

Eksempel 4: Bruke ikke -anvendt metode for ledsagerobjekter

Nå kan vi også hente ut feltet fra et objekt ved å bruke UN -Apply -metoden i ledsagerobjektet.

I koden ovenfor har vi først laget en følgesvennsklasse som heter "Color". Ledsagerklassen "farge" har variabler som medlemmer av klassen. Variabelen er representert som “C1” og “C2”. Disse variable feltene kan nås av ledsagerobjektet som konstruktør. Deretter har vi opprettet et ledsagerobjekt og definerte Apply -metoden i den. Apply -metoden oppretter en konstruktør ved å bestå argumenter fra følgesvennsklassefelt. I Apply -metoden har vi en variabel “C3” som bruker et nytt nøkkelord med objektfargen. Verdiene til “C1” og “C2” har gått til “C3”. Til slutt må vi bruke den ikke -anvendte metoden som har "C3" som et argument og returnerer verdien av "C1" og "C2".

Etter å ha gått ut av limmodus, har vi trukket ut feltene fra en "C3". Utgangen fra den ikke -anvendte metoden vises på skjermen.

Konklusjon

Guiden tar sikte på å demonstrere fordelene ved å ha en ledsagerobjekt. For å bli en følgesvenn til klassen og objektet, skal navnet være det samme og holdes i samme kildefil. Deretter diskuterte vi Apply Method med kodeimplementeringen. Vi kan bruke mer enn en Apply Method i et ledsagerobjekt og lage forskjellige konstruktører i Apply -metoden. Vi har også diskutert den ikke -anvendte metoden for å trekke ut feltene i klassen. Eksemplet på Apply Method er gjennom pastemodus i Ubuntu 20.04 Terminal. Du kan bruke limmodus ved å gi “Scala” -kommandoen på terminalen og også gå ut fra limmodus ved å trykke på “CTRL+D”.