java teoria clase_y_objetos trini

6
1 Programación Orientada a Objetos: CLASES Y OBJETOS 1. Clase Es la estructura básica para la creación de programas Java. Una clase es un modelo para la creación de objetos que tienen características comunes o similares. Por lo tanto define la estructura lógica de un objeto, que está compuesta de atributos (características del objeto) y el comportamiento o funciones del objeto (métodos () o interfaz funcional), Ejemplo: Para crear una clase se utiliza la palabra reservada class, seguida de un identificador legal y un bloque delimitado por dos llaves para el cuerpo de la clase. Un archivo de Java debe tener el mismo nombre que la clase que contiene, y se les suele asignar la extensión ".java". Por ejemplo la clase Empleado se guardaría en un fichero que se llamase Empleado.java 1.1. Atributos Los atributos son las características individuales que diferencian un objeto de otro y determinan su apariencia, estado u otras cualidades. Los atributos se guardan en variables denominadas de instancias, y cada objeto particular puede tener valores distintos para estas variables. Las variables de instancia también denominados miembros dato, son declaradas dentro de la clase pero fuera de los métodos sus valores son fijados y cambiados en el objeto. Además de las variables de instancia hay variables de clase cuyo tipo es static , las cuales se aplican a la clase y a todas sus instancias. Por ejemplo, el número de ruedas de un automóvil es el mismo cuatro, para todos los automóviles. Los atributos se declaran dentro de las llaves de apertura y cierre de la declaración de la clase. Ejemplo: class Carro{ String marca, modelo; double precio; int año; } 1.2. Métodos Define el comportamiento del objeto o función que realiza (métodos() ) ,una función es un conjunto de instrucciones que se realizan en forma lógica y secuencial Los métodos definen la interfaz con el mundo externo de una clase, sus capacidades y comportamiento. Todas las variables declaradas dentro de los métodos son llamadas variables locales, su ámbito es dentro del método . Los métodos pueden tener una lista de parámetros que Clase Carro modelo, color, marca Prendido, apagado, acelerado Nombre de la Clase Atributos (datos) Métodos (funciones) class NombreClase{ //... //cuerpo de la clase //... } String nombre; // variable de instancia Static string marca ; // variable de clase

Upload: alexander-primo

Post on 25-Nov-2015

12 views

Category:

Documents


2 download

TRANSCRIPT

  • 1

    Programacin Orientada a Objetos: CLASES Y OBJETOS

    1. Clase

    Es la estructura bsica para la creacin de programas Java. Una clase es un modelo para la

    creacin de objetos que tienen caractersticas comunes o similares. Por lo tanto define la

    estructura lgica de un objeto, que est compuesta de atributos (caractersticas del objeto)

    y el comportamiento o funciones del objeto (mtodos () o interfaz funcional), Ejemplo:

    Para crear una clase se utiliza la palabra reservada class, seguida de un identificador legal

    y un bloque delimitado por dos llaves para el cuerpo de la clase.

    Un archivo de Java debe tener el mismo nombre que la clase que contiene, y se les suele

    asignar la extensin ".java". Por ejemplo la clase Empleado se guardara en un fichero que

    se llamase Empleado.java

    1.1. Atributos

    Los atributos son las caractersticas individuales que diferencian un objeto de otro y

    determinan su apariencia, estado u otras cualidades. Los atributos se guardan en variables

    denominadas de instancias, y cada objeto particular puede tener valores distintos para

    estas variables.

    Las variables de instancia tambin denominados miembros dato, son declaradas dentro de

    la clase pero fuera de los mtodos sus valores son fijados y cambiados en el objeto.

    Adems de las variables de instancia hay variables de clase cuyo tipo es static , las cuales

    se aplican a la clase y a todas sus instancias. Por ejemplo, el nmero de ruedas de un

    automvil es el mismo cuatro, para todos los automviles.

    Los atributos se declaran dentro de las llaves de apertura y cierre de la declaracin de la

    clase. Ejemplo:

    class Carro{

    String marca, modelo;

    double precio;

    int ao;

    }

    1.2. Mtodos

    Define el comportamiento del objeto o funcin que realiza (mtodos() ) ,una funcin es un

    conjunto de instrucciones que se realizan en forma lgica y secuencial Los mtodos

    definen la interfaz con el mundo externo de una clase, sus capacidades y comportamiento.

    Todas las variables declaradas dentro de los mtodos son llamadas variables locales, su

    mbito es dentro del mtodo . Los mtodos pueden tener una lista de parmetros que

    Clase Carro

    modelo, color, marca

    Prendido, apagado, acelerado

    Nombre de la Clase

    Atributos (datos)

    Mtodos (funciones)

    class NombreClase{

    //...

    //cuerpo de la clase

    //...

    }

    String nombre; // variable de instancia

    Static string marca ; // variable de clase

  • 2

    permiten comunicar informacin entre mtodos. Los parmetros de un mtodo tambin

    son variables locales.

    Los mtodos se declaran al mismo nivel que las variables de instancia dentro de una

    definicin de clase. Ejemplo:

    class Carro{

    String marca, modelo;

    double precio;

    boolean estadoDelMotor=false;

    void prendido(boolean stadoDelMotor)

    {

    estadoDelMotor=stadoDelMotor;

    if(estadoDelMotor == false)

    System.out.println(el motor esta apagado) stadoDelMotor=true;

    }

    }

    2. Objeto

    El nombre de una clase declara un tipo de dato, cada vez que se declara un tipo de dato se

    aade otro tipo de dato que se puede utilizar para definir una nueva variable. A estas

    variables se las conoce como referencias a objeto.

    Por lo tanto, un objeto es una instancia o variable de una clase. La declaracin de una

    referencia a objeto se realiza:

    Ejemplo:

    Carro volksWagen;

    Esta es una declaracin de una variable volksWagen que es una referencia a un objeto de

    la clase Carro, de momento con un valor por defecto de null.

    Un objeto se distingue de otros miembros de la clase por sus atributos.

    3. Mtodo Constructor

    Es un mtodo que Tiene el mismo nombre de la clase a la que pertenece. Se utiliza para

    crear un objeto, inicializar los atributos un objeto, El constructor no devuelve ningn tipo

    de valor , un constructor puede sobre cargarse (mismo nombre pero diferentes parmetros

    )

    Si no se definen constructores para una clase, el compilador crea un constructor por

    omisin que no tiene argumentos. El constructor por omisin de una clase invoca al

    constructor de la clase y procede a inicializar las variables de tipo de datos numricos

    primitivos: las variables numricas a 0, las boolean a false y las referencias (cadenas) a

    null.

    Nombre del Objeto

    Mtodos prendido, apagado , acelerado

    Atributos modelo, ao, marca

    volksWagen

    tipo Nombre_del_metodo (parmetros)

    void prendido(boolean estadodelMotor )

    Clase objeto;

    Class Carro;

    Atributos o Variables

    Mtodos

  • 3

    class Carro

    {

    Carro(){

    }

    Carro(boolean stadoDelMotor){

    estadoDelMotor=stadoDelMotor

    }

    }

    4. El operador new

    Permite crear un nuevo objeto invocando al mtodo constructor de la clase. Cuando se

    realiza una instancia de una clase (mediante new) se reserva en la memoria un espacio

    para un conjunto de datos como el que definen los atributos de la clase que se indica en la

    instanciacin. A este conjunto de variables se le denomina variables de instancia.

    Ejemplo:

    Carro volksWagen = new Carro();

    5. Operador punto (.)

    El operador punto (.) se utiliza para acceder a:

    Las variables de instancia:

    Los mtodos contenidos en un objeto:

    6. Referencia this

    Es una variable de referencia a un objeto, que se utiliza dentro de cualquier mtodo para

    referirse al objeto que llamo al metodo(), Se puede utilizar this siempre que se requiera

    identificar a un objeto en particular de una clase . Si hay dos objetos que utilicen el mismo

    cdigo ( variables y metodos ), seleccionados a travs de otras instancias, cada uno tiene

    un nico valor para this.

    Class Carro {

    String modelo; / se declara una variable de instancia

    Carro volksWagen = new Carro (); // se crea el objeto

    System.out.println(Ingrese el modelo del Carro); modelo =volksWagen.nextInt(); // se asigna el valor de lectura

    volksWagen.setModelo(modelo);// se llama al metodo()

    public void setModelo(String modelo){

    this.modelo = modelo;// this.modelo es variable de instancia

    } // modelo es variable local

    }// fin de la clase Carro

    Clase objeto = new metodoConstructor();

    Constructor sin parmetros

    Constructor con parmetros

    Nombre_del_objeto.variable_de_instancia

    Nombre_del_objeto.mtodo()

  • 4

    7. Encapsulacin

    Encapsulacin es el trmino de orientacin a objetos que describe la vinculacin de las

    operaciones y estado a un objeto particular. La encapsulacin est ntimamente relacionada

    con la ocultacin de la informacin, definiendo qu partes de un objeto son visibles y qu

    partes estn ocultas.

    La ventaja de la ocultacin de los detalles de implementacin es que el objeto puede

    cambiar, y el interfaz pblico proporcionado ser compatible con el original. Entonces los

    programas que utilizaban el objeto pueden seguir funcionando sin alteracin alguna. Esto

    es extremadamente til al modificar cdigo (ya que se restringe la propagacin de

    cambios). Tambin se fomenta la reusabilidad, ya que el cdigo puede ser utilizado como

    una tecnologa de caja negra (igual que los circuitos integrados en la industria electrnica).

    8. Modificadores de Acceso

    Los modificadores de acceso definen niveles de visibilidad entre miembros (variables y

    mtodos) de una clase y otros objetos. Java utiliza los siguientes modificadores:

    8.1. Para Miembros (variables y mtodos)

    public: Especifica que las variables y mtodos de una clase podrn ser accedidas

    por todos los objetos, aunque sean de clases de otros paquetes diferentes al de la

    clase.

    protected: Especifica que las variables y mtodos de una clase podrn ser

    accedidas, adems de los mtodos de la misma clase, por los mtodos de todas las

    clases del mismo paquete y por las subclases de esta aunque no se encuentren en el

    mismo paquete.

    private: Especifica que las variables y mtodos de una clase podrn ser accedidas

    slo por los mtodos de la misma clase.

    Si no se especifica un modificador, las variables y mtodos de una clase solo podrn ser

    accedidas por clases del mismo paquete.

    El modificador de acceso se especifica inmediatamente antes que el tipo de una variable

    de instancia o antes del tipo de retorno de un mtodo.

    Ejemplos:

    private int a;

    public void abrir(){

    }

    8.2. Otros modificadores de acceso para miembros

    8.2.1. Mtodos

    final: Especifica que un mtodo tiene una implementacin constante, esto es,

    que no puede ser sobrescrito por subclase alguna.

    Un miembro tiene acceso a:

    Puede ser accedido por mtodos

    de:

    public protected omitido private

    La misma clase

    Subclases del mismo paquete

    Otras clases del mismo paquete

    Subclases en otros paquetes

    Otras clases de otros paquetes

    Si

    Si

    Si

    Si

    Si

    Si

    Si

    Si

    Si

    -

    Si

    Si

    Si

    -

    -

    Si

    -

    -

    -

    -

    modificador_de_acceso tipo nombre_variable;

    modificador_de_acceso tipo nombre_metodo( ){ }

  • 5

    static: Especifica que un mtodo es independiente de cualquier instancia, por lo

    que tambin solo puede acceder a variables de instancia estticas y podr

    invocar directamente solo mtodos estticos de su clase.

    abstract: Son aquellos mtodos declarados pero no implementados, pues la

    implementacin se encuentra en las subclases.

    synchonized: especifica que solo se permitir un camino de ejecucin en un

    mtodo.

    native: especifica que la implementacin de un mtodo es externa: nativa en C.

    El mtodo no tendr cuerpo, ni siquiera llaves.

    8.2.2. Variables

    final: Especifica que una variable tiene un valor constante.

    static: Se especifica que una variable es comn para todas las instancias de la

    clase. Por omisin (sin modificador), cada objeto (instancia de clase) reserva

    memoria para sus variables de instancia cuando es creado; por cada nuevo

    objeto, nuevos espacios de memoria son reservados. Las variables estticas

    reservan un solo espacio independientemente de cuantas instancias de la clase

    se hayan creado.

    transient: Especifica al compilador que una variable no debe ser serializada.

    volatile: Especifica que el compilador generar, cargar y almacenar la

    variable cada vez que sea accedida, en vez de tomar el valor de un registro.

    8.3. Para Clases

    La visibilidad de una clase esta determinada en relacin a los paquetes:

    public: Permite que una clase sea visible fuera del paquete donde pertenece.

    abstract: Una clase abstracta esta compuesta de uno o ms mtodos abstractos,

    los que son declarados pero no implementados, pues la implementacin se

    encuentra en las subclases. Bastar que una clase contenga un mtodo abstracto

    para que tenga que ser declarada tambin como abstracta.

    final: Especifica que una clase no puede extenderse, esto es no puede tener

    subclases.

    Ejemplo

    Calcular el total que paga un cliente por un consumo en un restaurante, dicho restaurante

    realiza descuentos del 20% para consumos mayores a S/.50.00 y 10% para consumos

    menores e iguales a S/.50.00.

    import java.io.*; // import java.util.Scanner;

    public class Cliente{

    //atributos

    private String nombre;

    private String apellidos;

    private double desc;

    private double consumo;

    //mtodos de la clase

    public Cliente() // mtodo constructor

    {

    }

    //mtodos acceso

    public void setNombre(String nombre){

    this.nombre = nombre ;

    }

    public String getNombre(){

    return nombre ;

    }

  • 6

    public void setApellidos(String apellidos){

    this.apellidos = apellidos;

    }

    public String getApellidos (){

    return apellidos;

    }

    public void setConsumo(double consumo){

    this.consumo = consumo;

    }

    public double getConsumo (){

    return consumo;

    }

    public void setDesc(double desc){

    this. desc = desc;

    }

    public double getDesc (){

    return desc;

    }

    public void setTotal(double total){

    this.total = total;

    }

    public double getTotal (){

    return total;

    }

    public void calculoDesc(){

    if(consumo>50.00)

    desc = consumo * 0.20;

    else

    desc = consumo * 0.10;

    }

    public void calculoTotal(){

    total = consumo desc; }

    }

    public class Aplicacion{

    public static void main(String[] args) throws IOException {

    InputStreamReader p= new InputStreamReader(System.in);

    BufferedReader q= new BufferedReader(p);

    Cliente c = new Cliente ();

    System.out.println(Ingrese nombre del cliente); c.setNombre(q.readLine());

    System.out.println(Ingrese apellidos del cliente); c.setApellidos(q.readLine());

    System.out.println(Ingrese consumo); c.setConsumo(Double.parseDouble(q.readLine()));

    c.calculoDesc();

    c.calculoTotal();

    System.out.println(Cliente:+ c.getNombre() + +c.getApellidos()); System.out.println(Consumo:+ c.getConsumo()); System.out.println(Descuento:+ c.getDesc()); System.out.println(Total:+ c.getTotal()); }

    }