Chamada de metodo

7 respostas
K

galera tow com um prblema estou precisando chamar um metodo soh que naum estou conseguindo fazer vow posar o codigo pra vc entenderem melhor:
essa e a minha classe da onde eu quero chamar o metodo:
package exercNome;

import java.util.Scanner;

public class ProgramaNomes {

public static void main(String[] args) {
String l  = null;

System.out.println(Digite um Nome:);

try {

Scanner s = new Scanner(System.in);

l = s.nextLine();

} catch (Exception e) {

e.printStackTrace();

}

System.out.println(l.toUpperCase());

<a href="//System.out.println">//System.out.println</a>(l.length());— AO INVÉS DE IMPRIMIR DIRETO O TAMANAH DA STRING DIGITADA QUERIA QUE CHAMASSE O METODO E NO METODO EU CALCULA-SE O TAMNHO DA STRING SEGUE ABAIXO O METODO QUE EU CRIE PARA CALACULAR.:

package exercNome;

public class Nome {

String l;

int numLetra;

public int QtdNome() {

return numLetra = (l.length());

7 Respostas

gabrielmassote

Tudo bem karllosernnesto?

se os dois codigos estiverem no mesmo .java primeiramente nao pode existir duas classes publicas no mesmo codigo .java e sendo assim a unica classe publica tem que ter o nome do aqruqivo .java.

entao para funcionar ou voce ter uma visibilidade da classe nome segue a modificacao:

package exercNome;

import java.util.Scanner;

public class ProgramaNomes {

public static void main(String[] args) {
    Nome n = new Nome();

    System.out.println("Digite um Nome:");
    try {
        Scanner s = new Scanner(System.in);
        n.l = s.nextLine();
    } catch (Exception e) {
        e.printStackTrace();
    }
    System.out.println(n.l.toUpperCase());
    System.out.println(n.QtdNome());
}

class Nome {
    String l;
    int numLetra;
    public int QtdNome(String l) {
        numLetra = l.length();
        return numLetra;
    }
}

resumido a intencao é deixar a classe sua nome visivel a outra. estando no mesmo fonte e sem ser public.

voce poderia tambem colocar o metoro QtdNome() dentro da propria classe.
assim:

package exercNome;

import java.util.Scanner;

public class ProgramaNomes {

public static void main(String[] args) {
    String l = null;

    System.out.println("Digite um Nome:");
    try {
        Scanner s = new Scanner(System.in);
        l = s.nextLine();
    } catch (Exception e) {
        e.printStackTrace();
    }
    System.out.println(l.toUpperCase());
    System.out.println(QtdNome());
}

   public int QtdNome() {
        int numLetra = l.length();
        return numLetra;
   }
}

da uma conferida no codigo que editei tudo aqui…
mas a ideia é mais ou menos essa…
depois me fala se deu certo… abraco

FilhoDoRei

gabrielmassote:
Tudo bem karllosernnesto?

se os dois codigos estiverem no mesmo .java primeiramente nao pode existir duas classes publicas no mesmo codigo .java e sendo assim a unica classe publica tem que ter o nome do aqruqivo .java.

entao para funcionar ou voce ter uma visibilidade da classe nome segue a modificacao:

package exercNome;

import java.util.Scanner;

public class ProgramaNomes {

public static void main(String[] args) {
    Nome n = new Nome();

    System.out.println("Digite um Nome:");
    try {
        Scanner s = new Scanner(System.in);
        n.l = s.nextLine();
    } catch (Exception e) {
        e.printStackTrace();
    }
    System.out.println(n.l.toUpperCase());
    System.out.println(n.QtdNome());
}

class Nome {
    String l;
    int numLetra;
    public int QtdNome(String l) {
        numLetra = l.length();
        return numLetra;
    }
}

resumido a intencao é deixar a classe sua nome visivel a outra. estando no mesmo fonte e sem ser public.

voce poderia tambem colocar o metoro QtdNome() dentro da propria classe.
assim:

package exercNome;

import java.util.Scanner;

public class ProgramaNomes {

public static void main(String[] args) {
    String l = null;

    System.out.println("Digite um Nome:");
    try {
        Scanner s = new Scanner(System.in);
        l = s.nextLine();
    } catch (Exception e) {
        e.printStackTrace();
    }
    System.out.println(l.toUpperCase());
    System.out.println(QtdNome());
}

   public int QtdNome() {
        int numLetra = l.length();
        return numLetra;
   }
}

da uma conferida no codigo que editei tudo aqui…
mas a ideia é mais ou menos essa…
depois me fala se deu certo… abraco

Gabriel, acho que o seu segundo codigo não funciona legal, o metodo não estatico QtdNome() não pode ser chamado por um metodo estatico!

Além disso eu não consegui entender porque vcs estão utilizando o try{}catch(){} para utilizar a classe Scanner?

minha sugestão de codigo seria a seguinte:

import java.util.Scanner;

public class Teste{
	
	public static int getQtdLetras(String nome){
		return nome.length();
	}
	
	public static void main(String []args){
		Scanner scan = new Scanner(System.in);
		String nome = "";
		
		System.out.println("Digite nome: ");
		nome = scan.nextLine();
		
		System.out.println("");
		System.out.println(nome.toUpperCase());
		System.out.println("Total de letras: " + getQtdLetras(nome));
	}	
}

Cara eu ate entendi a sua forma de explicar e bem simples e parece que ajuda bastante, mas parece que vc não testa os codigos que vc faz, talvez falta de tempo não sei.

Falows

blackfalcon

Alguem poderia ensinar pra mim fazendo favor como funciona o try{}catch(){} ?

Abraços

FilhoDoRei

blackfalcon:
Alguem poderia ensinar pra mim fazendo favor como funciona o try{}catch(){} ?

Abraços

links:
http://www.dca.fee.unicamp.br/cursos/PooJava/excecoes/exc_captrat.html

http://www.arquivodecodigos.net/arquivo/visualizar_dica.php?qual_dica=2133

http://www.guj.com.br/posts/list/26086.java

Bons estudos!

pimenta

blackfalcon, posta isso em outro tópico pra não tumultuar esse e sair do foco.

Coloca no título algo como “Dúvida try/catch” que vai aparecer um monte de gente pra te responder…

Abraaços,

gabrielmassote

e ae FilhoDoRei?

concordo com voce, nao tinha me lembrado desse fato.

agora sobre a classe scanner, nao sei como funciona entao so deixei do modo que estava.

obrigado pela correcao sobre o fato estatico.

FilhoDoRei

Gabriel, estamos aqui pra aprender da melhor forma possivel: compartilhando conhecimento!

Fica na paz,

Falowss

Criado 20 de maio de 2008
Ultima resposta 21 de mai. de 2008
Respostas 7
Participantes 5