03 clases y objetos

Upload: jean-paul-perea

Post on 08-Apr-2018

232 views

Category:

Documents


0 download

TRANSCRIPT

  • 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