Modificando String (Dúvida quanto a parâmetro)

6 respostas
M

To com esse programinha bobo aqui, ele funciona beleza. Minha dúvida é a seguinte, quando eu chamo alteraString(s); s é o argumento da função, ou seria método? E porque em static String alteraString eu tenho (String ps) como argumento e não (String)? Esse ps é só um label pra mim tratar a entrada s dentro da função?

public class Alias{

            static String alteraString (String ps){

            return (ps + " e comprido");

}

            public static void main(String[] args){

             String s=new String("curto");

                        System.out.println("Antes: " + s);

            s=alteraString(s);

                        System.out.println("Depois: " + s);

            }// main

}//Alias

grato pela atenção.[/code]

6 Respostas

M

bem-vindo ao Portal Java…

em Java, funções são chamadas de métodos. E o “ps” é o nome da variável String (local no método) q vai tratar o parâmtro recebido… :roll:

M

“matheus”:
bem-vindo ao Portal Java…

em Java, funções são chamadas de métodos. E o “ps” é o nome da variável String (local no método) q vai tratar o parâmtro recebido… :roll:

ps sofre um auto-cast no método? Não vejo ela declarada explicitamente. :???:

H

s é o parametro do metodo…
vc declarou ps -->static String alteraString (String ps)

M
"Hal_Jordan":
s é o parametro do metodo.... vc declarou ps -->static String alteraString (String ps)

Vou tentar reformular minha pergunta...

Eu tenho:
public class Alias{

            static String alteraString (String ps){

            return (ps + " e comprido");

}
Porque não é:
public class Alias{

            static String alteraString (String ps){
            String ps; /* o ps é passado, no caso ps = valor de s na chamada da função isso eu    entendo mas não sei porque el não é declarado aqui*/  

            return (ps + " e comprido");

}
M

ele é declarado na declaração do método… pq ele é um valor q ta vindo como parâmetro… mas assim como a variável dentro do corpo do método, ele tb é local ao método, e tb pode vir como final (por ex, void foo( final int x)), tipo, a declaração dele será na assinatura do método pq é parâmetro q ta sendo passado pro método, se for declarado no corpo, esse valo tu terá q inicializar dentro do método, e não em uma chamada…

M

Agora eu entendi, valeu pela explicação :slight_smile:

Criado 4 de maio de 2005
Ultima resposta 4 de mai. de 2005
Respostas 6
Participantes 3