Like si en el minuto 3:03 te dio un calambre en el ojo 😄
Bienvenida e Introducción
Introducción y Bienvenida
Dart vs. Go vs. JavaScript vs. Kotlin
DartPad y qué editores utlizar
Básicos 1: Variables y Operadores
Variables: Números (int,double), String y booleanos
Colecciones
Diccionarios
Constantes (final y const)
Operadores aritméticos, de asignacion y lógicos
Básicos 2: Funciones y Parámetros
Declaración de funciones y la función Main()
Funciones de sintaxis corta (Arrow) y Anónimas (Lambda)
Parámetros requeridos, opcionales, posicionados, nombrados y por defecto
Básicos 3: Flujos de Control
If-Else y Expresiones Condicionales
Switch y Case
For
While y do-while
Break y Continue
Clases
Definición de clases y miembros
Constructores por defecto, por parámetro o nombrados
Métodos Getter y Setter y variables privadas
Herencia
Clases Abstractas
Interfaces implícitas
Utilizar Flutter en Dart
Iniciar y estructurar un proyecto en Flutter
Contenedores
Creando un botón personalizado con el Widget Container
Modelos de datos y peticiones http
Trabajando datos http y Widget Future Builder
Ejecutando el mismo código en Android y iOS
Conclusiones
Dart en el futuro
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
La herencia nos permite adquirir las propiedades de una clase ‘Padre’.
La clase hijo entonces tiene las propiedades de la clase ‘Padre’ y además tiene sus propiedades propias, mismas que heredará a sus hijos.
Por ejemplo todas las clases heredan por defecto de la clase ‘Object’ ya que en Dart todo es un objeto, por lo tanto todas las clases de Dart comparten algunos miembros.
Aportes 27
Preguntas 5
Like si en el minuto 3:03 te dio un calambre en el ojo 😄
Un ejemplo sencillo de herencia:
void main() {
Asgardiano thor = Asgardiano()
..nombre = 'Thor Fransisco'
..arma = 'los Rayitos'
..padre = 'señor Odin';
thor.ataque();
thor.familia();
}
class Heroe{
var nombre;
var arma;
void ataque(){
print('$nombre usa como arma $arma');
}
}
class Asgardiano extends Heroe{
var padre;
void familia(){
print('El papi de $nombre es $padre');
}
}
RESUMEN DE LA CLASE
Herencia: Es una propiedad de la programación orientada a objetos. La misma nos permite adquirir los atributos y métodos de una clase padre. Al todas las clases heredar de la clase Object, todas pueden tener por ejemplo el método toString().
class Empleado{
var id;
var nombre;
}
class Chofer extends Empleado{ //La palabra extends indica herencia
bool tieneCamiones;
}
//Cualquier objeto creado a partir de la clase Chofer tendrá también como atributos un id y un nombre, ya que son heredados de la clase padre, Empleado
Por la temática de los Avengers…
void main() {
AsgardianHeroe thor = AsgardianHeroe()
..name = 'Thor Odinson'
..weapon = 'Mjolnir';
thor.attack();
TechHeroe IronMan = TechHeroe()
..name = 'Anthony Stark'
..weapon = 'Nanotechnology Armour';
IronMan.attack();
}
class Heroe{
var name;
var life;
var weapon;
void attack(){
print('Heroe attack!');
}
}
class AsgardianHeroe extends Heroe{
void attack(){
print('Mighty attack!');
}
}
class TechHeroe extends Heroe{
void attack(){
print('Technological attack!');
}
}
Para los que les interese el tema de usar constructores con super()
main(List<String> args) {
Frontend dev = Frontend(1, "Sebastián", 9999999, "Reactjs");
print(
"El dev ${dev.id} llamado ${dev.name} trabaja con el framework ${dev.framework} y gana \$${dev.salary}.");
}
class Developer {
int id;
String name;
int salary;
Developer(this.id, this.name, this.salary);
void calcSalary() => print("This developer earn ${salary * 5.5}.");
}
class Frontend extends Developer {
String framework;
Frontend(int id, String name, int salary, String this.framework)
: super(id, name, salary);
void skill() =>
print("He is a Frontend Developer and works with $framework Framework.");
}
Vehiculo*
Este es el codigo para continuar la practica desafio. Me gusta usar los … puntos para acortar codigo.
main(List<String> arguments) {
Chofer chofer = Chofer()
..id=1
..nombre='roberto'
..salario=100
..calcularSalario()
..buenaConducta();
Cajero cajero = Cajero()
..id=2
..nombre='Angel'
..salario=100
..calcularSalario()
..buenaConducta();
}
class Empleado{
var id;
var nombre;
var salario;
void calcularSalario(){
print('salario del empleado es ${salario * 5.5}');
}
}
class Conducta{
void buenaConducta(){
print('el empleado se comporto correctamente');
}
}
class Chofer implements Empleado,Conducta{
var id;
var nombre;
var salario;
@override
void buenaConducta() {
print('El empleado se comporto inadecuadamente');
}
@override
void calcularSalario() {
print('el salario del empleado es ${salario*5.5}');
}
}
class Cajero implements Empleado,Conducta{
var id;
var nombre;
var salario;
@override
void buenaConducta() {
print('El empleado se comporto adecuadamente');
}
@override
void calcularSalario() {
print('el salario del empleado es ${salario*5.5}');
}
}
Uso de mayúscula en las clases
falto mucho la explicacion de Super()
Me da la impresión que falto la explicación del super() …
Cada clase veo mas utilidad de pasar cursos POO
Vendedor vendedor = new Vendedor();
es lo mismo que?:
Empleado vendedor = new Vendedor():
Si fueran una clase donde se tengan que pasar mas 10 o 20 parametros ?
Como se haria mas dinamico y practico para el codigo ?
main(List<String> args) {
Chofer chofer= Chofer();
chofer.id=1;
chofer.nombre="Roberto";
chofer.salario=100.00;
chofer.vehiculoAsignado="de trabajo";
chofer.CalcularSalario();
vendedor ven =vendedor();
ven.id=2;
ven.nombre="Pedro";
ven.salario=120.0;
ven.venderaCliente();
ven.CalcularSalario();
}
class Empleado{
var id;
var nombre;
double salario;
void CalcularSalario(){
print('El trabajador tiene un salario de ${salario * 5.5}');
}
}
class Chofer extends Empleado{
String vehiculoAsignado;
void manejarVehiculo(){
print('Manejando');
}
}
class vendedor extends Empleado{
String idliente;
void venderaCliente(){
print('Vender .....');
}
}```
genial
muchas gracias por la explicación
Definición de herencia
Código de herencia
Genial!
Se entendio facil
Muy bien explicado el tema 😃
//En dart todo es un objeto ya que hereda de la clase Object, si heredan las funcionalidades de la clase hijo a padre
main(List<String> args) {
Chofer chofer = Chofer();
chofer.id = 1;
chofer.nombre = 'Pedro';
chofer.salario = 100.0;
chofer.vehivuloAsignado = 'de trabajo';
chofer.manejarVehiculo();
chofer.calcularSalario();
Vendedor vendedor = Vendedor();
vendedor.id = 2;
vendedor.nombre = 'Daniel';
vendedor.salario = 120.0;
vendedor.venderCliente();
vendedor.calcularSalario();
}
class Empleado {
var id;
var nombre;
double salario;
void calcularSalario() {
print('El trabajador tiene un salario de ${salario * 5.5}');
}
}
class Chofer extends Empleado {
String vehivuloAsignado;
void manejarVehiculo() {
print('Manejando...');
}
}
class Vendedor extends Empleado {
String idCliente;
void venderCliente() {
print('Vender...');
}
}
No sé si pasare verguenza ajena por lo que voy a decir pero me pueden corregir si estoy equivocado, pero para mi lo que angel está haciendo es una pésima practica de programación, entre que el mismo pone los valores y entre que el instancia el objeto y ni siquiera el usuario es capaz de insertar los datos, yo haría un bucle por cada objeto y que el usuario coloque los datos con un set, además que no enseño como haría el usuario para insertar datos, el curso y el lenguaje están bastante bien… pero hay cosas que no se pueden omitir… no puedes ir al metodo main y hacer ese tipo de cosas, estas escribiendo codigo de más y tienes que modificar todas las variables, digo yo… vamos yo lo haría así pero cada programador es un mundo aparte x.x
Hola
Comparto un ejemplo del código utilizando polimorfismo y variables privadas:
Clase Empleado
/**
* CLASE PADRE - EMPLEADO
*/
class PadreEmpleado{
int _id;
String _nombre;
double _salario;
//Setter
void set setID (int id) => _id = id;
//Getter
int get getID => _id;
//Setter
void set setNombre(String nombre) => _nombre = nombre;
//Getter
String get getNombre => _nombre;
//Setter
void set setSalario(double salario) => _salario = salario;
//Getter
double get getSalario => _salario;
String imprimirPantalla() {
return 'El trabajador ${_nombre}, con el ID ${_id}. \n'
'Tiene un salario de ${_salario * 5.5} colones por semana. \n';
}
}
Clase Chofer
/*
* CLASE HIJO - CHOFER
*/
import 'Herencia_Empleado.dart';
class HijoChofer extends PadreEmpleado{
String _vehiculoAsignado;
//Setter
void set setVehiculo(String vehiculo) => _vehiculoAsignado = vehiculo;
//Getter
String get getVehiculo => _vehiculoAsignado;
//Polimorfismo
@override
String imprimirPantalla() {
return super.imprimirPantalla() + 'Vehículo asignado: ${_vehiculoAsignado}. \n';
}
}
Clase Vendedor
/*
* CLASE HIJO - VENDEDOR
*/
import 'Herencia_Empleado.dart';
class HijoVendedor extends PadreEmpleado{
String _idCliente;
//Setter
void set setIdCliente(String idCliente) => _idCliente = idCliente;
//Getter
String get getIdCliente => _idCliente;
//Polimorfismo
@override
String imprimirPantalla() {
return super.imprimirPantalla() + 'Tipo de clientes asignados: ${_idCliente}. \n';
}
}
Main()
/*
* CONVOCANDO LAS FAMILIA DE CLASES
* PadreEmpleado - HijoChofer - HijoVendedor
*/
import 'Herencia_Chofer.dart';
import 'Herencia_Vendedor.dart';
main(List<String> arguments){
HijoChofer chofer = HijoChofer();
chofer.setID = 45;
chofer.setNombre = 'Ruddy Rudo';
chofer.setSalario = 20000;
chofer.setVehiculo = 'BMW';
print(chofer.imprimirPantalla());
HijoVendedor vendedor = HijoVendedor();
vendedor.setID = 46;
vendedor.setNombre = 'Dart Salas';
vendedor.setSalario = 30000;
vendedor.setIdCliente = 'Japoneses';
print(vendedor.imprimirPantalla());
}
Salida
El trabajador Ruddy Rudo, con el ID 45.
Tiene un salario de 110000.0 colones por semana.
Vehículo asignado: BMW.
El trabajador Dart Salas, con el ID 46.
Tiene un salario de 165000.0 colones por semana.
Tipo de clientes asignados: Japoneses.
Process finished with exit code 0
La herencia te permite usar los métodos de una clase padre en otras clases, también te permite eligir si quieres que un objeto lo tenga y otro no.
Mi código
void main() {
EmpleadoAprendiz aprendiz = EmpleadoAprendiz();
aprendiz.entidad = "Sena";
EmpleadoPlanta empPlanta = EmpleadoPlanta();
empPlanta.Id = 101;
empPlanta.Planta = "Mirolindo";
empPlanta.Salario = 1000.000;
empPlanta.nombre = "Roberto";
}
class Empleado{
var Id;
var nombre;
double Salario;
void calcularSalario(){
print("El trabajador tiene un salario de ${Salario * 5.5}");
}
}
class EmpleadoPlanta extends Empleado{
String Planta;
void trabajando_Planta(){
print("Este empleado esta en la $Planta.");
}
}
class EmpleadoAprendiz{
String entidad;
void EntidadAprendiz(){
print("El aprendiz es de la entidad $entidad");
}
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?