03 Clases y Objetos
-
Upload
jean-paul-perea -
Category
Documents
-
view
232 -
download
0
Transcript of 03 Clases y Objetos
-
8/7/2019 03 Clases y Objetos
1/25
1
Clases y Objetos
Tecnologa de la Programacin I
Ing. Zoraida Vidal Melgarejo, Mg.
-
8/7/2019 03 Clases y Objetos
2/25
2
Las clases de Java
Paquete
Mtodos Objetos
Referenciasa objetos
Atributos
Contiene Pertenece a un
Permite declarar
Permite crear
Una clase en Java
-
8/7/2019 03 Clases y Objetos
3/25
3
nombre: Jos Prez
edad: 20
nombre: Mara Rojas
edad: 18
Comparacin de clases y objetos
public void setEdad(int edad)
private String nombre;
private int edad;
public void getNombre()
Persona Un objeto es unainstancia de una clase.
Los objetos tienen supropia memoria.
Las definiciones de laclase deben ser cargadaspara crear las instancias.
persona1 persona2
-
8/7/2019 03 Clases y Objetos
4/25
4
Creacin de objetos
Los objetos son creados tpicamente usando el operadornew:
Por ejemplo, para crear dos objetos de tipo Persona:Persona persona1 = new Persona(Jos Prez, 20);
Persona persona2 = new Persona(Mara Rojas, 18);
NombreClase NombreRefencia = new NombreConstructor();
ttulo: El rey Len
categoria: PG
ttulo: Titanic
categoria: PG-13
nombre: Jos Prez
edad: 20
nombre: Mara Rojas
edad: 18
-
8/7/2019 03 Clases y Objetos
5/25
5
titulo: El Rey Len
categoria: PG
Usando el operador new
El operador new realiza las siguientes acciones: Asigna e inicializa la memoria para el nuevo objeto.
Llama un mtodo especial de inicializacin en laclase, llamado constructor.
Devuelve una referencia al nuevo objeto.Persona persona1 = new Persona(Jos Prez, 20);
nombre: Jos Prezedad: 20
persona1
-
8/7/2019 03 Clases y Objetos
6/25
6
Comparando tipos bsicos y objetos
Las variables primitivastienen un valor.
int i;
float j = 5.0f;
Persona persona1 = new Persona();
Los objetos hacen referencias.
nombre: NNedad: 0
persona1
Persona persona1;
persona1
0
5.0
i
j
null
int
float
Persona
-
8/7/2019 03 Clases y Objetos
7/25
7
Usando la referencia null
Un valor nulo especial se puede asignar a una referencia delobjeto pero no a un primitivo.
Se puede comparar la referencia a un objeto con null.
Se puede borrar un objeto igualando su referencia a null.
Persona persona1; // Declara referencia al objeto
if (persona1 == null) // Si la referencia no est
persona1 = new Persona(); // inicializada se crea un
// objeto de tipo Persona
persona1 = null; // Se borra el objeto Persona
-
8/7/2019 03 Clases y Objetos
8/25
8
Asignando referencias
Al asignar una referencia a otra se tiene como resultadodos referencias al mismo objeto:
Persona persona1 = new Persona(Jos Prez, 20);
persona1
Persona persona2 = persona1;
persona2
nombre: Jos Prez
edad: 20
-
8/7/2019 03 Clases y Objetos
9/25
9
nombre: NN
edad: 0
nombre: NN
edad: 0
Declaracin de variables de instancia Las variables de instancia son declaradas dentro de la clase pero
fuera de los mtodos o instancia o inicializadores estticos.
public class Persona {
private String nombre;
private int edad;
public int getEdad(){
return edad;
}
}
Persona persona1 = new Persona();
Persona persona2 = new Persona();
persona2
persona1
Crear Personas:
-
8/7/2019 03 Clases y Objetos
10/25
10
Acceso a las variables pblicas de la instancia
Se puede acceder a las variables pblicas de la instanciausando el operador punto .:
public class Persona {
public void setNombre(String nombre) {
this.nombre = nombre;
}
public int getNombre(){
return nombre;
}
}
Persona persona1 = new Persona();persona1.setNombre(Jos Prez);
String nb = persona1.getNombre();
-
8/7/2019 03 Clases y Objetos
11/25
11
Definicin de mtodos
Un mtodo en Java es equivalente a una funcin o a unasubrutina en otros lenguajes.
modificadores tipoderetorno nombredelmetodo (argumentos)
{
// cuerpo del mtodo
}
-
8/7/2019 03 Clases y Objetos
12/25
12
Llamadas a mtodos
Los objetos se comunican usando mensajes: Todos los mtodos se definen dentro de una clase y no se
definen globalmente como en los lenguajes tradicionales.
Cuando se llama a un mtodo, est siempre en el contexto de
un objeto particular. persona1.setNombre(Jos Prez)
-
8/7/2019 03 Clases y Objetos
13/25
13
Argumentos de los mtodos: Ejemplos
Se especifica el nmero y tipo de argumentos en la declaracindel mtodo:
Si el mtodo no recibe argumentos, entonces los parntesis vanvacos:
public void imprimeDatos() {
System.out.println(Nombre: " + getNombre());System.out.println(Edad: " + getEdad());
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
-
8/7/2019 03 Clases y Objetos
14/25
14
Retornando un valor desde un mtodo
Utilice la sentencia return para salir de un mtodo y retornar unvalor desde el mtodo:
Si el tipo que retorna es void, entonces no es necesario usar return.
Se puede usar un return sin valor para terminar un mtodo queretorna un tipo void.
public class Persona {
private String nombre;
public String getNombre () {return nombre;
}
}
-
8/7/2019 03 Clases y Objetos
15/25
15
Llamadas a los mtodos de la instancia
public class Persona {private String nombre;
private int edad;
public String getNombre(){
return nombre;
}public void setNombre(String nombre){
this.nombre = nombre;
}
} Persona persona1 = new Persona();
String nb = persona1.getNombre();if (nb.compareTo(Jos Prez"))
Uso del operador .:
-
8/7/2019 03 Clases y Objetos
16/25
16
Aplicacin de encapsulamiento en Java
Las variables de la instancia se debendeclarar como privadas.
Slo los mtodos de la instancia
pueden acceder a las variables privadasde la instancia.
private asla la interface de la clase de losdetalles de implementacin.
Persona persona1 = new Persona();
String nb = persona1.getNombre();String nb2 = persona1.nombre; // error: privado
var
metodo
metodo()
-
8/7/2019 03 Clases y Objetos
17/25
17
Pasando primitivos a un mtodo
Cuando un valor primitivo o referencia a un objeto se pasa a unmtodo, se genera una copia de este valor:
public void setEdad(int arg) {
edad = arg > 0 && arg < 100?edad:0;
System.out.println(Edad: + arg);
}
int edad = 15;
persona1.setEdad(edad);
System.out.println(Edad: + edad);
edad
15
arg
15
-
8/7/2019 03 Clases y Objetos
18/25
18
nombre: Jos Prez
edad: 20
Pasando referencias a objetos a un mtodo
Cuando una referencia a un objeto es pasado a un mtodo, elobjeto no es copiado pero el puntero al objeto es copiado:
public void setPersona(Persona ref2)
{
listaP[++pos] = ref2;
}
persona1
ref2
Persona persona1 =
new Persona(Jos Prez
,20);
lista.setPersona(persona1);
-
8/7/2019 03 Clases y Objetos
19/25
19
Variables de clase
Las variables de clase:
Pertenecen a una clase y son comunes a todas las instancias deesta clase.
Son declaradas estticas en la definicin de la clase.
public class Persona { private static int numeroPersonas; // variable de clase
private String nombre; // variable de instancia
Variablede clase
Persona
Objetos de
tipo
Persona
nombre
edad
nombre
edadnombre
edadnumero
Personas
-
8/7/2019 03 Clases y Objetos
20/25
20
Inicializacin de las variables de clase
Las variables de clase pueden ser inicializadas en ladeclaracin.
La inicializacin ocurre cuando se carga la clase.
Utilice un bloque esttico del constructor para la inicializacincompleja.
Todas las variables de clase se inicializan implcitamente a losvalores prefijados dependiendo del tipo de dato.
public class Persona {
private static int numeroPersonas = 0;
private String nombre;
private int edad;
-
8/7/2019 03 Clases y Objetos
21/25
21
Mtodos de clase
Los mtodos de clase son: Compartidos por todas las instancias.
tiles para manipular variables de clase.
Declarados como estticos
Un mtodo de clase es llamado usando el nombre de la clase o
de una referencia del objeto.
public static int getNumeroPersonas() {
return numeroPersonas;
}
int numPer = Persona.getNumeroPersonas();
-
8/7/2019 03 Clases y Objetos
22/25
22
Ejemplos en Java
Ejemplos de mtodos y variables estticos: main()
Math.sqrt()
System.out.println()
public class MiClase {
public static void main(String[] args) {
double numero, raiz;
raiz = Math.sqrt(numero);System.out.println(La raiz es " + raiz);
}
-
8/7/2019 03 Clases y Objetos
23/25
23
Los paquetes de Java
saludos
HolaMundo HolaMundo2
HolaMundo3 HolaMundo4
-
8/7/2019 03 Clases y Objetos
24/25
-
8/7/2019 03 Clases y Objetos
25/25
25
Aplicabilidad de los Modificadores
Clase Mtodo Atributo
predeterminado (package) Si Si Si
public Si Si Si
protected No Si Si
private No Si Si
static No Si Si
final Si Si Si
synchronized No Si No
native No Si No
abstract Si Si No
Modificadores de acceso