Benemérita Universidad Autónoma de Puebla Facultad de...

12
Benemérita Universidad Autónoma de Puebla Facultad de Ciencias de la Computación Antología Materia de Programación II Profesor M.C. Yolanda Moyao Martínez Fecha Enero 2016

Transcript of Benemérita Universidad Autónoma de Puebla Facultad de...

Page 1: Benemérita Universidad Autónoma de Puebla Facultad de ...ymoyao.cs.buap.mx/admin/archivos/antologia.pdf · 4.3 Concepto de objeto y clase 4.4 Relaciones 4.5 Propiedades 4.6 Métodos

Benemérita Universidad Autónoma de Puebla

Facultad de Ciencias de la Computación

Antología

Materia de Programación II

Profesor

M.C. Yolanda Moyao Martínez

Fecha

Enero 2016

Page 2: Benemérita Universidad Autónoma de Puebla Facultad de ...ymoyao.cs.buap.mx/admin/archivos/antologia.pdf · 4.3 Concepto de objeto y clase 4.4 Relaciones 4.5 Propiedades 4.6 Métodos

Índice

1. Introducción

2. Tipo de Dato Abstracto

3. Introducción a la Programación Orientada a Objetos

4. Lenguaje de programación orientado a Objetos Java

4.1 Características del lenguaje Java

4.2 Convenciones y Compilación

4.3 Concepto de objeto y clase

4.4 Relaciones

4.5 Propiedades

4.6 Métodos

5. Estructuras en Java

5.1. Estructuras de control

5.2 Estructuras secuencial

5.3 Estructura condicional

6, Clases en Java

6.1 Modificadores de acceso a la clase

6.2 Modificadores de acceso a campos

7. Referencias

Page 3: Benemérita Universidad Autónoma de Puebla Facultad de ...ymoyao.cs.buap.mx/admin/archivos/antologia.pdf · 4.3 Concepto de objeto y clase 4.4 Relaciones 4.5 Propiedades 4.6 Métodos

1. Introducción

Java es un lenguaje de programación con el que podemos realizar cualquier tipo de programa.

En la actualidad es un lenguaje muy extendido y cada vez cobra más importancia tanto en el

ámbito de Internet como en la informática en general. Está desarrollado por la compañía Sun

Microsystems con gran dedicación y siempre enfocado a cubrir las necesidades tecnológicas

más punteras.

Una de las principales características por las que Java se ha hecho muy famoso es que es un

lenguaje independiente de la plataforma. Eso quiere decir que si hacemos un programa en

Java podrá funcionar en cualquier ordenador del mercado. Es una ventaja significativa para

los desarrolladores de software, pues antes tenían que hacer un programa para cada sistema

operativo, por ejemplo Windows, Linux, Apple, etc. Esto lo consigue porque se ha creado

una Máquina de Java para cada sistema que hace de puente entre el sistema operativo y el

programa de Java y posibilita que este último se entienda perfectamente.

La independencia de plataforma es una de las razones por las que Java es interesante para

Internet, ya que muchas personas deben tener acceso con ordenadores distintos. Pero no se

queda ahí, Java está desarrollándose incluso para distintos tipos de dispositivos además del

ordenador como móviles, agendas y en general para cualquier cosa que se le ocurra a la

industria.

2. Tipo de Dato Abstracto

Tipo de Datos (TD): conjunto de valores que una variable puede tomar. Ej: un número entero

es de tipo entero).

• Representación interna: agrupaciones de bits.

• Necesidad de usar TDs: – Elegir representación interna óptima. – Aprovechar las

características de un TD. Ej: operaciones aritméticas.

• TD simples, elementales o primitivos: enteros, reales, booleanos y caracteres. •

Operaciones asociadas simples. Ej: multiplicación

Un Tipo de dato abstracto (en adelante TDA) es un conjunto de datos u objetos al cual se le

asocian operaciones. El TDA provee de una interfaz con la cual es posible realizar las

operaciones permitidas, abstrayéndose de la manera en como estén implementadas dichas

operaciones. Esto quiere decir que un mismo TDA puede ser implementado utilizando

distintas estructuras de datos y proveer la misma funcionalidad.

El paradigma de orientación a objetos permite el encapsulamiento de los datos y las

operaciones mediante la definición de clases e interfaces, lo cual permite ocultar la manera

