martes, 25 de octubre de 2016

¿QUÉ ES LA HERENCIA EN PROGRAMACIÓN ORIENTADA A OBJETOS?

Herencia:

Permite definir una clase tomando como base a otra clase ya existente.
Esto es una de las bases de la reutilización de código, en lugar de copiar y pegar.
En java, como ya vimos la herencia se especifica agregando la claúsula extends después del nombre de la clase. En la claúsula extends indicaremos el nombre de la clase base de la cuál queremos heredar.
Al heredar de una clase base heredaremos tanto los atributos como los métodos, mientras que los constructores son utilizados, pero no heredados.
Ejemplo:

public class persona {
 private String nombre;
 private String dni;

    public persona(String nombre, String dni) {
        this.nombre = nombre;
        this.dni = dni;
    }

    public String getNombre() {
        return nombre;
    }

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

    public String getDni() {
        return dni;
    }

    public void setDni(String dni) {
        this.dni = dni;
    }
}

public class estudiante extends persona {
    private float n1,n2,n3;
    private float promedio;
    private String codestudiante;
    public estudiante(String nombre,String dni,float n1,float n2,float n3,String codestudiante){
    super(nombre,dni);
    this.n1=n1;
    this.n2=n2;
    this.n3=n3;
    this.codestudiante=codestudiante;
}



Constructores y Metodos

Constructor
- Se utilizan para instanciar las clases (Para crear objetos de una                                                                 clase).
- Llevan el mismo nombre de la clase. 
- Tienen accesibilidad public.
- No tienen tipo de dato de retorno (no retornan un valor).

  - Si no tiene parámetros crea el objeto con los valores de los atributos por default.
     - Puede haber más de un método constructor pero los
        parámetros no pueden  tener los mismos tipos de
        datos en el mismo orden. 


Los constructores pueden ser:

1.- Por default (no tiene parámetros).
2.- Por parámetros (asigna los valores de los parámetros a los atributos del objeto que está siendo creado).

Ejemplo:

public class ClaseEjemplo{
 private int atributo;
//CONSTRUCTOR POR DEFAULT
 public ClaseEjemplo(){
}
//CONSTRUCTOR POR PARAMETROS
public ClaseEjemplo(int valorAsignar){
 atributo = valorAsignar;
}
 }

Meetodos SET Y GET

Los métodos get y set, son simples métodos que usamos en las clases para mostrar (get) o modificar (set) el valor de un atributo. El nombre del método siempre sera get o set y a continuación el nombre del atributo, su modificador siempre es public ya que queremos mostrar o modificar desde fuera la clase. Por ejemplo: getNombre o setNombre.
Esta es la sintaxis de cada uno:
public tipo_dato_atributo getAtributo (){
     return atributo;
}

public void setAtributo (tipo_dato_atributo variable){
    this.atributo = variable;
}

miércoles, 14 de septiembre de 2016

Conceptos Básicos de Programación Orientada a Objetos parte I

La Programación Orientada a Objetos se define como un paradigma que permite realizar una abstracción de la realidad.

POO comprende una gran cantidad de conceptos que permite el desarrollo de aplicaciones robustas.


1. CLASE:

Una clase se define como un tipo abstracto de dato que contiene atributos y métodos. A través de una clase se implementa un concepto abstraído de la realidad. En este caso, los atributos hacen referencia a las características del concepto abstraído y los métodos hacen referencia a los servicios de dicho concepto.

La sintaxis de la clase debe ser la siguiente:


En Java se debe seguir una buena práctica que consiste en implementar cada clase en un archivo independiente con extensión .java. Parael ejemplo anterior, el archivo debe denominarse Definiciones.java.

1.1. Atributos
Los atributos hacen referencia a las características que se le incluye a la clase. Estos atributos pueden ser declaraciones de tipos primitivos de datos o declaraciones de clases.

1.2. Visibilidad
La visibilidad se refiere al nivel de accesibilidad de los atributos y métodos. Los niveles de accesibilidad se dan por los siguientes términos:

private. Se puede acceder desde un método implementado desde la misma clase.
public. Se puede acceder desde un método implementado en cualquier clase.
protected. Se puede acceder desde un método implementado en una clase que herede la clase que contiene esta visibilidad y desde clases implementadas en el mismo paquete.

1.3. Métodos
Los métodos hacen referencia a los servicios que se le incluyen a a clase. En estos métodos se implementa el código necesario del servicio. Un método contiene los siquientes elementos:

Visibilidad. Se debe establecer si el método es private, public o protected.
Retorno. Un método puede retornar información. Si el método no retorna información se debe colocar la palabra reservada "void".
El retorno puede ser un tipo primitivo de dato o una clase. Si un método tiene retorno, en la implementación del método, debe estar presente la palabra reservada "return".
Nombre. Identificador del método en la clase. 
Parámetros. Un método puede recibir de 0 a n parámetros. un parámetro puede ser un tipo primitivo de dato o una declaración de una clase. los parámetros deben estar separados por comas.

Cada método implementa un código que debe estar contenido entre "{"y"}". La sintaxis de los métodos es la siguiente.


lunes, 5 de septiembre de 2016

PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS


La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos y sus interacciones, para diseñar aplicaciones y programas de computadoras. Está basado en varias técnicas, incluyendo herencia, abstracción, polimorfismo y encapsulamiento.

Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No es mejor uno que otro sino que cada uno tiene ventajas y desventajas. 

En la POO las entidades centrales son los objetos, que son tipos de datos que encapsulan con el mismo nombre estructuras de datos, operaciones o algoritmos que manipulan esos datos.  https://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos

CONCEPTOS FUNDAMENTALES:

La programación orientada a objetos es una forma de programar que trata de encontrar una solución a los problemas que ocasionaba la programación estructurada. Introduce nuevos conceptos, que superan y amplían conceptos antiguos ya conocidos. Entre ellos destacan los siguientes: 
http://www.monografias.com/trabajos/objetos/objetos.shtml

  • Clase: definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ellas.
  •     Herencia: (por ejemplo, herencia de la clase D a la clase C) Es la facilidad mediante la cual la clase D hereda en ella cada uno de los atributos y operaciones de C, como si esos atributos y operaciones hubiesen sido definidos por la misma D. Por lo tanto, puede usar los mismos métodos y variables publicas declaradas en C. Los componentes registrados como (private) también se heredan, pero como no pertenecen a la clase, se mantienen escondidos al programador y sólo pueden ser accedidos a través de otros métodos públicos.
  •     Objeto: entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos) los mismos que consecuentemente reaccionan a eventos. Se corresponde con los objetos reales del mundo que nos rodea, o a objetos internos del sistema (del programa). Es una instancia a una clase.
  •     Método: Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena tras la recepción de un "mensaje". Un método puede producir un cambio en las propiedades del objeto, o la generación de un "evento" con un nuevo mensaje para otro objeto del sistema.
  •     Evento: El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. También se puede definir como evento, a la reacción que puede desencadenar un objeto, es decir la acción que genera.
  •     Mensaje: una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó.
  •     Propiedad o atributo: contenedor de un tipo de datos asociados a un objeto , hace los datos visibles desde fuera del objeto y esto se define como sus características predeterminadas y cuyo valor puede ser alterado por la ejecución de algún método.
  •     Estado interno: es una variable que se declara privada, que puede ser únicamente accedida y alterada por un método del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos).