Clases
class MiClase { // campos // constructores // métodos }
Declaración
... class MiClase extends MiSuperClase implements Interface1,Interface2 { //... }
La definición de la clase está compuesta por:
- Modificadores
- El nombre de la clase
- EL nombre de la superclase precedido por la palabra
extends
. - Interfaces precedidas por la palabra
implementes
. Si se usa más interfaces se utilzia comas para separa cada una. - EL cuerpo de la clase entre llaves {}
Declaración de variables
Están compuestos de:
- Modificadores
- el tipo, puede ser cualquier tipo primitivo, cualquier objeto o arreglos.
- el nombre
public int peso;
Las variables de una clase son llamadas campos (fields).
Las variables de un método o bloque son llamadas variables locales.
Las variables de dentro de una declaración de un método son llamados parámetros.
Definición de métodos
Debe estár compuesto de:
- Modificadores
- Tipo de retorno, puede ser cualquier tipo primitivo, cualquier objeto o arreglos.
- Nombre del método.
- Lista de parámetros entre paréntesis ()
- Excepciones, separados por comas y precedido por la palabra
throws
- El cuerpo del método entre llaves {}
Ejemplo:
public double nombreMetodo(double par1, int par2) throws Exception1{ //dentro del método }
Por convención el nombre de los métodos debe empezar con un verbo.
Sobrecarga de métodos
Es cuando una clase tiene métodos con el mismo nombre pero tiene diferente número de parámetros o diferente tipos de datos en sus parámetros.
public class Artista { ... public void dibujar(String s) { ... } public void dibujar(int i) { ... } public void dibujar(double f) { ... } public void dibujar(int i, double f) { ... } }
La sobrecarga de funciones no debe ser usada mucho. El código no se hace tan legible.
Constructores
- "Contruyen" objetos.
- Tienen el mismo nombre que su clase.
- Su definición es similiar a la de los métodos.
- No tiene valor de retorno.
- Se los llama con la palabra
new
.
Parámetros
Son la lista de variables a ser utilizadas dentro de la definición de un método o constructor. Están siempre entre paréntesis (...)
Los argumentos son los valores que se envían al llamar a una función.
int a=3; int b=5; obj.obtenerSuma( a, b); //argumentos
Como tipos de parámetros se puede usar cualquier datos primitivo, objeto y arreglos.
Para los parámetros se usa la misma convención de las variables.
Número arbitrario de parámetros *Java 5
Se utiliza para cuando no sabemos el número exacto de parámetros que necesitamos.
Se lo define:
obtenerSuma(int... cantidades){ ... //funciona como un arreglo --> cantidades[] }
Y se lo usa de la siguiente manera:
obtenerSuma(12,15,10); obtenerSuma(10,20,3,45,100,2);
Hay que tener cuidado con "Shadow". Para lo cual se utiliza this
public class Circulo { private int x, y, radio; public void ponerDatos(int x, int y) { ... // this.x no es lo mismo que x } }
Paso de parámetros primitivos
Todos los datos primitivos se pasan por valor.
public static void main(String[] args) { int x = 3; //invocamos a cambiar() con x de argumento cambiar(x); // imprime x ara ver si ha cambiado System.out.println("Después de invocar al método, x = " + x); } public static void cambiar(int p) { p = 10; }
Paso de referencias a objetos
En Java las referencias también se pasan por valor. Los campos de los objetos si cambian, si su referencia es la que se pasa.
public void moverCirculo(Circulo circulo, int x, int y) { circulo.setX(x); // si cambia circulo.setY(y); // si cambia //se asigna una nueva referencia circle = new Circle(0, 0); // solo cambia "dentro del metodo" }
Invocación
// se envia la referencia moverCirculo(miCirculo, 23, 56);
Modificadores de acceso en Java
Modificador | Clase | Paquete | Subclase | Mundo |
---|---|---|---|---|
public |
S | S | S | S |
protected |
S | S | S | N |
no modifier | S | S | N | N |
private |
S | N | N | N |