SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
Programación
orientada a objetos
Objetivos de este
módulo
   Definir los conceptos de la programación
    orientada a objetos
   Utilizar los modificadores de acceso private y
    public (encapsulamiento)
   Invocar un método de un objeto
Historia del Software
La Fase de Análisis y
Diseño
   El análisis describe qué hace el sistema:
      Modelado del mundo real: actores y actividades,

       objetos y comportamientos

   El diseño describe cómo lo hace:
     Modelado de relaciones e iteraciones entre objetos y

       actores en el sistema
     Detectar abstracciones útiles para simplificar el

       problema o la solución
Abstracción
   Funciones – Escribir el algoritmo una vez para usarlo
    muchas veces
   Objetos – Agrupar un conjunto de atributos relacionados
    y comportamientos en una clase
   Frameworks y APIs – Grandes grupos de objetos que
    dan soporte a una actividad compleja
     Los Frameworks pueden ser utilizados “tal como

       están” o se pueden extender sus comportamientos
Clases como Diseño de
    En una fábrica, el diseño de un dispositivo describe como se
    van a construir muchos dispositivos físicos.

   En software, una clase es la descripción de un objeto:
       Una clase describe los datos que cada objeto incluye
       Una clase describe el comportamiento que cada objeto exhibe
   En la tecnología Java, las clases cumplen tres
    características claves de la POO:

       Herencia
    
        Encapsulamiento
        Polimofirmo
Declarar clases en Java
    Sintaxis básica de una clase Java:
    <modificador> class < nombre_clase> {
     [< declaraciones_de_atributos>]
     [< declaraciones_de_constructores>]
     [< declaraciones_de_métodos>]
     }

• Ejemplo:
   public class Vehicle {
   private double maxLoad;
   public void setMaxLoad(double value) {
   maxLoad = value;
   }}
Declarar atributos
    Sintaxis básica de un atributo:
    [< modificadores>] < tipo> <nombre> [ = <valor_inicial>];

   Ejemplo
    public class Foo {
    private int x;
    private float y = 10000.0F;
    private String name = "Bates Motel";
    }
Declarar métodos
   Sintaxis básica de métodos:
  [< modificadores >] < tipo_de_retorno> <nombre>([<
    lista_de_argumentos>]) {
            [< sentencias>]}
 Ejemplo

public class Dog {
private int weight;
public int getWeight() {
    return weight;
}
public void setWeight(int newWeight) {
    weight = newWeight;
}
}
Acceder a miembros de
un Objeto
   La notación “punto”: <objeto>.<miembro>

   Esto es utilizado para acceder a miembros de objetos,
    como los atributos y métodos

   Ejemplos:
   d.setWeight(42);

   d.weight = 42; // sólo permitido si weight tiene alcance
    public
Ocultamiento de
Información
   El problema:
     El código del cliente tiene acceso a los datos
       internos
      d.day = 32;
      // día no válido
      d.month = 2; d.day = 30;
      //posible pero erróneo
      d.day = d.day + 1;
      // no realiza chequeo sobre el mes
Ocultamiento de
Información
   La solución:
    El código del cliente debe utilizar
       los métodos setters/getters para
       acceder a los datos internos:

    MyDate d = new MyDate();
    d.setDay(32);

    d.setMonth(2);
    d.setDay(30);

    d.setDay(d.getDay() + 1);
Encapsulamiento
   Oculta los detalles de
    implementación de una
    clase
   Obliga al usuario a utilizar
    una interfase para
    acceder a los datos
   Hace el código más
    mantenible
Declarar constructores
   Sintaxis básica de un constructor:

[< modificador>] < nombre_de_clase> ([<
   lista_de_argumentos>]) {
        [< sentencias>]
}
Declarar constructores
Ejemplo
1 public class Dog {
2 private int weight;
3
4 public Dog() {
5 weight = 42;
6}
7
8 public int getWeight() {
9 return weight;
10 }
11 public void setWeight(int newWeight) {
12 weight = newWeight;
13 }}
El constructor por defecto
   Existe por lo menos un constructor en cada clase.
   Si el programador no escribe ningún constructor, el
    constructor por defecto esta presente
    automáticamente:
     El constructor por defecto no recibe parámetros

     El cuerpo del constructor es vacío

     Permite al programador construir objetos con new

       Xxx() sin tener que escribir un constructor.
