Una Clase: define un grupo de objetos que tienen propiedades similares y se comportan de manera similar.



Documentos relacionados
Modulo 11. Clases y Objetos en Java

La sintaxis básica para definir una clase es la que a continuación se muestra:

IMPLEMENTACIÓN DE CONCEPTOS P.O.O. EN JAVA

Tema 3. Programación orientada a objetos en Java (Parte 1)

Unidad 2. Elementos Intermedios del Lenguaje

Categorías de métodos. Métodos constructores y destructores

Forma Básica Clase Java

LINQ TO AMAZON. Estándar de Implementación. Versión 1.2

Tema 6: Clases. Índice

Programación Orientada a Objetos (POO)

UNIDAD 4 IMPLEMENTACION DE PROPIEDADES DE LOS OBJETOS JAVA

PROGRAMACION ORIENTADA A OBJETOS EN C++

CONTENIDOS. La herencia permite: - Adoptar automáticamente características ya implementadas. Ahorro de tiempo y esfuerzo

Tema 4 Genericidad en Java. Programación Orientada a Objetos Curso 2013/2014

Clases y Objetos en C++

class identificador{ //Bloque de propiedades (datos miembro, atributos, propiedades) //Bloque de métodos (comportamientos) }

Unidad III. Clases y objetos. 3.1 Definición de una clase.

acceso Implementación de conceptos P.O.O. en Java Orientada a Objetos 2. Modificadores de en Java Temario

Herencia. Implementación en Java

PNFSI. Asignatura: Desarrollo de Software. Tema 1: Programación Orientada a Objetos

Definición de clase: Una clase es un prototipo que define las variables y los métodos de todos los objetos con características comunes.

Definición de clase: Una clase es un prototipo que define las variables y los métodos de todos los objetos con características comunes.

Guía práctica de estudio 04: Clases y objetos

Estructura de Datos Unidad 1: Repaso del Lenguaje Java

Tema 7: Polimorfismo. Índice

Programación Orientada a Objetos. Resumen de Temas Unidad 3: Constructores y destructores

Tema: Clases y Objetos en C++. Parte II.

Programación Orientada a Objetos en C++

Unidad IV. Este tipo de codificación nos es permitido gracias a la sobrecarga, la cual se aplica a métodos y constructores.

Aspectos de los LP. Diseño de compiladores. Estático vs. Dinámico. Estático vs. Dinámico. Scope. Scope 24/03/2015

Introducción a la programación orientada a objetos

Clase 3: Repaso POO. DSIW1:Ing. Tomás Eduardo Urbina 1

TEMA I PROGRAMACIÓN ORIENTADA A OBJETOS PROGRAMACIÓN N ORIENTADA A OBJETOS OBJETOS (I) OBJETOS (II)

Conceptos Básicos. Programación Orientada a Objetos 2

CLAVE ASIGNATURA REQUISITOS HORA/SEMANA CREDITOS TI-8 PROGRAMACION II 80% DE ASISTENCIA 4 6

En este capitulo se estudiarán los conceptos relacionados a métodos, como lo son sobrecarga, métodos estáticos.

El lenguaje C. 1. Estructuras. Principios de Programación Definicion de estructuras

Programación Orientada a Objetos

Edwin Andrés Cubillos Vega

Definimos un Sistema Gestor de Bases de Datos o SGBD, también llamado DBMS (Data Base Management System) como una colección de datos relacionados entr

Análisis y Programación Orientada a Objetos

Tema 6 Patrones de Diseño. Programación Orientada a Objetos Curso 2010/2011

POO: Clases y objetos

Unidad Didáctica 1. Introducción a la Programación Orientada a Objetos (POO) Conceptos de clase, objeto e interfaz. Atributos y métodos

Tema 3b: Estructura General de un programa en Java

Academia de computación de IE, ICA e ISISA. Unidad didáctica Programación Orientada a Objetos

INTRODUCCION A LA PROGRAMACION EN JAVA

Guía práctica de estudio 08: Polimorfismo

GUIA DE PARAMETRIZACIONES

Qué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +.

! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes

! Fundamentos de la POO. ! Comportamiento y estado. ! Clases y objetos en Java

Sesión 6. TEMA 8 COMPORTAMIENTO AVANZADO CON OBJETOS

Introducción Programación Modular y a Métodos: Consideremos el siguiente ejercicio:

Unidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Programación orientada a objetos. Resumen de Temas Unidad 5: Herencia

PRUEBA DE NIVEL DE ACCES

Programación Avanzada CONCEPTOS BÁSICOS DE IMPLEMENTACIÓN EN C++

Curso de PHP. Pascual Gómez del Pino Página 1

Objetivos y Temario CURSO SQL SERVER 2012

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Programación orientada a Objetos (POO) La POO está compuesta por una serie de elementos que se detallan a continuación.

LABORATORIO #7 PARTE I INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS

Programación orientada a objetos I

12. Tipos de atributos

Guía práctica de estudio 04: Tipos de clase

Clase adicional 2. Estructuras básicas de control. Temas

JavaScript Avanzado (I)

18. Interfaces Declaración de una interfaz

Implementando TADs en Python

Introducción a Java. Fernando Cerezal López. 24 Noviembre 2005

Tutorial de C# Delegados y Eventos. Por: Óscar López, M.Sc.

Programación II Objetos en Java

POO. Por tanto, una clase nos permite crear varios objetos que pueden realizar la misma función o funciones diferentes.

Programación Orientada a Objetos. Sesión 4: Herencia

FUNDAMENTOS DE PROGRAMACIÓN. Practica 4 Mi primera clase

Introducción a OOP. Programación Orientada a Objeto

Tema 3: Programación orientada a objetos (I)

Cómo se estructura un programa en C#? Qué son las clases y los objetos? Cómo se estructuran los dibujos de AutoCAD?

Oracle Database 11g: Programación con PL/SQL Nuevo

Tema 2: Clase y objetos en C# Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Módulo de Compras. Descripción

Programación Orientada a Objetos con Java

Cómo implementar un menú de entrada para la aplicación móvil

Fundamentos de la POO 1

Programación Orientada a Objetos

Capítulo IV. Análisis y Diseño del software (Módulo de dictado)

Programación n de sistemas

REGLAS DE CODD DEL MODELO RELACIONAL

UAA-DSE Programación 2 / C++ Eduardo Serna-Pérez

Curso de Java POO: Programación orientada a objetos

NETBEANS JAVA PROGRAMACIÓN ORIENTADA A OBJETOS

TÉRMINOS Y CONDICIONES

4.1 Dispositivos y manejadores de dispositivos: device drivers

INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA

Transcripción:

Clases La programación orientada a objetos utiliza clases para encapsular (envolver, esconder) datos (atributos) y métodos (comportamientos). Por ejemplo, el estéreo de un auto encapsula todos los atributos y comportamientos que le permiten al conductor del auto seleccionar una estación de radio, o reproducir CDs. Las compañías que fabrican autos no fabrican los estéreos, sino que los compran y simplemente los conectan en el tablero de cada auto. Los componentes del radio están encapsulados en su caja. El encapsulamiento permite a los objetos ocultar su implementación de otros objetos; a este principio se le conoce como ocultamiento de información. Aunque los objetos pueden comunicarse entre sí, a través de interfaces bien definidas (de la misma forma que la interfaz de un conductor para un auto incluye un volante, pedal del acelerador, pedal del freno y palanca de velocidad), no están conscientes de cómo se implementan otros objetos (de la misma forma que el conductor no conoce cómo están implementados los mecanismos del volante, motor, freno y transmisión). Por lo general los detalles de implementación se ocultan dentro de los mismos objetos. Implementación de un tipo de dato abstracto con una clase Las clases en Java facilitan la creación ADTs (tipos de datos abstractos), los cuales ocultan su implementación a los clientes (o usuarios de la clase). Un problema en los lenguajes de programación por procedimientos es que el código cliente a menudo depende de los detalles de implementación de los datos utilizados en el código. Esta dependencia tal vez requiera reescribir el código cliente, si la implementación de los datos cambia. Los ADTs eliminan este problema al proporcionar interfaces (conjuntos de métodos ofrecidos por las clases) independientes de la implementación a sus clientes. Es posible para el creador de una clase cambiar la implementación interna de esa clase sin afectar a los clientes de esa clase. Una Clase: define un grupo de objetos que tienen propiedades similares y se comportan de manera similar. Características de las clases: es una plantilla o modelo que define los atributos y métodos comunes a todos los objetos de un cierto tipo. Clase: Implementación de un tipo de dato. Una clase sirve tanto de módulo como de tipo. Tipo: Descripción de un conjunto de objetos (equipados con ciertas operaciones) Módulo: Unidad de descomposición del software. Definición de una clase Para definir una clase en Java se utiliza la palabra reservada class, seguida del nombre de la clase (un identificador). Ejemplo vamos a definir una clase Chipero

Cuerpo de una clase El cuerpo de una clase contiene dos secciones: 1. Declaración de sus atributos. 2. Definición de sus métodos. Los límites de la clase se marcan con { } Declaración de atributos Los atributos se declaran dentro de las llaves de apertura y cierre de la declaración de la clase. Se declaran igual que las variables locales de un método. Cuando se realiza una instancia o se crea un objeto de una clase se reservará en memoria un espacio para un conjunto de datos con el que se definen las variables de una clase. A este conjunto de variables se le denomina variables de instancia Métodos Ya hemos aprendido a definir distintos tipos de métodos de Java. En nuestra clase Chipero vamos a definir dos métodos 1. venderchipa(), este método va ser un método con parámetro, a través del parámetro se le indica la cantidad de chipa a vender 2. rendirsaldo(), este método retorna valor, es decir, la cantidad de chipa que sobró.

Constructores Las clases pueden implementar un método especial llamado constructor. Un constructor es un método que inicializa un objeto inmediatamente después de su creación. De esta forma nos evitamos el tener que inicializar las variables explícitamente para su inicialización El constructor tiene exactamente el mismo nombre de la clase que lo implementa. Una vez definido, se llamará automáticamente al constructor al crear el objeto de esa clase (al utilizar el operador new) El constructor no devuelve ningún tipo. Su misión es inicializar las variables de instancia de un nuevo objeto haciendo que el objeto sea utilizable inmediatamente; reservando memoria para sus variables, iniciando sus valores Constructor por defecto Java por defecto crea automáticamente un constructor sin parámetros para cualquier clase que definamos. Ejemplo:

Entonces al crear un objeto de la clase Chipero Creamos un objeto juan, pero sin inicializar sus variables de instancia (nombre, cant- Chipa), por lo tanto si invocamos el método juan.venderchipa(12), no se podría realizar la operación de venta, porque aún no se ha inicializado sus variables de instancia Si la clase no tiene ningún constructor, se utiliza un constructor por defecto que no inicializará las variables de instancia de sus objetos. Constructores definidos por el usuario Java nos permite definir constructores para especificar cómo han de inicializarse los objetos al crearlo. Entonces podemos definir un constructor para inicializar las variables de instancia de una clase, en vez de hacerlo en la propia declaración de las variables de instancia.

Constructores con parámetros: En cuanto definimos un constructor, ya no podemos utilizar el constructor por defecto de la clase (el constructor que Java ha creado automáticamente si no especificamos ninguno). Ejemplo: Ahora deberá ser así: Importante: Para facilitarnos la creación de objetos, Java nos permite definir varios constructores para una misma clase (siempre y cuando tengan parámetros diferentes).

Referencia this Uno de los usos de la palabra reservada this se da cuando una variable local de un método tiene el mismo nombre (por ejemplo: nombre de la clase Chipero) que una variable de instancia de la clase, por lo que el método no se puede referir a la variable de instancia como nombre; esto haría referencia en realidad a la variable local. Para evitar este inconveniente, se podría haber cambiado el nombre de la variable local a nombrechipero. Sin embargo, ya que tenemos la palabra reservada this que hace referencia siempre al objeto que actualmente está ejecutando el método, podemos utilizar para indicar de forma no ambigua que un identificador se refiere a una variable de instancia, simplemente añadimos this al identificador, como se muestra, en la siguiente línea de código: Control de acceso a los miembros de una clase Las clases pueden proteger sus métodos y variables de instancia del acceso por parte de otros objetos. Como una regla general, vamos a hacer que todas las variables de instancia sean privadas (private) y la mayoría de nuestros métodos públicos (public). Ejemplo: para que no ocurra esto chipero1.cantchipa = 30, este procedimiento modifica el valor de la variable de instancia cantchipa. Para evitar este inconveniente debemos proteger nuestras variables de instancia.

Ejemplo: Control de acceso a los miembros Los modificadores de acceso public y private controlan el acceso a los atributos y los métodos de una clase. El principal propósito de los métodos public es presentar a los clientes de la clase una vista de los servicios que la clase proporciona (la interfaz pública de la clase). Los clientes de la clase no necesitan preocuparse acerca de cómo la clase realiza sus tareas. Por esta razón, las variables y métodos private de una clase (los detalles de implementación de la clase) no son directamente accesibles para los clientes de una clase. Al proceso de restringir al acceso a los miembros de una clase mediante la palabra reservada private se le conoce como ocultamiento de información. Los atributos o métodos declarados con el modificador de acceso private pueden ser utilizados solamente por los métodos de la clase en la que están declarados. Ejemplo: Observaciones: Si los miembros de una clase son privados quiere decir que no se puede acceder a ellos desde el exterior de la clase. Todas las variables de instancia de una clase deben mantenerse como private. Cuando sea necesario, proporcione métodos public para cambiar los valores de las variables de instancia private y para recuperar sus valores. Esta arquitectura ayuda a ocultar la implementación de una clase de sus clientes, lo cual mejora la capacidad de modificación de los programas. Al hacer que las variables de instancia de una clase sean private y que los métodos de la clase sean public se facilita la depuración, ya que los problemas con la manipulación de los datos se localizan en los métodos de la clase. El conjunto de métodos public de una clase se conoce como la interfaz pública de la clase. Los valores de las variables de instancia de un objeto constituyen su estado La clases = atributos + métodos