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