Junior
Kā parametri tiek nodoti Java metodēs?
sobes.tech AI
Atbilde no AI
Java metodēs parametri tiek tiekti pēc vērtības (pass-by-value).
Primitīvie tipi:
- Tiek nodota primitivā vērtības kopija. Modificējot parametru metodē, tas neietekmē ārējo mainīgo.
// Piemērs primitivam
public void changeValue(int x) {
x = x + 10; // Modificēta ir kopija x metodē
}
// Lietošana:
int original = 5;
changeValue(original);
// original paliek 5
Objekti (saites tipi):
- Tiek nodota saites kopija. Abas saites (galvenā un parametra saite) norāda uz to pašu objektu atmiņā.
- Objekta stāvokļa maiņa (piemēram, izsaucot setter vai modificējot laukus) caur nodoto saiti metodē ietekmēs sākotnējo objektu.
- Parametra pāriešana uz jaunu objektu metodē neizmainīs sākotnējo saiti.
// Piemērs saites tipa (objekta)
public class MyObject {
private int value;
public MyObject(int value) {
this.value = value;
}
public void setValue(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
public void modifyObject(MyObject obj) {
obj.setValue(100); // Mainīgā objekta stāvoklis tiek mainīts
}
public void reassignObject(MyObject obj) {
obj = new MyObject(200); // Parametrs obj tagad norāda uz jaunu objektu, sākotnējā saite nemainās
}
// Lietošana:
MyObject originalObject = new MyObject(10);
modifyObject(originalObject);
// originalObject tagad ir value = 100
MyObject anotherObject = new MyObject(50);
reassignObject(anotherObject);
// anotherObject joprojām norāda uz sākotnējo objektu ar value = 50
Īsumā: Saites vērtība (adrese) tiek nodota, ne pats objekts. Tas ļauj modificēt objektu caur šo saiti, bet ne mainīt pašu sākotnējo saiti uz citu objektu.