Page 4: Benemérita Universidad Autónoma de Puebla Facultad de ...ymoyao.cs.buap.mx/admin/archivos/antologia.pdf · 4.3 Concepto de objeto y clase 4.4 Relaciones 4.5 Propiedades 4.6 Métodos

en cómo ha sido implementado el TDA y solo permite el acceso a los datos a través de las

operaciones provistas por la interfaz.

Formalmente, un TDA (Tipo de Dato Abstracto o ADT, en inglés) es una estructura

algebraica compuesta por un conjunto de objetos abstractos, que modelan elementos del

mundo, y un conjunto de operaciones para su manipulación, las cuales simulan el

comportamiento que el elemento modelado tiene el el mundo del problema.

Los lenguajes de programación entregan un arsenal de tipos de datos que son nativos al

lenguajes (es decir, están incorporados en este). Por lo general, para resolver problemas

complejos, estos tipos de datos no nos permiten representar correctamente elementos del

problema real (por ejemplo, en algún programa de un hospital, sería ideal poder definir un

tipo de dato paciente. Claramente este tipo no está incorporado en los lenguajes nativamente).

Es por esto que los lenguajes entregan un arsenal de herramienta para que el programador

pueda definir nuevos tipos de datos, utilizando los tipos de datos incorporados en el lenguaje

y así poder crear elementos que se acercan más a la realidad del problema.

Resumiendo lo anterior, podemos definir "informalmente" que un TDA es un elemento que

agrupa dos conceptos importantes: Un tipo de dato, creado por el programador y que le

permite representar en el lenguaje de programación un elemento real y un conjunto de

funciones que trabajan sobre estos tipos de datos.

Siguiendo el ejemplo del paciente, podriamos definir unt TDA paciente en C de la siguiente

manera:

struct Paciente

{

char nombre[50];

int edad;

char sexo;

char enfermedad[20];

};

3. Introducción a la Programación Orientada a Objetos

Actualmente una de las áreas más candentes en la industria y en el ámbito académico es la

orientación a objetos. La orientación a objetos promete mejoras de amplio alcance en la forma

de diseño, desarrollo y mantenimiento del software ofreciendo una solución a largo plazo a

los problemas y preocupaciones que han existido desde el comienzo en el desarrollo de

software: la falta de portabilidad del código y reusabilidad, código que es difícil de modificar,

ciclos de desarrollo largos y técnicas de codificación no intuitivas.

Un lenguaje orientado a objetos ataca estos problemas. Tiene tres características básicas:

debe estar basado en objetos, basado en clases y capaz de tener herencia de clases. Muchos

Page 5: Benemérita Universidad Autónoma de Puebla Facultad de ...ymoyao.cs.buap.mx/admin/archivos/antologia.pdf · 4.3 Concepto de objeto y clase 4.4 Relaciones 4.5 Propiedades 4.6 Métodos

lenguajes cumplen uno o dos de estos puntos; muchos menos cumplen los tres. La barrera

más difícil de sortear es usualmente la herencia.

El concepto de programación orientada a objetos (OOP) no es nuevo, lenguajes clásicos

como SmallTalk se basan en ella. Dado que la OOP. Se basa en la idea natural de la existencia

de un mundo lleno de objetos y que la resolución del problema se realiza en términos de

objetos, un lenguaje se dice que está basado en objetos si soporta objetos como una

característica fundamental del mismo.

El elemento fundamental de la OOP es, como su nombre lo indica, el objeto. Podemos definir

un objeto como un conjunto complejo de datos y programas que poseen estructura y forman

parte de una organización.

Esta definición especifica varias propiedades importantes de los objetos. En primer lugar, un

objeto no es un dato simple, sino que contiene en su interior cierto número de componentes

bien estructurados. En segundo lugar, cada objeto no es un ente aislado, sino que forma parte

de una organización jerárquica o de otro tipo.

Estructura de un objeto

Un objeto puede considerarse como una especie de cápsula dividida en tres partes:

1 - RELACIONES

2 - PROPIEDADES

3 - METODOS

4. Lenguaje de programación orientado a Objetos Java

4.1 Características del lenguaje Java

JAVA es un lenguaje de programación orientado a objetos que se dio a conocer en 1995

y que comenzó como resultado de la búsqueda de un lenguaje para programar dispositivos

