Java vypros

5 отговора 87 прегледа
#1

Java vypros

Moje li na Java da se podavat parametri na funkciq by reference, taka che funkciqta da updateva vynshni za neq promenlivi?

Отговор
в отговор на djoker #2

Re: Java vypros

Da ! Ako poadwash parametar , kojto e instanciq na nqkakw class winagi rabotish s reference kum obekta taka! No ako e elementaren tip ne move !
Kakto pti C !!

Отговор
в отговор на djoker #3

Re: Java vypros

Java podava vsi4ki argumenti "by value" ne "by-reference", kakto i lipsvat pointeri

obqsni po podrobno kakvo iskash da postignesh a predi tova razgledai sledniqt primer ot Java Lang FAQ

import java.awt.Point;

class changePoint {

public static void main(String args[]) {

Point p1 = new Point(0, 0);
changePoint(p1);
System.out.println(p1);

}

static void changePoint(Point p) {

p.x = 38;
p.y = 97;

}

}


Uspeh
bofh

Отговор
в отговор на djoker #4

Re: Java vypros

Kakto kazawa edin kolega po gore w Java obektite winagi se predawat po reference a prostite tipowe se predawat winagi po stojnost. Za da se izbegne wtoria warian moje da podawash masiw s razmer 1. Naprimer:
class Parametr
{
int [1] myNumber;

void myFunc(int[] par)
{
par[0] = 10;
}

void main(String[] args)
{
myNumber[0] = 1;
myFunc(myNumber);
}
}



Отговор
в отговор на bofh #5

Re: Java vypros

ami ne:)
call-by-value e samo za elementarnite tipove danni (int, long, char...), a za vsichki drugi (vkl. arrays ot elem. tip) e call-by-reference, demek ne kopie na "obekta" a referencia (kakto v C) kym nego...

Отговор
в отговор на Lubo_R #6

Re: Java vypros

Да обекти се предават by reference а прости/елементарни типове (int, byte, char) by value.
И в Java няма функции има методи на класа. :-)
Ако искаш да предадеш няколко елементарни типа на метод и метода да ги модифицира можеш да използваш и съответните класове (всеки елементарен тип си има клас) int има клас Integer, byte - Byte i .т.н. Можеш да ги използваш тях

Отговор