Não consigo retirar o erro

criei estes dois codigos dentro da mesma package:

public static void main(String[] args) {
    Scanner leia = new Scanner(System.in);
    int opção=0;
    System.out.println("Insira um valo: ");
    int x=leia.nextInt();
    System.out.println("Insira um segundo valor: ");
    int y=leia.nextInt();
    System.out.println("Insira uma opção:");
    System.out.println("1 - Multiplicação: ");
    System.out.println("2 - Soma: ");
    System.out.println("3 - Subtração: ");
    System.out.println("4 - Divisão");
    opção=leia.nextInt();
    switch (opção){
        case 1:
            System.out.println("O valor da conta é: " + z.getMultiplicação());
            break;
    }
}

e este:

public class contas {
private static int x;
private static int y;
private static double z;

public static double getMultiplicação(){
    z=x*y;
    return z;
}
public static double getSoma(){
    z=x+y;
    return z;
}
public static double getDivisão(){
    z=x/y;
    return z;
}
public static double getSubtração(){
    z=x-y;
    return z;
}

mas não consigo invocar o valor da multiplicação!

O que você quer dizer com “não consigo invocar”? Qual erro dá?

Obs: você escreveu métodos com cedilha e acentos ou isso foi o corretor do browser? Porque Java não suporta métodos acentuados ou com cedilha.

Abraço.

no primeiro codigo o da erro no z.getMultiplicação()

Qual a mensagem de erro que aparece? Sem saber qual é, não dá pra deduzir muita coisa.

Abraço.

1 curtida

não dá erro, o z está é sublinhado a vermelho :wink:

Como comentei, Java não suporta acentos e cedilha na sintaxe. Então, inicialmente, tire-os da declaração e invocação dos métodos e veja se funciona. Algo como:

public static double getMultiplicacao(){
    z=x*y;
    return z;
}

e na chamada:

switch (opção){
        case 1:
            System.out.println("O valor da conta é: " + z.getMultiplicacao());
            break;
    }

Obs: se esse sublinhado em vermelho é no Eclipse (ou em outras IDEs que suportam o recurso), coloque o mouse em cima para ver do que ele está reclamando. Isso ajuda a descobrir o possível problema. :wink:

Abraço.

1 curtida

já fiz isso! quando coloco o mouse por cima diz-me isto:
cannot find symbol
symbol: method getMultiplicacao()
location: variable z of type Trabalho

Sua variável z é um double dentro da classe contas, certo? Então ela não tem um método chamado getMultiplicacao().

Acredito que o que você quis fazer é:

switch (opção){
        case 1:
            System.out.println("O valor da conta é: " + contas.getMultiplicacao());
            break;
    }

Note que o método getMultiplicacao está dentro da classe contas, então a chamada ao método getMultiplicacao precisa ser prefixada por contas.

Obs: no Java, é comum os nomes de classe começarem com maiúsculas. Então public class contas seria public class Contas

Abraço.

1 curtida

muito obrigado! resolveu-me o problema :slight_smile:
entretanto como peço ao utilizar que atribua valores ao x e y?

tenho assim, mas dá erro no set:

System.out.println("Insira um valor: ");
x.setMultiplicacao(leia.nextDouble());
System.out.println("Insira um segundo valor: ");
y.setMultiplicação=leia.nextInt();