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 - TeKNo dUKe

#33
Podes hacer que todas las páginas dentro de sus primeras instrucciones te cambien la direccion de la URL a http://form_ruta_edit.php de esa forma el usuario nunca ve nada distinto en su barra y no se entera de los cambios, esto no quiere decir que si alguien te ataca la pagina no quedes desprotegido ya que mandas los datos por la URL.

#34
Para serializar objetos utilizando las clases de los frameworks tanto en java como en .net (espero no equivocarme) ambos traen clases que te serializan/deserealizan objectos y te piden explicitamente que dejes los atributos que vas a serealizar como publicos. Sacando ese caso particular, siempre que puedas no los hagas publicos.

La diferencia entre protected y private esta en la herencia, si vos tenés una clase que tiene atributos privados solamente ella puede acceder a ellos directamente, mientras que si haces un atributo protected va a ser visto como privado para todos menos para los hijos de la clase que si podrán modificarlo.

Ejemplito simple:

public class A {
private int x;
protected int y;
}

public class B extends A{
public void metodoB(){
y = y+1;
x = x+1; // aqui dara error
}
}


La linea x = x +1 dara error ya que el atributo x es privado en la clase A por consiguiente solo A puede acceder a el y no B que es hijo de A, mientras que y no te genera problemas por haber sido declarado protected.
#35
Porque por get las cosas no fueron "encodeadas" en ningun formato ya que las mandas por la url y en post las pasa a un texto plano.
#36
Cita de: mark182 en 12 Junio 2010, 04:13 AM
Buenas,

Yo empece programando en PHP y C, y ahora estoy estudiando PHP orientado a objetos. Lo que no entiendo de la POO es el encapsulamiento, osea no entiendo que gano poniendo a los atributos y/o metodos los modificadores public, private y protected.

No solamente te da las ventajas que te han dicho arriba, sino que ademas de eso, supon que tienes un atributo el cual es public, lo que quiere decir es que cualquier puede cambiar ese valor en cualquier momento, pero supon ademas que la logica de tu negocio dice que el valor de ese atributo nunca debe ser menor a 5 o mayor a 70, entonces tendras que validar por todas partes cosas inecesarias corriendo el riesgo de que alguien ignore estas validaciones y haga una asignación incorrecta, si encapsulas el atributo lo que seria la practica correcta, tus objetos de dicha clase no van a tener estos errores ya que puedes validarlo todo en el metodo set de dicho atributo, en codigo:


public class ProductoX{
    private int valorCritico; // este valor no puede ser menor a 5 ni mayor a 70
    private int[] algoCritico;

    public set valorCritico (int value){
             if (value < 0 || value > 70) throw ValorCriticoIncorrectoException;
             this.valorCritico = value;
    }

   public int metodoCritico(){
             return algoCritico[valorCritico];
   }
}


En ese ejemplo si tu dejas valorCritico como publico nada impide a un usuario de la clase hacer lo siguiente

ProductoX x = new ProductoX();
x.valorCritico = -55;
int a = x.metodoCritico();

En este caso la aplicacion se cae por un error al tratar de leer el array con un valor de -55, y esto era simplemente evitable encapsulando el atributo y no dejando que lo modifiquen directamente sino mediante un metodo que construyes para tal fin.-
#37
Scripting / Re: Script comparacion de archivos
12 Junio 2010, 17:36 PM
Como dijo ctlon sería mejor que lo hagas en python o perl, personalmente para un script así elegiría python entre otras porque si mañana migras de entorno py es multiplataforma mientras que el .bat de windows te dejara de servir y tendrás que reprogramar.-
#38
Con la cuota de mercado que tiene M$ en buscadores debería dejar de reirse, google con foto o sin foto de fondo lo ownea por mucho...

Esa foto de google fue un epic fail anyway.-
#39
Programación Visual Basic / Casting
26 Junio 2008, 14:34 PM
Tengo una clase base y dos que heredan de ella, cuando quiero hacer un downcasting me sale una InvalidCastException... alguien puede ayudarme?

#40
Cambie la consulta para recuperar alguna key y soluciono el problema.-