Disfruta de nuestro contenido y eventos por un año a un precio especial

Antes: $179

Currency
$149/año
¡Suscríbete!

🔥 Te quedan 🔥

1D
7H
47M
0S
Curso Avanzado de Java SE

Curso Avanzado de Java SE

Anahí Salgado Díaz de la Vega

Anahí Salgado Díaz de la Vega

Implementando métodos abstractos en Java

5/39
Recursos

Aportes 41

Preguntas 10

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

que mala practica borrar/editar codigo fuera de camara

que complicado el hecho de tener que apoyarte de los comentarios de otros alumnos para poder complementar código del curso! falla tremenda Platzi 😦

Algunos vemos el video mientras editamos nuestro proyecto y hace falta que Anncode mencione que se deben borrar los objetos (aunque si dice que no se necesitan creo que para los menos avanzados si sería necesario mencionarlo ) pequeñita observación :P Por lo demás, excelente!

Mi implementacion de los métodos view() fue un poco diferente ya que preferí hacer las respectivas implementaciones en la clase respectiva. Concretamente hice la validacion de la cantidad de capitulos vistos en la clase Serie pues considero que es el lugar adecuado dentro de la lógica con la que esta estructurada la aplicacion.
Clase Serie

    @Override
    public void view() {
        setViewed(true);
        List<Chapter> chapters = getChapters();
        for (Chapter chapter : chapters) {
            if (chapter.getViewed().equals("No")) {
                setViewed(false);
                break;
            }
        }
    }

Clase Movie

    @Override
    public void view() {
        setViewed(true);
        startToSee(new Date());
        for (int i = 0; i < 100; i++) {
            System.out.println("...You are seeing the " + getTitle() + "...");
        }
        Utils.timeDelay(2);
        stopToSee(new Date());
        System.out.println("\n::YOU JUST SAW::" + toString());
    }

En la clase Chapter no hice ningún cambio pues el comportamiento del metodo view() es exactamente el mismo que en la clase Movie.

**IMPORTANTE: ** En caso que no les funcione la marcada en Visto de las Series, no se preocupen, en el próximo capitulo lo corrigen en el inicio… es llamar al método view() de la clase serie, y en el poner en vista la serie con el método setViewed(true).

Venia del curso anterior pero no habíamos creado la clase AmazonUtil, según veo en la estructura de archivos esta creada dentro de un paquete, para los que vienen del curso pasado tendremos que revisar el código y compararlo con los que esta manejando la profe para poder correr el código correctamente

Bueno pues estuvo super, pero fueron mas modificaciones que las que se enseñaron en el video, menos mal existe el apartado de archivos jeje

Estoy en el minuto 12:37 queriendo hacer correr el programa, e seguido el curso apartir del basico y hay muchos cambios que no se hicieron en el curso basico, piden que solo clone el repo, que simon ahi lo puedo encontrar completo pero se saltaron muuuuuuuuchas cosas en la construccion que si nos estan poniendo en el repositorio y la neta es desesperante 😦

Por alguna razón tras implementar los cambios, no me da ningun error pero tras marcar todos los chapters de 1 serie como vistos la serie no se marca como vista xD, intenté copiar el código y ni aun asi _T

Polimorfismo en su máxima expresión siguiendo los patrones de herencia y abstrayendo las clases según se requiera, excelente clase.😃

Especificamente, porque ahora puedo construir un Film como si fuera un capitulo?

Hay algo que no me está cuadrando, y es que la profesora dice que la variable film que hace referencia al objeto Movie tendrá todos los métodos de dicha clase. Pero eso no sucede realmente, la variable film no tiene acceso a todos los métodos de Movie, solo los de Film.

pues creo que ya esta arreglado lo de que “hizo código fuera del video” por que a mi me funcionó perfecto todo. Muy buena clase!

Al crear un objeto de la clase Film con las características de un Chapter me dí cuenta que dicho objeto no tiene acceso a los Getters y Setters de Chapter. ¿Eso quiere decir que tengo que declarar los Getters y Setters en la clase abstracta? #seMeOcurrióEnElBaño

Excelente 😃

habia visto polimorfismo antes
pero en esta clase quedo mas que resuelto
gran clase!! 😃

Excelente clase, muy bien detallado lo que es el polimorfismo

Excelente clase

Film film = new Movie(…);
Esto es lo que viene siendo un casteo de objeto no?

Clase increible, clara, con un ejemplo completo. Gracias

Una forma para poder instanciar un objeto a partir de nuestra clase abstracta es creando un método static en nuestro main y pasar por parámetro nuestra clase abstracta y en la implementacion podemos poner el nombre de la ClaseAbstracta.nombreDelMetodo en ejemplo en el proyecto seria asi:

public static void  allView(Film abstractClass){
abstractClass.view();
}

Leyendo los comentarios me di cuenta que muchos tienen problema con seguir el curso usando Intellij IDEA. Les dejo mi repositorio allí se encuentra el código base para iniciar este curso usando este IDE.

https://github.com/IngJuanMaSuarez/AmazonViewer

Solo descargan o clonan el repositorio, abren Intellij IDEA, seleccionan la opción de “Open”, buscan la carpeta descargada y descomprimida y listo.

muy buena clase y excelente explicación!!!

¿Hicieron cambios a la estructura del proyecto?
Avisenme

Esta clase ha estado genial, gracias anncode, muy bueno el curso

Excelente!!

Hola, ¿por que en “movie” no figura abstract, si se esta heredando de la clase abstracta “film”? … si desean pueden ir al vídeo de “4) Clases Abstractas” y revisar el la rspta del 1er comentario. Gracias

Excelente clase, salio muy bien mi implementacion anncode. Solo un dato en NetBeans tuve que comentar la siguiente linea de código

throw new UnsupportedOperationException("Not supported yet.");

Que se generaba al implementar el método view(), me daba error al ejecutar el programa.

 @Override
    public void view() {
        setViewed(true);
        Date dateI = startToSee(new Date());
        for(int i=0; i<1000;i++){
            System.out.println("..............");
        }
        //Terminamos de verla
        stopToSee(dateI, new Date());
        System.out.println();
        System.out.println("Viste :"+toString());
        System.out.println("Por: " + getTimeViewed() + " milisegundos");
        //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

Excelente clase.

Excelente Clase de Implementacion.

Yo tengo una duda, las clases no son una representación abstractas de modelos tangibles o intangibles del mundo real, creo a mi criterio que estos son parches del lenguaje para poder resolver algo tan natural como programar una restriccion

Hola, estuve implementando el código nuevo del vídeo pero cuando iba a a ver algún capítulo me daba un error en la consola.

En mi caso estaba trabajando con la versión del proyecto del curso anterior, por lo visto me falto implementar algunas cosas, pero al hacer las modificaciones y ajustes con el código en la carpeta de archivos todo va excelente. Atentos con esos detalles.

Excelente clase

Me encata java por estas cosas!!!

Excelente, seguimos avanzando.

Muy buena clase, hay que darse el tiempo de entender cada cosa.

Cómo se hace seguimiento al valor que van tomando las variables, por ejemplo la del contador de chapters? o cualquier otra variable, es para simular una prueba de escritorio.
Gracias!!!

No sé porque pero los programas de consola me gustan más que los de interfaces gráficas

Excelente explicación instructora Anahí, para las personas que tenga problemas con el código, descarguen el proyecto original en la pestaña archivos y enlaces, ya que se realizaron varios cambios en las clases Serie y Chapter para que los añadan.