Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
DaanLOST

RESOLVIDO Java Iniciante - soma de numeros

Recommended Posts

Estou começando a aprender Java e estou com uma duvida nesse exercício

 

Faça um programa que receba quatro números inteiros calcule e mostre a soma desses números.

 

eu teria que fazer orientado a objetos, então criei duas classes 

public class Soma {    int n1,n2,n3,n4,somaNumeros=0;        public void soma(){                somaNumeros = n1+n2+n3+n4;        System.out.print("A soma é: "+somaNumeros);            }}

e a classe principal para testar

import java.util.Scanner;public class TesteSoma {        public static void main(String[]args) {                Scanner ler = new Scanner(System.in);        System.out.print("Digite o primeiro numero: ");        int n1 = ler.nextInt();                System.out.print("Digite o segundo numero: ");        int n2 = ler.nextInt();                System.out.print("Digite o terceiro numero: ");        int n3 = ler.nextInt();                System.out.print("Digite o quarto numero: ");        int n4 = ler.nextInt();                Soma s1= new Soma();        s1.soma();    }}

a soma esta sendo respondida como 0, alguém poderia me ajudar a achar meu erro e como resolver ?

 

 

 

 

 

 

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja, no código você criou uma classe para realizar a soma ... Porém, por mais que você instancie as classes, os atributos do objeto (n1, n2, n3, n4) não estão recebendo os valores ... Perceba que o "n1" utilizado dentro da função main, tem escopo apenas como variável da função main ... Os atributos de Soma são outra coisa ... para setar os valores você precisaria utilizar os Setters da classe assim:

public class Soma {    int n1,n2,n3,n4,somaNumeros=0;        public void soma(){                somaNumeros = n1+n2+n3+n4;        System.out.print("A soma é: "+somaNumeros);            }    public void setN1(int numero){        this.n1 = numero;    }    // ... Criar os métodos SETTERS e GETTERS de cada atributo.}

E na main você poderia utilizar algo assim:

import java.util.Scanner;public class TesteSoma {        public static void main(String[]args) {        Soma s1= new Soma();                Scanner ler = new Scanner(System.in);        System.out.print("Digite o primeiro numero: ");        int n1 = ler.nextInt();        s1.setN1(n1);                System.out.print("Digite o segundo numero: ");        int n2 = ler.nextInt();        s1.setN2(n2);                System.out.print("Digite o terceiro numero: ");        int n3 = ler.nextInt();        s1.setN3(n3);                System.out.print("Digite o quarto numero: ");        int n4 = ler.nextInt();        s1.setN4(n4);                s1.soma();    }}

Com isso o programa funcionará. Porém, aconselho utilizar mais dos conhecimentos da Orientação à Objetos para melhorar o código ... um exemplo seria exibir o resultado fora do método soma() ... alterando o método para retornar o valor de somaNumeros, você poderia colocar na main assim:

System.out.print("A soma é: " + s1.soma());

Existe muita coisa que ainda pode ser melhorada levando em conta apenas a Orientação à Objetos e boas práticas ... Mas continue firme e qualquer coisa só perguntar ...

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×