empotrados. JAVA se define como un lenguaje:

Simple: Los diseñadores de JAVA intentaron crear un lenguaje que un programador

pudiera aprender con rapidez. Java utiliza muchas características similares a C y C++,

más sin embargo los diseñadores de JAVA eliminaron otras tantas disponibles en esos

lenguajes. Por ejemplo, JAVA no soporta la declaración goto, ni utiliza archivos de

encabezado. Además los struct y union se han eliminado. También elimina las

características de herencia múltiple de C++. La simplificación más importante es que

JAVA no utiliza apuntadores.

Orientado a Objetos: Significa que se debe poner atención especial a los datos de la

aplicación y a los métodos que manipulan los datos y no se debe pensar estrictamente en

términos de procedimientos. Se manejan por tanto las clases como una colección de datos

y métodos que operan sobre dichos datos. Java posee un conjunto grande de clases

ordenadas jerárquicamente por paquetes que se pueden utilizar en los programas.

Distribuido: JAVA proporciona un soporte de alto nivel para redes. Existe una clase

URL y un paquete java.net para trabajar fácilmente con un archivo o una fuente remota.

Existen clases en JAVA para el manejo de la Invocación de Método Remoto o RMI que

Page 6: Benemérita Universidad Autónoma de Puebla Facultad de ...ymoyao.cs.buap.mx/admin/archivos/antologia.pdf · 4.3 Concepto de objeto y clase 4.4 Relaciones 4.5 Propiedades 4.6 Métodos

permiten que un programa de JAVA llame a métodos de objetos Java remotos, como si

se tratara de objetos locales. Además Java también proporciona soporte de red tradicional,

de bajo nivel, incluidos conexiones basadas en flujo por sockets.

Interpretado: Java es un lenguaje interpretado pues el compilador de JAVA genera un

ByteCode para la Máquina Virtual de Java (JVM-Java Virtual Machina) en vez de código

nativo de máquina. Para ejecutar un programa de Java en forma real, se tiene que hacer

uso del intérprete del lenguaje para ejecutar los bytecode compilados.

Robusto: Java se ha diseñado para escribir software robusto y muy confiable ya que

permite una verificación exhaustiva al tiempo de compilación, en busca de posibles

problemas de no concordancia de letras. El manejo de excepciones en Java es una

característica importante del lenguaje que contribuye a formar programas más robustos.

Una excepción es una señal de que ha ocurrido algo excepcional, que no se puede evitar

que ocurra más sin embargo si puede ser prevista.

Seguro: Java se diseñó con la seguridad en mente y proporciona varias capas de controles

de seguridad en la red que protegen contra código malicioso. Estas capas permiten a los

usuarios ejecutar con comodidad programas desconocidos como los Applets.

4.2 Convenciones y Compilación

Un archivo de código fuente en Java tiene la extensión .java. Consiste en una declaración

package opcional, con un cierto número de declaraciones import2, seguida por una o más

definiciones de clase. Si en un archivo fuente de Java está definida más de una clase, sólo

una de ellas se puede declarar public (esto es, sólo una está disponible fuera del paquete);

además el archivo fuente debe tener el mismo nombre que la clase pública y la extensión

.java.

Cada definición de clase en un archivo .java es compilada en un archivo separado. Estos

archivos de bytecode de Java compilados se conocen como “archivos de clase” y deben

tener el mismo nombre que la clase que definan, con la extensión .class anexada

4.3 Concepto de objeto y de clase

• Objeto: Concepto, abstracción o cosa con límites bien definidos y con significado para

el problema que se está manejando.

– Todos los objetos presentan una identidad, que los hace distinguibles, un estado y un

comportamiento.

– El término identidad significa que los objetos se distinguen por su existencia inherente

y no por propiedades descriptivas que puedan tener.

• Clase: Descripción abstracta de un grupo de objetos con propiedades similares

(atributos), comportamiento común (operaciones), relaciones comunes con otros objetos

y semántica común.

Cada uno de estos componentes desempeña un papel totalmente independiente:

Las relaciones permiten que el objeto se inserte en la organización y están formadas

esencialmente por punteros a otros objetos.

