You are on page 1of 36

Leccin 3: Creando clases

1. Definicin de mtodos
2. Sobrecarga de mtodos
3. Definicin de constructores 3. Definicin de constructores
4. Creando miembros estticos
5. Construccin e inicializacin de
objetos
Programacin en Java
Objetivos Objetivos
En este capitulo se estudiarn los conceptos
relacionados a mtodos, como lo son
sobrecarga, mtodos estticos.
Se aprender a diferenciar el alcance de los
componentes de los mtodos.
Se utilizarn los constructores y se definirn sus
reglas de uso.
Programacin en Java
Definicin de mtodos Definicin de mtodos
Como se vio en el captulo anterior a un mtodo
lo define su firma, A un mtodo lo define su
firma, la cual est compuesta por los
modificadores del mtodo, el tipo de retorno, el modificadores del mtodo, el tipo de retorno, el
nombre, sus argumentos y el conjunto de
excepciones que arroja.
Programacin en Java
Firma de un mtodo Firma de un mtodo
modificadores TipoDeRetorno nombreDelMetodo(
tipo argumento1, .., tipo argumentoN)
throws Exception1, ... ,ExceptionN {

return instanciaTipoDeRetorno; return instanciaTipoDeRetorno;


}
Ejemplo:
public static DataSource getDataSource() throws
MalformedURLException, SQLException,
IOException {

}
Programacin en Java
Variables locales Variables locales
Una variable local de un mtodo es creada
cuando se invoca un mtodo.
Slo existe durante la ejecucin del mtodo. Slo existe durante la ejecucin del mtodo.
No llevan modificadores de acceso, public,
protected o private.
Programacin en Java
Paso de argumentos por valor Paso de argumentos por valor
Cuando Java pasa un argumento a la llamada
de un mtodo, se pasa una copia del
argumento. Consideremos el siguiente
fragmento de cdigo.
public void incrementar (int x) {
x++;
}

