Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - sapito169

#181
Java / Re: Usar atributos de clases en otra
12 Mayo 2012, 20:34 PM
Cuando un objeto tenga atributos es mejor ponerle un getter o setter

La solución mas común pero la menos elegante es poner simplemente un atributo global publico publico
No me gusta por que es propensa a errores y es posible transformarla en null cuando se te de la gana también es posible cambiarla a un estado malo o invalidó y luego tendrás un error al ultimo momento (objetos zombis) es difícil



noooo herencia no estoy totalmente en contra antes mi fee era usar herencia para todo (por que era mas purista y creía en la santima poo)
Ahora después de ver los horribles errores que cometí prefiero siempre composición sobre herencia la herencia trae un acoplamiento muy fuerte si modificas el padre todos los hijos se cambian
Usa herencia con mucha cautela cuando una cosa sea otra  como un factura es un documento como una computadora es una aparto y cuando no se pueda remplazar por composición
No uses herencia solo porque quieres usar los métodos del padre eso es un mal diseño en esos casos usa mejor composición
recuerda siempre que diseñes cualquier abstracción tienes que estar totalmente seguro que va estar mal al primer momento(leak abstracion) que tienes que tener mucho cuidado y reconocer que cometes errores y corregir y arreglarlo y modificarlo (refactoring)
#182
crea un acceso directo de netbeans en la carpeta C:\WINDOWS\system32 con el nombre de netbeans luego puedes poner eso en inicio ejecutar
#183
eclipse no tiene nada que ver
pon tu intento a qui no sea hacen tareas
#184
en windows
creas un archivo .bat con esas lineas l
luego creas un acceso directo al batch
#185
Java / Re: Ayuda error en el main de Java
28 Abril 2012, 04:16 AM
corregido y repito es mejor trabajar en archivos separado


Ventana.java


import java.awt.Color;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;


public class Ventana {

  public static void main(String[]args){
     ventanita demo = new ventanita();
  }
 
}


ventanita .java

import java.awt.Color;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

class ventanita extends JFrame{
     
     ventanita(){
       
        this.setSize(Toolkit.getDefaultToolkit().getScreenSize());
        this.setResizable(false);
        panel panel = new panel();
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.add(panel);
        this.setVisible(true);
     }
  }


java panel

import java.awt.Color;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;


class panel extends JPanel{
     
     panel(){
        JPanel panel = new JPanel();
        this.setBackground(Color.black);
        botoncierre b1 = new botoncierre();
        this.add(b1);
     }
  }



cierre.java


import java.awt.Color;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;


class cierre implements ActionListener{
     public void actionPerformed(ActionEvent e){
        System.exit(0);
     }
  }




javac *.java

java Ventana


muchos errores y todavia no tienes claro como trabajar con varias clases pero estas aprendiendo bien lo vasico es bueno que te equivoques la mañor cantidad de veces sigue asi mejoraras

por favor responde te lo suplico no me ignores
#186
libreria contiene paquete contiene clases
libreria tiene una funcion definida
paquete sirve para agrupar clases

mira existe la carpeta javax carpeta donde estan muchos archivos con la extension .class esa carpeta se llama paquete

en este foro se usa el api de español para permitir comunicarse otros sistemas tambien se comunican porque ellos crearon un api de webserices en xml si ago uso del api de servlet puedo crear apliaciones webs que cualquier contenedor web como tomcat o jetty o glassfih puedan usar sin ningun problema esos contenedores web me pueden entender por que hablan el mismo idioma el api de servlets

varias clases se agrupan en un paquete para eso sirven los paquetes son carpetas donde se encuentran las clases principalmente se usan para tener un orden o para ocultar siertas clases dentro del paquete(esconder detalles) en la parte superior de la

las librerias pueden tener varias clases y paquetes las librerias se crean con un proposito definido como pruebas Junit para la persistencia hibermate

una biblioteca de clase es lo mismo que libreria

