Fundamentos
de Java
Material de Estudio
- Ver CD de Pañol
- Manual
en línea
- Programas del texto Guía
(que está en biblioteca)
- Ejemplos de que acompañan al SDK (Software Development
Kit) Ver en /usr/local/java/j2sdk/demo
Ejemplos
- Welcome
- ImageViewer
- Applet: WelcomeApplet
Prueba Código
(ver html)
Ideas Generales
- Un programa
Java es la definición de una clase que
contiene el método main, a
través de él se pueden invocar a otros objetos y clases.
- Una clase
es la especificación que define una categoría de entes
reales o
no reales. Candidatos para definir clases serían: persona,
muebles, pasaporte, cuenta. Generalmente son sustantivos. Toda
clase define el comportamiento (métodos) y/o los atributos
(datos) del ente que representa.
- Un Objeto
es una instancia de una clase. Es un caso particular de los
especificados por la clase. Se carateriza por tener: una Identidad, un Estado y un Comportamiento.
Por ejemplo: Paula podría ser una instancia de la clase persona.
Si la clase persona tiene definida la edad como atributo, Paula
tendría 3 años. Si la clase persona tiene definido el
comportameinto hacerUnDibujo(), Paula podría hacer un dibujo. Se
lo pedimos: dibujoEjemplo=Paula.hacerUnDibujo(); Suponemos
aquí que el método retorna un objeto que almacenamos en
dibujoEjemplo, el cual es una instancia de la case Dibujo, por ejemplo.
El comportamiento generalmente se relaciona con verbos.
- Los lenguajes orientados a objetos no son otra cosa que una
definición de reglas sintácticas para expresar todo lo
que
conviente poder hacer con estos objetos para vincularlos y con ellos
plantear las soluciones a los problemas.
- A través de ejemplo iremos viendo esas reglas y
cómo se usan.
Aspectos sintácticos
- Tipos primitivos en Java: Hay 8.
|
Tipo
|
Tamaño
|
Entero
|
int
|
4
|
short
|
2
|
long
|
8
|
byte
|
1
|
Punto
flotante
|
float
|
4
|
double
|
8
|
Caracter
|
char
|
2
|
Booleano
|
boolean
|
|
- Constantes
Se usa la palabra reservada final.
Ejemplo: final double CM_PER_INCH= 2.54;
- Operadores: Los mismos que en C y con casi igual semántica
difiere en la comparación.
- El booleano es distinto que el entero => while(1) .... no vale
en Java if (a=3) ... es error en Java
- Los string no son primitivos => son objetos => if ("Hola"
== "Hola") ... es falso debido a que en Java los nombres de los objetos
no son más que refencias a ellos en Java.
Lo anterior equivale a: Sea
String a="Otro" , b="Otro"; //luego
if (a==b) ... // es falso porque a y b se refieren a
objetos distintos que casualmente tienen igual estado.
Por otro lado, si tenemos:
String a="Mas";
String b=a;
if (a ==b) ... // es verdadero.
- En Java todos los objetos son asignados y pasados como
referencias (sintáxis de punteros en C). Cuando definimos un
nombre para una variable, sólo se crea el nombre de para un
objeto. Luego, debemos crear el objeto y asignarlo al nombre. En cierta
forma esto es similar a crear un puntero y luego hacer un malloc para
darle ubicación en memoria.
Control de flujo
El control de flujo: while, for, switch, if, etc... son iguales que en
C excepto que no hay goto en Java (y hay una versión rotulada
del
break).
Estudio de temas vía
ejemplos:FirstSample.java,
InputTest.java, LotteryOdds.java,
LotteryArray.java