Diseño de archivo fuente
   Sintaxis básica de un archivo Java:
    [< declaración_de_package>]
    [< declaraciones_de_import>]
    < declaración_de_clase>+

   Ejemplo del archivo VehicleCapacityReport.java :

    package shipping.reports;
    import shipping.domain.*;
    import java.util.List;
    import java.io.*;
    public class VehicleCapacityReport {
    private List vehicles;
    public void generateReport(Writer output) {...}
    }
Paquetes de Software
   Los paquetes permiten
    un mejor manejo de
    sistemas de software
    grandes
   Los paquetes pueden
    contener clases y sub-
    paquetes
La sentencia package
   Sintaxis básica de la sentencia package:
    package < nombre_de_paquete_padre>[.< nombre_de_sub-
    paquete>]*;
   Ejemplo:
    package shipping.reports;
   Especifique la declaración del package al comienzo del archivo
    fuente.
   Solamente una declaración de paquete por archivo fuente.
   Si ningún paquete es declarado, entonces la clase pertenece
    al paquete por defecto.
   Los nombres de los paquetes debe ser jerárquico y separado
    por punto.
La sentencia import
   Sintaxis básica de la sentencia import:

import < nombre_pkg> [.<nombre_sub_pkg>].<
  nombre_clase>;

O

import < nombre_pkg>[.< nombre_sub_pkg>].*;
La sentencia import
   Ejemplo:
    import shipping.domain.*;
    import java.util.List;
    import java.io.*;

   Precede a todas las declaraciones de clases

   Le indica al compilador dónde encontrar las clases que
    se utilizan
Diseño de paquetes y
directorios
   Los paquetes son
    guardados en el árbol
    de directorio que
    contenga el nombre del
    paquete.
   Ejemplo, los paquetes
    de la aplicación
    “shipping” :
