lunes, 12 de octubre de 2015

PARADIGMA DE PROGRAMACIÓN ORIENTADO A OBJETOS

¿Qué es un Paradigma?
Es una metodología de desarrollo que se basa en dividir el programa en pequeñas unidades lógicas insurreccionadas llamadas, cada uno de los cuales representan una instancia de alguna clase, y cuyas clases son miembros de jerarquías de clases unidas mediante relaciones de herencia.
Un paradigma de programación provee (y determina) la visión y métodos de un programador en la construcción de un programa o subprograma. Diferentes paradigmas resultan en diferentes estilos de programación y en diferentes formas de pensar la solución de problemas (con la solución de múltiples “problemas” se construye una aplicación).
Los lenguajes de programación son basados en uno o más paradigmas, por ejemplo : Smalltalk y Java son lenguajes basados en el paradigma orientado a objetos. El lenguaje de programación Scheme, en cambio, soporta sólo programación funcional. En cambio Python, soporta múltiples paradigmas.

Principales paradigmas de programación

Paradigma Funcional:
Este paradigma concibe a la computación como la evaluación de funciones matemáticas y evita declarar y cambiar datos. En otras palabras, hace hincapié en la aplicación de las funciones y composición entre ellas, más que en los cambios de estados y la ejecución secuencial de comandos (como lo hace el paradigma procedimental). Permite resolver ciertos problemas de forma elegante y los lenguajes puramente funcionales evitan los efectos secundarios comunes en otro tipo de programaciones.
Paradigma Lógico:
Se basa en la definición de reglas lógicas para luego, a través de un motor de inferencias lógicas, responder preguntas planteadas al sistema y así resolver los problemas. Ej.: prolog.
Paradigma Imperativo(o procedural):
Describe la programación como una secuencia instrucciones        o comandos que cambian el estado de un programa. El código máquina en general está basado en el paradigma imperativo. Su contrario es el paradigma declarativo. En este paradigma se incluye el paradigma procedimental (procedural) entre otros C, Pascal.
Paradigma Orientado a Objetos:
Está basado en la idea de encapsular estado y operaciones en objetos. En general, la programación se resuelve comunicando dichos objetos a través de mensajes (programación orientada a mensajes). Su principal ventaja es la reutilización de códigos y su facilidad para pensar soluciones a determinados problemas, es una forma especial de programar, es lo más cercano a como expresaríamos las cosas en la vida real, esto es lo que marca la diferencia con otros tipos de programación. En Java todo es representado como un Objeto. Se puede incluir -aunque no formalmente- dentro de este paradigma, el paradigma basado en objetos, que además posee herencia y subtipos entre objetos. Ej.: Simula, Smalltalk, C++, Java, Visual Basic .NET, etc.
Paradigma Declarativo: 
No se basa en el cómo se hace algo (cómo se logra n objetivo paso a paso), sino que describe (declara) cómo es algo. En otras palabras, se enfoca en describir las propiedades de la solución buscada, dejando indeterminado el algoritmo (conjunto de instrucciones) usado para encontrar esa solución. Es más complicado de implementar que el paradigma imperativo, tiene desventajas en la eficiencia, pero ventajas en la solución de determinados problemas.
Paradigma Estructurado
La programación se divide en bloques (procedimientos y funciones) que pueden o no comunicarse entre sí. Además la programación se controla con secuencia, selección e iteración. Permite reutilizar código programado y otorga una mejor compresión de la programación. Es contrario al paradigma inestructurado, de poco uso, que no tiene ninguna estructura, es simplemente un “bloque”, como por ejemplo, los archivos batch (.bat).
Otros paradigmas y subparadigmas son:
Paradigma orientado al sujeto, paradigma Reflectante, programación basada en reglas, paradigma basado en restricciones, Programación basada en prototipos, paradigma orientado a aspectos, etc.



domingo, 11 de octubre de 2015


FUNDAMENTOS DE PROGRAMACIÓN ORIENTADA A OBJETOS
 
 




Para aplicar con eficiencia el paradigma de la programación orientada a objetos en el desarrollo de software, es necesario conocer los siguientes conceptos fundamentales:

¿Qué es un objeto?
Primeramente  tenemos que tener claro lo siguiente:
ü  Un objeto es una abstracción de la realidad. Por ejemplo: Cliente
ü  Los objetos conocen cuál es su estado actual, cada conocimiento del objeto se denomina atributo. Por ejemplo: El objeto Cliente tiene los atributos nombre, dirección, etc.
ü  Un objeto es útil si tiene alguna función o comportamiento en el sistema, cada comportamiento se denomina operación. Por ejemplo: El objeto Cliente podría alquilar una película, pagar una factura, etc.

¿Qué es una clase?
ü  Una clase es un molde para crear objetos.
ü  Para definir una clase se tiene que indicar las operaciones y atributos.
ü  Cada vez que se construye un objeto a partir de una clase, estamos creando una instancia de esa clase.

