1) Abstracción
Es el pilar de la POO, que permite identificar las características y comportamientos de un objeto y con los cuales se construirá la clase (plantilla). Esto quiere decir que a través de este pilar o fundamento es posible reconocer los atributos y métodos de un objeto.
La imagen muestra en texto de color negro algunas de las características del objeto: color, tamaño, marca, son características porque todos los controles pueden tenerlas y cada objeto de este tipo tomará valores que le identifiquen; el objeto de la imagen tiene los siguientes valores:
color: negro
tamaño: 15
marca: samsung
2) Encapsulamiento
Es la característica de la POO que permite el ocultamiento de la complejidad del código, pertenece a la parte privada de la clase y que no puede ser vista desde ningún otro programa.
En el gráfico se representa como la complejidad del código queda oculta dentro de una caja fuerte impidiendo que quien lo utilice sin observar los detalles de cada una de las líneas que permiten el cumplimiento de una acción específica.
3) Herencia
Es el pilar más fuerte que asegura la reutilización de código, ya que a partir de esta característica es posible reutilizar (heredar) las características y comportamientos de una clase superior llamada clase padre, a sus clases hijas, denominadas clases derivadas. Esto implica que una vez desarrollado el código de una clase base, su código puede ser reutilizado por las clases derivadas.
4) Polimorfismo
Clase
Componentes de una clase
1) Atributo
Los atributos parteReal y parteImaginaria pertenecen a cada objeto de la clase. De hecho, cada objeto poseerá su propia copia de los atributos. Estos podrán tomar un valor independientemente de los valores de los atributos del resto de las instancias de la clase Complejo. Gracias a ello, podemos representar a la vez varios números complejos en nuestro programa, cada uno con su propia parte real y parte imaginaria.
2) Métodos
Existen otro tipo de atributos y métodos que no están asociados a las instancias, sino a las clases. Debido a ello, se llaman atributos de clase y métodos de clase.
De los atributos de clase existe una copia única para toda la clase, al contrario de lo que ocurre con los de instancia, para los cuales hay una copia por cada una de las instancias de la clase. De hecho, el atributo de clase existe por el hecho de existir la clase, incluso aunque no se haya creado ninguna instancia de esa clase
De los atributos de clase existe una copia única para toda la clase, al contrario de lo que ocurre con los de instancia, para los cuales hay una copia por cada una de las instancias de la clase. De hecho, el atributo de clase existe por el hecho de existir la clase, incluso aunque no se haya creado ninguna instancia de esa clase
Parámetro y Argumento
Los parámetros se declaran en la cabecera de la declaración de los métodos. Al declararse el parámetro, se indica el tipo de dato y el identificador correspondiente. Los parámetros o argumentos de un constructor o de un método pueden ser de cualquier tipo, ya sean tipos primitivos o referencias de objetos (en este caso debe indicarse el identificador de la clase correspondiente). Ejemplos de declaraciones de cabeceras de métodos:
Métodos con retorno y sin retorno
Return y Void
Un método cuyo tipo de retorno no es void necesita siempre devolver algo. Si el código de un método contiene varias sentencias if debe asegurarse de que cada una de las posibles opciones devuelve un valor. En caso contrario, se generaría un error de compilación.
Métodos de acceso(getter & setter)
Setters: Del Inglés Set, que significa establecer, pues nos sirve para asignar un valor inicial a un atributo, pero de forma explícita, además el Setter nunca retorna nada (Siempre es void), y solo nos permite dar acceso público a ciertos atributos que deseemos el usuario pueda modificar.
Getters: Del Inglés Get, que significa obtener, pues nos sirve para obtener (recuperar o acceder) el valor ya asignado a un atributo y utilizarlo para cierto método.
En el main la implementacion sería:
Tipos de Métodos
De instancia
//Llamada tipica a un metodo de instancia
idReferencia.idMetodo(parametros);
Todas las instancias de una clase comparten la misma implementación para un método de instancia. La instancia que hace la llamada al método es siempre un parámetro o argumento implícito. Dentro de un método de instancia, el identificador de una variable de instancia hace referencia al atributo de la instancia concreta que hace la llamada al método (suponiendo que el identificador del atributo no ha sido ocultado por el de un parámetro).
De clase
IdClase.idMetodo(parametros); // Llamada tipica a un metodo de clase
La palabra static determina la declaración de un método de clase. Por defecto, si no se indica la palabra static, el método declarado se considera un método de instancia.
Constructor en POO
Por ser métodos, los constructores también aceptan parámetros. Cuando en una clase no especificamos ningún tipo de constructor, el compilador añade uno público por omisión sin parámetros, el cual no hace nada.
2. No puede ser Heredado.
3. No retorna ningún valor (Ni void), por lo cual no debe especificarse ningún tipo de dato.
4. Debe declararse como public, sólo en casos realmente extraordinarios será de otro tipo.
Supongamos una clase llamada Datos
public class Datos
{
//declaracion de atributos
public Datos();//constructor sin parametros
public Datos(int Edad)
{//Constructor con parámetros
EdadM=Edad;
}
}
Sobrecarga de Métodos
La sobrecarga de métodos es la creación de varios métodos con el mismo nombre pero con diferente lista de tipos de parámetros. Java utiliza el número y tipo de parámetros para seleccionar cuál definición de método ejecutar.
Java diferencia los métodos sobrecargados con base en el número y tipo de parámetros o argumentos que tiene el método y no por el tipo que devuelve.
Tambien existe la sobrecarga de constructores: Cuando en una clase existen constructores múltiples, se dice que hay sobrecarga de constructores. Ejemplo
/* Métodos sobrecargados */
int calculaSuma(int x, int y, int z){
...
}
int calculaSuma(double x, double y, double z){
...
}
/* Error: estos métodos no están sobrecargados */
int calculaSuma(int x, int y, int z){
...
}
double calculaSuma(int x, int y, int z){
...
}
Modificador de Acceso
a) private
b) public
No hay comentarios:
Publicar un comentario