domingo, 6 de marzo de 2011

programacion orientada a objetos java

public: Un miembro designado como public puede ser accedido desde cualquier código dentro del ámbito de un objeto instanciado a partir de la clase. Es la designación menos restrictiva.

private: Un miembro private solamente puede ser accedido por otros miembros de la propia clase; no puede ser accedido por miembros de una clase heredada. Es la designación más restrictiva de todas.

Interfase pública: Define los métodos que una clase debe de implementar, pero no define una implementación por su cuenta y cuando se declara publica puede ser accedida por otras clases.

Instancia: Podemos interpretar que una clase es el plano que describe como es un objeto de la clase, por tanto podemos entender que a partir de la clase podemos fabricar objetos. A ese objeto construido se le denomina instancia, y al proceso de construir un objeto se le llama instanciación.

get: Obtener valor de un atributo de forma directa también para "cargar un valor" (asignar un valor a una variable)

set: Tiene exactamente el mismo interfaz que Collection, y no hay ninguna funcionalidad extra, como en el caso de las Listas. Un Set es exactamente una Colección, pero tiene utilizada en un entorno determinado, que es ideal para el uso de la herencia o el polimorfismo. Un Set sólo permite que exista una instancia de cada objeto.

A continuación se muestran las diferentes implementaciones de Set, debiendo utilizarse HashSet en general, a no ser que se necesiten las características proporcionadas por alguna de las otras implementaciones.

Cada elemento que se añada a un Set debe ser único, ya que el otro caso no se añadirá porque el Set no permite almacenar elementos duplicados. Los elementos incorporados al Conjunto deben tener definido el método equals(), en aras de establecer comparaciones para eliminar duplicados. Set tiene el mismo interfaz que Collection, y no garantiza el orden en que se encuentren almacenados los objetos que contenga.

  1. ¿Cuál es la diferencia entre public y private?

En public Una variable/función es pública puede ser accedida desde fuera de la clase.y private Al contrario que las públicas, las variables/funciones privadas sólo pueden ser accedidas desde dentro de la misma clase.

  1. ¿Cuál es la diferencia entre un método accesor y un método modificador?

Que con método accesor solamente puedo visualizar la clase y con un método modificador puedo modificar una clase o método que han sido definidos como públicos. Por un tema de principios de la POO los atributos de los objetos deben ser siempre "privados" (concepto "encapsulación": no son accesibles desde fuera del objeto, solo el objeto tiene la potestad de usarlos directamente) y se deberán crear métodos públicos que sustituya una u otra operación, o ambas, cada vez que la situación lo amerite: un método "setter" para "cargar un valor" (asignar un valor a una variable) y/o un método "getter" para "retornar el valor" (solo devolver la información del atributo para quién la solicite).

  1. ¿Para qué sirve un método accesor y un método modificador?

Del buen uso de la visibilidad de los atributos en una clase depende el respetar o no el principio de ocultación, caracteristica de la POO, la cual nos dice que solamente los propios métodos internos del objeto pueden acceder a las propiedades del mismo.

Supongamos que tenemos una clase llamada Persona, con los atributos Nombre, Edad y Nacimiento, donde el Nacimiento es la fecha de nacimiento y la edad se obtiene a partir de esta. Dado que los atributos son privados no se tiene acceso a ellos desde fuera del objeto, lo cual representa un problema ya que necesitamos poder "ver" y modificar el atributo Nombre, modificar el Nacimiento y ver la Edad.

Para resolver el problema necesitamos implementar métodos accesores y modificadores los cuales nos van a permitir el acceso a los atributos de la clase, la idea consiste en implementar un método accesor por cada atributo que necesitemos "ver", y un método modificador por cada atributo que necesitemos modificar.

JAVA:

class Persona {
private
String Nombre;
private int Edad;
private
String Nacimiento;

void Persona (String Nombre, String Nacimiento) {
this.Nombre = Nombre;
this.Nacimiento = Nacimiento;
this.Edad = this.calcularEdad ();
}

private int calcularEdad () {
// Calcular Edad, devuelve int
}

//Metodos Accesores y Modificadores
String getNombre () {
return this.nombre;
}

void setNombre (String Nombre) {
this.Nombre = Nombre;
}

int getEdad () {
return this.Edad;
}

void set Nacimiento (String Nacimiento) {
this.Nacimiento = Nacimiento;
}

}

Debemos tomar en cuenta que la idea no es implementar métodos getter y setter a todos los atributos cuando no sea necesario, porque esto sería equivalente a dar visivilidad publica a nuestros atributos con lo cual no cometeremos el objetivo.

  1. ¿Cuál es el propósito de usar una variable private?

Un miembro private solamente puede ser accedido por otros miembros de la propia clase; no puede ser accedido por miembros de una clase heredada. Es la designación más restrictiva de todas. Construya una clase llamada “mascota”, en la cual deberá definir al menos dos propiedades y dos métodos.

  1. ¿Cómo se borran los datos almacenados en los objetos?

Muchos otros lenguajes orientados a objetos necesitan que se siga la pista de los objetos que se han creado y luego se destruyan cuando no se necesiten. Escribir código para manejar la memoria de esta es forma es aburrido y propenso a errores.

Java permite ahorrarse esto, permitiendo crear tantos objetos como se quiera (sólo limitados por los que el sistema pueda manejar) pero nunca tienen que ser destruidos. El entorno de ejecución Java borra los objetos cuando determina que no se van utilizar más. Este proceso es conocido como recolección de basura.

Un objeto es elegible para la recolección de basura cuando no existen más referencias a ese objeto. Las referencias que se mantienen en una variable desaparecen de forma natural cuando la variable sale de su ámbito. O cuando se borra explícitamente un objeto referencia mediante la selección de un valor cuyo tipo de dato es una referencia a null.

Programa Clase Mascota

class perro{

public String nombre,color,edad,tamaño;

public String saludo()

{

return "tu perro es asi verdad";

}

public String datos()

{

return nombre +" " +color +" " +edad +" " +tamaño;

}

}

import java.util.*;

public class dato {

public static void main(String[] args){

perro objeto1=new perro();

Scanner t=new Scanner (System.in);

System.out.println("nombre perro");

objeto1.nombre=t.next() ;

System.out.println("color de su perro");

objeto1.color=t.next() ;

System.out.println("edad de su perro");

objeto1.edad=t.next() ;

System.out.println("tamaño de su perro");

objeto1.tamaño.next() ;

System.out.println(objeto1.saludo());

System.out.println(objeto1.datos());

}}

No hay comentarios: