Passerer Java matrise med henvisning til en metode?

Passerer Java matrise med henvisning til en metode?
Passerer Java matrise med henvisning til en metode? Ja, og det er den eneste måten å gi en rekke til en funksjon i Java. I Java kalles en funksjon en metode, og den er medlem av en klasse. Flere gode nyheter! En metode i Java kan returnere en matrise, og dette er med referanse. Identifikatoren til matrisen er en referanse.

Husk: En typisk Java -programfil har en hovedklasse med Main () -metoden. Navnet på hovedmetoden er hoved. Navnet på hovedklassen er imidlertid ikke det viktigste. Det er navnet valgt av programmereren. Det er også navnet på filen. Denne hovedklassen kan ha andre medlemmer (egenskaper og funksjoner). Andre klasser utenfor hovedklassen kan ha sine egenskaper og metoder. I denne artikkelen er ikke hovedmetoden opptatt av å bestå og returnere matrisen. I Java kalles en eiendom et felt.

Denne artikkelen illustrerer hvordan du gir en matrise til en metode og returnerer en matrise fra en metode som referanse. Array -klassen trenger ikke å importeres for dette programmet.

Metode i en egen klasse

Passerer med referanse

I denne delen av artikkelen er metoden for å motta matrisen i en egen klasse, ikke hovedklassen. Et eksempel på en slik klasse er:

klasse aclass
char func (char [] chs)
return CHS [2];

Navnet på denne ekstra klassen er aclass. Den har bare ett medlem, som er en metode. Navnet på metoden er func. Den har bare en parameter, som er en array -erklæring. Det returnerer en røye. Karakteren som returneres er på den tredje posisjonen til mottatt matrise (indeks 2).

I Main () -metoden kan følgende kodesegment brukes:

char [] arr = 'a', 'b', 'c', 'd';
Aclass obj = new aclass ();
char ret = obj.func (arr);
System.ute.println (ret);

Den første uttalelsen i dette kodesegmentet definerer matrisen. Den andre uttalelsen erklærer objektet, obj fra klassen, ACLASS. Neste uttalelse kaller metoden for objektet, med array -navnet (referanse) som argument. Den siste uttalelsen skriver ut det tredje tegnet (indeks 2) av matrisen mottatt av metoden som heter. Utgangen ville være C.

Disse to kodesegmentene viser hvordan en matrise sendes til en metode som referanse.

Returnerer med referanse

Ovennevnte klasse er modifisert for metoden for å returnere en matrise som referanse, som følger:

klasse aclass
char [] func (char [] chs)
return CHS;

Returuttrykket i metodesignaturen er røye [] og ikke lenger, rettferdig, røye. Returuttrykket for returuttalelsen er nå navnet på matrisen i parameteren og er ikke lenger et arrayelement.

Det tilsvarende kodesegmentet i Main () -metoden er modifisert for å være:

char [] arr = 'a', 'b', 'c', 'd';
Aclass obj = new aclass ();
char [] ret = obj.func (arr);
System.ute.println (ret [2]);

Returtypen for metodesamtalen er en matrise og ikke bare røye. Arrayen blir fremdeles bestått som et argument på samme måte som før. Den siste uttalelsen her skriver ut en elementverdi av returarrayen.

Ovennevnte to programmer viser hvordan en matrise kan sendes ved referanse og hvordan en matrise kan returneres ved referanse.

Metode i hovedklasse

Passerer med referanse

I denne delen av artikkelen er metoden for å motta matrisen i hovedklassen, ikke i en egen klasse. Et eksempel på en slik metode er:

statisk char func (char [] chs)
return CHS [2];

Legg merke til at metoden for interesse nå er statisk fordi den vil bli kalt fra hovedmetoden som også er statisk og også er i hovedklassen. Navnet på metoden er func. Den har bare en parameter, som er en array -erklæring. Det returnerer en røye. Karakteren som returneres er på den tredje posisjonen til mottatt matrise (indeks 2).

I Main () -metoden, som er statisk, kan følgende kodesegment brukes:

char [] arr = 'a', 'b', 'c', 'd';
char ret = func (arr);
System.ute.println (ret);

Utgangen ville være C. Den første uttalelsen i dette kodesegmentet definerer matrisen. Ingen objekter er erklært her, da det ikke er noen egen klasse. Den neste uttalelsen kaller den samme klassemetoden, hovedklassen, med matrisenavnet (referanse) som et argument. Den siste uttalelsen skriver ut det tredje tegnet (indeks 2) av matrisen mottatt av metoden som heter.

Disse to kodesegmentene viser hvordan en matrise sendes til en metode som referanse.

Returnerer med referanse

Ovennevnte metode er modifisert, for å returnere en matrise som referanse, som følger:

statisk char [] func (char [] chs)
return CHS;

Returuttrykket i metodesignaturen er "statisk røye []" og ikke lenger "statisk røye". Returuttrykket for returuttalelsen er nå navnet på matrisen i parameteren og er ikke lenger et arrayelement.

Det tilsvarende kodesegmentet i Main () -metoden er modifisert for å være:

char [] arr = 'a', 'b', 'c', 'd';
char [] ret = func (arr);
System.ute.println (ret [2]);

Den første uttalelsen her er erklæringen om matrisen. Returtypen for metodesamtalen er en matrise og ikke bare røye. Arrayen blir fremdeles bestått som et argument på samme måte som før. Den siste uttalelsen skriver ut en elementverdi av returarrayen.

Disse to programmene viser hvordan en matrise kan sendes ved referanse og hvordan en matrise kan returneres ved referanse.

Konklusjon

Ja, og det er den eneste måten å overføre en matrise til en metode i Java: erklære parameteren som en matrise, og bruk matrisenavnet i metodesamtalen. I Java kalles en funksjon en metode, og den er medlem av en klasse. Flere gode nyheter! En metode (i Java) kan returnere en matrise, som også er med referanse. Identifikatoren (navnet) på matrisen er en referanse. La metodedefinisjonen (implementering) ha array -typen, som en parameter, i metodesignaturen for å oppnå disse. Uttrykket for returuttalelsen i metodedefinisjonen er bare array -navnet. Returuttrykket for metodesignaturen er array -typen. Mottaksuttrykket skal være av matrise -typen i metodens anropserklæring.