Professional Documents
Culture Documents
Introduccin a la
Encapsulacin
Herencia
Encapsulacin: Herencia:
Las estructuras de datos y los detalles de la Una clase (subclase) puede derivar de otra
implementacin de una clase se hallan ocultos de (superclase)
otras clases del sistema La subclase hereda todas las variables y mtodos de
Control de acceso a variables y mtodos la superclase
Las subclase puede redefinir y/o aadir variables y
mtodos
Fomenta la reutilizacin de cdigo
Programacin orientada a objetos: POO (IV) Programacin orientada a objetos: POO (V)
B. Eckel. Piensa en Java (2 edicin). Prentice Hall. 2002 J. Jaln, J.I. Rodrguez, I. Mingo, A. Imaz, A. Brazlez, A.
Larzabal, J. Calleja, J. Garca. Aprenda java como si
estuviese en primero. Escuela Superior de Ingenieros
H.M. Deitel, P.J. Deitel. Cmo programar en Java (5 Industriales. Universidad de Navarra
edicin). Pearson Prentice-Hall. 2004 http://mat21.etsii.upm.es/ayudainf/
D. Arnow, G. Weiss, C.-Brooklyn. Introduccin a la Fco. J. Ceballos, Java 2. Curso de programacin, Ra-Ma,
programacin en Java. Un enfoque orientado a 2000
objetos. Pearson Addison Wesley. 2000
Las clases anteriores no pueden ejecutarse por s Declaracin de los objetos de una clase:
mismas NombreClase nombreObjeto;
Son slo definiciones que permiten crear y Ejemplo: Punto miPunto;
manipular objetos de esa clase
Arranque de un pograma en java, en un clase Creacin de los objetos de la clase:
especial del programa:
Operador new
Contiene el mtodo main() comienza la
nombreObjeto = new NombreClase();
ejecucin del programa
Ejemplo: miPunto = new Punto();
En un fichero fuente puede haber varias clases pero
slo una que contenga el mtodo main()
Se pueden declarar y crear al mismo tiempo:
Punto miPunto = new Punto();
}}
Prueba.java
Prueba.java
Importacin de una clase: private: slo pueden ser accedidos desde dentro de la
import es.udc.fic.oscar.tp.ordenar.QuickSort; clase (no desde las subclases)
public
public Circulo()
Circulo() //constructor
Especificador Clase Subclase Paquete Mundo package
package graficos;
graficos;
//constructor
graficos (paquete)
{{
class
class Punto
Punto _centro
{{ _centro == new
new Punto();
Punto();
private private
private double
double _x;
_x;
}}
private
private double
double _y;
_y; public
import public void
void setCentro(double
setCentro(double a,
a, double
double b)
b)
protected import graficos.*;
graficos.*; {{
public
public class
class EditorGrafico
EditorGrafico void setX(double
void setX(double d) d) _centro.x(a);
_centro.x(a);
{{ {{ _centro.y(b);
public public _centro.y(b);
public static void
static void main
main _x
_x == d;
d; }}
(String
(String []
[] args)
args) }}
{{ void setY(double
void setY(double d) d)
package
public
public void
void setRadio(double
setRadio(double d)
d)
Circulo
Circulo cc == new
new Circulo();
Circulo(); {{ {{
c.setCentro(3
c.setCentro(3 ,, 4);4); _y
_y == d;
d; _radio = d;
_radio = d;
c.mostrar();
c.mostrar(); }} }}
c.radio(2.5);
c.radio(2.5); void
void mostrar()
mostrar()
c.mostrar();
c.mostrar(); {{ public
public void
void mostrar()
mostrar()
}} System.out.println("Valores
System.out.println("Valores {{
de
de xx ee y:
y: "" ++ _x
_x ++ "" "" ++ _y);
_y);
System.out.println("Circulo:
}} }} System.out.println("Circulo:
"" ++ _radio
_radio ++ "" ");
");
}} _centro.mostrar();
_centro.mostrar();
}}
Prueba.java
Prueba.java Punto.java
Punto.java
}}
public abstract class Geometria { . . . } Para indicar que una clase deriva de otra: extends
Pueden contener implementacin genrica de los mtodos. Ejemplo: class Perro extends Mamifero { ... }
Cuando una clase deriva de otra hereda todas sus variables
Mtodos de clase (static) p.ej main()
y mtodos (implementacin general)
Actan sobre la clase. No actan sobre objetos a travs del
operador punto Pueden ser redefinidas en la clase derivada (subclase)
Se definen usando la palabra static
Puede aadir nuevas variables y/o mtodos
Para usarlos se utiliza el nombre de la clase: Math.sin(1)
El tamao de los tipos no vara entre plataformas Clases envoltura de los tipos primitivos:
Se puede declarar un tipo primitivo como no
Tipo primitivo Tamao Mnimo Mximo Tipo envoltura
primitivo (manejo como objeto).
boolean - - - Boolean
char 16 bits Unicode 0 Unicode +216 -1 Character Ejemplo:
byte 8 bits -128 +127 Byte
char c = 'x';
short 16 bits -215 +215 -1 Short
int 32 bits -231 +231 -1 Integer Character C = new Character('x');
long 64 bits -263 +263 -1 Long
float 32 bits -3.4 x 1038 +3.4 x 1038 Float
double 64 bits -3.4 x 10308 +3.4 x 10308 Double
void - - - Void
Normas: Convenios: !!
Comienza por una letra, un guin bajo ( _ ) o un Nombres de clase: empiezan por mayscula (Circulo)
smbolo de dlar ($) Nombres de mtodos o atributos: empiezan por
Los dems caracteres pueden ser letras o dgitos minscula ( println() , unCirculo, )
Ejemplos: Constantes: todo en maysculas (Math.PI)
Correctas: midato, _midato, $midato Identificadores formados por varias palabras:
Incorrectas: 7clases , ?clases comienzo de cada nueva palabra en maysculas
Java distingue entre maysculas y minsculas Ejemplos: dibujaCuadrado(), ClaseCuadrado, unCuadrado
Concatenacin de cadenas: +
perro + gato // Resultado perrogato
Introduccin a la programacin con JAVA 57 Introduccin a la programacin con JAVA 58
// comentarios para una sola lnea Son similares a las funciones de otros lenguajes
Definicin:
//Imprime: 3 3 2
Introduccin a la programacin con JAVA 69 Introduccin a la programacin con JAVA 70
if (expresin)
{
sentencia1;
...
sentencia N;
}
if (calificacion >= 5)
if (expresin) System.out.println("Aprobado");
else
{
System.out.println("Suspenso");
Grupo de sentencias1;
if (saldo >= importe)
}
{
else saldo = saldo importe;
System.out.println("Saldo insuficiente");
{
}
Grupo de sentencias2; else
System.out.println("Error: saldo insuficiente");
}
if (expresin1){
switch (expresin) {
Grupo sentencias1;
case valor1: Grupo sentencias1;
} else if (expresin2) {
Grupo sentencias2; case valor2: Grupo sentencias2;
} else if (expresin3) { ...
Grupo sentencias3; case valorN: Grupo sentenciasN;
} else { [default: Grupo sentenciasN+1;]
Grupo sentencias4; }
}
Bucle while:
switch (mes) {
case 1:
case 3: while (expresin) {
case 5:
case 7: Grupo de sentencias;
case 8:
case 10: }
case 12: NDias = 31; break;
case 4:
case 6: Bucle do while:
case 9:
case 11: NDias = 30; break;
case 2: do {
if ( ((year % 4 == 0) && !(year % 100 == 0)) || (year % 400 == 0) )
NDias = 29; Grupo de sentencias;
else NDias = 28;
break;
} while (expresin)
}
Estructuras de control: sentencias repetitivas (II) Estructuras de control: sentencias repetitivas (III)
Ejemplos:
Bucle for:
contador = 1;
while (contador <= 10)
{ for (inicializacin; expresin; incremento)
suma = suma + contador;
contador++; {
} Grupo de sentencias;
contador = 1; }
do
{
suma = suma + contador;
contador++;
} while (contador <= 10)
Ejemplos:
Clase de la biblioteca estndar: String
Introduccin a la programacin con JAVA 101 Introduccin a la programacin con JAVA 102
Introduccin a la programacin con JAVA 107 Introduccin a la programacin con JAVA 108
Entrada/salida estndar (IV) Entrada/salida estndar (V)
Introduccin a la programacin con JAVA 109 Introduccin a la programacin con JAVA 110