cuando alguien habla de api se refiere a una interfase para permitir la comunicacion es decir que si yo defino que para mostrar respeto doy la mano cuando saludo todos pueden entender esa forma de comunicacion como un api (aunque tendrias que estar loco para usar esa palabra en un contexto no relacionado a la programacion) otro ejemplo mas comun es que para permitir la comunicacion entre varios sistemas creo una libreria con varias clases e interfases asi todos los sistemas pueden comunicarse por que tienen las mismas clases e interfases
#187
Java / Re: [Problema] Java constantes
22 Abril 2012, 21:10 PM
si puedes crear un metodo que le cambie el valor static para cambiar la edad pero una ves que le cambies la edad a una persona el resto de las personas tambien tendran la misma edad

static es por clase no por objeto


class Prueba {
public static void main(String[] args) {
Persona p = new Persona();
p.setNombre("Ricardo");
p.setEdad(50);
Persona pancho = new Persona();
pancho.setNombre("pancho");
System.out.println("" + p.getNombre());
System.out.println("" + p.getEdad());
System.out.println(pancho.getEdad());
}
}





class Persona {
private static int EDAD = 30;
private String nombre;

public void setNombre(String nombre) {
this.nombre = nombre;
}

public String getNombre() {
return nombre;
}

public int getEdad() {
return EDAD;
}
public void setEdad(int edad) {
EDAD = edad;
}
}

y la respuesta seria

Ricardo
50
50
#188
Java / Re: [Problema] Java constantes
22 Abril 2012, 04:29 AM
-pon la clase completa
-uu en primer lugar pon nombres logicos y ejemplos concretos por que asi es mas facil

-noo elhacker sixtoex elquesea(aparte te tener nombres horribles) no tendrian el mismo valor la palabra static solo afecta a elHacker

un ejemplo


package javaapplication7;

public class Apliacion {

   static String CREADOR="M$crosoft el lado oscuro $$$";
}





public class Main {

   public static void main(String[] args) {
       Apliacion excel=new Apliacion();
       Apliacion powerPoint=new Apliacion();
       Apliacion word=new Apliacion();
       System.out.println(Apliacion.CREADOR);
       System.out.println(powerPoint.CREADOR);
       System.out.println(word.CREADOR);
   }  
}


me imprime

M$crosoft el lado oscuro $$$
M$crosoft el lado oscuro $$$
M$crosoft el lado oscuro $$$


y el ide me dice "sapo bruto no se supone que debas programar asi mira la linea 10 y 11 estas imprimiendo una variable static usando un objeto"


y si pongo algo como esto


public static void main(String[] args) {
       Apliacion excel=new Apliacion();
       Apliacion powerPoint=new Apliacion();
       Apliacion word=new Apliacion();
       powerPoint.CREADOR="Sapo corporation made in wilson peru";
       System.out.println(Apliacion.CREADOR);
       System.out.println(powerPoint.CREADOR);
       System.out.println(word.CREADOR);
   }



y me resalta que no es logico lo que puse en la linea 8 por que estoy intentando ponerle un creador a powerpoint pero eso no tiene sentido por que le pongo el creador a la clase Apliacion y no al objeto power point
#189
Java / Re: [Problema] Java constantes
21 Abril 2012, 04:13 AM
eso quiere decir que para todo tu sistema va a existir una solo variable PI no una ni dos ni 3 solo una variable pi

digamos que tienes un objeto Persona y tiene una variable global edad si no es estatica todas las personas tendrian edades diferentes es decir que puedes crear el objeto panchito de tipo Persona con edad de 15 y tambien el objeto juancito con edad 17 cada persona tiene su edad independiente es decir en el programa estarian en memoria varias edades pero si pones edad como static existiria una sola edad para todo el sistema es decir que si pones edad =14 con static todas las personas tendrian 14 no importa si crees a panchito o a juancito ambos siempre tendran la misma edad
#190
Java / Re: Herencia
19 Abril 2012, 21:23 PM
wtf las cosas que se pueden aprender de sorpresa

