PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e...

Post on 02-Apr-2015

109 views 1 download

Transcript of PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e...

PROGRAMACIÓN EN JAVACurso-taller inicial de programación en JAVAFacultad de Estadística e Informática

TEMA II

Contenido del Tema II curso taller

Programación en JAVA

2.- Declaraciones, inicialización y ámbito de las variables. Declaración de clases. Declaración, inicialización y uso de primitivas,

arreglos, enums. Declaración de Métodos. Instancias de Clases.

Una visión general de la Orientación a Objetos

Una técnica para el modelado de sistemas.

Intenta describir un sistema como este existe en la realidad.

Identifica : Objetos. Atributos de los objetos. Operaciones de los objetos.

Las declaraciones en el archivo fuente Una opcional declaración package Cualquier cantidad de import Declaraciones de clases e interfaces.

Application Programming Interfaces

Interfaz de Programación de Aplicaciones (API: por sus siglas en inglés).

Actividad:http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/api/

Seleccionar el paquete java.util.Seleccionar la clase Scanner verificar cual es el método que se ocuparía para leer cadenas desde el teclado.Buscar la documentación para de la clase SystemSeleccionar la clase String y observar los métodos que contienen

Abstracción

Funciones – Escribir un algoritmos una ves para ser utilizado en muchas situaciones.

Las clases agrupan un conjunto de atributos y comportamiento relacionados de un grupo de objetos.

Framework y APIs – Un grupo grande de clases que soportan un actividad compleja. Un framework puede ser usado directamente o ser modificado para ampliar su comportamiento básico.

Clases como una plantilla de Objetos

En fabricación una plantilla permite construir dispositivos en base a un modelo.

En software una clase es una descripción de un objeto. Una clase describe los datos que cada objeto

incluye. Una clase describe el comportamiento a cada

objeto.

En la tecnología JAVA las clases soportan tres características clave de la programación Orientada o Objetos: Encapsulamiento, Herencia y Polimorfismo.

Control de Acceso

Declarando Clases en JAVA Sintaxis básica de una clase en JAVA:

<modifiers> class <class_name>{ [<declaración_de_atributos>] [<declaración_de_constructores>] [<declaración_de_métodos>] }Ejemplo: public class Vehiculo{ private double cargaMaxima; public void setCargaMaxima(double valor){ cargaMaxima = valor;}}

Declaración de Atributos

Sintaxis básica de un atributo: <modificadoes> <tipo>

<identificador>;Ejemplo: public class Algo{ private int x; private float y = 10000.0F; private String nombre; }

Declaración de métodos Sintaxis básica de un método:

<modificadoes> <tipo_de_retorno> <identificador>([<lista_de_argunetos>]){

[<declaraciones>]};Ejemplo: public class Perro{ private int peso; public int getPeso( ) { return peso;} public void setPeso(int nuevoPeso){ peso = nuevoPeso; }}

Accediendo a los Miembros del Objeto

Ejemplo :La notación “punto”: <objeto>.<miembro>

Es usada para acceder a los miembros del objeto estos incluyen los atributos y los métodos.

d.setPeso(42);

d.peso = 42; // solo posible accedes a el si es público

Ocultando información

El Problema:MyDate

+ day:int+ month:int+ year:int

Si los atributos son públicos se puede acceder a ellos directamente permitiendo que cualquier valor sea asignado a ellos

MyDate d = new MyDate ( );d.day = 32;//día invalido

d.month = 2; d.day = 30;// plausible but wrong

d.day = d.day + 1;// en la asignación no hay verificación

Ocultando información

Solución :MyDate

- day:int- month:int- year:int

+ getDay():int+ setDay(day:int):boolean+getMonth():int+setMonth(month:int)+getYear():int+setYear(year:int)+fechaActual()-validaDay(day:int)

El cliente debe usar los métodos set/getPara acceder a los datos internos:MyDate d = new MyDate( );d.setDay(32);// día invalido, regresa falsed.setMonth(2);d.setDay(30);//posible error setDay regresa falsed.setDay(d.getDay() +1);// este regresará falso si la verificación es necesaria

Encapsulamiento

Oculta los detalles de implementación de una clase .

Obliga al usuario a utilizar un interface (métodos públicos) para acceder a los datos.

Hace que sea fácil darle mantenimiento a el código.

Declaración de los constructores Sintaxis básica de un constructor:

<modificador> <nombre_clase>([<lista_de_argumentos>]{

[<declaraciones>]}

Ejemplo: public class Perro{ private int peso; public Perro( ) { peso = 42;} public int getPeso( ) { return peso;} public void setPeso(int nuevoPeso){ peso = nuevoPeso; }}

El Constuctor por Default Siempre hay al menos un constructor. Si no se escribe un constructor, el constructor

por default esta presente automáticamente:

El constructor por default no tiene argumentos.

El constructor por defecto no tiene cuerpo.

Se habilita el constructor por default al crear un objeto con new <nombre_clase>( ) si no se escribió un constructor.

Estructura del un archivo fuente Sintaxis básicade un archivo fuente :

[<declaración_del_paquete>][<declaración_de_los_import>]<declaración_de_la_clase>

Ejemplo archivo VehiculoReporteCapacidad :package shipping.reports;import shipping.domain.*;import java.util.List;Import java.io.*;Public class VehiculoReporteCapacidad{ private List vehiculos; public void generateReport(Writer output){ ….}}

Paquetes de Software(package) package ayuda a administrar sistemas grandes

de software. package puede contener clases y subclases.

La declaración package

Sintaxis Básica de la declaración package:package <top_pkg_name>[.<sub_pkg_name>]*;

Ejemplo:package shipping.reports;

Especifica la declaración al inicio del archivo fuente

Solo una declaración package por archivo.Si la declaración package no es declarada

entonces la clase pertenece al default package.

Diseño de directorios y paquetes (package)

Los paquetes son almacenados en el árbol que contiene el nombre del paquete.

Ejemplo de la aplicación shipping :

La declaración import

Sintaxis básica de declaración importimport

<pkg_name>[.<sub_pkg_name>].<class_name>;

Or

import <pkg_name>[.<sub_pkg_name>].*;

Ejemplos:import shipping.domain.*;import java.util.List;import java.io.*;

Precede a todas las declaraciones de clases.

Indica al compilador donde encontrar las clases utilizadas.

Actividad a desarrollar

Describe con tus propias palabras junto con ejemplo de los siguientes términos: Clase Objeto Atributo Método Constructor Paquete

Genera la clase Fecha

MyDate

- day:int- month:int- year:int

+MyDate(day:int,month:int,year:int)+MyDate(dia:int,mes:int,año:int)+MyDate(dia:int)+ getDay():int+ setDay(day:int)+getMonth():int+setMonth(month:int)+getYear():int+setYear(year:int)+fechaActual()-validaDay(day:int)

Crea otra clase llamada PruebaMyDate.java que utilice la clase MyDate y que solicite desde el teclado los datos necesarios para actualizar la clase y que imprima los valores

Tarea:

Agregar a la clase MyDate el método que permita calcular los años que han pasado a partir de una fecha.

Agregar los métodos necesarios para realizar validación de las fechas introducidas