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 acciones o servicios de
otros objetos
y clases.
- Una clase
es la especificación que define una categoría de entes
reales o
no reales. Candidatos para definir una clase son generalmente
sustantivos como: persona,
muebles, pasaporte, cuenta. Toda
clase define el comportamiento (métodos) y/o los atributos
(datos) de la categoría de entes 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.
El primero se define al crear el objeto y puede haber varias
identidades para un mismo objeto (Agustín J. González ==
persona de rut XXXXXXX-X). El estado es el conjunto de valores que
tienen los atributos en un instante. El comportamiento es el conjunto
de métodos definidos para la clase.
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 6 años. Si la clase persona tiene definido el
comportamiento hacerUnDibujo(), Paula podría hacer un dibujo si
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 o preguntas si
su salida es booleana.
- El lenguaje tiene clases predefinidas y podemos crear nuevas. A
partir de ellas podemos crear objetos para lo que se nos dé la
gana.
- Los lenguajes orientados a objetos no son otra cosa que una
definición de reglas sintácticas para expresar todo lo
que
es conveniente poder hacer con estos objetos para vincularlos y con
ellos
plantear las soluciones a los problemas.
- A través de ejemplos 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 referencias 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 (sintaxis de punteros en C). Cuando definimos un
nombre para un objeto (variable), sólo se crea el nombre 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
una ubicación en memoria al objeto requerido.
Los tipos básicos o primitivos de arriba, siguen al
semántica de C para su acceso y paso de parámetros (paso
por valor). En el caso de objetos, pasamos la referencia al objeto
porque el nombre es pasado por valor, pero éste es la referencia
al objeto.
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