Page 7: Benemérita Universidad Autónoma de Puebla Facultad de ...ymoyao.cs.buap.mx/admin/archivos/antologia.pdf · 4.3 Concepto de objeto y clase 4.4 Relaciones 4.5 Propiedades 4.6 Métodos

Las propiedades distinguen un objeto determinado de los restantes que forman parte de

la misma organización y tiene valores que dependen de la propiedad de que se trate. Las

propiedades de un objeto pueden ser heredadas a sus descendientes en la organización.

Los métodos son las operaciones que pueden realizarse sobre el objeto, que normalmente

estarán incorporados en forma de programas (código) que el objeto es capaz de ejecutar y

que también pone a disposición de sus descendientes a través de la herencia.

Encapsulamiento y ocultación

Como hemos visto, cada objeto es una estructura compleja en cuyo interior hay datos y

programas, todos ellos relacionados entre sí, como si estuvieran encerrados conjuntamente

en una cápsula. Esta propiedad (encapsulamiento), es una de las características

fundamentales en la OOP.

Los objetos son inaccesibles, e impiden que otros objetos, los usuarios, o incluso los

programadores conozcan cómo está distribuida la información o qué información hay

disponible. Esta propiedad de los objetos se denomina ocultación de la información.

Esto no quiere decir, sin embargo, que sea imposible conocer lo necesario respecto a un

objeto y a lo que contiene. Si así fuera no se podría hacer gran cosa con él. Lo que sucede

es que las peticiones de información a un objeto. Deben realizarse a través

de mensajes dirigidos a él, con la orden de realizar la operación pertinente. La respuesta

a estas órdenes será la información requerida, siempre que el objeto considere que quien

envía el mensaje está autorizado para obtenerla.

El hecho de que cada objeto sea una cápsula facilita enormemente que un objeto

determinado pueda ser transportado a otro punto de la organización, o incluso a otra

organización totalmente diferente que precise de él. Si el objeto ha sido bien construido,

sus métodos seguirán funcionando en el nuevo entorno sin problemas. Esta cualidad hace

que la OOP sea muy apta para la reutilización de programas.

Organización de los objetos

En principio, los objetos forman siempre una organización jerárquica, en el sentido de que

ciertos objetos son superiores a otros de cierto modo.

Existen varios tipos de jerarquías: serán simples cuando su estructura pueda ser

representada por medio de un "árbol". En otros casos puede ser más compleja.

En cualquier caso, sea la estructura simple o compleja, podrán distinguirse en ella tres

niveles de objetos.

-La raíz de la jerarquía. Se trata de un objeto único y especial. Este se caracteriza por

estar en el nivel más alto de la estructura y suele recibir un nombre muy genérico, que

indica su categoría especial, como por ejemplo objeto madre, Raíz o Entidad.

-Los objetos intermedios. Son aquellos que descienden directamente de la raíz y que a su

vez tienen descendientes. Representan conjuntos o clases de objetos, que pueden ser muy

generales o muy especializados, según la aplicación. Normalmente reciben nombres

genéricos que denotan al conjunto de objetos que representan, por ejemplo, VENTANA,

CUENTA, FICHERO. En un conjunto reciben el nombre de clases o tipos si descienden

de otra clase o subclase.

-Los objetos terminales. Son todos aquellos que descienden de una clase o subclase y no

tienen descendientes. Suelen llamarse casos particulares, instancias o ítems porque

representan los elementos del conjunto representado por la clase o subclase a la que

pertenecen.

Veamos ahora en detalle los tres elementos mencionados en "Estructura de un Objeto".

Page 8: Benemérita Universidad Autónoma de Puebla Facultad de ...ymoyao.cs.buap.mx/admin/archivos/antologia.pdf · 4.3 Concepto de objeto y clase 4.4 Relaciones 4.5 Propiedades 4.6 Métodos

4.4 Relaciones

Las relaciones entre objetos son, precisamente, los enlaces que permiten a un objeto

relacionarse con aquellos que forman parte de la misma organización.

Las hay de dos tipos fundamentales:

-Relaciones jerárquicas. Son esenciales para la existencia misma de la aplicación porque

la construyen. Son bidireccionales, es decir, un objeto es padre de otro cuando el primer

objeto se encuentra situado inmediatamente encima del segundo en la organización en la

que ambos forman parte; asimismo, si un objeto es padre de otro, el segundo es hijo del

