En este vídeo vemos cómo dar diferentes estados iniciales a los objetos utilizando la sobrecarga de constructores. Para más cursos, ejercicios y manuales visita: www.pildorasinf...
✅✅ ✅ ✅ ✅ Todos mis cursos gratuitos 👉 www.pildorasinformaticas.es ✅✅ ✅ ✅ ✅ 🚀 ¿Quieres ejercicios? ¿Quieres más temario? 👉 www.pildorasinformaticas.es/course/java-tutorizado/🚀 🚀 ¿Quieres que te resuelva las dudas de Java? 👉 www.pildorasinformaticas.es/course/java-tutorizado/ 🚀 💥💥💥 Siempre seguiré subiendo cursos gratuitos por aquí. Gracias a todos por seguirme. 💥💥💥
Solo un apunte. En el momento 10:06 comentas que se pueden crear tantos constructores como uno quiera siempre y cuando no se repitan el número de parámetros. Realmente la condición no es el número, sino el número y el órden de tipos de parámetros. Se puede tener un constructor que reciba 2 (String, int) y otro que también reciba 2 (int, String) y además otro con otros 2 (String, String) y otro con otros 2 (int, int). Pero si se tienen estos 4... no se podría hacer otro constructor más que sea tipo (String, String) pero si otro más que sea (doublé, String).Lo que no debe coincidir es la conjunción de 3 factores en cuanto a los parámetros: (nº, tipo y orden)
+Jesus Romero Hola !! ¿Dije eso? Si es así, es correcto lo que dices. Y también válido no solo para constructores sino también para métodos. Gracias por la corrección. Un saludo
Después de terminar mi carrera creí que la programación no era lo mio, pero creo que fue la calidad de la educación la que me orillo a pensar así, si usted hubiese sido mi profesor de programación, ya estaríamos en un grado muy avanzado de programación, muchísimas gracias por su paciencia y tiempo para poder llevar acabo estos vídeo-tutoriales teórico-prácticos, larga vida a pildorasinformaticas.
Me gustaría expresar mi gratitud y admiración. Llevo vinculado al mundo de la enseñanza toda la vida. He estudiado diversas disciplinas tecnológicas, artísticas y de humanidades y pocas veces he encontrado un material de semejante calidad. Mi mayor reconocimiento a su labor.
Terminando el curso de java, que me parece buenísimo, te hare una donación por todo el tiempo que te tomaste en realizarlo y hacerlo gratuito!! ademas que espero que sigas con este gran trabajo de hacer cursos gratis!!
Muchas gracias por el curso, definitivamente es un gran aporte a la comunidad. Es 2020 y me he propuesto aprender a programar y este curso me ha sido de gran ayuda. De nuevo, mil gracias.
para los que estén leyendo esto les recomiendo ir haciendo anotaciones y esquemas conceptuales para repasar el contenido, yo lo he estado haciendo y me esta sirviendo para aclarar dudas y memorizar mejor.
sigo adelante gracias a Juan un profesor que todo lo urga jij no soy ningún genio y la verdad estoy absorbiendo toda la información con apuntes y las magnificas explicaciones de Juan. esto que nos aporta no tiene precio . Gracias ya por mil quinientas veces jijji estoy fascinado como has llevado todo a un mismo lugar la pizarra a la pantalla esta lleno de indicaciones para no tener duda .
Excelentes vídeos, el método de enseñanza es impecable, los ejemplos son precisos y complementan bien el aprendizaje al oyente, el fin de ensenar se cumple absolutamente.
Muchas gracias por tús videos, eres sin duda el mejor profesor que he visto. Comentarte también, que supongo sabrás, que algunos de tús videos se utilizan en la educación ha distancia de Junta de Andalucía en el CFGS DAM. Se agradece mucho tenerte como referencia. Reitero mi agradecimiento y darte la enhorabuena por tú gran trabajo.
Gracias Juan, soy Edu Hermosilla,otra vez destacan la calidad de tus videos y la minuciosa organizacion de contenidos que facilitan un aprendizaje escalonado y muy bien ensamblado(siempre recordando conceptos ya aprendidos) ,con lo cual me voy a ver obligado a hacerte una pequena donacion( te mereces muxo mas) cuando me venga la paga extra!sigue pf con tus videos.Gracias
Llevo desde el video 1 siguiendote aunque nunca comente gracias por este curso es muy intuitivo y gracias a ti estoy aprendiendo mucho te doy la enhorabuena,sigue asi.
Muy buen curso profe ! Excelentes clases ! Este año veo Java en la universidad y me estoy adelantando con sus clases que son tan viciosas que empecé hace 2 dias y ya voy por esta jajaja. Muchas gracias por tan buenas explicaciones !
Excelente video!!, tengo conocimientos de java, lo he aprendido en la universidad, el problema era que jamás me quedo claro como se utilizaban muchísimas cosas de la POO, gracias a ti, eh aprendido y ahora se el porque de algunas cosas que antes no entendía, muchas gracias por los videos y seguiré siguiendo tu curso (:, así aprenderé y repasaré más.! Excelente video maestro!!
buenas profe, sigo avanzando en el curso y cada vez mas agradecido de entender conceptos que nunca había entendido, de nuevo gracias por el curso, feliz dia
Saludos, debo ser el mas nuevo de los participantes, estoy sorprendido desde que vi el contenido que pretende alcanzar este curso y sentí haber hallado el mapa de un tesoro.. Me verán por acá cada vez que lo permita Dios... Gracias.... Profe....
Adoro estos videos espero y en un video futuro me mandes saludos, eh seguido este curso desde cero y me esta encantado, muchisimas gracias, usted fue la luz al final del tunel, estoy muy orgulloso de aprender con usted, aunque sea a travez de videos, pero enseña mejor que mis profesores en verdad muchisimas gracias, y que bueno que explique todo poco a poco,eso en verdad ayuda muchisimo, deberia ver mi libreta llena de apuntes de usted.
Axel Miguel Vargas Hola !! Pues te saludo y te agradezco que sigas mis vídeos con tanto interés. Espero que a medida que avances tu interés no decaiga y sigas hasta el final. Espero que la libreta tenga suficientes páginas para aguantar todo el curso. Un cordial saludo
No tiene de que preocuparse para eso comprare mas libretas y descuide ahora veo programación como carrera tecnica en mi escuela, pero en un futuro pienso estudiar programación como carrera a si que estos videos me ayudan muchisimo, cuando sea mas avanzado en java, me pasare por sus otros cursos,muchas gracias.
Saludos desde México. Te hago un comentario: Si es posible crear constructores con el mismo número de argumentos, e inclusive con el mismo tipo de variables, solo que deben ser en distinto orden para evitar error, por ejemplo: public Empleado(String nom, double sue, int agno, int mes, int dia){ ... } public Empleado(double sue, int agno, int mes, int dia,String nom){ .... } Lo anterior no marca error. El motivo es entonces que el compilador de java toma en cuenta el numero de parámetros, el tipo de variables y el orden, para ditinguir de qué constructor se trata.
+Ignacio Antonio Jeria Garrido Gracias por seguir mis vídeos. Puedes hacer ambos en paralelo cuando hayas aprendido sintaxis y características de POO en Java. No es necesario que llegues hasta el vídeo 300 de Java para pasar a Android. Un saludo
Gracias por el consejo. De hecho eso mismo me estaba cuestionando ¿qué nivel de conocimiento se necesita para programar en android? Aprendí bucles, condicionales, encapsulamiento, metodos getter/Setter, herencia y no me quiero extender más. Este es uno de mis canales favoritos y yo sería quien tiene que agradecer que subas tan grandiosos videos tío xD Gracias por tu labor, tu esfuerzo por editar los videos (sé lo que es editar un video), esa forma tan clara de trasmitir el conocimiento y bueno agradecer es poco. No soy de esas personas que anda por el mundo de youtube escribiendo comentarios de esta extensión pero esque de verdad no puedo dormir tranquilo sin antes darte las merecidas gracias jaja Saludos desde Chile y estaré atento a tus proximas clases!
Hola! me sorprende lo mucho que estoy aprendiendo en el curso, no esperaba aprender tanto en tan poco. Ver estos videos y hacer programillas se esta convirtiendo en mi nuevo hobby jeje. Estoy deseando llegar la parte de diseño grafico, pero sobre todo llegar a saber lo suficiente para enfrentarme al curso de android con algo de dignidad :). De todos los cursos de programacion que he intentado seguir(a la quinta va la vencida, mas o menos...) este es el mejor que me he encontrado... GRACIAS!!
Hola a los dos, aprovecho el hilo para preguntar, ¿a partir de que clase de Java crees que es posible empezar con el curso de Android? Muchas gracias y un saludo
Buena pregunta... Yo voy por el capitulo 50 y seguire con el curso un poco mas antes de empezar con android. Creo que lo mas importante es entender la programacion orientada a objetos, sobre todo la herencia que se da en el capitulo 42. A lo mejor hay cosas mas importantes a las que aun no he llegado... Personalmente seguire en java hasta que maneje lo suficiente la API de java... Mejor espera la respuesta de Juan, que controla mas que yo :)
Gracias profesor, por momentos entiendo los conceptos pero cuando trato de recordarlos se me complica, pero pienso que con el tiempo y la practica todo se ira aclarando. Estoy pensando que seria bueno a esta altura crearme algunas clases, constructores, variables, etc, empezar a meter un poco de mano yo en eclipse, con lo que nos fue enseñando, asi reafirmo y aclaro conceptos. La practica hace al conocimiento y al entendimiento tambien. Muchas gracias profe Juan, ya se lo he dicho en otro mensaje, es impagable lo que hace, el amor por la enseñanza que tiene se nota, traspasa los monitores de todos los que los seguimos, y eso se ve en los comentarios. un abrazo desde Argentina.
Muy buenas Juan, en primer lugar agradecerte tu magnífica labor. Después de casi 40 sesiones por fin me han quedado claros algunos conceptos elementales de la POO que siempre rebotaban en mi cabeza sin encontrar su sitio. Aunque estoy encantado con tu labor creo que es positivo hacer alguna crítica constructiva así que ahí van un par de comentarios para que sometas a consideración: - Comentarios: sería útil que incluyeras con más asiduidad pequeños comentarios según escribes código (Ej. //Variable que contiene el siguiente identificador). Al final los estudiantes imitamos lo que haces, tu estilo y como bien sabes la importancia de un código correctamente comentado es fundamental para un posterior mantenimiento. - Convención en la nomenclatura de variables, métodos y clases. Hasta ahora he observado que no se sigue una nomenclatura uniforme que por otro lado resulta muy útil a la hora de examinar un código realizado por otros. Por ejemplo el uso de guiones en los nombres de variables y métodos no es práctica muy "elegante" en Java aunque sea perfectamente correcto. Como bien sabes por mantener uniformidad se aconseja que los identificadores en Java compuestos de varias palabras se concatenen poniendo en mayúscula la letra inicial de cada palabra (y para clases incluso la primera palabra): EstoEsUnaClase soyUnMetodo() yoUnaVariable EJEMPLO_DE_CONSTANTE Aunque son detalles menores te lo comento con el fin de aportar y con la mejor de mis intenciones. Sinceramente pienso que eres un estupendo comunicador, lenguaje perfecto, claro y conciso. No das nada por sabido, siempre te pones en la piel del que sigue tu curso, anticipándote a las dudas, no nos aturullas con abreviaturas que nadie entiende pero que visten mucho. En fin, que enhorabuena de verdad, sigue así!!
Volviendo a repasar de forma rápida, lo esencial no se me ha olvidado. Pero va habiendo detalles que aprendo después de 4 años con este lenguaje, aunque un par de ellos de por medio sin tocarlo. El caso es que, el detalle del uso del this para llamar a un constructor desde otro es algo que he aprendido ahora.
excelente esas explicaciones en donde se diferencia un constructor en una clase y la forma en que se pueden utilizar mas constructores como alternativas.
Cuando empleamos en el código el nombre de una variable ya empleada con anterioridad, el compilador elije entre "campo de clase y variable local de método" aplicando la regla de prevalescencia del ámbito más local esto quiere decir que Java usa la variable “más local” disponible en ese punto del programa. Si necesitas usar el mismo nombre entonces si que se utiliza la palabra clave (this.) Muy buenos videos Pildoras !
Muy buenos vídeos, los temas los vuelve fáciles de comprender y en mi opinión solo faltarían algunos ejercicios para reforzar los temas vistos. Saludos desde México
Gracias por el comentario. Los ejercicios lo tengo en "tareas pendientes" desde hace tiempo. Espero poder subir ejercicios algún día (espero que pronto). Un saludo!!
En el vídeo anterior, estuve algo agobiado sinceramente, hay veces que pienso que no avanzo y otras que estoy avanzando demasiado rápido y no sería lo correcto. No sé que decir, digamos que es fácil pero son muchos los conceptos que hay que tener en cuenta. En mi caso, con un ordenador soy capaz pero en la facultad los exámenes son sobre papel y eso no se me da tan bien. Algun consejo? Un saludo! :)
+Kintion Lol Practicar, practicar y después practicar más. No hay secreto. Aprender a programar en un lenguaje como Java (o cualquier lenguaje orientado a objetos de alto nivel) es una tarea que en el mejor de los casos lleva varios años. No se puede pretender aprender a programar en cualquier lenguaje en unos meses. Yo llevo más de 12 años con este lenguaje y no lo domino en su totalidad ni mucho menos. Un saludo
¡Voy a descorchar el champagne que hasta el minuto 9:23 lo he entendido todo a la primera sin tener que pausar ni repetir el vídeo! jajajajaja. Una de cal y otra de arena es esto de la programación, pero bueno, ahí seguimos ;-)
una pregunta voy en el video 40 y aun siento que hay cosas como el for,while if que me cuestan comprender aun que opinas seguir con los videos o retroceder y ejercitar mas eso?
Hola! Muchas gracias por el curso Una pregunta, el operador this dentro de un constructor llama al constructor que tenga su mismo nombre o solo al que coincida con la cantidad y tipo de parametros sin importar como se llame. Gracias!
Con respecto a las clases sin constructor, efectivamente como mencionas en el vídeo, cuando se crea una clase sin constructor, java CREA un constructor por defecto sin parámetros y vació en el cuerpo del constructor, esto lo podemos evidenciar a través de la herencia. Cuando una clase es heredera de otra, en todos los constructores de la clase heredera siempre se hará una llamada implícita al constructor de la clase base como lo demuestra el siguiente ejemplo, evidenciando la creación del constructor por defecto (java versión 11): package pruebas; public class Herencia { public static void main(String[] args) { var heredera = new Heredera(); } } class Base{ public Base(){ System.out.println("Ejecución en clase: " + Base.class.getName()); } } class Heredera extends Base{ } Con resultado en consola: Ejecución en clase: pruebas.Base Al crearse el objeto heredera, este llama al constructor por defecto creado por java y al iniciar la ejecución de dicho constructor, éste llama al constructor de la clase Base.
una pregunta voy en el video 40 y aun siento que hay cosas como el for,while if que me cuestan comprender aun que opinas seguir con los videos o retroceder y ejercitar mas eso?
Me da tristeza saber que ni he llegado al vídeo 100 y cada vídeo tiene menos vistas y likes, si has llegado hasta aquí, hechale ganas carajo, que si esto fuera fácil todo mundo fuera programador......
Hola! ¿Este ejercicio sería un ejemplo de polimorfismo paramétrico? Gracias por tus cursos y enhorabuena por este gran canal!
8 ปีที่แล้ว +1
Buenas tardes!! El curso de momento genial, estoy entendiendo muchos conceptos que no tenia claros del curso que hago a distancia. Una consulta, normalmente trabajo en un mac, pero cuando estoy fuera lo hago desde un portatil w10. He intentado pasar el fichero java y class de lo que hice al mac a las carpetas pertinentes pero falla algo porque no me compila el programa...falta algo? Como lo puedo hacer mas facil este intercambio de ficheros????
Hola !! Utiliza las opciones de importar y exportar de Eclipse. Busca en google "Exportar proyecto Eclipse" y también "Importar proyecto Eclipse". Un saludo!!
Saludos desde Colombia Hola juan, muchas gracias por tan excelente enseñanza, tus explicaciones me resultan más fácil de entender este lenguaje. Me podrias resolver una inquietud? en el video muestras que creaste un arreglo "misEmpleados" que admite variables de diferentes tipos y llenabas el arreglo directamente, como podría llenar ese arreglo por consola? Muchas gracias.
Buena noche. Antes que nada, gracias por los videos. Tengo una duda respecto al Constructor con parametros y sin parametros, cuando se debe usar cada cual ? Si el usuario es quien va a ingresar los datos por teclado (Usando Scanner) habria que usar un constructor sin parametros, correcto ?
El uso de parámetros no depende de si introducimos los datos de una forma u otra. Depende de si nuestro constructor necesitará datos para iniciar el objeto o no los necesitará. En le vídeo 39 en el que estás de momento quédate con la sintaxis y con que un constructor puede recibir parámetros o no. Más adelante y con la experiencia, descubrirás cuándo necesitarás utilizar un constructor con parámetros y cuando no. Un saludo!!
gracias por el curso, otra cosa interesante es que se puede tener 2 constructores de 1 solo parametro pero con diferente tipo de dato ejemplo public Empleado(String nom){ nombre=nom } public Empleado(double sue){ sueldo=sue }
creo que hay que hacer una salvedad y es que uno puede tener todos los constructores que desee incluso con el mismo numero de parámetros lo que si no puede ocurrir es tener dos constructores con el mismo numero de parámetros y que estos sean exactamente los mismos en ambos constructores, eso es lo que verdaderamente genera el error
Francisco Castillo Hola !! No. Java en ese sentido es muy estricto. Lo que puedes hacer para lograr este efecto es crear sobrecarga de constructores: uno sin parámetros, otro con uno, otro con dos, otro con tres etc. Se habla de la sobrecarga de constructores en el curso pero no recuerdo en qué vídeo. Un saludo
Tengo una duda ¿que ocurriria si se realiza una llamada a otro constructor desde una sentencia que no sea la primera del codigo del cuerpo del constructor?
disculpe profe, tengo el mismo problema de la ventana de JOptonpane que me aparece en el escritorio. como lo soluciono, pues veo que usted ya no tiene ese inconveniente. le agradeceria su ayuda
teorias Hola !! A mi hay veces que me aparece detrás de Eclipse y otras veces delante. La verdad es que aún no he dado con la solución a esto que seguro es una tontería. A ver si alguien lo lee y nos ayuda a los dos. Un saludo
tengo una duda profe... un contructor se crea para inicializar un objeto hasta ahí esta todo claro pero cuando el constructor recibe parámetros y esta un método de acceso como set no entiendo la funcionalidad de set por que con los parámetros que recibe el constructor puedo asignarle los valores que yo quiera. muchas gracias
Con el constructor puedes asignarle los valores que quieras a un objeto pero en su inicio. Si después de haber iniciado el objeto quieres cambiar los valores del objeto, necesitas un método setter. Un saludo!!
Si se hace un segundo constructor con los mismos parametros del primero, pero en diferente orden, tambien daria error? Se que medio ridiculo querer hacer dos constructores con los mismos parametros, pero tengo curiosidad.
Da error. No puedes tener dos constructores con el mismo número de parámetros en el mismo programa. Si lo pruebas verás como Eclipse, netBeans o lo que utilices, te marcará error. Un saludo!!
Hola y Gracias a pildorasinformáticas por estos maravillosos video-tutoriales. Aunque no parezca tener sentido, si se puede hacer la sobrecarga del constructor con el mismo número de parámetros e incluso con los mismos tipos, lo que habría que cambiar es el orden, me explico: Constructor 1: public Empleado (String nom, double sueldo, int edad) Consructor 2: public Empleado (double sueldo, String nom, int edad) Los toma como dos constructores diferentes. Dios les Bendiga
para los que que les daba el error en la linea e.subeSueldo(5);.... Exception in thread "main" java.lang.NullPointerException at poo.UsoEmpleado.main(UsoEmpleado.java:65) lo encontre... el problema que tenia yo es que no le había cambiado el número de indice al objeto nuevo o instancia nueva que creamos en esta clase misEmpleado[2]=new Empleado("Antonio Fernandez").......(creo que se diría así) como ven el esta instancia seria el indice 2 dentro de la matriz Empleado, pero debía ser el indice 3 misEmpleados[3]=new Empleado("Antonio Fernandez"); debía ser.......ya que copie y pegue el empleado anterior, para no escribir tanto, solo le cambie el nombre y borre los datos de sueldo y fechas pero olvide cambiar el número de indice... cuando lo vi lo cambie y funciono todo el indice es la posición que tiene la instancia dentro de la matriz y en mi caso tenia dos instancias en la misma posición...lo cual no se como es que te deja, ya que no me marcaba ningún error en el código, pero si me decía que había un parámetro que iba a dar nulo espero les sirva y por supuesto....muchisimas gracias al profe, este curso es un golazo.....estoy e cero aca..nunca había visto nada y estoy entendiendo bien
en el bucle for each o bucle for mejorado, la e ...... for(Empleado e: misEmpleados) { e.subeSueldo(5); viene a ser como i en el bucle for... for(int i=0; i
Hola, primero muchas gracias por el curso. Los vídeos son geniales. Si en el segundo constructor quisiera que el sueldo, año, mes y dia fuesen constantes para poder cambiarlas en un futuro sin tener que tocar más nada de código, podría hacerlo? He probado a ponerlas pero me pide que tienen que ser estáticas. ¿Por qué deben de ser estáticas? Gracias! private final static double sueldoBase = 30000; private final static int agno = 2005; private final static int mes = 01; private final static int dia = 01;
Porque es un método especial que se encarga de establecer el estado de un objeto recién creado, ya luego se definen los métodos que podrán ser accedidos por estos objetos. La sintaxis de java te indica que a estos métodos sí que debes establecer un tipo de retorno.
(Version de Java jre1.8.0_231) Exception in thread "main" java.lang.NullPointerException at poo.Empleado.subeSueldo(Uso_Empleado.java:94) at poo.Uso_Empleado.main(Uso_Empleado.java:40) Solución: inicializar el sueldo en el segundo constructor. public Empleado(String nom) { nombre = nom; sueldo = 0,0; }
Pregunta: ¿el tipo de la variable sueldo en tu código es double ó Double?, podría equivocarme pero seguramente cuando le diste tipo a sueldo, este fue Double. ¿Por que marca exception cuando usas Double y no double?, lo que no te dicen es que las variables no primitivas en realidad son apuntadores a objetos, de tal forma que al no inicializar sueldo de tipo Double, tienes un apuntador nulo y cuando se intenta llamar a subeSueldo, java intenta aplicar una llamada de método (las operaciones aritméticas que se aplican a los objetos Double son en realidad llamadas a métodos) a un apuntador nulo (Exception in thread "main" java.lang.NullPointerException, nótese la excepción, NULLPOINTER) y ahí salta la excepción, si sueldo es double, no hay llamada a un método sino una aplicación aritmética. Cuando no se inicializa un tipo primitivo como int o double, este implícitamente se inicializa a 0, las variables de objeto se inicializan a null, o sea, una variable a objeto no inicializada es un apuntador a null. En general YO (apreciación muy personal) creo que es un error de diseño de java, por una parte te dicen que todo es un objeto, pero tienen tipos primitivos que no los son, así es como se caen en inconsistencias como el caso double, Double (¿por que el lenguaje tiene 2 entidades que supuestamente hacen lo mismo, pero al sustituirlas tienes algunos comportamientos diferentes?). El que exista una clase Double que "imita" al tipo primitivo double es precisamente el intento de minimizar estas inconsistencias, esto es un mal intento de seguir los pasos de lenguajes como Smalltalk que son lenguajes orientados a objetos 100% puros (java no lo es) donde TODO es un objeto, incluyendo al programa mismo.
hola profesor que tal sigo su curso desde 0 muy bueno tengo una duda que quisiera que alguien con experiencia como usted me respondiera porque dicen muchos que java es un lenguaje de moda? veo que muchos dicen que ya no se usa java y que vienen lenguajes mejores usted que piensa? gracias por su tiempo saludos
juan antonio rosas Hola !! Yo llevo oyendo lo mismo desde que empecé con este lenguaje hace más de 10 años. Y aquí sigue. La verdad es que no se si desaparecerá algún día o llegarán nuevos lenguajes que lo sustituyan poco a poco. A día de hoy, en mi país es la tecnología más demandada. No lo digo yo. Se puede comprobar en cualquier portal de empleo tecnológico. Pero bueno, nada es eterno y algún día le sustituirán. A corto plazo no parece. Un saludo !!
juan antonio rosas hola juan, en mi humilde opinion creo que es una tecnologia que tiene aun mucho por delante, pues existen muchas certificaciones sobre java que en otros lenguajes no las hay.
buenas tardes, no se si aun lees los comentarios. soy de republica dominicana, estoy tomando el curso en esta fecha, tengo algunas dudas, serias tan amable de facilitarme tu email para enviarte mis inquietudes?
Disculpe profesor este error me da en el for de sube sueldo: Exception in thread "main" java.lang.NullPointerException at poo.Empleado.subeSueldo(Uso_empleado.java:106) at poo.Uso_empleado.main(Uso_empleado.java:56) por que será ?, una vez quito el for(Empleado e: misEmpleados){ e.subeSueldo(5); } corre sin error pero obviamente no me hace la operación de subir el sueldo. Cabe destacar que el error ocurre cuando agrego el segundo constructor
Comprueba que tu clase se llame Empleado ( y no Empleados o similar) y que el array se llama literalmente misEmpleados. Si es así, copia y pega por aquí todo el código para que lo pueda ver. Un saludo!!
Hola, prueba areglando el 2do constructor por: public Empleado(String nom) { this(nom, 30000, 2000, 01,01); } Ya que en el que tienes es : public Empleado(String nom) { nombre = nom; } el error surge cuando aplicaba el metodo subeSueldo al objeto: misEmpleados[3] = new Empleado("Lourdes Peraza"); Te producia error por no poder hacer la operacion con un valor que esta en null, solo el atributo nombre tenia informacion, los demas atributos estan en null, sin valores. Y con el Constructor nuevo ya te da atributos inicializados con valores.
Hola, a mi me aparecio el mismo problema y lo solucione agregando en al segundo constructor el sueldo = 0.0 ya que me parece que el problema del segundo constructor es que al no asignarle nada a sueldo queda como null y cuando ejecuta subeSueldo el calculo matematico no se realiza ya que la variable sueldo esta en null. public Empleado(String nom){ nombre = nom; sueldo = 0.0; Gracias pildoras informaticas tu curso es excelente
hola pero el this() que lleva los parametro como funciona aqui ja que no es un methodo ni tiene una representacion de classe. ja se que aveces avec es this.varibale y ahora es this().no entiendo que es el this aunque lo uso igual que lo haces. gracias
Hola Boureima Sare, lo que entendí es que this() lo usas para poder usar para usar los parametros de otro constructor ej tenes 2 constructores(uso el ej del video) el primer constructor public Empleado(String nom, double sue, int agno, int mes,int dia) { nombre=nom; sueldo=sue; GregorianCalendar calendario=new GregorianCalendar(agno,mes-1,dia); altaContrato=calendario.getTime(); el segundo constructor public Empleado(String nom) { this(nom,30000,2000,01,01); ese this hace que cuando en el main solo pongas el nombre "Antonio Fernandez" te agregue solo los 30000 y la fecha. o sea this llama al otro constructor, Empleado(String nom, double sue, int agno, int mes,int dia) asi agrega automaticamente los datos fijos 30000,2000,01,01 variable nom lo escribis en el main. espero se entienda saludos
En vez de utilizar el this para el segundo constructor, por qué no se podría hacer así?: public Empleado(String nom) { nombre=nom; sueldo=30000; GregorianCalendar calendario = new GregorianCalendar(2000,0, 1); altaContrato = calendario.getTime(); //this(nom, 30000,2000,01,01); }
✅✅ ✅ ✅ ✅ Todos mis cursos gratuitos 👉 www.pildorasinformaticas.es ✅✅ ✅ ✅ ✅
🚀 ¿Quieres ejercicios? ¿Quieres más temario? 👉 www.pildorasinformaticas.es/course/java-tutorizado/🚀
🚀 ¿Quieres que te resuelva las dudas de Java? 👉 www.pildorasinformaticas.es/course/java-tutorizado/ 🚀
💥💥💥 Siempre seguiré subiendo cursos gratuitos por aquí. Gracias a todos por seguirme. 💥💥💥
Profesor estuve con sobrecarga de trabajo , por ello no pude continuar las clases , pero he vuelto RECARGADO 👍✔👌🦾
instablaster.
Este curso es excelente. También es bueno leer los comentarios ya que aveces hay preguntas y sugerencias muy interesantes.
Solo un apunte. En el momento 10:06 comentas que se pueden crear tantos constructores como uno quiera siempre y cuando no se repitan el número de parámetros. Realmente la condición no es el número, sino el número y el órden de tipos de parámetros. Se puede tener un constructor que reciba 2 (String, int) y otro que también reciba 2 (int, String) y además otro con otros 2 (String, String) y otro con otros 2 (int, int). Pero si se tienen estos 4... no se podría hacer otro constructor más que sea tipo (String, String) pero si otro más que sea (doublé, String).Lo que no debe coincidir es la conjunción de 3 factores en cuanto a los parámetros: (nº, tipo y orden)
+Jesus Romero Hola !! ¿Dije eso? Si es así, es correcto lo que dices. Y también válido no solo para constructores sino también para métodos. Gracias por la corrección. Un saludo
gracias Jesus por la aclaración =).
Muy bueno. gracias :) (y al profe también)
Justo tenia la misma duda. Gracias por el comment!
gracias men, eres todo un crack!
Después de terminar mi carrera creí que la programación no era lo mio, pero creo que fue la calidad de la educación la que me orillo a pensar así, si usted hubiese sido mi profesor de programación, ya estaríamos en un grado muy avanzado de programación, muchísimas gracias por su paciencia y tiempo para poder llevar acabo estos vídeo-tutoriales teórico-prácticos, larga vida a pildorasinformaticas.
Muchas gracias por el comentario. Me alegro de que te gusten los vídeos. Un cordial saludo!!
@@pildorasinformaticas Maldita sea, pensé que era el único al que le pasaba lo mismo. Gracias Juan, en el 2020 sigues siendo un Crack!
@@michaelargelmayerovich6779 2023*
@@mattromo2220 2024*
@@SoyJavero 2025*
Me gustaría expresar mi gratitud y admiración. Llevo vinculado al mundo de la enseñanza toda la vida. He estudiado diversas disciplinas tecnológicas, artísticas y de humanidades y pocas veces he encontrado un material de semejante calidad. Mi mayor reconocimiento a su labor.
Muchas gracias por tu comentario. Me alegro de que te gusten los vídeos. Un saludo!!
pildorasinformaticas pn
Terminando el curso de java, que me parece buenísimo, te hare una donación por todo el tiempo que te tomaste en realizarlo y hacerlo gratuito!! ademas que espero que sigas con este gran trabajo de hacer cursos gratis!!
el mejor curso de java que se pueda encontrar , gracias por tan valioso material saludos desde lima Perú.
Genial explicación de la sobrecarga de constructores y métodos.....Sigo hacia la luz....
Muchas gracias por el curso, definitivamente es un gran aporte a la comunidad. Es 2020 y me he propuesto aprender a programar y este curso me ha sido de gran ayuda. De nuevo, mil gracias.
Cada video q veo lo pienso..eres un fenómeno..prometo estarte agradecido!
para los que estén leyendo esto les recomiendo ir haciendo anotaciones y esquemas conceptuales para repasar el contenido, yo lo he estado haciendo y me esta sirviendo para aclarar dudas y memorizar mejor.
sigo adelante gracias a Juan un profesor que todo lo urga jij
no soy ningún genio y la verdad estoy absorbiendo toda la información con apuntes y
las magnificas explicaciones de Juan. esto que nos aporta no tiene precio . Gracias ya por mil quinientas veces jijji estoy fascinado como has llevado todo a un mismo lugar la pizarra a la pantalla esta lleno de indicaciones para no tener duda .
+DANIEL URBANO DE LA RUA Me alegro de que te gusten los vídeos. Se hace lo que se puede !! Un saludo
Maestro mele quito el sombrero es usted un gran educador gracias,gracias,gracias,gracias,gracias
Excelentes vídeos, el método de enseñanza es impecable, los ejemplos son precisos y complementan bien el aprendizaje al oyente, el fin de ensenar se cumple absolutamente.
Muchas gracias por tús videos, eres sin duda el mejor profesor que he visto. Comentarte también, que supongo sabrás, que algunos de tús videos se utilizan en la educación ha distancia de Junta de Andalucía en el CFGS DAM. Se agradece mucho tenerte como referencia. Reitero mi agradecimiento y darte la enhorabuena por tú gran trabajo.
Gracias por todo, fantástica exposición del this en este y en el anterior artículo. Explicarlo bien es entenderlo bien.
Excelente aportación. Felicidades, gracias por compartirlo y por transmitirlo tan bien.
Gracias Juan, soy Edu Hermosilla,otra vez destacan la calidad de tus videos y la minuciosa organizacion de contenidos que facilitan un aprendizaje escalonado y muy bien ensamblado(siempre recordando conceptos ya aprendidos) ,con lo cual me voy a ver obligado a hacerte una pequena donacion( te mereces muxo mas) cuando me venga la paga extra!sigue pf con tus videos.Gracias
Berger Olivier jajajaja... Ok. Muchas gracias. Me alegro de que te gusten los vídeos. Un saludo
Llevo desde el video 1 siguiendote aunque nunca comente gracias por este curso es muy intuitivo y gracias a ti estoy aprendiendo mucho te doy la enhorabuena,sigue asi.
Muchas gracias por el comentario y por seguir mis vídeos. Me alegro de que te guste el curso. Un saludo!!
Muy buen curso profe ! Excelentes clases ! Este año veo Java en la universidad y me estoy adelantando con sus clases que son tan viciosas que empecé hace 2 dias y ya voy por esta jajaja. Muchas gracias por tan buenas explicaciones !
Excelente video!!, tengo conocimientos de java, lo he aprendido en la universidad, el problema era que jamás me quedo claro como se utilizaban muchísimas cosas de la POO, gracias a ti, eh aprendido y ahora se el porque de algunas cosas que antes no entendía, muchas gracias por los videos y seguiré siguiendo tu curso (:, así aprenderé y repasaré más.! Excelente video maestro!!
Juan BG Muchas gracias por el comentario y por seguir mis vídeos. Me alegro de que te hayan sido de utilidad. Un saludo
Gracias por la clase. Recontra entendible de la forma que fue explicado. Adolfo - Argentina
Gracias profesor Juan por explicar los constructores y el uso del this. Muchas gracias, saludos desde Mexico
Sigo avanzando poco a poco. Mi like para este y todos los videos que voy viendo. De hecho lo comparto en mi facebook para poner mi granito de arena.
Gracias por el comentario. Un saludo!!
buenas profe, sigo avanzando en el curso y cada vez mas agradecido de entender conceptos que nunca había entendido, de nuevo gracias por el curso, feliz dia
+Enrique Soteldo Gracias a ti por seguirlo. Un saludo
Gracias profesor, de nuevo muy agradecido, que Dios le bendiga.
Gracias !! Un saludo
Joder, que bien explica este hombre , mis dieses.
Saludos, debo ser el mas nuevo de los participantes, estoy sorprendido desde que vi el contenido que pretende alcanzar este curso y sentí haber hallado el mapa de un tesoro.. Me verán por acá cada vez que lo permita Dios... Gracias.... Profe....
Gracias a ti por seguir mis vídeos y bienvenido al curso. Un saludo!!
Adoro estos videos espero y en un video futuro me mandes saludos, eh seguido este curso desde cero y me esta encantado, muchisimas gracias, usted fue la luz al final del tunel, estoy muy orgulloso de aprender con usted, aunque sea a travez de videos, pero enseña mejor que mis profesores en verdad muchisimas gracias, y que bueno que explique todo poco a poco,eso en verdad ayuda muchisimo, deberia ver mi libreta llena de apuntes de usted.
Axel Miguel Vargas Hola !! Pues te saludo y te agradezco que sigas mis vídeos con tanto interés. Espero que a medida que avances tu interés no decaiga y sigas hasta el final. Espero que la libreta tenga suficientes páginas para aguantar todo el curso. Un cordial saludo
No tiene de que preocuparse para eso comprare mas libretas y descuide ahora veo programación como carrera tecnica en mi escuela, pero en un futuro pienso estudiar programación como carrera a si que estos videos me ayudan muchisimo, cuando sea mas avanzado en java, me pasare por sus otros cursos,muchas gracias.
Amigo Excelentisimo Tutorial el Mejor que He Visto te Felicito Explicas Muy Bien
JUAN DAVID OSPINA DUQUE Muchas gracias por el comentario y por seguir mis vídeos. Un saludo
Primera vez en mi vida, y después de muchos cursos, que entiendo lo que hace el "This".
x2
X3
Saludos desde México.
Te hago un comentario: Si es posible crear constructores con el mismo número de argumentos, e inclusive con el mismo tipo de variables, solo que deben ser en distinto orden para evitar error, por ejemplo:
public Empleado(String nom, double sue, int agno, int mes, int dia){
...
}
public Empleado(double sue, int agno, int mes, int dia,String nom){
....
}
Lo anterior no marca error. El motivo es entonces que el compilador de java toma en cuenta el numero de parámetros, el tipo de variables y el orden, para ditinguir de qué constructor se trata.
Siento que he aprendido bastante. Ya quiero terminar el curso para irme directo a ver el de android que estás haciendo. Saludos!
+Ignacio Antonio Jeria Garrido Gracias por seguir mis vídeos. Puedes hacer ambos en paralelo cuando hayas aprendido sintaxis y características de POO en Java. No es necesario que llegues hasta el vídeo 300 de Java para pasar a Android. Un saludo
Gracias por el consejo. De hecho eso mismo me estaba cuestionando ¿qué nivel de conocimiento se necesita para programar en android? Aprendí bucles, condicionales, encapsulamiento, metodos getter/Setter, herencia y no me quiero extender más. Este es uno de mis canales favoritos y yo sería quien tiene que agradecer que subas tan grandiosos videos tío xD Gracias por tu labor, tu esfuerzo por editar los videos (sé lo que es editar un video), esa forma tan clara de trasmitir el conocimiento y bueno agradecer es poco. No soy de esas personas que anda por el mundo de youtube escribiendo comentarios de esta extensión pero esque de verdad no puedo dormir tranquilo sin antes darte las merecidas gracias jaja Saludos desde Chile y estaré atento a tus proximas clases!
gracias por realizar estos cursos, es increible!! Un saludo.
Excelente tus explicaciones del curso, muchas gracias por tu tiempo profesor.
CIBER SOFT Gracias a ti por seguir mis vídeos. Un saludo
Hola! me sorprende lo mucho que estoy aprendiendo en el curso, no esperaba aprender tanto en tan poco. Ver estos videos y hacer programillas se esta convirtiendo en mi nuevo hobby jeje. Estoy deseando llegar la parte de diseño grafico, pero sobre todo llegar a saber lo suficiente para enfrentarme al curso de android con algo de dignidad :). De todos los cursos de programacion que he intentado seguir(a la quinta va la vencida, mas o menos...) este es el mejor que me he encontrado... GRACIAS!!
Gracias a ti por tu comentario y por seguir mis vídeos. Me alegro de que te guste el curso. Un saludo!!
Hola a los dos, aprovecho el hilo para preguntar, ¿a partir de que clase de Java crees que es posible empezar con el curso de Android?
Muchas gracias y un saludo
Buena pregunta... Yo voy por el capitulo 50 y seguire con el curso un poco mas antes de empezar con android.
Creo que lo mas importante es entender la programacion orientada a objetos, sobre todo la herencia que se da en el capitulo 42. A lo mejor hay cosas mas importantes a las que aun no he llegado...
Personalmente seguire en java hasta que maneje lo suficiente la API de java...
Mejor espera la respuesta de Juan, que controla mas que yo :)
Yo voy por la 39, buscando esa ansiada luz, cada vez se ve más claro al final del túnel😂
Eso pensaba yo hasta que llegue la herencia y las clases abstractas jeje. Hay que ver los videos mas de una vez
Gracias profesor, por momentos entiendo los conceptos pero cuando trato de recordarlos se me complica, pero pienso que con el tiempo y la practica todo se ira aclarando. Estoy pensando que seria bueno a esta altura crearme algunas clases, constructores, variables, etc, empezar a meter un poco de mano yo en eclipse, con lo que nos fue enseñando, asi reafirmo y aclaro conceptos. La practica hace al conocimiento y al entendimiento tambien. Muchas gracias profe Juan, ya se lo he dicho en otro mensaje, es impagable lo que hace, el amor por la enseñanza que tiene se nota, traspasa los monitores de todos los que los seguimos, y eso se ve en los comentarios. un abrazo desde Argentina.
Muy buenas Juan,
en primer lugar agradecerte tu magnífica labor. Después de casi 40 sesiones por fin me han quedado claros algunos conceptos elementales de la POO que siempre rebotaban en mi cabeza sin encontrar su sitio.
Aunque estoy encantado con tu labor creo que es positivo hacer alguna crítica constructiva así que ahí van un par de comentarios para que sometas a consideración:
- Comentarios: sería útil que incluyeras con más asiduidad pequeños comentarios según escribes código (Ej. //Variable que contiene el siguiente identificador). Al final los estudiantes imitamos lo que haces, tu estilo y como bien sabes la importancia de un código correctamente comentado es fundamental para un posterior mantenimiento.
- Convención en la nomenclatura de variables, métodos y clases. Hasta ahora he observado que no se sigue una nomenclatura uniforme que por otro lado resulta muy útil a la hora de examinar un código realizado por otros. Por ejemplo el uso de guiones en los nombres de variables y métodos no es práctica muy "elegante" en Java aunque sea perfectamente correcto. Como bien sabes por mantener uniformidad se aconseja que los identificadores en Java compuestos de varias palabras se concatenen poniendo en mayúscula la letra inicial de cada palabra (y para clases incluso la primera palabra):
EstoEsUnaClase
soyUnMetodo()
yoUnaVariable
EJEMPLO_DE_CONSTANTE
Aunque son detalles menores te lo comento con el fin de aportar y con la mejor de mis intenciones.
Sinceramente pienso que eres un estupendo comunicador, lenguaje perfecto, claro y conciso. No das nada por sabido, siempre te pones en la piel del que sigue tu curso, anticipándote a las dudas, no nos aturullas con abreviaturas que nadie entiende pero que visten mucho. En fin, que enhorabuena de verdad, sigue así!!
Volviendo a repasar de forma rápida, lo esencial no se me ha olvidado. Pero va habiendo detalles que aprendo después de 4 años con este lenguaje, aunque un par de ellos de por medio sin tocarlo. El caso es que, el detalle del uso del this para llamar a un constructor desde otro es algo que he aprendido ahora.
profe gracias por tus clases,,me sirven mucho.
Muchas gracia por todo este materia que es muy bueno y me ha ayudado a entender conceptos que por años no habia entendido claramente.
Gracias por este curso. Sos un muy buen maestro y ahora se esta haciendo la luz jejej!!!!
:)) Gracias !! Me alegro de que veas la luz...
excelente esas explicaciones en donde se diferencia un constructor en una clase y la forma en que se pueden utilizar mas constructores como alternativas.
Cuando empleamos en el código el nombre de una variable ya empleada con anterioridad, el compilador elije entre "campo de clase y variable local de método" aplicando la regla de prevalescencia del ámbito más local esto quiere decir que Java usa la variable “más local” disponible en ese punto del programa. Si necesitas usar el mismo nombre entonces si que se utiliza la palabra clave (this.) Muy buenos videos Pildoras !
Vaya aprendí nuevos usos del constructor, sus posibilidades y también limitantes.
Sin ver el video entendí, ya que ya conocia ese termino con los métodos , de todos modos lo vi completo , muchas gracias y excelente video
Bueno... por los vídeos, por tu tiempo, por los ánimos que nos dices de vez en cuando...; ) ; )
se agradecen... MUCHAS_GRACIAS & SALUD
Gracias por tu curso, yo estoy viendo la luz.
Hola Juan, gracias por el vídeo excelente explicación.
Gracias !! Un saludo
Muy buenos vídeos, los temas los vuelve fáciles de comprender y en mi opinión solo faltarían algunos ejercicios para reforzar los temas vistos. Saludos desde México
Gracias por el comentario. Los ejercicios lo tengo en "tareas pendientes" desde hace tiempo. Espero poder subir ejercicios algún día (espero que pronto). Un saludo!!
En el vídeo anterior, estuve algo agobiado sinceramente, hay veces que pienso que no avanzo y otras que estoy avanzando demasiado rápido y no sería lo correcto. No sé que decir, digamos que es fácil pero son muchos los conceptos que hay que tener en cuenta. En mi caso, con un ordenador soy capaz pero en la facultad los exámenes son sobre papel y eso no se me da tan bien. Algun consejo? Un saludo! :)
+Kintion Lol Practicar, practicar y después practicar más. No hay secreto. Aprender a programar en un lenguaje como Java (o cualquier lenguaje orientado a objetos de alto nivel) es una tarea que en el mejor de los casos lleva varios años. No se puede pretender aprender a programar en cualquier lenguaje en unos meses. Yo llevo más de 12 años con este lenguaje y no lo domino en su totalidad ni mucho menos.
Un saludo
+pildorasinformaticas es verdad profe la verdad es que si esta dificil pero esta muy interesante y tambien pense que seria en mese Lol.
¡Voy a descorchar el champagne que hasta el minuto 9:23 lo he entendido todo a la primera sin tener que pausar ni repetir el vídeo! jajajajaja. Una de cal y otra de arena es esto de la programación, pero bueno, ahí seguimos ;-)
Excelente!!!!!!!!!!!!!!!!!!!!!, mejor imposible.
pense que nunca entenderia java grcias profe exelentes videos
Gracias por el comentario. Un saludo!!
Por fin alguien que me hizo entender el this jjaa, gracias profe.
Pasaron 8 años y este curso sigue igual de vigente que nunca
una pregunta voy en el video 40 y aun siento que hay cosas como el for,while if que me cuestan comprender aun que opinas seguir con los videos o retroceder y ejercitar mas eso?
@@thecrazytiktok4507 si de deseas puedes reforzar los temas prueba con ejercicios de logica y retos de codigo
Hola! Muchas gracias por el curso
Una pregunta, el operador this dentro de un constructor llama al constructor que tenga su mismo nombre o solo al que coincida con la cantidad y tipo de parametros sin importar como se llame.
Gracias!
En vez de "this" ¿podría poner un constructor dentro de otro? es decir se llega a lo mismo no?
Buenísimo!! Muchas gracias, he visto en la página un curso como esté de pago, hay alguna diferencia?
Muchas gracias me ayudo bastante suscrito!!!..
Gracias por seguir mis vídeos. Un saludo!!
Buenas, quisiera saber cómo modifico la salida de las fechas para que salgan en español... Gracias
Con respecto a las clases sin constructor, efectivamente como mencionas en el vídeo, cuando se crea una clase sin constructor, java CREA un constructor por defecto sin parámetros y vació en el cuerpo del constructor, esto lo podemos evidenciar a través de la herencia. Cuando una clase es heredera de otra, en todos los constructores de la clase heredera siempre se hará una llamada implícita al constructor de la clase base como lo demuestra el siguiente ejemplo, evidenciando la creación del constructor por defecto (java versión 11):
package pruebas;
public class Herencia {
public static void main(String[] args) {
var heredera = new Heredera();
}
}
class Base{
public Base(){
System.out.println("Ejecución en clase: " + Base.class.getName());
}
}
class Heredera extends Base{
}
Con resultado en consola:
Ejecución en clase: pruebas.Base
Al crearse el objeto heredera, este llama al constructor por defecto creado por java y al iniciar la ejecución de dicho constructor, éste llama al constructor de la clase Base.
¿Es posible acceder a un método static, por medio de una instancia?
una pregunta voy en el video 40 y aun siento que hay cosas como el for,while if que me cuestan comprender aun que opinas seguir con los videos o retroceder y ejercitar mas eso?
Ya vamos por el 39 y seguimos avanzando.
Me da tristeza saber que ni he llegado al vídeo 100 y cada vídeo tiene menos vistas y likes, si has llegado hasta aquí, hechale ganas carajo, que si esto fuera fácil todo mundo fuera programador......
no sabes nada.. anda al tema de Hilos o excepciones..y vas a ver q tienen mas de 150 mil..cuando comienza esos temas.. no hables sin saber
Muchas gracias.
Hola!
¿Este ejercicio sería un ejemplo de polimorfismo paramétrico?
Gracias por tus cursos y enhorabuena por este gran canal!
Buenas tardes!! El curso de momento genial, estoy entendiendo muchos conceptos que no tenia claros del curso que hago a distancia. Una consulta, normalmente trabajo en un mac, pero cuando estoy fuera lo hago desde un portatil w10. He intentado pasar el fichero java y class de lo que hice al mac a las carpetas pertinentes pero falla algo porque no me compila el programa...falta algo? Como lo puedo hacer mas facil este intercambio de ficheros????
Hola !! Utiliza las opciones de importar y exportar de Eclipse. Busca en google "Exportar proyecto Eclipse" y también "Importar proyecto Eclipse". Un saludo!!
Saludos desde Colombia
Hola juan, muchas gracias por tan excelente enseñanza, tus explicaciones me resultan más fácil de entender este lenguaje.
Me podrias resolver una inquietud? en el video muestras que creaste un arreglo "misEmpleados" que admite variables de diferentes tipos y llenabas el arreglo directamente, como podría llenar ese arreglo por consola?
Muchas gracias.
Buena noche.
Antes que nada, gracias por los videos.
Tengo una duda respecto al Constructor con parametros y sin parametros, cuando se debe usar cada cual ?
Si el usuario es quien va a ingresar los datos por teclado (Usando Scanner) habria que usar un constructor sin parametros, correcto ?
El uso de parámetros no depende de si introducimos los datos de una forma u otra. Depende de si nuestro constructor necesitará datos para iniciar el objeto o no los necesitará. En le vídeo 39 en el que estás de momento quédate con la sintaxis y con que un constructor puede recibir parámetros o no. Más adelante y con la experiencia, descubrirás cuándo necesitarás utilizar un constructor con parámetros y cuando no. Un saludo!!
gracias por la clase
gracias por el curso, otra cosa interesante es que se puede tener 2 constructores de 1 solo parametro pero con diferente tipo de dato ejemplo
public Empleado(String nom){
nombre=nom
}
public Empleado(double sue){
sueldo=sue
}
creo que hay que hacer una salvedad y es que uno puede tener todos los constructores que desee incluso con el mismo numero de parámetros lo que si no puede ocurrir es tener dos constructores con el mismo numero de parámetros y que estos sean exactamente los mismos en ambos constructores, eso es lo que verdaderamente genera el error
Hola, Buenas tardes,,,,,Una consulta, existe alguna forma de usar el mismo constructor o metodo con la opcion de parametros Opcionales?
Saludos.
Francisco Castillo Hola !! No. Java en ese sentido es muy estricto. Lo que puedes hacer para lograr este efecto es crear sobrecarga de constructores: uno sin parámetros, otro con uno, otro con dos, otro con tres etc. Se habla de la sobrecarga de constructores en el curso pero no recuerdo en qué vídeo.
Un saludo
pildorasinformaticas Hola una duda, ¿Exactamente en cual video hablas acerca de la Sobrecarga de Constructures?. Saludos.
En el 39. Un saludo
Tengo una duda ¿que ocurriria si se realiza una llamada a otro constructor desde una sentencia que no sea la primera del codigo del cuerpo del constructor?
disculpe profe, tengo el mismo problema de la ventana de JOptonpane que me aparece en el escritorio. como lo soluciono, pues veo que usted ya no tiene ese inconveniente. le agradeceria su ayuda
teorias Hola !! A mi hay veces que me aparece detrás de Eclipse y otras veces delante. La verdad es que aún no he dado con la solución a esto que seguro es una tontería. A ver si alguien lo lee y nos ayuda a los dos. Un saludo
tengo una duda profe... un contructor se crea para inicializar un objeto hasta ahí esta todo claro pero cuando el constructor recibe parámetros y esta un método de acceso como set no entiendo la funcionalidad de set por que con los parámetros que recibe el constructor puedo asignarle los valores que yo quiera. muchas gracias
Con el constructor puedes asignarle los valores que quieras a un objeto pero en su inicio. Si después de haber iniciado el objeto quieres cambiar los valores del objeto, necesitas un método setter. Un saludo!!
Te amo
se puede limpiar consola en java como se hace en Dev c++ ???
hola, en el ejemplo anterior cuando intento imprimir System.out.println(misEmpleados[0]); me sale poo.Empleado@75b84c92 (es una direccion de memoria?)
Correcto. Utiliza el método toString() para verlo como texto. Un saludo!!
Muchas gracias por tomarte la molestia de enseñarnos a programar. Empiezo a ver la luz.XD
hola que tal profe una pregunta si podemos creae un constructor con los mismos parámetros pero diferente tipo de dato ? gracias
Sí, podemos. Un saludo!!
Este tema es sobre ESTRUCTURA DE DATOS.
Si se hace un segundo constructor con los mismos parametros del primero, pero en diferente orden, tambien daria error? Se que medio ridiculo querer hacer dos constructores con los mismos parametros, pero tengo curiosidad.
Da error. No puedes tener dos constructores con el mismo número de parámetros en el mismo programa. Si lo pruebas verás como Eclipse, netBeans o lo que utilices, te marcará error. Un saludo!!
Creo que sí se puede hacer sobrecarga de métodos con el mismo número de parámetros siempre y cuando el parámetro sea de un tipo diferente.
Hola y Gracias a pildorasinformáticas por estos maravillosos video-tutoriales.
Aunque no parezca tener sentido, si se puede hacer la sobrecarga del constructor con el mismo número de parámetros e incluso con los mismos tipos, lo que habría que cambiar es el orden, me explico:
Constructor 1:
public Empleado (String nom, double sueldo, int edad)
Consructor 2:
public Empleado (double sueldo, String nom, int edad)
Los toma como dos constructores diferentes.
Dios les Bendiga
Entonces el this() es como los parametros por defecto de python?
por ejemplo:
Abcdef(nombre = "pepe", sueldo = 20000):
Sí, el this es como el parámetro _self de Python. Un saludo!!
para los que que les daba el error en la linea e.subeSueldo(5);....
Exception in thread "main" java.lang.NullPointerException
at poo.UsoEmpleado.main(UsoEmpleado.java:65)
lo encontre... el problema que tenia yo es que no le había cambiado el número de indice al objeto nuevo o instancia nueva que creamos en esta clase
misEmpleado[2]=new Empleado("Antonio Fernandez").......(creo que se diría así)
como ven el esta instancia seria el indice 2 dentro de la matriz Empleado, pero debía ser el indice 3
misEmpleados[3]=new Empleado("Antonio Fernandez"); debía ser.......ya que copie y pegue el empleado anterior, para no escribir tanto, solo le cambie el nombre y borre los datos de sueldo y fechas pero olvide cambiar el número de indice... cuando lo vi lo cambie y funciono todo
el indice es la posición que tiene la instancia dentro de la matriz y en mi caso tenia dos instancias en la misma posición...lo cual no se como es que te deja, ya que no me marcaba ningún error en el código, pero si me decía que había un parámetro que iba a dar nulo
espero les sirva
y por supuesto....muchisimas gracias al profe, este curso es un golazo.....estoy e cero aca..nunca había visto nada y estoy entendiendo bien
Disculpa, que perdí el hilo , por qué era e.dameNombre, e.dameSueldo etc? la "e" a qué se debía? Gracias.
en el bucle for each o bucle for mejorado, la e ......
for(Empleado e: misEmpleados) {
e.subeSueldo(5);
viene a ser como i en el bucle for...
for(int i=0; i
Hola, primero muchas gracias por el curso. Los vídeos son geniales. Si en el segundo constructor quisiera que el sueldo, año, mes y dia fuesen constantes para poder cambiarlas en un futuro sin tener que tocar más nada de código, podría hacerlo?
He probado a ponerlas pero me pide que tienen que ser estáticas. ¿Por qué deben de ser estáticas? Gracias!
private final static double sueldoBase = 30000;
private final static int agno = 2005;
private final static int mes = 01;
private final static int dia = 01;
3:19 si un constructor no debe devolver ningún tipo de datos por qué no lleva void? No lo entiendo. Saludos
Porque es un método especial que se encarga de establecer el estado de un objeto recién creado, ya luego se definen los métodos que podrán ser accedidos por estos objetos. La sintaxis de java te indica que a estos métodos sí que debes establecer un tipo de retorno.
(Version de Java jre1.8.0_231)
Exception in thread "main" java.lang.NullPointerException
at poo.Empleado.subeSueldo(Uso_Empleado.java:94)
at poo.Uso_Empleado.main(Uso_Empleado.java:40)
Solución: inicializar el sueldo en el segundo constructor.
public Empleado(String nom) {
nombre = nom;
sueldo = 0,0;
}
Graciasss, realmente pensaba que me había equivocado en copiar algo :c
Pregunta: ¿el tipo de la variable sueldo en tu código es double ó Double?, podría equivocarme pero seguramente cuando le diste tipo a sueldo, este fue Double. ¿Por que marca exception cuando usas Double y no double?, lo que no te dicen es que las variables no primitivas en realidad son apuntadores a objetos, de tal forma que al no inicializar sueldo de tipo Double, tienes un apuntador nulo y cuando se intenta llamar a subeSueldo, java intenta aplicar una llamada de método (las operaciones aritméticas que se aplican a los objetos Double son en realidad llamadas a métodos) a un apuntador nulo (Exception in thread "main" java.lang.NullPointerException, nótese la excepción, NULLPOINTER) y ahí salta la excepción, si sueldo es double, no hay llamada a un método sino una aplicación aritmética. Cuando no se inicializa un tipo primitivo como int o double, este implícitamente se inicializa a 0, las variables de objeto se inicializan a null, o sea, una variable a objeto no inicializada es un apuntador a null.
En general YO (apreciación muy personal) creo que es un error de diseño de java, por una parte te dicen que todo es un objeto, pero tienen tipos primitivos que no los son, así es como se caen en inconsistencias como el caso double, Double (¿por que el lenguaje tiene 2 entidades que supuestamente hacen lo mismo, pero al sustituirlas tienes algunos comportamientos diferentes?). El que exista una clase Double que "imita" al tipo primitivo double es precisamente el intento de minimizar estas inconsistencias, esto es un mal intento de seguir los pasos de lenguajes como Smalltalk que son lenguajes orientados a objetos 100% puros (java no lo es) donde TODO es un objeto, incluyendo al programa mismo.
@@fazt si te equivocaste al copiar, cuando pusiste "Double sueldo" en realidad debiste poner "double sueldo".
hola profesor que tal sigo su curso desde 0 muy bueno tengo una duda que quisiera que alguien con experiencia como usted me respondiera porque dicen muchos que java es un lenguaje de moda? veo que muchos dicen que ya no se usa java y que vienen lenguajes mejores usted que piensa? gracias por su tiempo saludos
juan antonio rosas Hola !! Yo llevo oyendo lo mismo desde que empecé con este lenguaje hace más de 10 años. Y aquí sigue. La verdad es que no se si desaparecerá algún día o llegarán nuevos lenguajes que lo sustituyan poco a poco. A día de hoy, en mi país es la tecnología más demandada. No lo digo yo. Se puede comprobar en cualquier portal de empleo tecnológico.
Pero bueno, nada es eterno y algún día le sustituirán. A corto plazo no parece. Un saludo !!
juan antonio rosas hola juan, en mi humilde opinion creo que es una tecnologia que tiene aun mucho por delante, pues existen muchas certificaciones sobre java que en otros lenguajes no las hay.
Muy bueno, por cierto cual es tu nombre? Yo soy Marcos, un gusto aprender con tus videos.
buenas tardes, no se si aun lees los comentarios. soy de republica dominicana, estoy tomando el curso en esta fecha, tengo algunas dudas, serias tan amable de facilitarme tu email para enviarte mis inquietudes?
toma examen en su curso? estoy viéndolo de su pagina pero no se como saber si estoy haciendo el curso
12:18 otro uso del this. (perdón, me estoy haciendo apuntes para consultas luego XD )
Disculpe profesor este error me da en el for de sube sueldo:
Exception in thread "main" java.lang.NullPointerException
at poo.Empleado.subeSueldo(Uso_empleado.java:106)
at poo.Uso_empleado.main(Uso_empleado.java:56)
por que será ?, una vez quito el
for(Empleado e: misEmpleados){
e.subeSueldo(5);
}
corre sin error pero obviamente no me hace la operación de subir el sueldo.
Cabe destacar que el error ocurre cuando agrego el segundo constructor
Comprueba que tu clase se llame Empleado ( y no Empleados o similar) y que el array se llama literalmente misEmpleados. Si es así, copia y pega por aquí todo el código para que lo pueda ver. Un saludo!!
Este es mi codigo Profe:
package poo;
import java.util.*;
public class Uso_empleado {
public static void main(String[] args) {
Empleado[] misEmpleados=new Empleado[4];
misEmpleados[0]=new Empleado("Arnaldo Espinoza", 85000, 2005, 03, 16);
misEmpleados[1]=new Empleado("Ana Lopez", 86000, 2006, 07, 02);
misEmpleados[2]=new Empleado("Arnaldo Espinoza", 85000, 2005, 03, 16);
misEmpleados[3]=new Empleado("Lourdes Peraza");
for(Empleado e: misEmpleados){
e.subeSueldo(5);
}
for(Empleado e: misEmpleados){
System.out.println("Nombre " + e.dameNombre()
+ "Sueldo: " + e.dameSueldo()+ " Fecha de alta: "+ e.dameFechaContrato());
}
}
}
class Empleado{
public Empleado(String nom, double sue, int agno, int mes, int dia){
nombre=nom;
sueldo=sue;
GregorianCalendar calendario=new GregorianCalendar(agno, mes-1, dia);
altaContrato=calendario.getTime();
}
public Empleado(String nom){
nombre=nom;
}
public String dameNombre(){ //Método Getter
return nombre;
}
public Double dameSueldo(){//Método getter
return sueldo;
}
public Date dameFechaContrato(){
return altaContrato;
}
public void subeSueldo(double porcentaje){//Método Setter
Double aumento=sueldo*porcentaje/100;
sueldo+=aumento;
}
private String nombre;
private Double sueldo;
private Date altaContrato;
}
Hola, prueba areglando el 2do constructor por:
public Empleado(String nom) {
this(nom, 30000, 2000, 01,01);
}
Ya que en el que tienes es :
public Empleado(String nom) {
nombre = nom;
}
el error surge cuando aplicaba el metodo subeSueldo al objeto:
misEmpleados[3] = new Empleado("Lourdes Peraza");
Te producia error por no poder hacer la operacion con un valor que esta en null, solo el atributo nombre tenia informacion, los demas atributos estan en null, sin valores. Y con el Constructor nuevo ya te da atributos inicializados con valores.
Hola, a mi me aparecio el mismo problema y lo solucione agregando en al segundo constructor el sueldo = 0.0 ya que me parece que el problema del segundo constructor es que al no asignarle nada a sueldo queda como null y cuando ejecuta subeSueldo el calculo matematico no se realiza ya que la variable sueldo esta en null.
public Empleado(String nom){
nombre = nom;
sueldo = 0.0;
Gracias pildoras informaticas tu curso es excelente
Gracias JUAN PEREZ, Me funcionó con lo que comentaste, excelente. Gracias al Profe de Píldoras informáticas, Excelente trabajo.
hola pero el this() que lleva los parametro como funciona aqui ja que no es un methodo ni tiene una representacion de classe.
ja se que aveces avec es this.varibale y ahora es this().no entiendo que es el this aunque lo uso igual que lo haces. gracias
Hola Boureima Sare, lo que entendí es que this() lo usas para poder usar para usar los parametros de otro constructor ej tenes 2 constructores(uso el ej del video) el primer constructor
public Empleado(String nom, double sue, int agno, int mes,int dia) {
nombre=nom;
sueldo=sue;
GregorianCalendar calendario=new GregorianCalendar(agno,mes-1,dia);
altaContrato=calendario.getTime();
el segundo constructor
public Empleado(String nom) {
this(nom,30000,2000,01,01);
ese this hace que cuando en el main solo pongas el nombre "Antonio Fernandez" te agregue solo los 30000 y la fecha. o sea this llama al otro constructor, Empleado(String nom, double sue, int agno, int mes,int dia) asi agrega automaticamente los datos fijos 30000,2000,01,01 variable nom lo escribis en el main. espero se entienda saludos
En vez de utilizar el this para el segundo constructor, por qué no se podría hacer así?:
public Empleado(String nom) {
nombre=nom;
sueldo=30000;
GregorianCalendar calendario = new GregorianCalendar(2000,0, 1);
altaContrato = calendario.getTime();
//this(nom, 30000,2000,01,01);
}
Gracias!!!!
habia escuchado que java no tiene punteros entonces porque tiene "this" ?