Java >> Java Tutorial >  >> Java

Objekt als Argument in Java

Wenn in Java ein primitiver Typ an eine Methode übergeben wird, geschieht dies durch die Verwendung von Call-by-Value . Objekte werden implizit per Call-by-Reference übergeben.

Das bedeutet, wenn wir primitive Datentypen an die Methode übergeben, werden nur Werte an Funktionsparameter übergeben, sodass Änderungen an Parametern den Wert der tatsächlichen Parameter nicht beeinflussen.

Während Objekte in Java Referenzvariablen sind, wird bei Objekten ein Wert übergeben, der die Referenz auf das Objekt darstellt. Daher wird nicht das gesamte Objekt übergeben, sondern das referenzierte Objekt wird übergeben. Alle Änderungen am Objekt in der Methode würden das Objekt im Heap ändern.

Objekt als Parameter in Funktion übergeben

class Add
{ 
	int a;
	int b;

	Add(int x,int y)// parametrized constructor 
	{
		a=x;
		b=y;
	}
	void sum(Add A1) // object  'A1' passed as parameter in function 'sum'
	{ 
		int sum1=A1.a+A1.b;
		System.out.println("Sum of a and b :"+sum1);
	}
}

public class classExAdd
{
	public static void main(String arg[])
	{ 
		Add A=new Add(5,8);
		/* Calls  the parametrized constructor 
		with set of parameters*/
		A.sum(A);
	}
}

Ausgabe

Sum of a and b :13

Beim Erstellen einer Variablen vom Typ Klasse erstellen wir nur eine Referenz auf ein Objekt.

Wenn wir diese Referenz an eine Funktion übergeben, beziehen sich die Parameter, die sie erhalten, auf dasselbe Objekt wie das, auf das das Argument verweist.

Anzeige

Objekt als Parameter im Konstruktor übergeben

Eine der häufigsten Verwendungen von Objekten als Parameter sind Konstruktoren. Ein Konstruktor erstellt ein neues Objekt, das anfänglich dasselbe ist wie das übergebene Objekt. Es wird auch verwendet, um private Mitglieder zu initialisieren.

class Add
{ 
	private int a,b;

	Add(Add A)
	{
		a=A.a;
		b=A.b;
	}

	Add(int x,int y)
	{
		a=x;
		b=y;
	}

	void sum()
	{ 
		int sum1=a+b;
		System.out.println("Sum of a and b :"+sum1);
	}
}

class ExAddcons
{ 
	public static void main(String arg[])
	{ 
		Add A=new Add(15,8);
		Add A1=new Add(A);
		A1.sum();
	}
}

Ausgabe

Sum of a and b :23
Anzeige

Das Objekt von der Funktion zurückgeben

In Java kann eine Funktion jeden Datentyp zurückgeben, einschließlich Klassentypobjekten.

Zum Beispiel:In dem unten angegebenen Programm gibt die Funktion add() ein Objekt zurück, das die Summe der Werte zweier verschiedener Zahlen (Objekte) enthält.

import java.util.Scanner;

class TwoNum
{ 
	private int a,b;
	Scanner kb=new Scanner(System.in);
	
	void getValues()                         // getValues() take values of a,b for every no.
	{
		System.out.print("Enter a: ");
		a=kb.nextInt();
		System.out.print("Enter b: ");
		b=kb.nextInt();
	}

	void putValues()// putValues() show values for every no.
	{
		System.out.println(a+" "+b);
	}
	
	TwoNum add(TwoNum B)/*class type function add() takeobject 'B' as parameter*/
	{
		TwoNum D=new TwoNum();//object D act as instance variable
		D.a=a+B.a;
		D.b=b+B.b;
		return (D);//returning object D
	}
 }

class ExTwoNum
{ 
	public static void main(String arg[])
	{
		TwoNum A=new TwoNum();
		A.getValues();
		A.putValues();

		TwoNum B=new TwoNum();
		B.getValues();
		B.putValues();

		TwoNum C;
		/*object A calls add() passing object B
		as parameter and result are return at C*/
		C=A.add(B);                          

		C.putValues();
	}
}

Ausgabe

Enter a: 23
Enter b: 34
23 34
Enter a: 25
Enter b: 35
25 35
48 69   /*sum*/

Java-Tag