Miembros de una clase: atributos y métodos
Los atributos son las características individuales que diferencian un objeto de otro y determinan su apariencia, estado u otras cualidades.
Un método es un conjunto de instrucciones que realizan una determinada tarea y son similares a las funciones de los lenguajes estructurados.

Categorías de métodos
En las clases, se pueden identificar varias categorías de métodos:
ü  Métodos inicializadores: inicializan atributos.
ü  Métodos accedentes o selectores: devuelven el valor de los atributos. Cada método accedente devuelve un atributo.
ü  Métodos mutadores o modificadores: permiten cambiar el valor de los atributos.
ü  Métodos visualizadores: muestran el objeto, es decir, el valor de los atributos.
ü  Métodos operadores: realizan cálculos y generan resultados.

¿Qué es un constructor?
Un método constructor es una función miembro especial quelleva a cabo la inicialización automática de cada objeto de laclase en el momento en que se declara.Los diseñadores del lenguaje decidieron asignar la tarea de inicializar losobjetos a los métodos constructores. La consideraron tan importante quesi el programador no declara ningún método constructor, el compiladorse encarga de definir un constructor por defecto.El constructor por defecto, se ejecuta automáticamente cada vez que se crean objetos sin pasar argumentos.
Nota: El constructor debe tener el mismo nombre que la clase.
Ejemplo:
class Suma
{
int a, b;
public Suma ()---------------Constructor sin argumentos (por defecto)
{
}
public Suma( int a, int b)-----------------constructor con argumentos (sobrecargado)
{
this.a=a;
this.b=b;
}
Nota: Pueden existir muchos constructores en una clase siempre y cuando se diferencien en los argumentos. El prefijo “this” se utiliza cuando estamos accesando a un atributo de la clase (dentro de la misma clase) es decir sirve para hacer referencia que vamos a usar las propiedades de la clase.

Tipos datos y declaraciones: primitivos, por referencia
Variables de instancia y de clase
Variables de instancia son aquellas que guardan los valores de los atributos y que son declaradas en la clase pero sus valores son fijados y cambiados en el objeto.Las variables de clase comparten un único valor entre todas las instancias de la clase. Se declaran con el calificador static.

Métodos de instancia y de clase
Del mismo modo que hay variables de instancia y de clase, también hay métodos de instancia y de clase. En el primer caso, un objeto llama a un método para realizar una determinada tarea, en el segundo, el método se llama desde la propia clase y estos métodos son compartidos por todas las instancias. Se usan estos métodos principalmente en manipular variables de instancia.Se les declara con el calificador static. Se invoca a este método de clase con el nombre de la clase o con el nombre de una instancia.
La definición de un método tiene el siguiente formato:

[modificador] tipo nombreFuncion(tipo parm1, tipo parm2, tipo parm3, . . .)
{
declaraciones de variables locales;
 //...sentencias
 [return[(]expresión[)]];
}
Nota: Un modificador es una palabra clave que modifica el nivel de protección predeterminado del método (este tema se analizará más adelante).
Los Valores de retorno se aplican sólo a las funciones más no a los procedimientos (para estos últimos se usa void).Se usa la sentencia return para salir del método retornando un valor.No se requiere return si el tipo de retorno es void.


ESTRUCTURA DE UN PROGRAMA EN JAVA
Un programa de Java contiene una o más clases. Por lo general una clase contiene miembros que pueden ser atributos y métodos. Los primeros son variables que almacenan datos y objetos. Los segundos son funciones que codifican operaciones. Es así que ellos reciben argumentos, realizan cálculos predefinidos y devuelven resultados.
La estructura de un programa se puede representar de la siguiente manera:
Class  NombredelaClase
{
<Campos o atributos >
. .
<Métodos>
}

Nota: Se debe tener un método main para que se pueda ejecutar la aplicación.
En Java, las clases contienen a todos los métodos, no se les permite no estar anexados y eso también sucede con las funciones. Un mensaje enviado a un objeto activa (o invoca) un método de ese objeto, le pasa argumentos y obtiene el valor que devuelve. Los objetos interactúan al enviar y recibir mensajes.
Con objetos, puede construirse un programa grande con muchas unidades pequeñas, independientes y que interactúan entre sí. La orientación a objetos puede reducir significativamente la complejidad del programa, aumentar su flexibilidad y mejorar las posibilidades de volver a usarlo. Un programa de Java puede definir sus propias clases, utilizarlas ya integradas y emplear las que han sido creadas por otros.
Las clases pueden estar organizadas en paquetes con un nombre. Cada paquete puede contener uno o más archivos de código fuente.En el main se crean los objetos estos se crean con el operador new, y su formato es el siguiente:

Nombrede la claseNombredelObjeto= newNombrede la clase();
 El operador new realiza las siguientes acciones:
ü  Separa memoria para el nuevo objeto
ü  Invoca el método de inicio de la clase llamado constructor.
ü  Retorna la referencia a un nuevo objeto.




viernes, 2 de octubre de 2015

PROGRAMACIÓN ORIENTADA A OBJETOS

                            

Java implementa la tecnología básica  de lenguajes orientados a objetos con algunas mejoras y elimina algunas cosas para mantener el objetivo de la simplicidad del lenguaje. Java trabaja con sus datos como objetos y como interfaces a esos objetos. Soporta 3 características propias del paradigma de la orientación a objetos: encapsulación,herencia y polimorfismo. las plantillas de objetos se llaman clases y sus objetos , instancias. Estas instancias, como en otro lenguaje, necesitan ser construidas y destruidas en espacios de memoria.

PROPIEDADES

Polimorfismo

Es la capacidad que tienen los objetos de una clase de responder al mismo mensaje o evento en función de los parámetros utilizados durante su invocación. Un objeto polimórfico es una entidad que puede contener valores de diferentes tipos durante la ejecución del programa.

Herencia 

Es una propiedad que permite que los objetos sean creados a partir de otros ya existentes, obteniendo características (métodos y atributos) similares a los ya existentes. Es la relación entre una clase general y otra clase mas especifica. Es un mecanismo que nos permite crear clases derivadas a partir de clase base, Nos permite compartir automáticamente métodos y datos entre clases subclases y objetos

Encapsulamiento

Es hacer las variables que son innecesarias para el tratamiento del objeto pero necesarias para su funcionamiento privadas, asi como las funciones que no necesitan interacción del usuario o que solo pueden ser llamadas por otras funciones dentro del objeto .

HISTORIA Y COMPONENTES DE JAVA

                                     













ORÍGENES DE JAVA

Tras los primeros años de la década de los 90, Sun Microsystems decidió intentar introducirse en el mercado de la electrónica del consumo y desarrollar programas para pequeños dispositivos eletrónicos. Tras unos comienzos dudosos, Sun decidió crear una filial denominada FirstPerson Inc., para dar margen de maniobra al equipo responsable del proyecto.

Como lenguaje de programación para computadoras, Java se introdujo a finales de 1995. La clave fue la incorporación de un intérprete Java en la versión 2.0. del programa Netscape Navigator(Siendo el primer navegador comercial), produciendo una verdadera revolución en internet. Java 1.0 oficialmente es presentado en enero de 1996. Java 1.1 aparecióa principios de 1997, mejorando sustancialmente la primera versión del lenguaje. Java 1.2 se rebautizaba como Java 2, que nació a finales de 1998.

                                   

JRE(Java2 Runtime Enviroment)
El JRE provee las apps aplicaciones de java, la maquina virtual de java, y otros componentes necesarios para ejecutar los applets y aplicaciones desarrollados en java. Esta también la base para las tecnologías en plataforma de Java2, edición empresarial(JEE) para el desarrollo y despliegue de software empresarial .
El JRE no contiene las herramientas y las utilidades tales como compiladores o depuradores para el desarrollo de applets y aplicaciones .

JDK-(Java2 Development Kit)
El JDK incluye el JRE mas las herramientas de comando, tales como compiladores y depuradores que son necesarios para desarrollar applets y aplicaciones.

La Máquina Virtual Java(JVM)
Es el entorno en el que se ejecutan los programas Java, su misión principal es la de garantizar la portabilidad de las aplicaciones Java. El intérprete Java específico ejecuta las instrucciones que se guardan en los archivos cuya extensión es .class . Las tareas principales de la JVM son las siguientes:
Reservar espacio en memoria para los objetos creados
Liberar la memoria no usada .
Asignar variables a registros y pilas
Llamar al sistema huésped para ciertas funciones, como los accesos a los dispositivos
Vigilar el cumplimiento de las normas de seguridad de las aplicaciones Java

                   



"La mayoría de los buenos programadores programan, no porque esperan que se les pague o por adulación por parte del público, sino porque es divertido programar." 



¿Cual es la razón para escribir en este blog?

1.Es poder compartir todo lo que voy aprendiendo, para intercambiar ideas y opiniones y así poder ampliar cada vez mas nuestros conocimientos.
2.Para conocer gente nueva a la que le interesa los mismos temas , y así acercar a nuevos conocedores de un nuevo mundo . 

jueves, 1 de octubre de 2015

Bienvenidos







Bienvenidos a nuestro blog, somo estudiantes de la Facultad de Ingeniería en Informática y Sistemas de la Universidad Nacional Agraria de la Selva, y este es nuestro medio para compartir nuestros conocimientos adquiridos en el curso de Taller de Programación I, guiados por el docente Ing. Chistian García Villegas.