Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Semana 3: Fundamentos de Dart (iii) Facultad de Ingeniería de Sistema e Informática LENGUAJE DE PROGRAMACIÓN V Ing. Angel Marthans Ruiz, Mg. Objetivos: Al finalizar, el alumno logrará: Definir Clases Implementar Constructores Implementar Miembros estáticos 2 Temas: Clases Constructores Miembros Estáticos 3 Clases 4 Las clases son como planos arquitectónicos que indican al sistema cómo crear un objeto, donde un objeto son los datos reales almacenados en la memoria del ordenador. Si una clase es el plano, se podría decir que el objeto es como la casa que representa el plano. Por ejemplo, la clase String describe sus datos como una colección de unidades de código UTF- 16, pero un objeto String es algo concreto como '¡Hola, Mundo!. Las clases son un componente esencial de la programación orientada a objetos. Se utilizan para combinar datos y funciones dentro de una única estructura. Clases 5 Clases 6 Las funciones existen para transformar los datos. Las funciones dentro de una clase se conocen como métodos, mientras que los constructores son métodos especiales que se utilizan para crear objetos a partir de la clase. Definición de una Clase Creación de un Objeto desde una Clase • Las clases se definen por fuera del método main(). • La palabra clave new es opcional. Clases 7 Asignación de valores a Propiedades Clases 8 Encapsulación Uno de los principios básicos de la programación orientada a objetos es la encapsulación. Se trata del principio de ocultar los datos internos y la lógica de una clase al mundo exterior. Esto tiene algunas ventajas: La clase controla sus datos, incluido quién los ve y cómo se modifican. Un control aislado significa que la lógica es más fácil de razonar. Datos ocultos significa mayor privacidad. La encapsulación impide que clases no relacionadas accedan a los datos y los modifiquen, lo que puede provocar fallos difíciles de detectar. Puede cambiar los nombres de las variables internas y la lógica sin romper las cosas en el mundo exterior. Clases 9 Cómo conseguimos la encapsulación en Dart? Ocultar componentes internos Puedes hacer que una variable sea privada en Dart anteponiendo al nombre un guión bajo. El nombre _value comienza con un guión bajo, por lo que es privado. Esto significa que no hay forma de acceder al ID de usuario y al nombre fuera de la clase, lo que hace que tu objeto sea un poco inútil. Puedes resolver este problema añadiendo un getter. Clases 1 0 Getters Un getter es un método especial que devuelve el valor de una variable de campo privado. Es la cara de una variable privada. En Java o C++, podemos ver métodos getter con nombres como getColor o getWidth . Siguiendo esta conversión su clase Dart se vería así: Clases 1 1 Setters Usa un setter si quieres cambiar los datos internos de una clase, Dart tiene una palabra clave especial set especial para esto junto con get . Constructores 1 2 La gente construye casas; los robots de las fábricas construyen coches; y las impresoras 3D construyen modelos. En el mundo de la programación, los constructores son métodos que crean, o construyen, instancias de una clase. Es decir, los constructores crean nuevos objetos. Los constructores tienen el mismo nombre que la clase, y el tipo de retorno implícito del método constructor es también del mismo tipo que la propia clase. Constructores 1 3 Constructor por defecto Cuando no se especifica un constructor, Dart proporciona un constructor por defecto que no toma parámetros y sólo devuelve una instancia de la clase. Por ejemplo, definiendo una clase como esta: Equivale a escribirla asi: Constructores 1 4 Constructor personalizado Si queremos pasarle parámetros al constructor para modificar la forma como la clase crea un objeto, es posible hacerlo. Al igual que el constructor por defecto anterior, el nombre del constructor debe ser el mismo que el nombre de la clase. Este tipo de constructor se denomina constructor generativo porque genera directamente un objeto del mismo tipo. Constructor de forma larga: Constructor de forma corta: Constructores 1 5 Constructor con parámetros opcionales Miembros Estáticos 1 6 Poner static delante de una variable miembro o de un método hace que la variable o el método pertenezcan a la clase y no a la instancia. Funcionan igual que las variables y funciones de nivel superior, pero están envueltas en el nombre de la clase de la clase. Se accede a ellas de la siguiente manera: En este caso, no has tenido que instanciar un objeto para acceder a myProperty o llamar a myMethod . En su lugar, has utilizado directamente el nombre de la clase para obtener el valor y llamar al método. Miembros Estáticos 1 7 Miembros Estáticos 1 8 Patrón de Diseño Singleton Otro uso de las variables estáticas es crear una clase singleton. Los singletons son un patrón de diseño con una sola instancia de un objeto. Aunque algunas personas discuten sus beneficios, hacen ciertas tareas más convenientes. Es fácil crear un singleton en Dart. No querrás que User sea un singleton porque probablemente tendrías muchos usuarios distintos que requerirían muchas instancias distintas de User . Pero Pero es posible que desee crear una clase singleton como un ayudante de base de datos para asegurarse de que no se abre múltiples conexiones a la base de datos. Miembros Estáticos 1 9 Métodos Estáticos Referencias: https://dart.dev/language/classes https://dart.dev/language/constructors https://dart.dev/language/methods 2 0 https://dart.dev/language/classes https://dart.dev/language/constructors https://dart.dev/language/methods La manera de empezar es dejar de hablar y comenzar a actuar. Walt Disney 2 1 �����Semana 3: Fundamentos de Dart (iii) Objetivos: �Al finalizar, el alumno logrará: Temas: Clases Clases Clases Clases Clases Clases Clases Clases Constructores Constructores Constructores Constructores Miembros Estáticos Miembros Estáticos Miembros Estáticos Miembros Estáticos Referencias: La manera de empezar es dejar de hablar y comenzar a actuar.
Compartir