Conceptos Básicos de POO

Conceptos Básicos

Los principales conceptos que se vinculan con la POO son Clase, Objeto, Método, Instancia,  Evento, Mensaje, Propiedad o Atributo, Estado Interno.

Clases: son declaraciones o abstracciones de objetos, lo que significa, que una clase es la definición de un objeto. Cuando se programa un objeto y se definen sus características y funcionalidades, realmente se programa una clase.
Las clases contienen datos (variables, propiedades miembro o atributos) junto con las operaciones de manipulación de esos datos (funciones o Métodos).
Ejemplo de clase en PHP:

class Nombre {
    // Variables miembro (habitualmente privadas)
    private miembro_1; //lista de miembros
    public miembro_2;
    protected miembro_3;

    // Funciones o métodos (habitualmente públicas)
    public function miembro_1( );
    public function miembro_2 ( );
}

Objetos: se define como la unidad que en tiempo de ejecución realiza las tareas de un programa. También a un nivel más básico se define como la instancia  de una clase. Estos objetos interactúan unos con otros, en contraposición a la visión tradicional en la cual un programa es una colección de subrutinas (funciones o procedimientos), o simplemente una lista de instrucciones para el computador. Cada objeto es capaz de recibir mensajes, procesar datos y enviar mensajes a otros objetos de manera similar a un servicio. En el mundo de la programación orientada a objetos (POO), un objeto es el resultado de la instanciación de una clase. Una clase es el anteproyecto que ofrece la funcionalidad en ella definida, pero ésta queda implementada sólo al crear una instancia de la clase, en la forma de un objeto.

Método: es una subrutina asociada exclusivamente a una clase. Un método consiste generalmente de una serie de sentencias para llevar a cabo una acción, un juego de parámetros de entrada que regularán dicha acción y, posiblemente, un valor de salida (o valor de retorno) de algún tipo. Existen 2 tipos de métodos los de instancia, que están relacionados con un objeto en particular y los estáticos   o de clase (o compartidos) están asociados a una clase en particular.
En ciertos lenguajes de programación  se requiere de un metodo especial que son los constructores siendo estos métodos de instancia especiales llamados automáticamente cuando se crea una instancia de alguna clase.

Instancia: se produce con la creación de un objeto perteneciente a una clase (instanciar una clase), que hereda entonces sus atributos, propiedades y métodos para ser usados dentro de un programa, ya sea como contenedores de datos o como partes funcionales del programa al contener en su interior funcionalidades de tratamiento de datos y procesamiento de la información que ha sido programada con anterioridad en la clase a la que pertenece. Ejemplo de instancia en php:

$instancia = new Nombre(); // instanciamos la clase del ejemplo anterior.
$instancia->miembro_1(); // accedemos a un método.

Evento: un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). 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 (o a una clase de objetos), que 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). No es visible al programador que maneja una instancia de la clase.
Características

Las principales características son  Abstracción, Encapsulamiento, Principio de Ocultación, Polimorfismo, Herencia.

Abstracción: es poner el enfasis en el ¿Que se Hace? mas que en el  ¿como lo hace?. Es decir  consiste en captar las características esenciales de un objeto, así como su comportamiento.
Es el mecanismo de diseño en la POO. Nos permite extraer de un conjunto de entidades datos y comportamientos comunes para almacenarlos en clases.
La abstracción ofrecida por los lenguajes de programación se puede dividir en dos categorías: abstracción de datos (pertenecientes a los datos) y abstracción de control (perteneciente a las estructuras de control).

Encapsulamiento: consiste en unir en la Clase las características y comportamientos, esto es, las variables y métodos. Es tener todo esto es una sola entidad. En los lenguajes estructurados esto era imposible. Es evidente que el encapsulamiento se logra gracias a la abstracción y el ocultamiento que veremos a continuación. La utilidad del encapsulamiento va por la facilidad para manejar la complejidad, ya que tendremos a las Clases como cajas negras donde sólo se conoce el comportamiento pero no los detalles internos, y esto es conveniente porque lo que nos interesará será conocer qué hace la Clase pero no será necesario saber cómo lo hace.

Ocultamiento: Es la capacidad de ocultar los detalles internos del comportamiento de una Clase y exponer sólo los detalles que sean necesarios para el resto del sistema.
El ocultamiento permite 2 cosas: restringir y controlar el uso de la Clase. Restringir porque habrá cierto comportamiento privado de la Clase que no podrá ser accedido por otras Clases. Y controlar porque daremos ciertos mecanismos para modificar el estado de nuestra Clase y es en estos mecanismos dónde se validarán que algunas condiciones se cumplan. En PHP el ocultamiento se logra usando las palabras reservadas: public, private y protected delante de las variables y métodos.

Segun la WIKI el principio de ocultamiento significa que cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una interfaz a otros objetos que especifica cómo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas, solamente los propios métodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no pueden cambiar el estado interno de un objeto de maneras inesperadas, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstracción. La aplicación entera se reduce a un agregado o rompecabezas de objetos.

Polimorfismo: comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando. O dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocación de un comportamiento en una referencia producirá el comportamiento correcto para el tipo real del objeto referenciado. Cuando esto ocurre en “tiempo de ejecución”, esta última característica se llama asignación tardía o asignación dinámica. Algunos lenguajes proporcionan medios más estáticos (en “tiempo de compilación”) de polimorfismo, tales como las plantillas y la sobrecarga de operadores de C++.

