Передача по значению — передача параметров базового типа данных.
Скопируйте код кода следующим образом:
общественный класс PassValue {
static void Exchange(int a, int b){//Статический метод, обменивает значения a и b
внутренняя температура;
температура = а;
а = б;
б = температура;
}
public static void main(String[] args){
интервал я = 10;
интервал j = 100;
System.out.println("before call: " + "i=" + i + "/t" + "j = " + j);//перед вызовом
Exchange(i, j); //Передача значения, основной метод может вызывать только статические методы
System.out.println("after call: " + "i=" + i + "/t" + "j = " + j);//После вызова
}
}
Результаты запуска:
Скопируйте код кода следующим образом:
перед вызовом: i = 10 j = 100
после звонка: i = 10 j = 100
Примечание. При вызове обмена(i, j) фактические параметры i и j передают свои значения соответствующим формальным параметрам a и b соответственно. При выполнении метода Exchange() изменяются значения формальных. параметры a и b не влияют на фактические параметры. Значения i и j не изменились до и после вызова.
Передача по ссылке --- объект как параметр
Скопируйте код кода следующим образом:
класс Книга {
Строковое имя;
частная цена на фолат;
Book(String n, float){ //Метод построения
имя = п;
цена = р;
}
static voidchange(Book a_book, String n, float p){ //Статический метод, объект в качестве параметра
a_book.name = n;
a_book.price = р;
}
public void output(){ //Метод экземпляра, вывод информации об объекте
System.out.println("имя: " + имя + "/t" + "цена: " + цена);
}
}
общественный класс PassAddr {
public static void main(String [] args){
Книга b = новая книга("java2", 32.5f);
System.out.print("перед вызовом:/t"); //Перед вызовом
б.выход();
b.change(b, "c++", 45.5f); //Передача ссылки, передача ссылки на объект b, изменение значения объекта b
System.out.print("после вызова:/t"); //После вызова
б.выход();
}
}
Результаты запуска:
Скопируйте код кода следующим образом:
перед звонком: имя:java2 цена:32,5
после вызова: имя: C++ цена: 45,5
Примечание. При вызове изменения(b,"c++",45.5f) объект b используется в качестве фактического параметра, а ссылка передается на соответствующий формальный параметр a_book. Фактически, a_book также указывает на тот же объект, то есть. , объект имеет два ссылочных имени: b и a_book. При выполнении метода Change() операция над формальным параметром a_book является операцией над фактическим параметром b.