Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: AFenoy en 08 de Febrero 2017, 16:40

Título: Java Añadir metodo para calcular la media de 3 strings en una clase (objeto)
Publicado por: AFenoy en 08 de Febrero 2017, 16:40
Buenos dias, estoy haciendo un programa, en el que un objeto registro, obtiene 3 notas por string, y tiene que calcular la nota media, pero esa nota media, tambien esta dentro del objeto.

¿Hay alguna manera de crear un metodo, que calcule la media automaticamente y la agregue al objeto?

Os pongo como la tengo ahora mismo:

Código: [Seleccionar]
public class Registro implements Serializable  {
    public String cadena;
    public String nombre;
    public String apellido;
    public String nota1;
    public String nota2;
    public String nota3;
    public int notaMedia;

    public Registro(String nombre, String apellido, String nota1, String nota2, String nota3, int notaMedia) {
        this.nombre = nombre;
        this.apellido = apellido;
        this.nota1 = nota1;
        this.nota2 = nota2;
        this.nota3 = nota3;
        this.notaMedia = notaMedia;
   
    }
    public int notaMedia()
    {
        int nota12 = Integer.parseInt(nota1);
        int nota22 = Integer.parseInt(nota2);
        int nota32 = Integer.parseInt(nota3);
        int notaMedia = (nota12+ nota22 + nota32)/3;
        return notaMedia;
    }
     @Override
        public String toString() {
        return "Nombre:"+ nombre+" "+ apellido+"\nNotas:\n1ºEval:"+ nota1+" 2ºEval:" +nota2+" 3ºEval:" +nota3+"\nNota Media: "+ notaMedia;
     
}
}

Despues en el main hago algo asi, pero lo veo muy chapucero...

           
Código: [Seleccionar]
Registro r = new Registro(nombre, apellido, nota1, nota2, nota3, 0);
            int notaMedia = r.notaMedia();
            Registro r1 = new Registro(nombre, apellido, nota1, nota2, nota3, notaMedia);

El main recoge strings de un archivo CSV por eso vienen en String.

A ver si podeis ayudarme! Gracias de antemano!
Título: Re:Añadir metodo para calcular la media de 3 strings en una clase
Publicado por: Lorenzo31 en 10 de Febrero 2017, 08:42
public float notaMedia (){ this.notaMedia = (this.nota1+this.nota2+rhis.nota3)/3; }

Llama a es función directamente en el constructor
y se calculará automático al hacer new
Título: Re:Añadir metodo para calcular la media de 3 strings en una clase
Publicado por: AFenoy en 10 de Febrero 2017, 17:48
Muchas gracias por la ayuda Lorenzo31, pero esa solucion no me valdria.
Ademas de que nota1,2 y 3 son strings, luego al crear un objeto registro,
¿como introduciria la notaMedia de ese objeto?
Título: Re:Añadir metodo para calcular la media de 3 strings en una clase
Publicado por: Lorenzo31 en 10 de Febrero 2017, 20:29
no entiendo el problema, que mas da que sean strings ? haces un parse y ya está.

Si al hacer el new pasas las tres notas, tan solo debes igualar la variable notaMedia a la función crearMedia y que crearMedia devuelva y guarde o guarde directamente la nota media,  no entiendo bien tu problema.


public Registro(string nota1...){
//aquí la asignación de variables
.....
this.notaMedia = getMedia();
}