Crea una cuenta o inicia sesi贸n

隆Contin煤a aprendiendo sin ning煤n costo! 脷nete y comienza a potenciar tu carrera

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 clases abstractas al proyecto

3/40

Aportes 47

Preguntas 11

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

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 鈥淥pen鈥, buscan la carpeta descargada y descomprimida y listo.

Donde est谩 la clase Report???
No existe ni el paquete en ela rama que desdcriben en el enlace al proyecto en Github鈥

Les comparto un ejemplo:

public class MyClass {
    public static void main(String args[]) {
    
        //INSTANCIAS DE LAS CLASES
        Pikachu pikachu = new Pikachu("Pikachu");
        Charmander charmander = new Charmander("Charmander");
        
        pikachu.ataqueEspecial();
        charmander.ataqueEspecial();
        
    }
}

//CLASE ABSTRACTA POKEMON (PRIMER NIVEL)
abstract class Pokemon {
    public abstract void ataqueEspecial();
}

//CLASES ABSTRACTAS QUE HEREDAN DE POKEMON (SEGUNDO NIVEL)
abstract class Electrico extends Pokemon {
    public abstract void ataqueEspecial();
}

abstract class Fuego extends Pokemon {
    public abstract void ataqueEspecial();
}

//CLASES QUE HEREDAN DE ELECTRICO Y FUEGO (TERCER NIVEL)
class Pikachu extends Electrico {
    
    private String name;
    
    public Pikachu(String name) {
        this.name = name;
    }
    
    public void ataqueEspecial() {
        System.out.println(name + " usa Impact Trueno!!");
    }
}

class Charmander extends Fuego {
    
    private String name;
    
    public Charmander(String name) {
        this.name = name;
    }
    