esta es la version corregida

notepad Electrodomestico.java


public class Electrodomestico {

    public String marca;
    public double precio;
    public int numPieza;

    public Electrodomestico(String marcax, double preciox, int numPiezax) {
        fijaMarca(marcax);
        fijaPrecio(preciox);
        fijaNumPieza(numPiezax);
    }

    public void fijaMarca(String marcax) {
        marca = marcax;
    }

    public void fijaPrecio(double preciox) {
        precio = preciox;
    }

    public void fijaNumPieza(int numPiezax) {
        numPieza = numPiezax;
    }

    public String dameMarca() {
        return marca;
    }

    public double damePrecio() {
        return precio;
    }

    public int dameNumPieza() {
        return numPieza;
    }

    static class Refrigerador extends Electrodomestico {

        private String color;
        private int numPuertas;
        private int numCajones;

        public Refrigerador(String marcax, double preciox, int numPiezax, String colorx,
                int numPuertasx, int numCajonesx) {
            super(marcax, preciox, numPiezax);
            fijaColor(colorx);
            fijaNumPuertas(numPuertasx);
            fijaNumCajones(numCajonesx);
        }

        public void fijaColor(String colorx) {
            color = colorx;
        }

        public void fijaNumPuertas(int numPuertasx) {
            numPuertas = numPuertasx;
        }

        public void fijaNumCajones(int numCajonesx) {
            numCajones = numCajonesx;
        }

        public String dameColor() {
            return color;
        }

        public int dameNumPuertas() {
            return numPuertas;
        }

        public int dameNumCajones() {
            return numCajones;
        }
    }

    static class Lavadora extends Electrodomestico {

        private int velocidadRPM;
        private int anchoCM;
        private String modelo;

        public Lavadora(String marcax, double preciox, int numPiezax, int velocidadRPMx,
                int anchoCMx, String modelox) {
            super(marcax, preciox, numPiezax);
            fijaVelocidadRPM(velocidadRPMx);
            fijaAnchoCM(anchoCMx);
            fijaModelo(modelox);
        }

        public void fijaVelocidadRPM(int velocidadRPMx) {
            velocidadRPM = velocidadRPMx;
        }

        public void fijaAnchoCM(int anchoCMx) {
            anchoCM = anchoCMx;
        }

        public void fijaModelo(String modelox) {
            modelo = modelox;
        }

        public int dameVelocidadRPM() {
            return velocidadRPM;
        }

        public int dameAnchoCM() {
            return anchoCM;
        }

        public String dameModelo() {
            return modelo;
        }
    }

    static class Herencia {

        public static void main(String[] args) {
            Electrodomestico e = new Electrodomestico("Whirpool", 7000.50, 1);
            Refrigerador r = new Refrigerador("LG", 2000.00, 1, "blanco", 3, 8);
            Lavadora l = new Lavadora("Samsung", 3000.50, 1, 1000, 55, "SMO2VY346");
            System.out.println("Marca: " + r.dameMarca());
            System.out.println("Precio: " + r.damePrecio());
            System.out.println("Numero de Piezas: " + r.dameNumPieza());
            System.out.println("Color: " + r.dameColor());
            System.out.println("Numero de Puertas: " + r.dameNumPuertas());
            System.out.println("Numero de Cajones: " + r.dameNumCajones());
            System.out.println("Marca: " + l.dameMarca());
            System.out.println("Precio: " + l.damePrecio());
            System.out.println("Numero de Piezas: " + l.dameNumPieza());
            System.out.println("Velocidad(rpm): " + l.dameVelocidadRPM());
            System.out.println("Ancho(cm): " + l.dameAnchoCM());
            System.out.println("Modelo: " + l.dameModelo());
        }
    }
}


javac Electrodomestico.java

java Electrodomestico$Herencia

y porfavor usa una clase por archivo y evita usar static para que no te pase denuevo