Tema 2 DeclaracionesInicializacionyambitodelasvariables(1raparte)
Download
Report
Transcript Tema 2 DeclaracionesInicializacionyambitodelasvariables(1raparte)
TEMA II
PROGRAMACIÓN EN JAVA
Curso-taller inicial de programación en JAVA
Facultad de Estadística e Informática
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 System
Seleccionar 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
MyDate
- day:int
- month:int
- year:int
Solución :
+ 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/get
Para acceder a los datos internos:
MyDate d = new MyDate( );
d.setDay(32);
// día invalido, regresa false
d.setMonth(2);
d.setDay(30);
//posible error setDay regresa false
d.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 import
import <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