Java like etter det grunnleggende - Del 3Introduction Dette er del 3 av serien min, Java like etter Basics. I denne delen av serien, snakker jeg om effekter av Passing Primitive og instansiert objekter til Java Methods.Passing primitiv datatype Argumenter Eksempler på primitive datatyper er int og double. Når du passerer en primitiv datatype som variabel til en metode, er du passerer en kopi av verdien (objekt). I fremgangsmåten parameternavnet identifikator kopien. Du kan gjøre hva du vil gjøre (endre det, skrive det ut, returnere den, etc.) med kopien i metoden.
Ved slutten av fremgangsmåten, er verdien av den opprinnelige (utenfor) variable fremdeles opprettholdt for den variable, men parameterverdien kan ha endret seg. Les og prøv følgende kode: class Illustrasjon {void myMthd (int para) {para = 15; System.out.println (para); }} Class Primitive {public static void main (String [] args) {Illustrasjon obj = new Illustrasjon (); int var = 10; obj.myMthd (var); System.out.println (var); }} Variabelen er Var erklært og tildeles (initialisert) i hovedmetode. Den brukes som argument i den kallende metoden.
Den kalles metoden mottar men en kopi av verdien med parameteren, para. Parameteren endres og skrives (vises) i kalles metoden. På slutten av den viktigste metoden, er verdien av Var skrives ut, og du bør være oppmerksom på at verdien av Var ikke har endret seg, bekrefter at det i metodedefinisjon (kalles metoden), er det en kopi i en annen variabel (para) det eksisterer. Det jeg har sagt her gjelder tilfeller av mer enn ett argument og tilsvarende parametre. Så, med primitive objekter, er det kopier av argumentverdier som sendes og ikke de variablene themselves.
Passing instansiert objekter Når du passerer en instansiert objekt til en metode, passerer du selve objektet og ikke en kopi. Eventuelle endringer i parameterobjektet i metodedefinisjon skjer på objektet erklært utenfor metoden. Så, i dette tilfellet, argumentet variabel og den variable parameter, refererer (henviser til) det samme objektet. Les og prøv følgende kode: class AClass {int prop = 20; } Class Illustrasjon {void myMthd (AClass para) {para.prop = 35; System.out.println (para.
prop); }} Class Instantiating {public static void main (String [] args) {Illustrasjon obj1 = new Illustrasjon (); AClass obj2 = new AClass (); obj1.myMthd (obj2); System.out.println (obj2.prop); }} Det er to klasser av interesse (Aclass og Instantiating) i koden. I hovedfremgangsmåten blir de to klassene instansi