    public void ataqueEspecial() {
        System.out.println(name + " usa Lanzallamas!!");
    }
}```

Hay muchas forma de abrir el proyecto, yo lo abr铆 con NetBeans IDE 8.2, Cree un proyecto java, y luego copie toda la carpeta y sub carpeta que se encuentra de src e importe el .jar que se necesitaba el cual mkfile.jar.

Hola, para los que quiere iniciar este curso y vienen del b谩sico del JAVA SE utilizando Intellij y tienen problemas con la carpeta makefile.jar, lo que deben hacer es lo siguiente:

  1. descargar el proyecto de git o de la clase.
  2. abrirlo desde intellij
  3. click derecho en proyecto
    4 click en module project setting
    5 Modules - dependencies
  4. chulear la carpeta .jar
  5. darle click y cambiar el path de la carpeta por la direcci贸n de la que tienen en su pc
  6. aplicar y ya est谩

驴Por qu茅 hay diferencias entre el c贸digo final del Curso B谩sico de Java SE y el del comienzo del Curso Avanzado?
驴C贸mo es que, por ejemplo, cambi贸 la forma de leer la respuesta del usuario en el menu?
En el final del Curso B谩sico hab铆a quedado as铆:

			// Leer Respuesta usuario
			Scanner sc = new Scanner(System.in);
			int response = Integer.valueOf(sc.nextLine());
			
			if(response == 0) {
				showMenu();
			}

En el inicio del Curso Avanzado aparece asi:

			// Leer Respuesta usuario
			int response = AmazonUtil.validateUserResponseMenu(0, movies.size());
						
			if(response == 0) {
				showMenu();
				break;
			}

Resulta confuso. 馃槮

PROYECTO ANTERIOR EN IDE INTELLIJ IDEA
https://github.com/wpbreak/AmazonViewer.git

Creo que la mayor utilidad que se le puede dar a una clase abstracta es emplear los m茅todos declarados como abstractos dentro de los definidos, de esa forma se pueden realizar procesos que involucren dichos m茅todos abstractos sin importar que sean diferentes para cada hijo.

public abstract class RealizarOperacion {
	private int resultado;
	private int constante1;
	private int constante2;
	
	public abstract int operacion(int a, int b);

	public RealizarOperacion(int constante1, int constante2) {
		this.constante1 = constante1;
		this.constante2 = constante2;
	}

	public void mostrarResultado() {
		resultado = operacion( constante1, constante2);
		System.out.println(resultado);
	}

	publid int getResultado() {
		if ( resultado == null ) {
			resultado = operacion( constante1, constante2);
		}
		return resultado;
	}
}

public class Suma extends RealizarOperacion {
	public Suma (int constante1, int constante2){
		super(constante1, constante2);
	}

	@Override
	public int operacion(int a, int b) {
		return a + b;
	}
}

public class Resta extends RealizarOperacion {
	public Resta (int constante1, int constante2){
		super(constante1, constante2);
	}

	@Override
	public int operacion(int a, int b) {
		return a - b;
	}
}

Luego, en el main o donde lo quieras usar podr铆as hacer algo as铆:

Suma cincoYcinco = new Suma(5,5);
cincoYcinco.mostrarResultado();

Resta seisYseis = new Resta(6,6);
int respuestaResta = seisYseis.getResultado();
System.out.println(respuestaResta);

El ejemplo es muy b谩sico y poco 煤til, pero espero haber logrado dar a entender la gran ventaja e importancia de estas clases abstractas.

Bueno ir茅 aprendiendo, pero me gusta mucho c贸mo Anah铆 explica.

Las clases abstractas solucionan las limitaciones de la herencia y las interfaces.

Excelente Clase, muy claro con las clases abstractas

pude importar el proyecto para intellij idea, si alguien necesita ayuda con eso mandeme msj.

Hola buenas noches tengo un problema cuando descargo el archivo de GitHub no se puede abrir en NetBeans 11.3 any idea?

Habr谩 alg煤n problema si descargo el c贸digo de Anncode (que fue hecho en eclipse) y yo trabaj茅 con Netbeans?

Los recursos de la clase estan puestos en Binario y no en texto plano.

En mi forma de ver la utilidad de las clases abstractas son esos m茅todos sin implementacion,{cuerpo de declaracion} que no podr铆a heredar de las interfaces, y que si quer铆a hacer uso , tenia que inyectar mi interfaz y sobrescribir el m茅todo. Ahora, si mi Super clase hereda de la clase abstracta, esos metodos los puedo llamar tanto en mi Super clase como las dem谩s Sub clases.

  • Utilidades:

  1. Refactorizar mi programa a nivel de c贸digo(m茅todos)
  2. Refactorizar mi programa a nivel de (clases) No necesito implementar una hoja de interfaz
  • Desventajas:

  1. Obligatorio tienes que implementar tus m茅todos abstractos en tu 谩rbol de herencia
  2. No puedo hacer multiple herencia como en las interfaces

Cree un repositorio del c贸digo inicial de este curso:

https://github.com/JordyAI/java_avanzado_platzi/

Recuerden cambiar a rama Master, es la versi贸n inicial.

Para los que tienen problemas pasandolo a IntelliJ, simplemente creen un nuevo proyecto java se pasan las clases de la carpeta src y File/Project Structure / Modules /Dependencies/ adjuntan el JAR donde lo tengan, arreglan los imports del main y listo!

Quisiera que actualizaran los cursos con java 11 e ir pensando en java 17

Como conectar tu github a intellij
https://programmerclick.com/article/23652067371/

intente por git pero medio muchos errores me fue mas facil desgar el zip y abrirlo importandolo

Interesante las Clases Abstractas.!!

excelente explicaci贸n!!!

Ahora entiendo por que no hacerlo en la de IVisualizable!

Qu茅 buena explicaci贸n.
Gracias Anah铆

Chicos estoy haciendo el curso con el IDE net beans, al importar el proyecto me sale " no netbeans project added锘 " Alguien sabe como importarlo correctamente a net beans?

muy buena explicacionn

Muy buena explicaci贸n.

Tengo una duda鈥 Porque no define el metodo view() en la clase padre y luego las sobreescribe en las clases hijas, porque hay la necesidad de ponerlas abstractas?

El curso b谩sico no esta disponible como se hace si pague por el curso y no lo puedo ver ?

Genial 馃挭馃徑

Hola no encuentro el curso anterior donde se hizo el proyecto de amazon view alguien me podria pasar el link asi hago primero ese curso. Desde ya muchas gracias!

he aprendido muchas cosas

wow aprendiendo demaciado 馃槂

hasta aqu铆 es que yo entiendo java.

Esa estructura de paquetes no se ve en el curso B谩sico de Java, parece no haber correlatividad entre ambos cursos alguien podr铆a aclararme un poco por favor?

Excelente clase la explicaci贸n muy buena

Exelente clase

Super 馃槂 gracias

Genial.

Estupendo, comenzamos a utilizar clases abstractas para hacer el c贸digo del proyecto m谩s eficiente.

Que mal que hay que haber visto el curso Basico antes de comenzar este ya que tal curso ya no pertenece a la ruta de aprendizaje de Desarrollo con Java, es muy confuso para mi de esa manera.

hola comparto el repo del proyecto original del anterior curso.here

Tengan presente que tienen una version de JDK v谩lida para este proyecto. Si no es el caso, en eclipse abren el proyecto al abrir la carpeta:
File -> Open from file system -> open AmazonViewer

Dan clic derecho en la carpeta y van a propiedades

cick en Java build path, libraries. borran la libreria presente y a帽aden la que tienen en su equipo

No comprendo en el curso b谩sico no est谩bamos usando eclipse sino InteliJIdea y no era ese proyecto.

Estoy usando JAVA peor en Netbeans, como lo puedo importar?