primero (en la fig. 2, B es padre de D,E y F, es decir, D,E y F son hijos de B; en la fig. 3,

los objetos B y C son padres de F, que a su vez es hijo de ambos).

Una organización jerárquica simple puede definirse como aquella en la que un objeto

puede tener un solo padre, mientras que en una organización jerárquica compleja un hijo

puede tener varios padres).

-Relaciones semánticas. Se refieren a las relaciones que no tienen nada que ver con la

organización de la que forman parte los objetos que las establecen. Sus propiedades y

consecuencia solo dependen de los objetos en sí mismos (de su significado) y no de su

posición en la organización.

Se puede ver mejor con un ejemplo: supongamos que vamos a construir

un diccionario informatizado que permita al usuario obtener la definición de una palabra

cualquiera. Supongamos que, en dicho diccionario, las palabras son objetos y que la

organización jerárquica es la que proviene de forma natural de la estructura de nuestros

conocimientos sobre el mundo.

La raíz del diccionario podría llamarse TEMAS. De éste término genérico descenderán

tres grandes ramas de objetos llamadas VIDA, MUNDO y HOMBRE. El primero (vida)

comprenderá las ciencias biológicas: Biología y Medicina. El segundo (mundo), las

ciencias de la naturaleza inerte: las Matemáticas, la Física, la Química y la Geología. El

tercero (hombre) comprenderá las ciencias humanas: la Geografía, la Historia, etc.

Veamos un ejemplo: estableceremos la relación trabajo entre los objetos NEWTON y

OPTICA y la interpretaremos diciendo que significa que Newton trabajó en óptica (véase

la fig. 4). La relación es, evidentemente, semántica, pues no establece ninguna

connotación jerárquica entre NEWTON y OPTICA y su interpretación depende

exclusivamente del significado de ambos objetos.

La existencia de esta relación nos permitirá responder a preguntas como:

¿Quién trabajó en óptica?

¿En qué trabajó Newton?

¿Quien trabajó en Física?

Las dos primeras se deducen inmediatamente de la existencia de la relación trabajo. Para

la tercera observamos que si Newton trabajó en óptica automáticamente sabemos que

trabajó en Física, por ser óptica una rama de la Física (en nuestro diccionario, el objeto

OPTICA es hijo del objeto FISICA). Entonces gracias a la OOP podemos responder a la

tercera pregunta sin necesidad de establecer una relación entre NEWTON y FISICA,

apoyándonos sólo en la relación definida entre NEWTON y OPTICA y en que OPTICA

es hijo de FISICA. De este modo se elimina toda redundancia innecesaria y la cantidad de

información que tendremos que definir para todo el diccionario será mínima.

Page 9: Benemérita Universidad Autónoma de Puebla Facultad de ...ymoyao.cs.buap.mx/admin/archivos/antologia.pdf · 4.3 Concepto de objeto y clase 4.4 Relaciones 4.5 Propiedades 4.6 Métodos

4.5 Propiedades

Todo objeto puede tener cierto número de propiedades, cada una de las cuales tendrá, a su

vez, uno o varios valores. En OOP, las propiedades corresponden a las clásicas "variables"

de la programación estructurada. Son, por lo tanto, datos encapsulados dentro del objeto,

junto con los métodos (programas) y las relaciones (punteros a otros objetos). Las

propiedades de un objeto pueden tener un valor único o pueden contener un conjunto de

valores más o menos estructurados (matrices, vectores, listas, etc.). Además, los

valores pueden ser de cualquier tipo (numérico, alfabético, etc.) si el sistema de

programación lo permite.

Pero existe una diferencia con las "variables", y es que las propiedades se pueden heredar

de unos objetos a otros. En consecuencia, un objeto puede tener una propiedad de maneras

diferentes:

-Propiedades propias. Están formadas dentro de la cápsula del objeto.

-Propiedades heredadas. Están definidas en un objeto diferente, antepasado de éste

(padre,"abuelo", etc.). A veces estas propiedades se llaman propiedad miembro porque

el objeto las posee por el mero hecho de ser miembro de una clase.

4.6 Métodos

Una operación que realiza acceso a los datos. Podemos definir método como

un programa procedimental o procedural escrito en cualquier lenguaje, que está asociado

a un objeto determinado y cuya ejecución sólo puede desencadenarse a través de un

