Tag Archive for java

Pro tips para crear Clases en Java

¡Estimados lectores! En esta ocasión quiero compartir con ustedes algunos tips y recomendaciones para mejorar su estilo de programación orientada a objetos especialmente cuando escribimos nuestras propias clases para diseñar objetos que cumplan con los requisitos de cualquier programa, esto quiere decir no solo en Java pero también otro lenguaje que maneje conceptos de POO.

Algunos de estos “Pro tips para crear clases” son nada mas y nada menos que algunas pautas muy sencillas que hay que seguir para hacer código de mejor calidad, mas legible y estandarizado. Es así como se practica en muchas empresas por cualquier programador profesional. A continuación algunos de los puntos mas importantes para tomar en cuenta y un video explicando como se tiene que hacer.

  1. Al crear una clase debemos definir las variables de la misma como privadas, incluso pueden ser protegidas, esto para previnir que se puedan acceder desde otras clases y obligar a el desarrollador a usar getters y setters como debe de ser.
  2. Evitar el uso de “numeros magicos”, es decir que cuando sea necesario realizar alguna operación matematica o algún calculo en nuestros metodos, no debemos utilizar numeros naturales o enteros directamente incluidos en las operaciones, debemos crear constantes estaticas y utilizar las mismas en nuestra clase.
  3. Crear constructores multiples, de manera que podamos crear objetos a partir de nuestra clase con distintas opciones, siendo sin parametros definidos, o bien utilizando parametros para construirlos con valores definidos en los parametros.
  4. Crear nuestro propio metodo toString(), esto para poder representar nuestros objetos de manera totalmente personalizada en formato de cadena de texto.

Estos fueron solo algunos de los tips, a continuación el video.

Video de Tips para crear clases en Java

Estimados, eso es todo por este articulo y tutorial, espero que les haya sido de utilidad y puedan aplicar algunos conceptos sencillos pero muy útiles cada vez que creen clases en Java.

Recuerda que puedes comentar tus opiniones, criticas o dudas al respecto. Comentar es gratis.

Graficadora de funciones cuadradas en Java con Swing

Aqui les dejo el codigo y el video tutorial para la graficadora, esta graficadora es muy sencilla, sin embargo para lo que sirve les dejo las 3 clases basicas que la conforman.

Para el codigo se recomienda ampliamente tener conocimientos matematicos de funciones cuadradas asi como alguna base de aplicaciones swing en Java.

Video tutorial:

Codigo fuente:

package graficadora;

import javax.swing.*;
import java.awt.*;

/**
 *
 * @author jorge
 */
public class Graficadora {

    //Importante, plano debe ser publico y estatico
    public static plano plano;

    public static void main(String[] args) {

        //Creando la ventana y el plano de dibujo
        Ventana frame = new Ventana();
        frame.setDefaultCloseOperation(Ventana.EXIT_ON_CLOSE);
        frame.setBounds(300, 300, 510, 600);
        frame.setLayout(new BorderLayout());
        plano = new plano();

        //Configuración del Boton
        JButton start = new JButton("Iniciar");
        start.addActionListener(frame);
        start.setText("Iniciar");

        //Bordes al panel
        frame.add( plano, BorderLayout.CENTER);
        frame.add(start, BorderLayout.SOUTH);

        frame.setVisible( true );

    }
}

 

package graficadora;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.BorderFactory;
import javax.swing.JPanel;
/**
 *
 * @author jorge
 */
public class plano extends JPanel{

    public plano() {
        init();
    }

    public void init() {
        this.setBorder(BorderFactory.createLineBorder(Color.black));
    }

    @Override 
     public void paintComponent( Graphics g ) {
                    super.paintComponent(g);

                    g.setColor(Color.red);

                    g.drawLine(0, this.getHeight()/2, this.getWidth(), this.getHeight()/2);
                    g.drawLine(this.getWidth()/2, 0,this.getWidth()/2 , this.getHeight());

                 }

    // y=c*x2 +c*x +c

     public void paintSQRFunc(Graphics g, double x2mult,
             double x1mult,double cons, double x1,double x2)
     {

         for(double i=x1;i<x2;i++)
         {
             double y = ((double)Math.pow(i,2)*x2mult)+i*x1mult+cons;
             double xp = i+1;
             double yp = ((double)Math.pow(xp,2)*x2mult)+xp*x1mult+cons;
             g.drawLine((int)coord_x(i), (int)coord_y(y), (int)coord_x(xp), (int)coord_y(yp));

         }
     }

     private double coord_x(double x)
     {
         double real_x = x+this.getWidth()/2;
        return real_x;
     }
     private double coord_y(double y)
     {
          double real_y = -y+this.getHeight()/2;

          return (real_y);
     }
}

 

package graficadora;
import java.awt.event.ActionEvent;
import javax.swing.*;
import java.awt.event.ActionListener;
import graficadora.Graficadora;
/**
 *
 * @author jorge
 */
public class Ventana extends JFrame implements ActionListener{

    @Override
    public void actionPerformed(ActionEvent e) {

       Graficadora.plano.paintSQRFunc(Graficadora.plano.getGraphics(),-0.2,2,-15,-200,200);
    }

}