Herencia: las clases no están aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que volver a implementarlo. Esto suele hacerse habitualmente agrupando los objetos en clases y estas en árboles o enrejados que reflejan un comportamiento común. Cuando un objeto hereda de más de una clase se dice que hay herencia múltiple.

Para mayor comprension se puede decir que Es una relación entre clases en la cual una clase comparte la estructura y comportamiento definido en otra clase (Grady Booch)
Cada clase que hereda de otra posee:

   1. Los atributos de la clase base además de los propios
   2. Soporta todos o algunos de los métodos de la clase base
Posted on 0:54 by Ralphy and filed under , , , , , | 1 Comments »

Facebook

Check out this SlideShare Presentation:
Posted on 3:03 by Ralphy and filed under | 0 Comments »

1ER PROYECTO DE PROGRAMACION

Este es la primera aplicacion de java, el primer proyecto de programacion 1.

consiste en una aplicacion con funciones de calculadora. es una calculadora que permite hacer operaciones aritmeticas basicas y ademas hace converciones con los resulados guardados, a numeros binarios y romanos, tambien trae funciones para hacer factoriales y numerales de un numero cualquiera como tambien de los resultados guardados de las operaciones anteriores. es muy buena la aplicacion merecida del primer lugar de la clase (calificación)
Posted on 2:45 by Ralphy and filed under | 0 Comments »

instalacion de Java development kit

para utilizar esas aplicaciones en java primero tienes que tener instalado el jdk o el lenguaje o plataforma java instalada. aqui les dejo el link:
http://java.sun.com/javase/downloads/index.jsp
http://java.sun.com
ahi lo bajan

y este es un video tutorial para que vean como se instala:


gracias!
suscribanse al canal de youtube y voten x los videos y comenten aca enel blog!
Posted on 22:58 by Ralphy and filed under , , | 0 Comments »

Ejemplo de aplicacion en java: proyecto 2 (aplicacion de listas de estudiantes )





 
esta es la aplicacion java numero 2.. es el proyecto final!
es una aplicacion que sirve para llenar una lista de estudiantes y jugar con ella. modelo de utilidad para docentes

aqui les dejo el link de descarga:


http://www.4shared.com/file/157590165/34f64e45/SOF.html

contiene:
3 clases
(la clase con el main es Select.java, compilar esa)
1 readme
2 power points
1 documento escrito


click en el link de abajo tambien

SOF.rar

gracias! favor comentar!
Posted on 20:02 by Ralphy and filed under , , | 0 Comments »

Mantenimiento Preventivo de una PC

Aqui les dejo el Video tutorial de mantenimiento preventivo! era una tarea de la u. pero se pueden apreciar ciertos pasos para darle limpieza y mantenimiento a la pc



link descarga: http://www.4shared.com/file/157770152/7347974f/Mantenimento_Preventivo_1de3.html



(1/3)


(2/3)


(3/3)


gracias! votar y comentar! XD
Posted on 11:13 by Ralphy and filed under | 2 Comments »

clases en java

Las clases son lo más simple de Java. Todo en Java forma parte de una clase, es una clase o describe como funciona una clase. El conocimiento de las clases es fundamental para poder entender los programas Java.

Todas las acciones de los programas Java se colocan dentro del bloque de una clase o un objeto. Todos los métodos se definen dentro del bloque de la clase, Java no soporta funciones o variables globales. Esto puede despistar a los programadores de C++, que pueden definir métodos fuera del bloque de la clase, pero esta posibilidad es más un intento de no separarse mucho y ser compatible con C, que un buen diseño orientado a objetos. Así pues, el esqueleto de cualquier aplicación Java se basa en la definición de una clase.

Todos los datos básicos, como los enteros, se deben declarar en las clases antes de hacer uso de ellos. En C la unidad fundamental son los ficheros con código fuente, en Java son las clases. De hecho son pocas las sentencias que se pueden colocar fuera del bloque de una clase. La palabra clave import puede colocarse al principio de un fichero, fuera del bloque de la clase. Sin embargo, el compilador reemplazará esa sentencia con el contenido del fichero que se indique, que consistirá, como es de suponer, en más clases.

Tipos de Clases

Hasta ahora sólo se ha utilizado la palabra clave public para calificar el nombre de las clases que hemos visto, pero hay tres modificadores más. Los tipos de clases que podemos definir son:

Abstract: Una clase abstract tiene al menos un método abstracto. Una clase abstracta no se instancia, sino que se utiliza como clase base para la herencia.

Final: Una clase final se declara como la clase que termina una cadena de herencia. No se puede heredar de una clase final. Por ejemplo, la clase Math es una clase final.

Public:Las clases public son accesibles desde otras clases, bien sea directamente o por herencia. Son accesibles dentro del mismo paquete en el que se han declarado. Para acceder desde otros paquetes, primero tienen que ser importadas.

Synchronizable: Este modificador especifica que todos los métodos definidos en la clase son sincronizados, es decir, que no se puede acceder al mismo tiempo a ellos desde distintos threads; el sistema se encarga de colocar los flags necesarios para evitarlo. Este mecanismo hace que desde threads diferentes se puedan modificar las mismas variables sin que haya problemas de que se sobreescriban.

Posted on 16:14 by Ralphy and filed under , , | 1 Comments »

nota: if entiendes esto: class MyHeadache(); pasas!!

public class MyHeadache
{
public static void main(String[] args)
{
System.out.println("Bienvenido a triste mi mundo");
}
}


if entiendes esto: class MyHeadache(); pasas!!
else
(get another way);
hahaha
Posted on 21:22 by Ralphy and filed under | 1 Comments »