Python
Para empezar voy a poner este programa que hice, que me ayudo a comprender las clases y objetos.
Un ejemplo de objeto puede ser un tinaco, en donde tendríamos atributos como la marca, el numero de mangueras conectadas, la presión etc..., el método seria cuando va a tirar agua y cuando se detiene.
En Python las clases se definen con la palabra class y luego el nombre con mayúscula al inicio después dos puntos, después de aquí va el cuerpo de la clase.
#!/usr/bin/python class Tinaco: def __init__(self, agua): self.agua = agua print "Tenemos", agua, "galones de agua" def lava(self): if self.agua > 0: print "Saca agua! :)" else: print "No hay agua! :(" def bana(self): if self.agua > 0: self.agua -= 1 print "Quedan", self.agua, "galones de agua" else: print "Ya no hay :(..." mi_tinaco = Tinaco(5) print mi_tinaco.agua mi_tinaco.lava() mi_tinaco.bana() mi_tinaco.bana() mi_tinaco.bana() mi_tinaco.bana() mi_tinaco.bana() mi_tinaco.lava() print mi_tinaco.agua
El método __init__. hace que inicialice el proceso.
Para crear un nuevo objeto escribo el nombre después lo igualo a la clase y el parámetro.
Solo necesitamos un parámetro porque el otro (self) lo referencia automaticamente.
Después hago consultas hasta que el tinaco quede vació.
Captura de pantalla del programa.
Java
Este programa basado en uno que hicimos en asesorías de programación el verano pasado, se declaran 4 botones en los puntos cardinales que al momento de picarles cambia de color el BorderLayout del centro
// librerias usadas en este programa import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JButton; import javax.swing.JLabel; import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.Color; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; // aqui comienza nuestra clase public class Direccion implements ActionListener { // todo el codigo va aqui adentro public void actionPerformed(ActionEvent e) { String cmd = e.getActionCommand(); if (cmd.equals("NORTE")) { //si se cumple la condicion, cambia el color this.principal.setBackground(Color.GREEN); } if (cmd.equals("SUR")) { this.principal.setBackground(Color.BLUE); } if (cmd.equals("ESTE")) { this.principal.setBackground(Color.RED); } if (cmd.equals("OESTE")) { this.principal.setBackground(Color.YELLOW); } return; } private JPanel principal; public Direccion(JPanel p) { // constructor de Botones this.principal = p; } // el metodo principal public static void main(String[] args) { JFrame f = new JFrame(); // creamos la ventana nueva f.setSize(800, 600); // tamaño f.setLocation(100, 200); // posicion f.setTitle("Puntos cardinales"); // nombre // que pasa cuando lo cierro f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // paneles JPanel pBorder = new JPanel(); JPanel p = new JPanel(); // panel del fondo Direccion yo = new Direccion(pBorder); pBorder.setLayout(new BorderLayout()); p.setLayout(new GridLayout()); pBorder.setBackground(Color.WHITE); //color del inicio JButton norte = new JButton("Norte"); //creo botones JButton sur = new JButton("Sur"); JButton este = new JButton("este"); JButton oeste = new JButton("Oeste"); pBorder.add(norte, BorderLayout.NORTH); //los agrego al panel pBorder.add(sur, BorderLayout.SOUTH); pBorder.add(este, BorderLayout.WEST); pBorder.add(oeste, BorderLayout.EAST); pBorder.add(new JLabel("Colorsitos"), BorderLayout.CENTER); //agrego los listeners norte.addActionListener(yo); norte.setActionCommand("NORTE"); sur.addActionListener(yo); sur.setActionCommand("SUR"); este.addActionListener(yo); este.setActionCommand("ESTE"); oeste.addActionListener(yo); oeste.setActionCommand("OESTE"); //agrego el panel pBorder al principal p.add(pBorder); // hacer que este panel sea el contenido de la ventana f.setContentPane(p); // hacer que la ventana sea visible f.setVisible(true); // salir del programa return; } // termina main } // termina la clase Direccion
Capturas de pantalla
C++
Este es un programa que tiene una clase de Cambio en donde se tienen funciones para realizar cambios en monedas, ya había realizado uno parecido pero en python sin clases, ahora este esta orientado a objetos.
#include <iostream> using std::cout; using std::endl; using std::cin; //clase Cambio class Cambio { public: double rescambio; float agarrame(void); void dolar(float pesos); void euro(float pesos); void libras(float pesos); }; void Cambio :: dolar(float pesos){ rescambio = pesos / 12.95; cout << "El cambio a dolares es:" << endl; cout << rescambio << endl; return; } void Cambio :: euro(float pesos){ rescambio = pesos / 16.44; cout << "El cambio a euros es:" << endl; cout << rescambio << endl; return; } void Cambio :: libras(float pesos){ rescambio = pesos / 20.36; cout << "El cambio a libras es:" << endl; cout << rescambio << endl; return; } float Cambio :: agarrame(void){ float pesos; cout << "Dime los pesos" << endl; cin >> pesos; return pesos; } int main (int argc, char** args){ Cambio cambiame; int selecciona; float pesos1; cout << "Selecciona que cambio deseas realizar:" << endl; cout << "1) Cambio a dolares" << endl; cout << "2) Cambio a euros" << endl; cout << "3) Cambio a libras" << endl; cin >> selecciona; switch (selecciona) { case 1: pesos1 = cambiame.agarrame(); cambiame.dolar(pesos1); break; case 2: pesos1 = cambiame.agarrame(); cambiame.euro(pesos1); break; case 3: pesos1 = cambiame.agarrame(); cambiame.libras(pesos1); break; default: cout << "leea bien las intrucciones :)"; } return 0; }
Esto es todo de mi Reporte de programación orientada a objetos.
Espero que mi explicación les sirva, si tienen algún comentario acerca de esta entrada, espero me digan ya que estoy abierto a cualquier error.
3 para el reporte
ResponderEliminar