mensaje recibido por éste o por sus descendientes.

Son sinónimos de 'método' todos aquellos términos que se han aplicado tradicionalmente

a los programas, como procedimiento, función, rutina, etc. Sin embargo, es conveniente

utilizar el término 'método' para que se distingan claramente las propiedades especiales

que adquiere un programa en el entorno OOP, que afectan fundamentalmente a la forma

de invocarlo (únicamente a través de un mensaje) y a su campo de acción, limitado a un

objeto y a sus descendientes, aunque posiblemente no a todos.

Si los métodos son programas, se deduce que podrían tener argumentos, o parámetros.

Puesto que los métodos pueden heredarse de unos objetos a otros, un objeto puede

disponer de un método de dos maneras diferentes:

-Métodos propios. Están incluidos dentro de la cápsula del objeto.

-Métodos heredados. Están definidos en un objeto diferente, antepasado de éste

(padre,"abuelo", etc.). A veces estos métodos se llaman método miembro porque el

objeto los posee por el mero hecho de ser miembro de una clase.

Polimorfísmo

Una de las características fundamentales de la OOP es el polimorfísmo, que no es otra

cosa que la posibilidad de construir varios métodos con el mismo nombre, pero con

relación a la clase a la que pertenece cada uno, con comportamientos diferentes. Esto

conlleva la habilidad de enviar un mismo mensaje a objetos de clases diferentes. Estos

objetos recibirían el mismo mensaje global pero responderían a él de formas diferentes;

por ejemplo, un mensaje "+" a un objeto ENTERO significaría suma, mientras que para

un objeto STRING significaría concatenación ("pegar" strings uno seguido al otro)

Demonios

Page 10: Benemérita Universidad Autónoma de Puebla Facultad de ...ymoyao.cs.buap.mx/admin/archivos/antologia.pdf · 4.3 Concepto de objeto y clase 4.4 Relaciones 4.5 Propiedades 4.6 Métodos

Es un tipo especial de métodos, relativamente poco frecuente en los sistemas de OOP, que

se activa automáticamente cuando sucede algo especial. Es decir, es un programa, como

los métodos ordinarios, pero se diferencia de estos porque su ejecución no se activa con

un mensaje, sino que se desencadena automáticamente cuando ocurre un suceso

determinado: la asignación de un valor a una propiedad de un objeto, la lectura de un valor

determinado, etc.

Los demonios, cuando existen, se diferencian de otros métodos por que no son heredables

y porque a veces están ligados a una de las propiedades de un objeto, más que al objeto

entero.

5 Estructuras en Java

5.1 Estructuras de control

Las estructuras de control determinan la secuencia de ejecución de las sentencias de un

programa.

Las estructuras de control se dividen en tres categorías:

Secuencial

Condicional o Selectiva

Iterativa o Repetitiva.

5.2. Estructuras secuencial

El orden en que se ejecutan por defecto las sentencias de un programa es secuencial. Esto

significa que las sentencias se ejecutan en secuencia, una después de otra, en el orden en

que aparecen escritas dentro del programa.

La estructura secuencial está formada por una sucesión de instrucciones que se ejecutan

en orden una a continuación de la otra.

Cada una de las instrucciones están separadas por el carácter punto y coma (;).

Las instrucciones se suelen agrupar en bloques.

El bloque de sentencias se define por el carácter llave de apertura ({) para marcar el inicio

del mismo, y el carácter llave de cierre (}) para marcar el final.

Ejemplo:

{

instrucción 1;

instrucción 2;

instrucción 3;

}

En Java si el bloque de sentencias está constituido por una única sentencia no es

obligatorio el uso de las llaves de apertura y cierre ({ }), aunque sí recomendable.

5.3 Estructura condicional

Page 11: Benemérita Universidad Autónoma de Puebla Facultad de ...ymoyao.cs.buap.mx/admin/archivos/antologia.pdf · 4.3 Concepto de objeto y clase 4.4 Relaciones 4.5 Propiedades 4.6 Métodos

La estructura condicional determina si se ejecutan unas instrucciones u otras según se

cumpla o no una determinada condición.

En java la estructura condicional se implementa mediante:

- Instrucción if.

- Instrucción switch.

- Operador condicional ? :

INSTRUCCION if

Puede ser del tipo:

- Condicional simple: if

