En serio, no sé cómo lo haces. Estoy haciendo el curso de java para luego seguir con Android, y aunque ahora lo sigo por la web, empecé a seguirte el canal por aquí, y cada día me salen prácticamente dos o tres vídeos nuevos, alucino mucho la verdad. Muchas gracias por el trabajo que te pegas
@juanpablocortezmosquera894611 ай бұрын
Juan, veo este curso por 3 vez y no dejo de sorprenderme! Que bien enseñas y de hecho se me ha pegado mucho de tu metodología de profesor a la forma como enseño a veces cuando doy clases.
@MegaDanni964 жыл бұрын
Tus videos son los mejores de la web, gracias.
@danpar70454 жыл бұрын
Te felicito por tu explicación sobre clases. Sos muy claro. Muchas gracias por tu gra aporte.
@alejandrovasquez67515 жыл бұрын
No tardé mucho en realizar el ejercicio, no hubo errores de sintaxis y tanto la herencia como el polimorfismo funcionó a la perfección. Como siempre, un millón de gracias!!
@pumpdoriloco9153 жыл бұрын
Amo este canal
@ladyprincs32024 жыл бұрын
Maravilloso el ejercicio practico, Te lo agradecemos enormemente porque nos permite reforzar lo que nos has enseñado. Muchas gracias, de corazón! En la cuarentena he aprendido muchísimo gracias a ti! Estoy loca por seguir aprendiendo de este nuevo mundo que se ha abierto ante mis ojos.
@francorolon79175 жыл бұрын
Hoy llegue a este video.! Lo empece la semana hace unas semanas. La verdad buenísimo el curso espero con ansias el siguiete video.
@skdante1005 жыл бұрын
Genial me encantan tus videos, soy fan de muchos de los temas que has mencionado. Me gustaria que agregaras uno de Vue :)
@ghuztavorenteria61425 жыл бұрын
Gracias por todo, espero con ansias el curso de django
@juliorenemendezsegura13964 жыл бұрын
Felicidades por tan buen curso!!! Soy relativamente principiante en esto de la programación y me he involucrado en varias charlas sobre POO con otros programadores (algunos con algo de experiencia), y que básicamente iniciaron y continúan en Visual FoxPro. Me llama mucho la atención que tienen la percepción casi total de que "LA POO ES PORQUE, SGÚN ELLOS, LOS OBJETOS SON LOS BOTONES, LAS VENTANAS, LOS LISTBOX, ETC." Agradecería mucho si pudiera hacer una aclaración a esto pues con un compañero que está muy arraigado a esta idea ESTAMOS SIGUIENDO ESTE CURSO y me gustaría mucho que alguien con tan buena didáctica como Ud. pudiera dejarlo bien claro. Saludos y siga adelante con esta buena causa. Buenísimo!!! (PD Aquéllos que dominan bastante el tema, disculpen la molestia por esta petición de principiantes, abrazos).
@Masitx995 жыл бұрын
Muy bueno el video muchisimaa gracias
@francovedia5584 Жыл бұрын
Gracias.
@Francisco-rh5qg5 жыл бұрын
Mil gracias hermano.
@cdv883 жыл бұрын
Excelente curso. No se en España, pero por aquí en México piden mucho en los empleos c#, .NET con Angular, mi duda es si tienes pensado en algún momento hacer uno de Angular. Saludos
@cristiana80253 жыл бұрын
Ya se te cumplio, ya lo empezó
@claudiooc19765 жыл бұрын
Gracias, como siempre muy didactico
@txc10335 жыл бұрын
Te felicito por el curso muy bien explicado
@maxi53005 жыл бұрын
Muy bueno lo del ejercicio. Saludos
@georgeestebanrojascastillo65752 жыл бұрын
LIKE: por un CURSO de EJERCICIOS DE POO.
@uzumakimikey43643 жыл бұрын
Buen video
@mnl14 жыл бұрын
Antes de nada agradecerte mucho tu dedicación y tu compromiso con cada uno de los cursos que haces. Siempre los terminas y son muy completos. Solo quería hacer una pregunta sobre el protected. Si un método en una clase es protected o private ¿No es accesible para los objetos o instancias que se creen de esa clase? Y si esto es así, ¿entonces estoy obligado a hacer estos métodos public para poder usarlos en los obejtos? Muchas gracias Juan y un gran saludo desde Canarias.
@Jusilus3 жыл бұрын
Por si alguien tiene dudas. Supongamos que tenemos la clase Mamifero con dos atributos: private int patas; private bool pelo; y tres métodos: public virtual void Pensar() { Console.WriteLine("Toy pensando como mamífero."); } public int GetPatas() { return this.patas; } public bool IsPelo() { return this.pelo; } Ahora creamos una clase Humano que herede de Mamifero. Si, desde main, instanciamos Humano: Humano david = new Humano(); veremos que humano ha heredado los campos y los métodos. Si en Mamífero cambiamos un método a private la clase Humano ya no lo hereda. Si en Mamífero damos valores a los campos private int patas = 4; private bool pelo = true; y ejecutamos Console.WriteLine(david.GetPatas()); Console.WriteLine(david.IsPelo()); veremos que la clase Humano hereda los valores, también. Si queremos que Humano tenga sus propios campos y estos sus propios valores, deberemos otorgarle sus propios campos e inicializarlos: private int patas = 2; private bool pelo = false; Además, habrá que añadir los métodos GetPatas() e IsPelo() para poder acceder a ellos como Humano. Tal y como ha explicado Juan, habrá que usar el operador new o virtual + override (el propio VS ya avisa de que se puede mejorar el código).
@ELGOATRD5 жыл бұрын
Excelente video fuera bueno que dejaras ejercicio continuamente en los vídeos!!!
@pildorasinformaticas5 жыл бұрын
No me dan las 24 horas del día para eso. Pero en los cursos tutorizados de mi portal www.pildorasinformaticas.es hay ejercicios. Y este curso estará en breve en la zona de tutorizados. Un saludo!
@thebeginner7759 Жыл бұрын
Tengo una pregunta, como hago que una variable/metodo no se herede pero que en otra clase sí?
@Daniel-ks8pe5 жыл бұрын
Te planteas hacer tutoriales de unity ( no se si con esta pregunta la cago porq solo se q unity va con un lenguaje q no se si es unico o es conpatible con otros ) gracias
@franklinsena28434 жыл бұрын
este curso te sirve para usar c# en Unity ya que unity usa por defecto Visual Studio como IDE para programar tus proyectos.
@TonicoBonico2 жыл бұрын
Like a boss.
@roylinrodriguez96794 жыл бұрын
No se si más adelante en el curso hablaran de eso pero quiero preguntar si, usando un método de acceso getter se puede acceder a campos de clase private, puedo acceder a métodos privated con métodos de acceso getter??
@borrego90224 жыл бұрын
Tu pregunta es algo confusa... y bueno te responderé con lo que se. Creo que las clases prívate no pueden ser accesibles desde ninguna otra clase. Por lo cual tampoco tendrán acceso a sus métodos y a sus variables o constantes. O puede que al momento de colocar prívate en tu clase si puedas acceder a ella desde cualquier otra clase, pero siempre y cuando sea una clase de tu mismo proyecto. Ya que podrías tener dos proyectos o más bien dos archivos que compartan cierta información entre ellos... pero si una de tus clases es prívate no podrás acceder a ella más que desde el mismo archivo al que pertenece o en el que está. (No estoy muy seguro sobre las clases prívate, aunque creo que pueden ser alguna de esas dos) Y sobre los métodos “prívate”, si puedes acceder a ellos,siempre y cuando al menos uno de los métodos de tu clase sea de de tipo “public” Ya que el método de acceso “prívate” hace que puedan acceder a ese método pero solo los otros métodos que pertenezcan a la misma clase. Aunque... ahorita hablando con el tema de la herencia, no se si eso cambie algo. Supongo que no
@El_Facheras Жыл бұрын
//METODO PRIVADO private string GetNombre() { return nombreSerVivo; } //Propiedad getter publica public string getName { get { return GetNombre(); } }
@memedance35356 ай бұрын
@jeremiasramos48875 жыл бұрын
Gracias, continue siere de python com curso django
@kevinhernandezmonzalvo55393 жыл бұрын
Aquí mi propuesta, sin mucho detalle en instrucciones: namespace Ejercicio { class Program { static void Main(string[] args) { Coche Coche = new Coche(); Avión Avión = new Avión(); Console.WriteLine(Coche.GetInfoVehículo("coche")); Console.WriteLine(Avión.GetInfoVehículo("avión")); Coche.Conducir(); Avión.Conducir(); } } class Vehículo { public Vehículo(string vehículo) { PuedeTranpsortar = true; TieneMotor = true; if (vehículo == "coche") { TieneRuedas = true; TieneAlas = false; } if (vehículo == "avión") { TieneRuedas = false; TieneAlas = true; } } protected void ArrancarMotor() { Console.WriteLine("El vehículo puede arrancar el motor"); } protected void PararMotor() { Console.WriteLine("El vehículo puede parar el motor"); } public virtual void Conducir() { Console.WriteLine("Los vehículos pueden conducirse"); } public string GetInfoVehículo(string vehículo) { return ($"Información del vehículo: {vehículo} "+ "Puede transportar: "+PuedeTranpsortar +" Tiene Motor: "+ TieneMotor+" Tiene Ruedas: "+TieneRuedas+" TieneAlas: "+ TieneAlas); } private bool PuedeTranpsortar; private bool TieneMotor; private bool TieneRuedas; private bool TieneAlas; } class Avión : Vehículo { public Avión():base("avión") { } public override void Conducir() { Console.WriteLine("El Avión se conduce en el aire"); } } class Coche: Vehículo { public Coche():base("coche") { } public override void Conducir() { base.Conducir(); { Console.WriteLine("El Coche se conduce en tierra"); } } } }
@alphaalfre2 жыл бұрын
👀
@pepetv25664 ай бұрын
mi codigo: using System; using System.Drawing; using System.Reflection; namespace Herencia_5 { internal class Program : Object { static void Main(string[] args) { Avion miAvion = new Avion("A-29B Super Tucano", "Verde oscuro"); Coche miMercedes = new Coche("Mercedes-Benz Clase E (W124)", "Gris"); Vehiculo[] vehiculos = new Vehiculo[2]; vehiculos[0] = miAvion; vehiculos[1] = miMercedes; Console.WriteLine("Avión"); Console.WriteLine(miAvion.Modelo()); Console.WriteLine(miAvion.Color()); miAvion.ArrancarMotor(); vehiculos[0].Conducir(); miAvion.Aterrizaje(); miAvion.PararMotor(); Console.WriteLine(" Coche"); Console.WriteLine(miMercedes.Modelo()); Console.WriteLine(miMercedes.Color()); miMercedes.ArrancarMotor(); vehiculos[1].Conducir(); miMercedes.Estacionando(); miMercedes.PararMotor(); } } class Vehiculo { private string modelo; private string color; public Vehiculo(string modelo, string color) { this.modelo = modelo; this.color = color; } public void ArrancarMotor() { Console.WriteLine("El motor esta arrancando"); } public void PararMotor() { Console.WriteLine("El motor esta parando"); } public virtual void Conducir() { Console.WriteLine("Voy conduciendo"); } public string Modelo() { return "Nombre del modelo: " + modelo; } public string Color() { return "Color: " + color; } } class Avion : Vehiculo { public Avion(string modelo, string color) : base(modelo, color) { } public override void Conducir() { Console.WriteLine("Voy conduciendo por encima de las nubes"); } public void Aterrizaje() { Console.WriteLine("Estoy aterrizando"); } } class Coche : Vehiculo { public Coche(string modelo, string color):base(modelo, color) { } public override void Conducir() { Console.WriteLine("Voy conduciendo en la carretera"); } public void Estacionando() { Console.WriteLine("Me estoy estacionando"); } } }
@nicolas2008alcubo5 жыл бұрын
using System; namespace EjercicioHerencia001 { class Program { static void Main(string[] args) { Avion miACME = new Avion("ACME"); Coche miSandero = new Coche("Renault Sandero"); miACME.arrancarMotor(); miACME.conducir(); miACME.pararMotor(); miSandero.arrancarMotor(); miSandero.conducir(); miSandero.pararMotor(); Console.WriteLine(); Console.BackgroundColor = ConsoleColor.DarkYellow; Console.ForegroundColor = ConsoleColor.DarkBlue; Console.Write("PRESIONA CUALQUIER TECLA Y NO VERAs mas este rollo..."); Console.ReadKey(); } } class Vehiculo { public Vehiculo(String marca) { this.marca = marca; } public void arrancarMotor() { Console.ForegroundColor = ConsoleColor.DarkGreen; Console.WriteLine("El vehículo " + marca + " ha arrancado el motor"); } public void pararMotor() { Console.ForegroundColor = ConsoleColor.DarkRed; Console.WriteLine("El vehículo " + marca + " ha parado el motor"); } public virtual void conducir() { Console.ForegroundColor = ConsoleColor.Magenta; Console.WriteLine("Conducción del vehículo"); } private String marca; } class Avion : Vehiculo { public Avion(String marcaAvion) : base(marcaAvion) { } public override void conducir() { Console.ForegroundColor = ConsoleColor.DarkYellow; Console.WriteLine("Os digo que conducir un avión es complicado"); } } class Coche : Vehiculo { public Coche(String marcaCoche) : base(marcaCoche) { } public override void conducir() { Console.ForegroundColor = ConsoleColor.DarkYellow; Console.WriteLine("¡Estoy conduciendo a 240 km/h. Jajaja!"); } } } Ahí funciona todo bien, lo único que me da errores al querer crearme un array de tipo Vehiculo llamado misVehiculos y deseo hacer algo así: misVehiculos[0]=miACME; misVehiculos[1]=miSandero; Me pone error que dice "Vehiculo es tipo, que no es válida en el contexto indicado". Si lo puedes explicar en el próximo vídeo, bárbaro. Saludos, Juancito. Nicolás Matías Funtalas.
@francorolon79175 жыл бұрын
Yo lo hice asi Vehículo[ ] misVehiculos = new vehículo[2]; Coche miCoche = new Coche("modelo"); misVehiculos[0] = miCoche;
@johanpalaciose3 жыл бұрын
Aquí mi solución al ejercicio using System; namespace EjHerencia { class Program { static void Main(string[] args) { Coche miCarro = new Coche(false); Console.WriteLine("Mi coche objeto en acción"); Console.WriteLine($"El estado del motor es: {miCarro.getMotorEstado()}"); miCarro.arrancarMotor(); miCarro.acelerar(); miCarro.frenar(); miCarro.conducir(); miCarro.pararMotor(); Avion miAvion = new Avion(false); Console.WriteLine("Mi avión objeto en acción"); Console.WriteLine($"El estado del motor es: {miAvion.getMotorEstado()}"); miAvion.arrancarMotor(); miAvion.despegando(); miAvion.aterrizar(); miAvion.conducir(); miAvion.pararMotor(); } } class Vehiculo { public Vehiculo(bool motorEstado) { this.motorEstado = motorEstado; } public void arrancarMotor() { Console.WriteLine("El motor ha sido arrancado"); motorEstado = true; } public void pararMotor() { Console.WriteLine("El motor ha sido detenido"); motorEstado = false; } public virtual void conducir() { Console.WriteLine("Conduciendo el vehiculo"); } public bool getMotorEstado() { return motorEstado; } private bool motorEstado; } class Avion : Vehiculo { public Avion(bool estadoAvion) : base(estadoAvion) { } public void aterrizar() { Console.WriteLine("El avion esta aterrizando"); } public void despegando() { Console.WriteLine("El avion esta despegando"); } public override void conducir() { if (getMotorEstado() == true) Console.WriteLine("Conduciendo el avión"); else Console.WriteLine("El motor esta apagado, no puedes volar"); } } class Coche : Vehiculo { public Coche(bool estadoCoche) : base(estadoCoche) { } public void acelerar() { Console.WriteLine("El coche esta acelerando"); } public void frenar() { Console.WriteLine("El cohce esta frenando"); } public override void conducir() { if (getMotorEstado() == true) Console.WriteLine("Conduciendo el carro"); else Console.WriteLine("El motor esta apagado no puedes manejar"); } } }
@Lucaskpp74 жыл бұрын
Le agregue unas pavadas: class Program { static void Main(string[] args) { Vehiculo myAuto = new Coche(); Avion myAvion = new Avion(); Vehiculo myavion2 = new Avion(); myAuto.PrenderMotor(); myAuto.conducir(); myAuto.ApagarMotor(); myAuto.infoDetalles(); Console.WriteLine("*-*-*-*-*-*-*-*"); myAvion.PrenderMotor(); myAvion.conducir(); myAvion.ApagarMotor(); myAvion.detallesAvion(); Console.WriteLine("*-*-*-*-*-*-*-*"); } } class Vehiculo { protected string detalles = "Precisan de un motor"; protected string detalles3 = "Distintas dificultades para pilotar"; public virtual void PrenderMotor() { Console.WriteLine("Se ha encendido el motor"); } public virtual void ApagarMotor() { Console.WriteLine("Se ha apagado el motor"); } public virtual void conducir() { Console.WriteLine("Conduciendo"); } public void infoDetalles() { Console.WriteLine(detalles + "|||" + detalles3); } } class Coche:Vehiculo { public override void PrenderMotor() { Console.WriteLine("Se ha encendido el motor del auto"); } public override void ApagarMotor() { Console.WriteLine("Se ha apago el motor del auto"); } public override void conducir() { Console.WriteLine("Conduciendo el Auto"); } } class Avion:Vehiculo { public void detallesAvion() { detalles = "Precisan de un motor mas importante"; detalles3 = "Entrenamiento profesional para pilotar"; Console.WriteLine(detalles+"|||"+detalles3); } public override void conducir() { Console.WriteLine("Conduciendo el Avion"); } }