int x = 12345;
incrementar(x);
//El valor de x continua siendo 12345
System.out.println(Ahora el valor de x es:+x);
Programacin en Java
Paso de argumentos por eferencia Paso de argumentos por eferencia
Lo anteriormente visto funciona con tipos de
datos primitivos Pero con objetos? El efecto es
un tanto diferente. Consideremos el siguiente
cdigo:
1. Persona persona;
2. persona = new Persona(Jos);
3. cambiarNombre(persona);
4. // El nombre de la persona continua siendo Jos
5. System.out.println(persona.getNombre());
6.
7. public void cambiarNombre(Persona persona) {
8. persona = new Persona(Hugo);
9. }
Programacin en Java
Paso de argumentos por referencia Paso de argumentos por referencia
Ahora si mtodo modifica el objeto va
referencia, los cambios se harn en el objeto al
que apunta la referencia.
1. Persona persona;
2. persona = new Persona(Jos);
3. cambiarNombre(persona);
4. // El nombre de la persona ahora es Hugo
5. System.out.println(persona.getNombre());
6.
7. public void cambiarNombre(Persona persona) {
8. persona.setnombre(Hugo);
9. }
Programacin en Java
Sobrecarga de mtodos Sobrecarga de mtodos
Existen ocasiones en las cuales nosotros
deseamos reutilizar el nombre del mtodo. En
java existen dos maneras de hacer esto uno es
la sobrecarga y otro la sobre escritura. la sobrecarga y otro la sobre escritura.
Reutilizar el nombre del mtodo con diferentes
argumentos se le conoce como sobrecarga.
Programacin en Java
Reglas para la sobrecarga Reglas para la sobrecarga
El nombre de un mtodo se puede sobrecargar
en los siguientes casos:
Si la lista de argumentos difiere en nmero
Si la lista de argumentos difiere en tipo de al menos Si la lista de argumentos difiere en tipo de al menos
argumento.
Si el orden y tipos de argumentos es diferente en la
firma de los mtodos.
Es importante que el tipo de retorno y la lista de
excepciones no es suficiente para considerar
sobrecarga de mtodos
Programacin en Java
Reglas para la sobrecarga Reglas para la sobrecarga
Ejemplos:
public void getConexion(String tipoControlador){}
//No es sobrecarga. No es suficiente el tipo de retorno //y la
lista de excepciones
public Connection getConexion(String tipoControlador)
throws SQLException{} throws SQLException{}
//Si es sobrecarga. El nmero de argumentos es
// diferente
public void getConexion(String nombreConexion, int
tipoControlador) throws SQLException { }
// Si es sobrecarga. El orden del tipo de los
// argumentos es diferente al resto de los mtodos
public void getConexion(int tipoControlador,
String fuenteDeDatos) throws SQLException{}
Programacin en Java
Ejercicio Ejercicio
En la clase Persona y la clase Direccion creada en la leccin
anterior agregue los mtodos set y get para cada unos de los
campos, adems agregue los mtodos:
public String toString();
public bolean equals(Object o); public bolean equals(Object o);
Que el mtodo toString regrese el valor de todos los campos
concatenados y separados por comas.
El mtodo equals, debe comparar los datos que crea necesarios
para que se puedan diferenciar una persona de otra y un domicilio
de otro.
Programacin en Java
Constructores Constructores
Es un mtodo con la caracterstica de que no tiene tipo
de retorno y su nombre es idntico al nombre de la
clase.
Ejemplo:
class Clase { class Clase {
//Constructor sin argumentos
public Clase(){
//Inicializar el objeto
}
//Constructor
private Clase(String nombre){
//Inicializa el objeto con un String
}
}
Programacin en Java
Constructor por omisin Constructor por omisin
Cuando creamos una clase y no especificamos ningn
constructor java asigna un constructor sin argumentos.
Ejemplo:
class Clase {
// Un constructor sin argumentos es asignado
// por default
public static void main(String args[]){
Clase clase = new Clase();
}
}
Programacin en Java
Constructor por omisin Constructor por omisin
Al crear cualquier constructor en la clase, el constructor por omisin
ya ser creado.
Ejemplo:
class Clase {
// Constructor con argumentos. // Constructor con argumentos.
private Clase(String nombre){
//Inicializa el objeto con un String
}
public static void main(String args[]){
// Error de compilacin, el constructor de
// por omisin no es creado.
Clase clase = new Clase();
}
}
Programacin en Java
Sobrecarga de constructores Sobrecarga de constructores
Pueden existir tantos constructores como
necesitemos en una clase slo hay que
considerar que:
La lista de argumentos difiere en nmero La lista de argumentos difiere en nmero
La lista de argumentos difiere en tipo de al menos
argumento.
El orden y tipos de argumentos sea diferente.
Lista de excepciones no es suficiente para considerar
sobrecarga.
Programacin en Java
Modificadores en constructores Modificadores en constructores
En los constructores slo son validos los
modificadores de acceso:
public
protected protected
(default)
private
Programacin en Java
El uso de la referencia this El uso de la referencia this
Podemos utilizar la palabra reservada this, para invocar desde un
constructor otro con un mayor nmero de argumentos.
Ejemplo:
class Persona {
public Persona(){
//Inicializar el objeto utilizando otro
//Constructor //Constructor
this(Ral,15,50);
}
private Persona(String nombre, int edad, int peso){
//Proceso complejo de inicializacin
}
}
Nota: Cuando utilicemos la palabra reservada this, para invocar otro constructor es
necesario que sea la primera instruccin que se invoque en el constructor.
Programacin en Java
Ejercicio Ejercicio
En la clase Usuario cree un constructor sin argumentos
que inicialice los campos de la clase utilizando el
constructor con todos los argumentos los valores de
inicializacin sern los siguientes:
Campo Tipo
nombre Sin nombre
apellidoPaterno null
apellidoMaterno null
Usuario Una Instancia de la clase
Usuario
Puesto Una instancia de la clase
Puesto
Programacin en Java
Creando Miembros estticos Creando Miembros estticos
Los miembros estticos son conocidos como miembros
de clase, es decir no necesitan de una instancia de la
clase para poder ejecutarse.
Los miembros de clase se caracterizan porque tienen el Los miembros de clase se caracterizan porque tienen el
modificador static.
Los miembros estticos pueden ser:
Variables
Mtodos
Bloques
Programacin en Java
Variables estticas Variables estticas
Una variable de clase es conocida como una variable
esttica y es creada cuando la clase es cargada y es
destruida cuando la clase se libera.
Slo hay una copia de la variables por clase aun cuando Slo hay una copia de la variables por clase aun cuando
la clase nunca sea instanciada.
Al tipo de la variable le antecede el modificador static.
Ejemplo:
public static final String USUARIO = usuario ;
Programacin en Java
Mtodos estticos Mtodos estticos
Al igual que las variables estticas, los mtodos
estticos pueden ser utilizados sin necesidad de
crear un instancia de la clase.
En su cuerpo slo pueden utilizar variables
estticas u instancias creadas dentro de su
cuerpo. Por ninguna razn puede utilizar una
variable de instancia ya que la referencia this no
existe dentro de estos mtodos
Programacin en Java
Mtodos estticos Mtodos estticos
Ejemplo:
class Persona {
public static String ciudad;
private String nombre;
public static void solicitarPrestamo(String nombre) { public static void solicitarPrestamo(String nombre) {
//uso incorrecto
//this.nombre = nombre;
ciudad = Chihuahua;
Persona persona = new Persona();
persona.nombre = nombre;
//continua el procedimiento
}
}
Programacin en Java
Bloques estticos Bloques estticos
Los bloques estticos, son un conjunto de
expresiones que se ejecutan nicamente
cuando la clase es cargada por la memoria.
Programacin en Java
Bloques estticos Bloques estticos
Ejemplo:
public class ConexionBD implements Conexion {
private Connection conexion;
private static DataSource dataSource;
static {
try {
dataSource = (DataSource)(
new InitialContext()).
lookup(Constante.DATA_SOURCE_NAME);
} catch (NamingException nex) {
nex.printStackTrace();
}
}
//Continua la clase
}
Programacin en Java
Ejercicio Ejercicio
Cree un mtodo esttico autenticar que reciba el usuario
y contrasea. Si ya existe uno en su clase haga las
modificaciones correspondientes para que sea invocado
La firma del mtodo debe ser: La firma del mtodo debe ser:
public static boolean autenticar(String
usuario, String password) {

}
Programacin en Java
Modificadores Modificadores
Hasta ahora hemos visto que existen varios tipo
de modificadores, pero hasta ahora no sabemos
cuales aplican a cada uno de los componentes
de una clase o a la clase misma. de una clase o a la clase misma.
A continuacin se presenta una tabla con los
operadores y en que casos son aplicables,
algunos de los modificadores, estn fuera del
alcance de este manual.
Programacin en Java
Tabla de modificadores Tabla de modificadores
Programacin en Java
Operadores Operadores
Java provee un conjunto de operadores muy
completo el cual puede ser catalogado en:
Operadores unarios
Operadores Aritmticos
Operadores de corrimiento
Operadores de comparacin
Operadores de manejo de bits
Operadores Optimizados
Operadores Condicionales
Operadores de comparacin
Programacin en Java
Precedencia Precedencia
Categora Operadores
Unarios
++ -- + - ! ()
Aritmticos
* / %
Aritmticos
+ -
Corrimiento
<< >> >>>
Comparacin
< <= > >= instanceof
== !=
De Bits
& ^ |
Optimizados
&& ||
Condicionales
?:
De asignacin
= op=
Programacin en Java
Expresiones Expresiones
Una expresin consiste en operadores y sus
operandos, los cuales son evaluados para
obtener como producto un resultado.
El resultado puede ser una variable o un valor o
quizs nada si la expresin es la invocacin de
un mtodo que tiene como tipo de retorno void.
Programacin en Java
Expresiones Expresiones
Una expresin puede tan simple como el
nombre de una variable o tan compleja como
una secuencia de invocaciones de mtodos,
acceso a variables o creacin de objetos o acceso a variables o creacin de objetos o
clases.
Programacin en Java
Expresiones Expresiones Orden de evaluacin Orden de evaluacin
A pesar de lo complejo que las expresiones
puedan ser, las expresiones se evalan de una
manera bien definida. Los operados y los
operadores se evalan de izquierda a derecha. operadores se evalan de izquierda a derecha.
Ejemplo: x+y+z
El compilador evala x, evala y, despus los suma,
evala z y lo suma al resultado de x+y
Programacin en Java
Expresiones Expresiones -- Orden de evaluacin Orden de evaluacin
Excepto por los operadores &&, || y ?:, cada
operando de un operador, es evaluado antes de
que la operacin sea llevada a cabo.
Ejemplo: Ejemplo:
If (cadena!=null && cadena.substring(3,4) ) {..}
Programacin en Java
Tipo de expresiones Tipo de expresiones
Toda expresin tiene un tipo
El tipo de la expresin es determinado por, los
tipos de cada uno de sus componentes y la
semntica de los operadores. semntica de los operadores.
Ejemplo:
long a=1;
// El tipo de la expresion es String
String b = Valor de a: + a;
Programacin en Java
Resumen Resumen
En esta leccin se aprendi:
A utilizar mtodos y constructores de una clase
Se analiz el comportamiento de los mtodos y variables
estticas
Se muestran los operadores de Java y su precedencia. Se muestran los operadores de Java y su precedencia.
Se aprendi a reconocer el tipo de las expresiones y su orden
de evaluacin.

You might also like