8. técnicas de escritura de códigos
Upcoming SlideShare
Loading in...5
×
 

8. técnicas de escritura de códigos

on

  • 5,156 views

 

Statistics

Views

Total Views
5,156
Views on SlideShare
5,151
Embed Views
5

Actions

Likes
0
Downloads
4
Comments
0

2 Embeds 5

http://objetosyprogramacion.blogspot.com 3
http://www.slideshare.net 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

8. técnicas de escritura de códigos 8. técnicas de escritura de códigos Presentation Transcript

  • Técnicas de Escritura de Códigos: TAD Tecnología de Objetos Raúl Herrera A.
  • Como hacer software Orientado a objetos
    • La construcción de software orientado a objetos es el método de desarrollo de software que basa la arquitectura de cualquier sistema en módulos deducidos a partir de los tipos de objetos que manipula (en lugar de basarse en la función o funciones que el sistema está destinado a asegurar).
    • No pregunte primero qué hace el sistema, pregunte a qué se lo hace
  • Descripción adecuada de objetos
    • Ser precisa y no ambigüa
    • Ser completa
    • No debe especificar más de lo necesario
  • Tipos Abstractos de Datos (TAD)
    • Los Tipos de Datos Abstractos (TDA's) cumplen las tres caracteristicas anteriores
    • Una especificación de tipo abstracto de datos consta de cuatro secciones: TIPOS, FUNCIONES, AXIOMAS y PRE-CONDICIONES.
      • Un tipo es una colección de objetos caracterizados por funciones, axiomas y precondiciones.
      • En la sección de funciones se enumeran las operaciones aplicables a las instancias del TDA
        • Una función de un conjunto de origen X a un conjunto resultado Y es parcial si no está definida para todos los miembros de X. Una función que no es parcial, es total .
        • Las funciones parciales reflejan restricciones de implementación.
        • Hay 3 tipos de funciones: consultas, órdenes y constructores. Las funciones se traducen en atributos y rutinas.
      • Los axiomas definen el comportamiento propio del TAD
        • Postcondiciones :Cláusulas que deben ser verdaderas después de ejecutar los axiomas de un TAD
      • Precondiciones: Cualquier especificación de un TAD que incluya funciones parciales debe especificar el dominio de cada una de ellas
  • Clases
    • Una clase es un TAD más una implementación posiblemente parcial.
    • Una clase que está completamente implementada se denomina efectiva . Una clase que está implementada sólo parcialmente, o que no está implementada, se dice que es diferida . Para obtener una clase efectiva se deben dar todos los detalles de implementación.
    • Por lo tanto, un TAD es una clase diferida.
    • Al implementar un TAD se obtiene una clase efectiva. Una clase efectiva consta de tres elementos:
      • E1. La especificación del TDA.
      • E2. La selección de una representación.
      • E3. Una correspondencia de las funciones de E1 con subrutinas de E2.
  • Clases (2)
    • La implementación es el proceso de pasar de una clase diferida a una clase efectiva. Los objetos entonces, tendrían forma de iceberg:
  • Objetos y Clases
    • Todo objeto es una instancia de alguna clase .
    • Hay dos formas de utilizar una clase: heredar de ella, o ser un cliente de ella.
    • Sea P una clase. Una clase C que contenga una declaración de la forma P a; se dice que es un cliente de P. Entonces, P es un proveedor de C.
    • La herencia relaciona dos clases de manera jerárquica. Ésta permite que los descendientes de una clase hereden todas las variables y métodos de sus ascendentes, además de crear los suyos propios. A los descendientes se les llama subclases . Al padre inmediato se le llama superclase .
  • Objetos y Clases (2)
    • super se refiere a la clase superior o superclase. Se puede usar tanto para atributos como para métodos (super es similar a this).
    • Ejemplo:
      • class Punto
      • {
      • int x,y;
      • Punto(int x, int y)
      • {
      • this.x = x;
      • this.y = y;
      • }
      • .
      • .
      • .
      • }
    class Punto3D extends Punto { int z; Punto3D(int x, int y, int z) { this.x = x; this.y = y; this.z = z; } Punto3D() { this(-1,-1,-1); } }
  • Clases y Objetos (3)
    • Por defecto, todos los métodos y variables de instancia se pueden sobre-escribir. Si no se desea que un método o variable pueda ser sobre-escrito, se puede declarar como final. La declaración final también sirve para declarar "constantes". Por ejemplo:
      • final int VERDADERO = 1;
    • Java permite declarar como final tanto variables como métodos (en C++ no existe el concepto de final para métodos).
    • No se debe confundir final con el método finalize. Este último es un método que se puede agregar a cualquier clase para que sea llamado justo antes de que el recolector de basura reclame el objeto. Es útil para liberar recursos que no son propios de Java, como por ejemplo un descriptor de archivo o un tipo de letra de Windows.
  • Clases y Objetos (4)
    • Si se quieren usar métodos fuera del contexto de cualquier instancia de objeto, se utiliza en Java la cláusula static (por ejemplo en el main). No se puede aquí usar this ni super.
    • Cuando se carga la clase por primera vez, se ejecutan todos los static , una sola vez.
    • Los métodos y variables estáticas pueden ser referenciados desde otras clases utilizando el nombre de la clase que los contiene.
    • Una clase puede "obligar" a las clases que heredan de ella a que implementen algún método particular. Para hacer esto, la clase debe usar la cláusula abstract.
    • Estos métodos que deben ser implementados en las clases herederas, se conocen con el nombre de métodos responsabilidad de la clase .