Modulo 11. Clases y Objetos en Java

Documentos relacionados
Forma Básica Clase Java

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

Programación Orientada a Objetos en C++

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 + +.

Práctica 2. Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones

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

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

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

12. Tipos de atributos

Clases y Objetos en C++

Programación Orientada a Objetos (POO)

RELACIÒN ENTRE LA PROGRAMACIÒN ORIENTADA A OBJETOS Y LA ESTRUCTURADA

PROGRAMACION ORIENTADA A OBJETOS EN C++

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

Tema 7: Polimorfismo. Índice

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

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

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

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

Guía práctica de estudio 08: Polimorfismo

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

Concurso: Cuánto sabes de JAVA?

Lección 2: Creando una Aplicación en Java. 1. Estructura del archivo de una clase. 3. Definiendo clases fundamentos

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

Herencia. Implementación en Java

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

POO: Clases y objetos

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

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Tema 1. Herencia y Polimorfismo

4/14/2010. Objetivos. Que es JAVA. JAVA como plataforma. Reglas Sintácticas y de Codificación Básicas de JAVA

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

Examen Teórico Convocatoria de Junio de 2012

Estructura de datos y Programación

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

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

Introducción a la programación orientada a objetos

Programación orientada a objetos I

PNFSI. Asignatura: Desarrollo de Software. Tema 1: Programación Orientada a 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

Construcciones del Lenguaje Java

18. Interfaces Declaración de una interfaz

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.

PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas

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

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

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

Herencia y Polimorfismo

Tema 2: Programación basada en Objetos

CONCEPTOS BÁSICOS PROGRAMACIÓN ORIENTADA A OBJETOS. Ing. Martha Tello

Estructura de Datos Unidad 1: Repaso del Lenguaje Java

Introducción a Java. Introducción a Java. Programación I

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

PROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; }

Arquitecturas cliente/servidor

Identidad, igualdad y equivalencia

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

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

Programación Orientada a Objetos

Un string nulo es aquél que no contiene caracteres, pero es un objeto de la clase String. Sin embargo,

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

Taller de Programación I. Tema 10: Herencia en Java

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

1.2. Es Java un lenguaje ideal para aprender a programar? 1.4. Cuáles son las versiones y distribuciones Java y cuál usar?

Programación orientada a objetos

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

JAVA 1. Introducción

TEMA 3:Programación con Clases y Objetos.

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

METODOS, SOBRECARGA Y CONSTRUCTORES

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

CURSO DE LENGUAJE C. 4.1 Conceptos básicos de funciones 4.2 Funciones que regresan valores no enteros 4.3 Variables externas 4.4 Reglas de alcance

Derechos de Acceso: COMPOSICION

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

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

Guía práctica de estudio 07: Herencia

Definición. Mónica E. García García Feb 07

Los parámetros: son los campos que se comunican a los métodos de los objetos.

CLASE 9 -HERENCIA Y POLIMORFISMO

REPASO ARRAYS MULTIDIMENSIONALES EN JAVA. DECLARACIÓN Y USO. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00905C)

Transcripción:

El siguiente texto es una traducción no oficial del documento publicado por el grupo JEDI, Introduction to Programming 1, no pretende en ningún momento reemplazar los contenidos generados por este grupo. Por ser una traducción puede traer consigo errores de interpretación. También se han realizado algunos cambios para el contexto del curso. Se realizarían las acciones necesarias si el grupo JEDI o un representante del mismo exigieran la no utilización de este material. Modulo 11. Clases y Objetos en Java Clases y Objetos En el mundo del software, un objeto es un componente de software con estructura similar a los objetos del mundo real. Cada objeto está compuesto por un juego de datos (propiedades y/o atributos) que son las variables que describen las características esenciales del objeto, también consiste en un juego de métodos (comportamientos) que describen como el objeto se comporta. La clase es la estructura fundamental en la programación orientada a objetos. Esta se puede tomar como una plantilla, un prototipo o un anteproyecto de los objetos. Esta consiste en dos tipos de miembros que son llamados campos (propiedades o atributos) y métodos. Los campos especifican el tipo de datos definidos por la clase, mientras que los métodos especifican las operaciones. Un objeto es una instancia de una clase. Las clases proporcionan la propiedad de la reusabilidad, los programas de software pueden usar una clase una y otra vez para crear muchos objetos. Variables de instancia Cuando se crea una instancia de un objeto se obtiene un juego nuevo de variables, sin embargo, la implementación de los métodos es compartida entre los objetos de la misma clase. Variables estáticas Adicional a las variables de instancia, es posible definir variables de la clase, siendo estas variables pertenecientes a la clase. Estas variables almacenan el mismo valor para todos los objetos de la misma clase, incluso aún cuando no existe ninguna instancia de la clase. Estas variables son conocidas como Variables Estáticas.

