Olá pessoal! Eu sou iniciante em java e estou estudando a partir de um livro inglês (Fundamentals of java programming - Mitsunori Ogihara) que encontrei na internet e quando chegou na parte dos parâmetros eu me perdi um pouco no seguinte exemplo, alguém poderia me explicar porque o output são das declarações do main e não da função? E porque isso ocorre?
(anexei a foto ao post, se não tiver dado certo me perdoem, pois é a primeira vez aqui 
A que output você se refere e em qual linha? Fala do Scanner criado na linha 8, que é passado como parâmetro para o método test na linha 9?
É preferível que você copie e cole o código da sua IDE/editor e use a opção de formatação (botão </> ).
Abraço.
Faço coro ao @TerraSkilll. Mas achei interessante o código e resolvi ajudar, mesmo você tendo postado uma imagem e não o código:
import java.util.*;
public class Levon {
public static void main(String[] args){
String word = "Tyni Dancer";
double radius = 19.7;
Scanner textScanner = new Scanner("Madman across the water");
test(word, textScanner, radius); //#1
System.out.println(radius); // #5
System.out.println(word); // #6
System.out.println(textScanner.next()); //#7
}
public static void test(String w, Scanner t, double r){
w = "Levon"; // #2
r = 4.5; // #3
System.out.println(t.next()); // #4
}
}
Creio eu que o objetivo do autor é demonstrar que como a passagem é por valor, mesmo alterando o valor das variáveis w e r no método test, os valores das variáveis locais word e radius do método main não se alteram, o que seria diferente se houvesse passagem por referência, como no caso do parâmetro formal t que faz uma referência ao objeto Scanner declarado no main. Então ele mostra os dados depois de chamar o método test para demonstrar que a passagem por valor, como só passa uma cópia do valor, não altera os valores informados no método main.
1 - invoca o método test;
2 - atribui o valor "Levon" ao parâmetro formal w;
3 - atribui o valor 4.5 ao parâmetro formal r;
4 - encontra e retorna o próximo token. No caso, o primeiro token é "Madman". Imprime o token:
Madman
O parâmetro formal t é uma referência a um objeto do tipo Scanner. Logo é uma passagem por referência. Logo, fazendo:
t = new Scanner("X");
Em vez de imprimir "Madman", iria imprimir "X".
5 - imprime o valor da variável local radius. Como a passagem é por valor, o valor de radius não foi alterado pelo método test:
19.7
6 - imprime o valor da variável local word. Como a passagem é por valor, o valor de word não foi alterado pelo método test:
Tyni Dancer
7 - encontra e retorna o próximo token. No caso, o segundo token é "across". Imprime o token:
across
Rodando…

Se eu fizer:
public static void test(String w, Scanner t, double r){
w = "Levon"; // #2
r = 4.5; // #3
t = new Scanner("X");
System.out.println(t.next()); // #4
}
Rodando…

Algo semelhante é feito aqui: Curso de Java 61: Passagem de parâmetros por valor e por referência.
Obrigada!!! Era exatamente essa a minha dúvida, o funcionamento de passagens por valor e referência. Me desculpe por postar a foto, ficarei atenta á próxima vez e postarei o código.