Desarrollo
   Compilar usando -d
    javac -d ../class banking/domain/*.java
Repaso de la Terminología
   Clase – Código fuente que diseña los objetos de tiempo
    de ejecución
   Objeto – Instancia de una clase
    También conocido como instancia
   Atributo – Elemento con información de un objeto
    También conocido como dato miembro, variable de
    instancia, campo de dato
   Método – Elemento que define el comportamiento de un
    objeto. También conocido como algoritmo, función,
    procedimiento
   Constructor – Es “como un método” constructor
    utilizado para inicializar un objeto nuevo
   Package – Grupo de clases agrupada y/o sub paquetes
Utilizando la
documentación de Java
(API)
   Conjunto de archivos HTML que provee información de
    las API
   Un frame describe un paquete y contiene enlaces a
    páginas que describen la información de cada clase en
    ese paquete.
   El documento de cada clase incluye la jerarquía de
    clases a la cuál pertenece, una descripción de la clase,
    una lista de variables miembro, una lista de
    constructores, una lista de métodos, etc
Ejercicio
   En este ejercicio hay que crear una
    versión simple de la clase Account.
    Tiene que poner el archivo fuente en
    el paquete banking. Un programa de
    testeo, llamado TestBanking, va a ser
    escrito en el paquete por defecto y va
    a crear una cuenta. El mismo inicializa
    el balance de la cuenta y realiza
    algunas transacciones simples.
    Finalmente, el programa de testeo
    muestra el balance final de la cuenta.
Ejercicios de Ocultamiento

               Vehicle
   +load : double
   +maxLoad : double
   +Vehicle(entrada maxLoad : double)
   +getLoad() : double
   +getMaxLoad() : double
Ejercicios de Ocultamiento

                  Vehicle
   -
   +load : double
   -
   +maxLoad : double
   +Vehicle(entrada maxLoad : double)
   +getLoad() : double
   +getMaxLoad() : double
   +addBox(entrada weight : double) : bool
Ejercicios de Ocultamiento

                    Vehicle
  -
  +load : double
  +maxLoad : double
  -
  +Vehicle(entrada maxLoad : double)
  +getLoad() : double
  +getMaxLoad() : double
  +addBox(entrada weight : double) : bool
  -
  +newtsToKilo(entrada weight : double) : double
  -
  +kiloToNewts(entrada weight : double) : double

Más contenido relacionado

La actualidad más candente

Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaAngel Vázquez Patiño
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosale8819
 
Conceptos poo progra visual
Conceptos poo progra visualConceptos poo progra visual
Conceptos poo progra visualLibertad25
 
Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Renny Batista
 
Memch clases lep ii
Memch   clases lep iiMemch   clases lep ii
Memch clases lep iidani Safres
 
ProgramacióN Orientada A Objetos
ProgramacióN Orientada A ObjetosProgramacióN Orientada A Objetos
ProgramacióN Orientada A ObjetosPatricio Abad
 
programacion orientada a objetos en visual basic net
programacion orientada a objetos en visual basic netprogramacion orientada a objetos en visual basic net
programacion orientada a objetos en visual basic netpp mm
 

La actualidad más candente (20)

Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en Java
 
Clases y Objetos
Clases y ObjetosClases y Objetos
Clases y Objetos
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Clases y objetos
Clases y objetosClases y objetos
Clases y objetos
 
9.herencia en java
9.herencia en java9.herencia en java
9.herencia en java
 
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
 
Conceptos poo progra visual
Conceptos poo progra visualConceptos poo progra visual
Conceptos poo progra visual
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Definición de clases en POO
Definición de clases en POODefinición de clases en POO
Definición de clases en POO
 
Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015
 
Memch clases lep ii
Memch   clases lep iiMemch   clases lep ii
Memch clases lep ii
 
Clase 2 poo java
Clase 2 poo javaClase 2 poo java
Clase 2 poo java
 
Encapsulamiento en JAVA-NETBEANS
Encapsulamiento en JAVA-NETBEANSEncapsulamiento en JAVA-NETBEANS
Encapsulamiento en JAVA-NETBEANS
 
Qué es la poo
Qué es la pooQué es la poo
Qué es la poo
 
Java OO: Introducción
Java OO: IntroducciónJava OO: Introducción
Java OO: Introducción
 
8.Clases y objetos Java
8.Clases y objetos Java8.Clases y objetos Java
8.Clases y objetos Java
 
03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
 
ProgramacióN Orientada A Objetos
ProgramacióN Orientada A ObjetosProgramacióN Orientada A Objetos
ProgramacióN Orientada A Objetos
 
Conceptos basicos POO
Conceptos basicos POOConceptos basicos POO
Conceptos basicos POO
 
programacion orientada a objetos en visual basic net
programacion orientada a objetos en visual basic netprogramacion orientada a objetos en visual basic net
programacion orientada a objetos en visual basic net
 

Destacado

Resolución de sistemas de ecuaciones por el método
Resolución de sistemas de ecuaciones por el métodoResolución de sistemas de ecuaciones por el método
Resolución de sistemas de ecuaciones por el métodoRen Honjo
 
Introduccion A La Oop
Introduccion A La OopIntroduccion A La Oop
Introduccion A La Oopsemuvi
 
Bases De Datos Relacionales
Bases De Datos RelacionalesBases De Datos Relacionales
Bases De Datos RelacionalesAngeles Sandoval
 
Formas normales
Formas normalesFormas normales
Formas normalesdidachos1
 
Funciones matematicas-y-ecuaciones-lineales
Funciones matematicas-y-ecuaciones-linealesFunciones matematicas-y-ecuaciones-lineales
Funciones matematicas-y-ecuaciones-linealesasegura-b
 
Ecuaciones Y ResolucióN De Ecuaciones
Ecuaciones Y ResolucióN De EcuacionesEcuaciones Y ResolucióN De Ecuaciones
Ecuaciones Y ResolucióN De EcuacionesJuan Serrano
 
Ejercicio de Ecuaciones Lineales
Ejercicio de Ecuaciones LinealesEjercicio de Ecuaciones Lineales
Ejercicio de Ecuaciones LinealesGladys Gahona C.
 
Las variables en una investigacion cientifica
Las variables en una investigacion cientificaLas variables en una investigacion cientifica
Las variables en una investigacion cientificaprofesorrene
 

Destacado (17)

!Prograc1
!Prograc1!Prograc1
!Prograc1
 
Resolución de sistemas de ecuaciones por el método
Resolución de sistemas de ecuaciones por el métodoResolución de sistemas de ecuaciones por el método
Resolución de sistemas de ecuaciones por el método
 
Introduccion A La Oop
Introduccion A La OopIntroduccion A La Oop
Introduccion A La Oop
 
C1 - Conceptos OOP
C1 - Conceptos OOPC1 - Conceptos OOP
C1 - Conceptos OOP
 
Ecuaciones y funciones
Ecuaciones y funcionesEcuaciones y funciones
Ecuaciones y funciones
 
Bases De Datos Relacionales
Bases De Datos RelacionalesBases De Datos Relacionales
Bases De Datos Relacionales
 
Formas normales
Formas normalesFormas normales
Formas normales
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Funciones matematicas-y-ecuaciones-lineales
Funciones matematicas-y-ecuaciones-linealesFunciones matematicas-y-ecuaciones-lineales
Funciones matematicas-y-ecuaciones-lineales
 
Ecuaciones Y ResolucióN De Ecuaciones
Ecuaciones Y ResolucióN De EcuacionesEcuaciones Y ResolucióN De Ecuaciones
Ecuaciones Y ResolucióN De Ecuaciones
 
Ejercicio de Ecuaciones Lineales
Ejercicio de Ecuaciones LinealesEjercicio de Ecuaciones Lineales
Ejercicio de Ecuaciones Lineales
 
Las variables en una investigacion cientifica
Las variables en una investigacion cientificaLas variables en una investigacion cientifica
Las variables en una investigacion cientifica
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Identificación de Variables - Tema 5
Identificación de Variables - Tema 5Identificación de Variables - Tema 5
Identificación de Variables - Tema 5
 
Variables de investigación
Variables de investigaciónVariables de investigación
Variables de investigación
 
ECUACIONES CUADRATICAS
ECUACIONES CUADRATICASECUACIONES CUADRATICAS
ECUACIONES CUADRATICAS
 
Ejemplos de entidad relacion
Ejemplos de entidad relacionEjemplos de entidad relacion
Ejemplos de entidad relacion
 

Similar a POO Programación

Programación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosProgramación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosJosé Antonio Sandoval Acosta
 
Semana 11 y 12 packages
Semana 11 y 12 packagesSemana 11 y 12 packages
Semana 11 y 12 packagesvictdiazm
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02Krizztiina Pacheko
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje javaMargarita Romero
 
Intro aplicaciones web con php
Intro aplicaciones web con phpIntro aplicaciones web con php
Intro aplicaciones web con phpFer Nando
 
Framework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosFramework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosAntonio Palomares Sender
 
Programación_del_lado_del_servidor......
Programación_del_lado_del_servidor......Programación_del_lado_del_servidor......
Programación_del_lado_del_servidor......SaulSalinasNeri
 
El Mal Odiado Javascript
El Mal Odiado JavascriptEl Mal Odiado Javascript
El Mal Odiado Javascriptguest030dc2
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosjent46
 
Persistencia de un modelo de objetos
Persistencia de un modelo de objetosPersistencia de un modelo de objetos
Persistencia de un modelo de objetosJorge Ercoli
 
Sesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clasesSesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clasesecodereck
 
Visual basic
Visual basicVisual basic
Visual basicmellcv
 
Tarea_Investigacion programacion .pdf
Tarea_Investigacion programacion .pdfTarea_Investigacion programacion .pdf
Tarea_Investigacion programacion .pdfBrimmerRamrez
 

Similar a POO Programación (20)

Programación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosProgramación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetos
 
Lp2docclases
Lp2docclasesLp2docclases
Lp2docclases
 
Semana 11 y 12 packages
Semana 11 y 12 packagesSemana 11 y 12 packages
Semana 11 y 12 packages
 
Benita ppp unidad 1
Benita ppp unidad 1Benita ppp unidad 1
Benita ppp unidad 1
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02
 
INTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVAINTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVA
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje java
 
Intro aplicaciones web con php
Intro aplicaciones web con phpIntro aplicaciones web con php
Intro aplicaciones web con php
 
Framework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosFramework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetos
 
Programación_del_lado_del_servidor......
Programación_del_lado_del_servidor......Programación_del_lado_del_servidor......
Programación_del_lado_del_servidor......
 
JAVA ORIENTADO A OBJETOS - CLASES Y OBJETOS
JAVA ORIENTADO A OBJETOS - CLASES Y OBJETOSJAVA ORIENTADO A OBJETOS - CLASES Y OBJETOS
JAVA ORIENTADO A OBJETOS - CLASES Y OBJETOS
 
El Mal Odiado Javascript
El Mal Odiado JavascriptEl Mal Odiado Javascript
El Mal Odiado Javascript
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
JAVA OO - TEMA 01 - CLASES Y OBJETOS
JAVA OO - TEMA 01 - CLASES Y OBJETOSJAVA OO - TEMA 01 - CLASES Y OBJETOS
JAVA OO - TEMA 01 - CLASES Y OBJETOS
 
Clases y objetos en Java
Clases y objetos en JavaClases y objetos en Java
Clases y objetos en Java
 
Persistencia de un modelo de objetos
Persistencia de un modelo de objetosPersistencia de un modelo de objetos
Persistencia de un modelo de objetos
 
Computación 3
Computación 3Computación 3
Computación 3
 
Sesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clasesSesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clases
 
Visual basic
Visual basicVisual basic
Visual basic
 
Tarea_Investigacion programacion .pdf
Tarea_Investigacion programacion .pdfTarea_Investigacion programacion .pdf
Tarea_Investigacion programacion .pdf
 

POO Programación

  • 2. Objetivos de este módulo  Definir los conceptos de la programación orientada a objetos  Utilizar los modificadores de acceso private y public (encapsulamiento)  Invocar un método de un objeto
  • 4. La Fase de Análisis y Diseño  El análisis describe qué hace el sistema:  Modelado del mundo real: actores y actividades, objetos y comportamientos  El diseño describe cómo lo hace:  Modelado de relaciones e iteraciones entre objetos y actores en el sistema  Detectar abstracciones útiles para simplificar el problema o la solución
  • 5. Abstracción  Funciones – Escribir el algoritmo una vez para usarlo muchas veces  Objetos – Agrupar un conjunto de atributos relacionados y comportamientos en una clase  Frameworks y APIs – Grandes grupos de objetos que dan soporte a una actividad compleja  Los Frameworks pueden ser utilizados “tal como están” o se pueden extender sus comportamientos
  • 6. Clases como Diseño de En una fábrica, el diseño de un dispositivo describe como se van a construir muchos dispositivos físicos.   En software, una clase es la descripción de un objeto:  Una clase describe los datos que cada objeto incluye  Una clase describe el comportamiento que cada objeto exhibe  En la tecnología Java, las clases cumplen tres características claves de la POO:  Herencia  Encapsulamiento Polimofirmo
  • 7. Declarar clases en Java  Sintaxis básica de una clase Java: <modificador> class < nombre_clase> { [< declaraciones_de_atributos>] [< declaraciones_de_constructores>] [< declaraciones_de_métodos>] } • Ejemplo: public class Vehicle { private double maxLoad; public void setMaxLoad(double value) { maxLoad = value; }}
  • 8. Declarar atributos  Sintaxis básica de un atributo: [< modificadores>] < tipo> <nombre> [ = <valor_inicial>];  Ejemplo public class Foo { private int x; private float y = 10000.0F; private String name = "Bates Motel"; }
  • 9. Declarar métodos  Sintaxis básica de métodos: [< modificadores >] < tipo_de_retorno> <nombre>([< lista_de_argumentos>]) { [< sentencias>]}  Ejemplo public class Dog { private int weight; public int getWeight() { return weight; } public void setWeight(int newWeight) { weight = newWeight; } }
  • 10. Acceder a miembros de un Objeto  La notación “punto”: <objeto>.<miembro>  Esto es utilizado para acceder a miembros de objetos, como los atributos y métodos  Ejemplos:  d.setWeight(42);  d.weight = 42; // sólo permitido si weight tiene alcance public
  • 11. Ocultamiento de Información  El problema:  El código del cliente tiene acceso a los datos internos d.day = 32; // día no válido d.month = 2; d.day = 30; //posible pero erróneo d.day = d.day + 1; // no realiza chequeo sobre el mes
  • 12. Ocultamiento de Información  La solución: El código del cliente debe utilizar los métodos setters/getters para acceder a los datos internos: MyDate d = new MyDate(); d.setDay(32); d.setMonth(2); d.setDay(30); d.setDay(d.getDay() + 1);
  • 13. Encapsulamiento  Oculta los detalles de implementación de una clase  Obliga al usuario a utilizar una interfase para acceder a los datos  Hace el código más mantenible
  • 14. Declarar constructores  Sintaxis básica de un constructor: [< modificador>] < nombre_de_clase> ([< lista_de_argumentos>]) { [< sentencias>] }
  • 15. Declarar constructores Ejemplo 1 public class Dog { 2 private int weight; 3 4 public Dog() { 5 weight = 42; 6} 7 8 public int getWeight() { 9 return weight; 10 } 11 public void setWeight(int newWeight) { 12 weight = newWeight; 13 }}
  • 16. El constructor por defecto  Existe por lo menos un constructor en cada clase.  Si el programador no escribe ningún constructor, el constructor por defecto esta presente automáticamente:  El constructor por defecto no recibe parámetros  El cuerpo del constructor es vacío  Permite al programador construir objetos con new Xxx() sin tener que escribir un constructor.
  • 17. Diseño de archivo fuente  Sintaxis básica de un archivo Java: [< declaración_de_package>] [< declaraciones_de_import>] < declaración_de_clase>+  Ejemplo del archivo VehicleCapacityReport.java : package shipping.reports; import shipping.domain.*; import java.util.List; import java.io.*; public class VehicleCapacityReport { private List vehicles; public void generateReport(Writer output) {...} }
  • 18. Paquetes de Software  Los paquetes permiten un mejor manejo de sistemas de software grandes  Los paquetes pueden contener clases y sub- paquetes
  • 19. La sentencia package  Sintaxis básica de la sentencia package: package < nombre_de_paquete_padre>[.< nombre_de_sub- paquete>]*;  Ejemplo: package shipping.reports;  Especifique la declaración del package al comienzo del archivo fuente.  Solamente una declaración de paquete por archivo fuente.  Si ningún paquete es declarado, entonces la clase pertenece al paquete por defecto.  Los nombres de los paquetes debe ser jerárquico y separado por punto.
  • 20. La sentencia import  Sintaxis básica de la sentencia import: import < nombre_pkg> [.<nombre_sub_pkg>].< nombre_clase>; O import < nombre_pkg>[.< nombre_sub_pkg>].*;
  • 21. La sentencia import  Ejemplo: import shipping.domain.*; import java.util.List; import java.io.*;  Precede a todas las declaraciones de clases  Le indica al compilador dónde encontrar las clases que se utilizan
  • 22. Diseño de paquetes y directorios  Los paquetes son guardados en el árbol de directorio que contenga el nombre del paquete.  Ejemplo, los paquetes de la aplicación “shipping” :
  • 23. Desarrollo  Compilar usando -d javac -d ../class banking/domain/*.java
  • 24. Repaso de la Terminología  Clase – Código fuente que diseña los objetos de tiempo de ejecución  Objeto – Instancia de una clase También conocido como instancia  Atributo – Elemento con información de un objeto También conocido como dato miembro, variable de instancia, campo de dato  Método – Elemento que define el comportamiento de un objeto. También conocido como algoritmo, función, procedimiento  Constructor – Es “como un método” constructor utilizado para inicializar un objeto nuevo  Package – Grupo de clases agrupada y/o sub paquetes
  • 25. Utilizando la documentación de Java (API)  Conjunto de archivos HTML que provee información de las API  Un frame describe un paquete y contiene enlaces a páginas que describen la información de cada clase en ese paquete.  El documento de cada clase incluye la jerarquía de clases a la cuál pertenece, una descripción de la clase, una lista de variables miembro, una lista de constructores, una lista de métodos, etc
  • 26. Ejercicio  En este ejercicio hay que crear una versión simple de la clase Account. Tiene que poner el archivo fuente en el paquete banking. Un programa de testeo, llamado TestBanking, va a ser escrito en el paquete por defecto y va a crear una cuenta. El mismo inicializa el balance de la cuenta y realiza algunas transacciones simples. Finalmente, el programa de testeo muestra el balance final de la cuenta.
  • 27. Ejercicios de Ocultamiento Vehicle +load : double +maxLoad : double +Vehicle(entrada maxLoad : double) +getLoad() : double +getMaxLoad() : double
  • 28. Ejercicios de Ocultamiento Vehicle - +load : double - +maxLoad : double +Vehicle(entrada maxLoad : double) +getLoad() : double +getMaxLoad() : double +addBox(entrada weight : double) : bool
  • 29. Ejercicios de Ocultamiento Vehicle - +load : double +maxLoad : double - +Vehicle(entrada maxLoad : double) +getLoad() : double +getMaxLoad() : double +addBox(entrada weight : double) : bool - +newtsToKilo(entrada weight : double) : double - +kiloToNewts(entrada weight : double) : double