Documente Academic
Documente Profesional
Documente Cultură
en Java
Componentes de una Clase
Una clase ejecutable
Una clase ejecutable
Declaración del método main():
· public: indica que el método main() es público y, por tanto, puede
ser llamado desde otras clases. Todo método main() debe ser público
para poder ejecutarse desde el intérprete Java (JVM).
· static: indica que la clase no necesita ser instanciada para poder
utilizar el método al que califica. (No se crea ninguna instancia u
objeto de la clase Hola). También indica que el método es el mismo
para todas las instancias que pudieran crearse.
· void: indica que la función main no devuelve ningún valor.
Ej.
int valor;
Integer valor;
Tipos de Datos
• Los tipos de datos simples son aquellos que pueden
utilizarse directamente en un programa, sin necesidad
del uso de clases (POO). Estos tipos son:
Tipos de Datos
• Los tipo de datos referenciados son básicamente las
clases y sus objetos instanciados.
Estructura de un Método
Los parámetros se declaran en la cabecera del método de la siguiente
forma:
class Vector3D {
double x, y, z;
Vector3D vector;
// Bloque main
Plano3D p1 = new Plano3D (2, 4, 3, 1);
Plano3D p2 = new Plano3D (1, 0, -2, 1);
Recta3D r = new Recta3D (new Punto3D (1, 0, 1),
new Vector3D (1, 1, -1));
p1.paralelo (p2);
p1.paralelo (r);
La variable this
• Definida implícitamente dentro del cuerpo de los métodos.
• Referencia al objeto sobre el que se ha invocado el método.
class Vector3D {
double x, y, z;
...
double productoEscalar (Vector3D u) {
return x * u.x + y * u.y + z * u.z;
}
double modulo () {
return (double) Math.sqrt (productoEscalar (this));
}
}
// Bloque main
Vector3D v = new Vector3D (2, -2, 1);
v.modulo ();
Variables estáticas (I)
Salida:
0.4
Métodos estáticos
• Similares a funciones globales de C/C++.
• Pueden ser invocados desde la propia clase y/o
desde los objetos.
class CuentaCorriente {
long numero;
static long ncuentas;
graphics\Circle.java graphics\Rectangle.java
package graphics; package graphics;
directorio en CLASSPATH
Package tool.browser.graphics
Package tool.browser.graphics
Package tool.browser.graphics
Control de acceso
class A { class B {
public int x; void h () {
private int y; A a = new A ();
a.x = 2;
public void f () { ... } a.y = 6; // Error
a.f ();
private void g () { ... } a.g (); // Error
}
void h () { }
x = 2;
y = 6;
f ();
g ();
A a = new A ();
a.x = 2;
a.y = 6;
a.f ();
a.g ();
}
}
Modalidades de acceso
• Modalidades de acceso de variables, métodos y
constructores de una clase.
private X
package X X por defecto
protected X X X
public X X X X
class A { class B {
int w; // package void h () {
private int x; A a = new A ();
protected int y; a.w = 2;
public int z; a.x = 6; // Error
private void f () { ... } a.y = 8;
void h () { a.z = 3;
w = 2; a.f (); // Error
x = 6; }
y = 8; }
z = 3;
f ();
}
}
Ejemplos de acceso (II)
• Comparación:
System.out, System.err
Objeto de la clase: java.io.PrintStream
Métodos: print (<cualquier tipo>), println (<cualquier tipo>), flush ()
System.in
Objeto de la clase: java.io.InputStream
Métodos: read (), read (byte []), read (byte [], int, int)
Programación avanzada
en Java