- Condicional doble: if ... else ...

- Condicional múltiple: if .. else if ..

La condición debe ser una expresion booleana es decir debe dar como resultado un valor

booleano (true ó false).

Condicional simple: se evalúa la condición y si ésta se cumple se ejecuta una determinada

acción o grupo de acciones. En caso contrario se saltan dicho grupo de acciones.

if(expresión_booleana){

instrucción 1

instrucción 2

.......

}

Si el bloque de instrucciones tiene una sola instrucción no es necesario escribir las llaves { }

aunque para evitar confusiones se recomienda escribir las llaves siempre.

Ejemplo de programa Java con estructura condicional: Programa que pide por teclado la nota

obtenida por un alumno y muestra un mensaje si el alumno ha aprobado.

6 Clases en Java

Las clases son la base de la Programación Orientada a Objetos. Una clase es una plantilla que

define la forma de un objeto; en ella se agrupan datos y métodos que operarán sobre esos

datos. En java, una clase se define con la palabra reservada class. En la figura se muestra la

forma general para la definición de una clase:

Por convención, se declaran primero las variables (atributos) miembro de la clase y luego las

declaraciones e implementaciones de métodos. Al diseñar una clase es conveniente tomar en

cuenta lo siguiente: • En Java no existen variables ni métodos globales. Todas las variables

y métodos deben pertenecer a una clase. • Cuando una clase extiende a otra hereda todos sus

atributos y métodos. • En Java no existe la herencia múltiple. • Object es la base de toda la

jerarquía de clases de Java. Si al definir una clase no se especifica la clase que extiende, por

default deriva de Object.

6.3 Modificadores de acceso a la clase

Page 12: Benemérita Universidad Autónoma de Puebla Facultad de ...ymoyao.cs.buap.mx/admin/archivos/antologia.pdf · 4.3 Concepto de objeto y clase 4.4 Relaciones 4.5 Propiedades 4.6 Métodos

Modificadores de Acceso a la clase Los modificadores de acceso a clase son opcionales,

se anteponen a la palabra reservada class, estos son public, abstract y final. public: la

clase puede ser utilizada por objetos que estén fuera del paquete actual. Por omisión, una

clase sólo puede ser utilizada por otras clases dentro del mismo paquete en el que están

declaradas. abstract: Se usa para indicar que una clase es abstracta, esto significa que la

clase puede contener métodos sin implementación (abstractos). Una clase abstracta está

diseñada para ser una superclase y no pueden crear objetos de ella. Final: cuando una

clase tiene el modificador final es una clase que no puede tener subclases

6.4 Modificadores de acceso a campos

El uso de clases permite proteger sus variables y métodos del acceso de otros objetos.

Java proporciona cuatro niveles de acceso para las variables y métodos miembros:

private, protected, public y acceso de paquete.

private: Es el nivel de acceso más restringido. Los miembros privados están disponibles

sólo para la clase en las que está definidos.

protected: Permite que la misma clase, subclases y todas las clases dentro del mismo

paquete tengan acceso a los miembros protected.

public: Todas las clases tienen acceso a los miembros públicos de la clase. Los miembros

públicos se emplean solamente cuando el acceso a ellos produce resultados indeseables.

package: Este nivel es el que se establece si no se indica un nivel de acceso a los

miembros. El acceso de paquete permite que las clases dentro del mismo paquete que la

clase tengan acceso a los miembros. static: El campo static será el mismo para todas las

instancias de la clase. final: El campo debe ser inicializado y no se puede modificar.

7 Referencias

1. Java. Manual de Referencia.” Patrick Naughton, Herbert Schildt. McGraw-Hill.

2000.

2. “Guía Esencial XML.” Dan Livingstone. Prentice Hall. 2002.

3. “The XML Schema Complete Reference.” Cliff Binstock, Dave Peterson, Mitchell

Smith, Mike Wooding, Chris Dix, Chris Galtenberg. Addison Wesley. 27 Septiembre

2002.

4. “Swing.” (Segunda Edición.) Matthew Robinson, Pavel Vorobiev. Manning. 2003.

5. “Java Swing.” Robert Eckstein, Marc Loy, Dave Wood. O ́Reilly. 1998.

6. “Eclipse IDE Pocket Guide.” Ed Burnette. Agosto 2005. O ́Reilly.