CLASES Instancia de una clase Para crear un objeto o una instancia de una clase, utilizamos el operador new, ejemplo, se escribe el siguiente código si se desea crear una instancia de la clase String. Ó El operador new localiza memoria para el objeto y retorna una referencia a la posición de memoria. Cuando se crea un objeto, se esta invocando al constructor. El constructor es el método encargado de construir todas las instancias de la misma clase. Declaración de una clase en Java. La declaración de una clase en java no es diferente a escribir en sintaxis Java una clase de la programación orientada a objetos, por esto es primordial comprender los conceptos de clase, objeto, herencia, interfaz, encapsulación, variables (estados) de los objetos, comportamiento de los objetos. Recordemos que una clase es el modelo de determinado tipos de objetos, es la definición del objeto en si. Una clase en java se declara de la siguiente forma: ModificadorAcceso class NombreClase { // Variable, campos o estados; Modificador de acceso se estudiara más adelante. En detalle la sintaxis se refiere a:

class es la palabra reservada del lenguaje que se usa para especificar que se esta declarando una clase. Variables, campos o estados son exactamente eso, variables de clase, estados de los objetos de este tipo de clase, recordemos el concepto de encapsulación. Funciones, métodos o mensajes, son las declaraciones a las funciones o mensajes para legrar la comunicación con los objetos de este tipo o clase. Constructor, es un método que se ejecuta cuando se instancia o se crea un nuevo objeto de esta clase. Ahora bien, en la programación orientada a objetos se estudiaron también conceptos como la herencia o las interfaces. Así que: Declaración de una clase en Java que hereda otra clase. ModificadorAcceso class NombreClaseHija extends ClasePadre { // campos o estados; La clase hija contiene todos los métodos y variables de la ClasePadre, en java no existe la herencia múltiple, ósea, una clase no puede heredar más de una ClasePadre, por lo menos no directamente. Otro concepto estudiado es el concepto de interfaz, así que: Declaración de una clase en Java que implemente una interfaz. ModificadorAcceso class NombreClaseImplementación implements ClaseInterfaz1, ClaseInterfaz2 { // campos o estados; Esta clase implementa dos interfaces, la lista de interfaces que implementa esta separada por el carácter coma (,). Nota: El nombre de la clase NombreClaseImplementación no contiene espacios, la primera letra de cada palabra esta en mayúscula. Modificador de acceso de una clase. Es la forma de determinar como otras clases pueden acceder a la clase, los modificadores de acceso de una clase son

private: Se permite acceder a la clase solo desde clases que se encuentren ubicadas dentro del mismo paquete. public: Con este se permite que se acceda a la clase desde cualquier otra clase, no importando su ubicación. Tipos de variables en una clase. En una clase existen 3 tipos de variables: a. Variables miembros de la clase campos. En la programación orientada a objetos estas variables son los campos o estados de la clase. Se construyen mediante 3 componentes: Ejemplo: Uno o más modificadores de acceso. Dentro de los más utilizados están: private: Solo es posible acceder al campo dentro de la clase. public: Es posible acceder al campo desde cualquier otra clase. Importante, estos modificadores actúan diferente que los modificadores de la clase. El tipo de dato, recordemos que Java tienen tipos de datos primitivos como int, short, double, boolean, char. El tipo de dato puede ser también un tipo de Clase en particular, para lo cual la variable sería un objeto de dicha clase. El nombre de la variable, debe cumplir las reglas de creación de variables estudiadas en el modulo 5. ModificadorAcceso class NombreClase { private static int campoentero; b. Variables en bloques de código, incluyendo el bloque de código de los métodos. Se conocen con el nombre de variables locales, se encuentran dentro de un bloque de código o dentro del cuerpo de un método. La variable solo existe en el ámbito sobre el cual fue creada, es decir, dentro del bloque que fue creada. La forma de declarar estas variables es: El tipo de dato

Ejemplo: El nombre de la variable ModificadorAcceso class NombreClase { private static int campoentero; public void unmetodo() { char variablelocal; c. Variables en la declaración de un método parámetros de un método. Las variables utilizadas en la declaración de un método son los llamados parámetros del método, su construcción esta dada por: El tipo de dato El nombre de la variable La lista de parámetros a pasar en un método esta separada por el carácter coma (,). Ejemplo: ModificadorAcceso class NombreClase { private static int campoentero; public void unmetodo() { char variablelocal; public void otrometodo(int primerp, char segundop) { // Cuerpo del método, primerp y segundop solo existen en este ámbito

Metodos de Instancia Para realizar la llamada de un método de un objeto instacia de una clase seguimos la siguiente notación: miobjetoinstacia.minombremetodo( parámetros ) Métodos estaticos Cuando realizamos la llamada a un método estatico se esta realizando una llamada al método en la clase y no es necesario tener una instancia de la clase. Se diferencian de los demás métodos en la clase al momento de escribirlos por que tienen la palabra reservada static. MiClase.metodoEstatico( parámetros ) 2. Declaración de un método. ModificadorAcceso void otrometodo(int primerp, char segundop) { // Cuerpo del método, primerp y segundop solo existen en este ámbito 2.1. Componentes de un método: Modificador de Acceso, es desde donde se puede acceder al método, public: Se puede acceder al método desde cualquier clase. private: Solo se puede acceder al método desde otros métodos de la misma clase. Tipo de datos a retornar, la palabra reservada void significa que no se retornara ningún dato, recordemos que Java tiene tipos de datos primitivos y que nosotros podemos crear nuestras propias clases, así que un método puede un tipo de dato de una Clase en particular. Nombre del método, existen actualmente convenciones para la construcción del nombre de los métodos. Lista de parámetros, esta lista debe ir dentro de paréntesis y debe estar separada por comas, recordemos un poco más atrás que decía Variables en la declaración de un método) Lista de Excepciones, este tema se tratará en un modulo más adelante. El cuerpo del método o bloque de código del método, debe estar entre corchetes. 2.2. Convenciones en el nombre de un método Existen algunas reglas básicas para el nombre de un método, no significa que Java restrinja si se utiliza un nombre o el otro, solo que por orden y estándar se siguen los siguientes enunciados. El nombre debe ser un verbo, ejemplo: correr, obtener, traer, llevar, partir, etc.

Se debe escribir en minúscula y si es compuesto de varias palabras se debe iniciar la siguiente palabra con mayúscula. Si el nombre es compuesto por varias palabras, la primera palabra es un verbo y la segunda un adjetivo. Entre otras. 2.3. Sobrecarga de Métodos. La firma de un método esta compuesta por su nombre y lista de parámetros que recibe, en Java los métodos se pueden sobrecargar, es decir, pueden existir métodos con el mismo nombre, lo importante es que su firma sea diferente. Si el nombre es el mismo la firma es diferente solo cuando su lista de parámetros es diferente. Para que la lista de parámetros sea diferente se debe tener en cuenta cantidad y tipo de datos usados en la lista. La sobrecarga se utiliza mucho cuando se quiere tener solo un método y reciba parámetros diferentes. El tipo de datos a retornar no se encuentra dentro de la firma, por lo tanto un método no difiere de otro por esta característica. Paso de variables a los métodos Pasar variables a los métodos no es más que pasar parámetros al metdo al momento de realizar su llamado, Java distingue entre dos tipos de variables a pasar en los métodos, la primera es paso por valor, la segunda es paso por referencia Paso de variables por valor Cuando un paso por valor se presenta, el método crea una copia exacta del valor de la variable que fue pasada al método. De esta manera el método no puede modificar el argumento original durante los cálculos o lógica en el cuerpo del método. Ejemplo:

Por defecto todos los datos de tipo primitivo (int, char, long, etc) se pasan por valor. Paso de variables por referencia Cuando el paso por referencia ocurre, la refencia de la variable es pasada en el método. Esto hace que el método cree una copia de la refencia de la variable pasada al método. Sin embargo, como no es por valor, el método puede modificar el objeto al que la referencia esta apuntando, Aunque diferentes refencias existen en los métodos, la localización de los datos en memoria es la misma.

REFERENCIAS JEDI, Introduction to Programming 1