Curso Java. Modificadores de acceso. Clase Object. Vídeo 47
HTML-код
- Опубликовано: 3 ноя 2024
- En este vídeo vemos los modificadores de acceso en Java y cómo afectan a la visibilidad de variables y métodos. Hablamos también de la clase Object, cúspide en la jerarquía de la herencia Java
Para más cursos, manuales y ejercicios, 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. 💥💥💥
22:29 Marcaste el método clone() y el finalize() y justo esos son protected
Hola, un consejo por si alguno no lo sabe es que para buscar clases en la API mas rápido pueden usar Control + G, les aparecerá una barrita en la esquina superior derecha, ponen el nombre de la clase y listo. Si la palabra esta repetida es pulsar enter hasta llegar a la clase, espero le sirva a alguno
Mi ovejota jajaja me hizo gracia. Buenos videos, increible curso todo muy bien explicado.
Dia 6 del curso 19/03/2019, es impresionante lo que he aprendido. Gracias MAESTRO!
12/08/2022, este curso ya tiene como diez años y sigue siendo de mucha utilidad. Los cursos de píldoras se superponen en el tiempo, son inmortales.
@@osvaldoalarcon100 10/08/2024, incombustible este contenido. Más de 10 años después de su publicación y seguimos (y seguiremos) aprendiendo con este genio de la enseñanza.
Cada día me gusta más tu método de enseño y me está gustando mucho a programar... y queiro luego terminar un video para seguir con el otro... gracias!!! Eres lo mejor que he visto!
Muchas gracias por tu comentario. Me alegro de que te gusten los vídeos. Te doy ánimos para seguir el curso hasta el final (se que es duro). Un saludo!!
Si logro convertirme en programador juro no olvidarme de vos querido Juan, gracias por todo!!!
¡¡¡SUPER RECOMENDADO!!!
Sin duda de lo mejor, yo estoy aprendiendo por hobby. Pero sin duda es de lo mejor el contenido (calidad y entendimiento), mucho más de los cursos de paga. Lo sigo desde que vi unos videotutoriales de Excel.
Cuando termine este curso, enserio que debería de pagarle con un monto igual al de un curso de esta naturaleza... ojalá que si, se lo merece!!!
Espero que por el momento, RUclips le este dando gran cantidad de dinero por los anuncios, si no es así ponga que salgan mas seguido... le vendría bien :).
Gracias codesensei. Ya empece a hacer un programa propio para practicar lo que me haz enseñado.
Increíble material, cada vez que veo uno de tus vídeos, siento que realmente adquiero habilidades para programar, porque exlicás de maravilla.
+Mario Grajeda Muchas gracias por el comentario. Me alegro de que te guste el curso. Un saludo!!
Eres el mejor maestro gracias a ti e aprendido como no tienes una idea, un saludo desde México.
:)) Muchas gracias por el comentario. Me alegro de que te gusten los vídeos. Un saludo!!
Otra Joya más que regalas para el aprendizaje. Gracias.
Este curso es fenomenal!!!
Saludos desde Puerto Rico, la isla del encanto.
Gracias Profesor Juan, nuevamente tomando el curso desde cero y ya voy por el video 47, sin duda el mejor curso de Java
Todo es increible lo que enseña este maestro a influido mucho en mi aprendizaje
esto es lo mejor que he encontrado... excelente trabajo Felicitaciones!
Muchas gracias !! Un saludo
Parece que lo haces aposta, incluso el desliz del minuto 14 resulta didáctico.
SIMPLEMENTE genial. ;)
+sweethome music studio A veces sale así :)) Un saludo
Excelente curso extremadamente bueno
+Esteban Rodriguez Gracias !! Un saludo
Si tu no sabes que es Class AdapterInactive, yo no lo sabré no naciendo 10 veces. Increible curso!. Jamás conocí a nadie que enseñara de esta manera tan clara, explicita y dedicada. Sos un capo!
AJJJAJAJJAJAJAA mal xd
Cómo siempre muy bien explicado. Gracias
Chévere 🍌 2024, excelente como siempre...
como usted dijo al principio profe :Poco a Poco se ira viendo la luz :D.
gracias profe por que ya estoy empezando a ver la luz, espero con ancias llegar
a Swing.
nunca se canse se impartir sus conocimientos Dios lo bendiga
muchas gracias Profe (Y). Saludos desde Guatemala
Swing esta bueno si queres dedicarte a Desktop application development o desarrollo de aplicaciones de escritorio, de lo contrario te recomendaria evitar esos temas puesto que no es para nada necesario en campos como el backend o incluso desarrollo de aplicaciones android.
@@Abstractor21 Cual es el tema mas importante para desarrollo de apps en android con java?
@@creaarmas1 te recomiendo aprender lo basico de java. Aprender bien las características de java 8 saber usar bien los tipos de datos métodos y objetos y clases.
Ya después aprende kotlin y anda directo a desarrollar en Android.
Saber java y kotoin es muy bueno para desarrollo en Android
@@Abstractor21 muchas gracias!
es increible todo lo que se aprende
Profe Genial sus Videos, en la Universidad en la que me encuentro esto se da como clase de paradigma de la programacion ( programacion orientada a objetos avanzada), Muy buen video, Gracias por la explicacion!
+Mauricio Onoro Gracias a ti por seguir mis vídeos. Un cordial saludo
Buenisimo Profesor. Muchas gracias por compartir.
Enserio explicas muy bien todo esto no lo vi en mi universidad, enserio muchisimas gracias profesor.
Oscar Ballart: en el ejemplo clase3 es subclase de clase1 y clase2 es la clase principal. Un saludo
puedes recomendar paginas o libros donde practicar lo aprendido?
En el caso de Protected, es bueno resaltar que la visibilidad se da siempre y cuando esta subclase hereda de la clase en cuestión, y no de otra.
Otra opción es extender el nombrePaquete (punto) nombreClase, en este caso,
public class Clase3 extends poo.Clase1{
}
sin que se queje, aunque lo correcto es importar el paquete y la clase
Excelente explicación muchas gracias por el vídeo
profesor; muy bueno este ejemplo; como siempre eres bien practico para las explicaciones en cuanto a los niveles de acceso gracias
JHON ALEXANDER MIRANDA AGREDO Gracias a ti como siempre por seguir mis vídeos. Un saludo
no me corro del curso...vale seguir hasta el final...no importa edad.
Sencillo
Protected surge efecto cuando hacemos uso de herencia, es decir permitimos que accedan a las variables y los métodos, sin importar si dichas clases están en diferentes paquetes.
Private solo surge efecto dentro de la misma clase, accediendo a las variables y los métodos.
public, bueno pues ya está, es la linuxera, le gusta compartir con todo mundo.
y por ultimo que es la por defecto solo será accesible o visible dentro de la misma clase y mismo paquete aquellas variables y métodos que son creados en dicha clase.
Gracias hermano :3
jaja es " linuxera " XD
es decir protected funciona solo dentro del mismo paquete o la misma clase o otro paquete pero con herencia?
@@brayanandreyolartehernande4185creo q más allá q esté en otro paquete con q esté en protected las variables . Vas a poder retornarlas en una clase fuera del paquete si está misma clase hereda de la del otro paquete
@@cuervodie909 vale muchas gracias. estas haciendo el curso también en estos momentos o solo vaz de pasasa por este video ?
Muchas gracias.
la clase object es el adam de las clases entendido
Muy buen curso
Hola Juan, mas bien estaba escribiendo para una sugerencia - petición, acerca de si puede subir un curso de Flutter - Dart implementando la arquitectura de software DDD (domain-driven design) en un pequeño proyecto acorde a su disponibilidad de tiempo. Adelante eres un excelente maestro. Explicas super bien cada contenido.
Saludos desde Ecuador.
Buenas Juan, genial el curso, muchas gracias!
Tengo la siguiente duda que agradecería pudieras resolver, si en la Clase2 del ejemplo descrito en el vídeo llamamos al método finalize a partir de la instancia miObj de la Clase1, nos da un error que dice: The method finalize() from the type Object is not visible
Mirando en la clase Object el método finalice es protected por lo que en principio debería poder utilizarse desde todas las clases hijas, pero en este caso nos dice que el método no es visible. Ocurre lo mismo con el método clone.
package poo;
import paquetepruebas.Clase3;
public class Clase2{
public static void main(String[] args) {
Clase1 miObj = new Clase1();
Clase3 miObj2 = new Clase3();
miObj.finalize();
}
}
Es muy bueno cuando repetís conceptos de videos anteriores.
Una pregunta: qué tipo de proyectos puedo hacer con Java? Por ejemplo: programar los movimientos de un robot en una industria? Hacer un programa de liquidación de sueldos? Me podes enumerar algunos?
Java es un lenguaje de propósito general. Esto quiere decir que puedes crear con él todo tipo de aplicaciones. Puedes programar los movimientos de un robot en la industria, un programa de liquidación de sueldos y todo lo que se te pase por la cabeza. Java está presente desde pequeños electrodomésticos que utilizan este lenguaje para funcionar, como en grandes proyectos empresariales. También hay ortos lenguajes con las mismas capacidades de Java. Elegir uno u otro es una cuestión casi de gustos personales. Hay un índice que marca cuáles son los lenguajes más utilizados a día de hoy para crear aplicaciones; es el llamado índice TIOBE. Si consultas su web, verás cuáles son los lenguajes más usados: www.tiobe.com/tiobe-index/
Un saludo!!
Gracias!!!
@@pildorasinformaticas Hola Juan! Ojalá respondas. Siguiendo el topic, se puede hacer un videojuego con Java? Por qué entonces se suelen usar los C para ello (creo que el C++ o el C#)? Tengo entendido que, aunque parecidos, son mas follón.
Uffff, este es el primer video que me costó mucho trabajo entenderlo, hice muchas pruebas durante todo el día sobre los modificadores de acceso y puedo decir que sí es muy difícil entenderlo, pero finalmente lo pude entender y puedo decir, con todo respeto maestro Juan, que algunas de las cosas que mencionó no fueron del todo claras y faltó especificar uno que otro detalle importante sobre los modificadores de acceso. Bueno yo hice una descripción de cada uno de ellos en un bloc de notas como resultado de todas las pruebas que hice y que son correctas, también hice unas capturas de pantalla donde se ve un ejemplo de cada modificador. Si alguien está interesado en que le pase mi información y mis pruebas para entender mejor los modificadores de acceso, déjenme su correo solamente, no lo pongo aquí para no extender mucho el comentario y porque no puedo poner las capturas para que sea más entendible mis descripciones de cada modificador. Y otra cosa, en el minuto 22:41 no aparece el método "finalize" porque es protected (así está en la API de Java), y como ya sabemos, NO es accesible desde otro paquete en la clase principal.
Hola me podrías mandar tu información aún?
@@jeanpierrecastrochuica5974 si pásame tu correo
Hola en el minuto 18.46, supuestamente al momento de ponerle protected, deberiamos de ser capaces de isntanciar el metodo y las variables, sin embargo las variables no lo permiten, sacan un error de sintaxis, el metodo si deja pero no las variables. Saludos y me gustaria saber a que se debe, gracias.
Hola, averiguaste el problema?
No lo tengo muy claro todavía, pero depués de ver este tres veces me parece el menos lioso de todos los que se refieren a la dichosa herencia...........Otra vez pa trás.
Mi ovejota 🦙
Profe, osea que protected (por buena práctica) solo se utlizará cuando se programe con herencia?. Hago esta pregunta porque en los videos que hiciste sobre la herencia en java, utilizas el modificador de acceso private. Gracias.
Hola de nuevo, vuelvo con otra duda, recomiendas encapsular como lo veníamos haciendo o hacer uso del modificador protected. pues viendo varios programas y ejemplos en Internet usan mucho el protected. muchas gracias de ante mano.
Pues todo depende de si necesitarás acceder al recurso protected dentro del paquete o no lo necesitarás. Se explica en el curso (no recuerdo ya en qué vídeo) las diferencias que existen entre los distintos modificadores de acceso public, private protected y el modificador por defecto. En función de lo que necesites utilizarás uno u otro. Un saludo!!
Hola de nuevo, me tienes enganchado a tus videos. Puedes confirmarme si lo he entendido bien?
- PRIVATE: Ambito de la CLASE en la que se declara.
- PROTECTED y POR DEFECTO: Ambito del PAQUETE en el que se declara. Aunque sin acceso desde SUBCLASES externas a la clase en que se declara, cuqndo el modificador es POR DEFECTO.
- PUBLIC: Ambito todo el PROYECTO (cualquier paquete, clase y subclase del proyecto)
+Alfonso Herrero Perez Es correcto !! Pues esto que tienes claro es fundamental para seguir. Luego vienen muchas dudas por este tema. Un saludo
Hay métodos en la clase Object que son Public y otros Protected , puesto que de Object derivan todas las clases , porque usaron los dos y no usaron solo protected?
Porque los diseñadores de la clase Object determinarían que hay métodos que no deben ser accedidos desde fuera del paquete donde está declarada la clase Object. Un saludo!
Buenos días equipo, creí que vi todos los vídeos PERO; ¿En que vídeo explica sobre JAVA.LANG?. ¡Muchas gracias por la ayuda!
Profesor, muchas gracias por este curso. Quisiera saber qué programas utiliza para dictar el curso. Es decir, para grabar la pantalla y realizar bosquejos en ella. Le consulto esto porque me gusta mucho su metodología y quisiera comenzar a dar cursos de ingeniería mecánica. Espero pueda responderme y seguiré con este curso que me ha enseñado mucho. Gracias
Hola !! Gracias por el comentario. Utilizo Camtasia Studio para grabar y un programa gratuito llamado zoomit para las anotaciones y dibujos en pantalla. Un saludo!!
Hola Juan , me recomendarias un libro para complementar tus clases ? Gracias por tanto !
Los dos tomos de "Core Java" editorial Prentice Hall. Un saludo!!
@@pildorasinformaticas gracias Juan
Hola disculpe, un profesor me hizo la siguiente pregunta y no supe contestar, debo elegir una de las opciones:
En la práctica, son los modificadores de acceso que emplean en las variables de instancias de
una clase, para controlar los datos asignables a las mismas:
-final, private
-static, transient
-public private
-private, protected
¿Cuál sería la respuesta correcta?
Muchas gracias Juan! una consulta, la Clase3 hereda de la Clase1, pero en ningun momento se hizo la herencia de la Clase2 a la Clase1 cierto?, entonces mi pregunta es, no importa donde estes parado? porque veo que el ejemplo lo haces parado en la Clase2, instanciando un objeto de la Clase3 o lo haces porque la Clase3 es la clase que tiene el Main. Muchas gracias tus videos son excelentes!! Slds!
Pregunta de entrevista con UML:
- Creas la clase A1 que por defecto hereda de Object.
- Creas la clase A2 que por defecto hereda de Object.
- Java no permite herencia multiple.
- Si la clase A2 extends A1, vas a tener dos caminos para llegar a los metodos de Object: 1) Directamente porque todas las clases heredan de Object y 2) Por medio de A1, ya que A1 hereda de Object. Luego, si tengo dos formas de llegar a los métodos de Object, no es ello herencia multiple. Argumente su respuesta.
No, el hecho de que una clase pueda acceder a los métodos de Object a través de dos caminos distintos no constituye herencia múltiple en Java. La herencia múltiple se refiere a la capacidad de una clase de heredar de más de una clase padre directamente, lo cual no es permitido en Java.
En el caso mencionado, la clase A2 estaría heredando de la clase A1, y la clase A1 a su vez hereda de Object. Esto simplemente significa que la clase A2 tiene acceso a los métodos de Object a través de la cadena de herencia, pero sigue siendo una única relación de herencia.
Por lo tanto, el hecho de que existan dos caminos para acceder a los métodos de Object en este caso no implica herencia múltiple, ya que sigue habiendo una única clase padre para la clase A2.
Muchas gracias por todo
Genial el curso! Estoy asentando conceptos! Pero hay una duda que me surge de la clase object, si todas las clases heredan de object y además pueden heredar de otra clase, al final sí que pueden heredar de dos clases a la vez, no? Solo no pueden heredar si las clases son hechas por nosotros, no? Gracias Juan! Eres un profe genial! 😊
Gracias por el comentario. Una cosa es la herencia en cadena o cascada (Una clase A hereda de clase B y esta a su vez hereda de C) y otra cosa es la herencia múltiple (una clase A hereda de B y otra clase C hereda también de A) cosa que no se permita en Java y si en otros lenguajes. Un saludo!
pildorasinformaticas muchas gracias! Ahora todo comprendido! 😊😊
Buenas, estoy aprendiendo bastante con este curso pero aquí me he trabado un poco. No sé si es porque ahora Eclipse es más nuevo o porque Java ha cambiado algo pero yo no necesito poner protected en las variables para poder usarlas (simplemente en vez de salirme un rombo amarillo al poner miobj. en las clases, me sale un triángulo azul. ¿Funciona igual?
Mi ovejota xD Entonces cuando no ponemos el modificador en una clase que se encuentra en un fichero con otra clase publica se le esta asignando el modificador de acceso por default?
Correcto. Cuando no pones modificador se asigna el modificador por defecto. Un saludo!!
una pregunta todas los tipos de clase que hemos visto se puede aplicar en otro lenguaje como C#, por que en C# no me enseñaron lo del setter y getter, polifornimos y etc
Los conceptos de POO que se ven en este curso, son trasladables a otros lenguajes de programación modernos como C#. La herencia, el polimorfismo, métodos getters y setters ... son comunes a casi todos los lenguajes de programación modernos orientados a objetos. Un saludo!
de hecho según he leido tambien existen otros 2 modificiadores que no aparecen en el video, los modificadores volatile y transient.
No les agarro la onda a estos y dices que hay más.... D:
Un grande.
Hola. No hay forma de ver los codigos de las clases que se encuentran en la API?
puedes recomendar paginas donde practicar lo aprendido
_Juan_ una consulta. ¿Ha cambiado todo esto de los modificadores de acceso en *Java 8*?. Lo digo porque por defecto me los da todos *private*, si quiero hacerlos *públicos* tengo que reseñarlos como tal. Ya me di cuenta clases atrás pero no quería meter la pata por si me faltaba algún dato.
Hola Profesor Juan muchas gracias por sus vídeos, me surgió una duda ¿Por qué si Java no admite la herencia múltiple todos eran de la case object?. porque entonces si una clase B hereda de la clase A, la clase B estaría heredando de A y Object, o ¿Java detecta que B hereda de A y como A ya hereda de Objecrt, B ya no hereda directamente de object sino através de A?
Exacto. B hereda de A y A hereda de Object, por lo que es como el caso que ha explicado de Director hereda de Jefatura y esta a la misma vez de Empleado y este a la misma vez de Persona y este de Object. En conclusión, aunque B solo hereda de A estrictamente también hereda Object porque A hereda de Object.
en el ejemplo expuesto la clase que hace de subclase 2 es la clase 2 verdad?
Que libro de programación en java recomienda usted?
Una consulta... Bueno, primero, felicitaciones. Es excelente este canal, y aunque estoy seguro, que por los años, debe haber cosas pasadas, voy a tomarlo completo al curso y luego a actualizar sistema.
Ahora bien, la consulta:
¿Los metodos, son todos Setters y Getters? Muchas gracias, y perdón si está la respuesta escrita, no la vi.
no entiendo bien a que te refieres, tu clase tendrá tantos métodos como quieras, los getters y setters son como un esquema a seguir y a veces los pones igual aunque no los vayas a usar.
Gracias por responder, pero ya tengo la duda resuelta y efectivamente estaba mal planteada la consulta!
@@Rickzo por cierto te adjunto la respuesta a la cual habia formulado la pregunta, asi quizá se explica mejor la pregunta:
"Existen tres tipos de métodos: métodos de consulta, métodos modificadores
y operaciones. Los métodos de consulta sirven para extraer información de
los objetos, los métodos modificadores sirven para modificar el valor de los
atributos del objeto y las operaciones definen el comportamiento de un
objeto"
Master, como siempre excelente su explicación, pero me ha quedado una inquietud, habló sobre los modificadores en métodos y variables, los nombro también en las clases, aunque sin ejemplos me parece, Eclipse siempre te coloca por defecto el modificador public al crear cualquier clase, ¿esto lo que quiere decir es que las clases siempre son públicas? por un asunto de que es obvio que sean públicas, sino el asunto no tendría sentido, hice la prueba al quitarselo y no me arroja error, pero habrá algo importante con respecto a esto?
José Oliveros Hola !! No, no todas las clases han de ser públicas. Se habla en este curso de los modificadores de accesso para las clases. Quizás aún no has llegado al vídeo donde hablo de ello (no recuerdo bien en qué vídeo hablé de esto), pero de todas formas no te preocupes porque más adelante en el curso verás que utilizamos otros modificadores de acceso para las clases y se verá la explicación.
Existen por ejemplo las clases internas (se ve más adelante en el curso) y estas han de ir con el modificador private, es decir, private class...... O sea que si tiene sentido en determinadas circunstancias que el modificador de una clase no sea public.
Un saludo
Ok Master perfecto, sigo adelante, voy desde el video 1 sin perder ninguno, y hasta ahora todo bien, la cosa se ha complicado con tantas cosas pero todo entendible, es cuestión de prácticar, y lo estoy haciendo con los libros de Deitel que son muy buenos, voy por el 49, Interfaces y Clase Internas. Le tengo otra inquietud Master, es cierto que a partir de Java 6, para sacar el Java SE 7 Programmer II hay que haber obtenido la certificación de Asociado; claro se lo estoy preguntando y casi estoy seguro que es así, quiero saber su opinión, el asunto es que quiero en futuro sacar la certificación y quisiera saber si estas certificaciones son las primeras que uno debería tener al empezar con Java, para demostrar que uno posee conocimiento por lo menos en lo teórico, o hay otras certificaciones mas acordes, no se si me explico bien Master, la cuestión es las certificaciones en las que empezar, las primordiales. Un Saludazo Maestro.
Hola !! La verdad es que no tengo mucha idea de cómo andan las certificaciones ahora mismo. Imagino que sabrás que hace unos años la empresa que inventó java (Sun Microsystem) fue absorbida por Oracle.
Después de esto creo tener entendido que cambiaron el programa de certificaciones. Yo me saqué la SCJP (Sun Certified Java Programmer) cuando la cosa todavía estaba con Sun. Tener SCJP te daba derecho a acceder después a certificaciones más específicas como la SCJD (Sun Certified Java Developer), la SCMAD (para móviles) y algunas más.
Estas a su vez daban derecho a presentarte para la SCEA (Sun Certified Enterprise Architect) creo...
Ahora seguro que todo ha cambiado, pero si te pasas por la web de Oracle seguro que encuentras cómo está el tema en la actualidad. Yo no lo he hecho porque no he tenido interés en sacarme ninguna certificación más, pero me han preguntado ya varias veces en el curso por temas de certificaciones así que lo incluiré al final del curso. Primero me tendré que "empapar" bien en la web de Oracle de como está el tema y después os lo contaré a todos vosotros.
Un saludo
Ok maestro, si he estado leyendo en la página, estoy al tanto de que Oracle compro a Sun, y ahora de hecho los códigos de los exámenes cambiaron y seguramente parte de la jerarquía. Me estoy documentando al respecto y quería saber su conocimiento al respecto. Gracias igual Master. Un Saludo y go ahead con su tutorial de Java.
Muy buena explicación Profesor! De su experiencia que libro recomienda leer para reforzar mis conocimientos.
¡Saludos!
+Gonzalo Herrera Hola !! Gracias por el comentario. El tema de los libros es cuestión de gustos. A mi personalmente me gustan los de Froufe y los de la editorial Prentice Hall. Un saludo
+pildorasinformaticas Comprare esos, usted es mi guru de la programacion, no hay forma de agradecer que de un curso tan perfecto de forma gratuita.
+aquiles losada articulo.mercadolibre.com.ar/MLA-606954351-java-2-manual-de-usuario-y-tutorial-agustin-froufe-alfaomega-_JM
Esta bien comprar este? soy amateur recien voy por el video nro 48
+aquiles losada tengo un amigo que necesita su opinion de que libro de JavaScript comprar!
Saludos! Tengo la duda de como aprendiste tu Juan a programar. Quien te enseño. Los libros??
Hola Profe! espero que este muy bien, y gracias por sus vídeos son el éxito!
tengo una duda con respecto a la herencia e instancias , te agradecería mucho si respondieras. : )
te planteo un caso básico:
public class A{
private int a;
public A(int a){
this.a=a;
}
public int getA(){
return a;
}
public void setA(int a){
this.a=a;
}
}
public class B extends A{
private int b;
public B(int b,int a){
super(a);
this.b=b;
}
public int getB(){
return b;
}
public void setB(int b){
this.b=b;
}
}
************************************** acá viene mi duda... :)
public static void main(String []args){
B b1 = new B(1,2);
}
has dicho que la herencia consiste en reutilizar codigo, es decir que todos los atributos y metodos de la clase A pasan a ser parte de la clase B , pero mi duda es.....
¿al momento de instanciar la clase B , se crea una instancia A y una instancia B para asi poder guardarse en una sola direccion en el Heap? ó ¿ se crea una unica instancia B y con ella se encuentran ya los metodos y atributos de la clase A?
gracias por tu tiempo. saludos
se crea una unica instancia B y con ella se encuentran ya los metodos y atributos de la clase A. Un saludo!!
Otra pregunta!! Yo suelo usar la el modificador de acceso private en métodos, pero solo cuando estos métodos son usados únicamente como mecanismo interno de la propia clase. Y algunas veces en los métodos setters, siempre y cuando no necesite modificar datos desde fuera, ¿ Hago bien con esta práctica ?
En efecto, si quieres que tus variables u métodos puedas ser únicamente accedidos desde la misma clase, es recomendable usar private. pero creo que el punto no es que sea recomendable usarlo de esa manera, todo depende de la lógica de un programa p proyecto.
Continuando..!!
Hola Juan!
Cómo es posible que no puedas acceder a los objetos de la Clase 1 si precisamente la Clase 2 está en el mismo paquete? (Minuto 17 en adelante)
Como siempre tu trabajo es increíble. Muchas gracias!
Porque el objeto miobj2 es de Clase3 y este esta en otro paquete
profe disculpe se que es algo visto anteriormente pero todavia no encuentro la utilidad a crear un constructor de una matriz
Nombre_Clase [ ] nombre=new Nombre_Clase[n°];
es lo mismo crear un metodo de este tipo
int [ ] nombre=new int [n°];
Saludos profesor, no pude en netbeans importar mi paquete modificadoresdeacceso desde la clase 2 ni desde la clase 3 importar el paquete poo, simplemente decai que no existia ese paquete, o aveces decia identificador requerido , como solucion no me da importar paquete, solo dice crear clase que no existe en el paquete actual, creo que en netbeans tiene alguan otra sintaxis para importar mis paquetes creados o algo hice mal
cuando en el min 10:23, pones literalmente miovejota ajajaja :)))
Hola Juan te hago una pregunta.. ya se que vas a tardar y es de hace 5 años el vídeo.. pero te hago una consulta.. hice una variable en la Clase3 y la encapsule protected. En la Clase2 cree un objeto de la Clase3 y cuando pongo el objeto.xx no me sale la variable de la clase 3, si las variables y métodos de la clase1
¿Clase 2 y Clase 3 están en el mismo paquete?
Necesitas heredar
Me surgió una duda. Si se implementa el modificador "protected" (En el caso que hablemos de la Clase3 de este vídeo) se vuelve posible ver las variables heredadas, ya que como explicaste, es una subclase en otro paquete. Pero experimentando me di cuenta que solo se hacen visibles las variables heredadas con modificador "protected", y si por ejemplo yo quiero utilizar las variables propias de la 'Clase3' con el modificador "protected" estas no se hacen visibles, unicamente si cambio su modificador a "public". Quisiera porfavor, saber el por qué no puedo acceder a las variables propias de la Clase3, pero si a las heredadas (Ambas con el modificador protected), si esta clase cumple con ser una Subclase, en otro paquete (justo como dicta las restricciones de "protected"). Gracias, admiro tu trabajo. Saludos desde Guatemala.
+Mario Grajeda Hola !! No me ha quedado claro cómo tienes distribuidas tus clases y paquetes. Dime cuántos paquetes tienes, qué clase está en cada paquete y cuáles son las variables que tienes como public y cuáles como prtected. Un saludo!!
Hola,
A mi me pasa igual.
Creo que con protected no es visible si haces uso de clases importadas que están en otro paquete. O sea, lo que comentas a partir de 17:49 (tiempo del vídeo) podría ser erróneo. No obstante en la tabla que muestras unos segundos antes sí se indica que protected NO tiene visibilidad en TODOS, lo cual creo que es correcto.
Muchas Gracias los vídeos me parecen lo mejor que he encontrado con diferencia, muy amenos y muy bien explicados. Gracias.
existe alguna forma de descargar todos estos videos?
Con lo bien que iba con el curso y aquí no soy capaz de comprenderlo. Si el "protected" se supone que NO permite acceder a las variables y/o métodos desde otro paquete, ¿Por qué (18:46) puedes acceder desde la clase 2 a las variables de la clase 3 si están en distinto paquete, y la clase 2 NO es tampoco una subclase de la clase 3?
He visto el vídeo 5 veces pero en ese punto me estalla la cabeza, no consigo comprenderlo
Después de 6 horas volviendo loco a Eclipse creo que he conseguido hilarlo todo.
El protected permite acceder desde Clase y Paquete, más a las variables/métodos heredados desde Clase, Paquete y subclase.
Realice herencia de clases entre distintos paquetes, ninguno perteneciente al paquete java.lang el caso es que no tuve necesidad de importar el paquete.clase
Alguien sabe que ocurre?, acaso una actualización de java?
Para empezar tu curso de Android debería verme todos tus vídeos de Java?
Todos no. Pero cuantos más veas mejor. Para desarrollar aplicaciones Android hay que saber programar en Java. Cuanto más compleja sea la aplicación Android que quieres hacer, más conocimientos de Java necesitarás. Es así. Un saludo!!
me estas salvando la carrera, deberia de pagarte la matricula a ti y no a la uni
No entiendo muy bien por qué no aparece el método finalize de la clase Object cuando heredamos de ella y acabo de probar Object obj = new Object();
obj. (y sigue sin aparecer el método finalize() o clone())
Le di un par de vueltas, pero no caigo.
Un saludo y muchas gracias este curso es increíblemente bueno.
Gracias por el comentario. me alegro de que te guste el curso. No se ahora mismo a qué te refieres con que no aparecen los métodos finalize y clone de la clase Object...Tal vez a que no te salen en el asistente de Eclipse o NetBeans?? Un saludo
+pildorasinformaticas En el vídeo a ti tampoco te salen justo los que son protected y como toda clase hereda de Object no caigo por qué no aparecen esos métodos al usar el punto.
No aparecen porque en la API de java el métodos finalize() y clone() están protegidos. no son métodos públicos, como usarlos? la verdad aún no lo sé, seguro más adelante lo sabremos.
Pa que te pruebas?
Buenas porfesor, no se si las cosas habrán cambiado desde que grabaste el vídeo, pero justo al verlo he ido a probar, y no puedo acceder a una variable protected desde una clase hija que está en un paquete distinto a la clase padre... En el vídeo explicas que con protected siempre que sea clase hija aunque esté en otro paquete será visible verdad? Porque yo no puedo acceder a ella?
Corrijo, esto solo me pasa si es la clase padre la que esta en un paquete distinto a la clase main y la clase hija.
En caso de que sea la clase hija la que está en otro paquete si funciona como lo has explicado, porque??
Hola Necesito ayuda con un tema en programación
Tengo entendido que a la hora de instanciar un objeto en una determinada clase puedo utilizar los métodos de esa clase mas los que hereda de las clases padre.
¿ porque cuando instancio una clase de tipo JPanel hay unos métodos que son heredados de otras clases que no puedo usar? por ejemplo:
JPanel miPanel = new JPanel();
miPanel.paintComponent(Graphics g); //Este metodo no lo puedo usar
alguien por favor me podría explicar gracias!!
El método que mencionas tiene el prefijo 'protected' por lo que solo se puede acceder a él desde la misma clase, en subclases o el mismo paquete en el cual está situado.
Los otros que has visto que tampoco podías usarlos seguramente tengan lo mismo.
En teoría no deberías necesitar esos métodos, pero si se da el caso, podrías crear una clase nueva en el paquete donde esté el método y utilizarla como 'llave' para acceder desde tu clase principal.
@@Rickzo Okey entiendo Muchas gracias!! 😀
+pildorasinformaticas oye, algunas clases parecen no heredar de la clase Object, es esto algo nuevo?, deveria saber algo acerca de esto... Ejemplo mira esta clase BeanContextServiceProvider no se, talvez me estoy equivocando...
Hola !! Eso no es una clase. Es una interfaz. Un saludo!!
Volviendo a verlo jajajaja
Yo uso Sublime Text, y no puedo importar clases de otros paquetes porque "no existen", no entiendo porque, ¿Alguien podría ayudarme?
yo uso Netbeans, y al importar las clase creadas me sale que el paquete no existe.. :C
hola profe; me da un error ( not a statement ) uso netbeans 8 en linux
Copia y pega tu código por aquí para que te pueda ayudar. Un saludo!!
Viva la Españolización y OLÉ. jajajajajajajaja.
Un saludo. Re re re re re re re re re re retomo el curso...
¿Cómo puede ser que no se permita la herencia múltiple y siempre herede de object más de la clase que yo quiera poniendo extends? Que ya sería múltiple de máximo dos y de mínimo 1. ¿estoy o no estoy, que no sé donde estoy? 😆😆😆😆😆
Por qué en "Clase 2" es necesario importar "Clase 3"? Si "Clase 3" es public
porque se encuentra en otro paquete, todas las clases que se encuentren en otro paquete tienen que ser importadas para poder usarlas.
a veces explicas las cosas tan bien que me confundis jaja
Hola pildorasinformaticas, creo que tu nombre es Juan, quisiera saber si tienes algún correo electrónico o , bueno, te preguntaré por este medio, en versiones antiguas de Word, existía una herramienta que era un candadito que se abria y cerraba segun como tu lo quisieras, esto te ayudaba a marcar espacios en blanco en una hoja de word y al cerrarlos, tu podias pasar de un espacio a otro con la ayuda del tabulador, esto servia para cartas modelo en las que cabiabas una serie de datos todo el tiempo y esto te permitía hacerlo con mayor rapidéz, tengo tiempo buscando esa herramienta, pero ya no la he podido encontrar, te suena esto?
Hola!! Creo que te refieres a los formularios. Un formulario cuando está bloqueado (candado), te permite ir de un campo a otro utilizando la tecla tabulador ignorando el resto del documento. En las nuevas versiones tienes estás herramientas en la ficha desarrollador. Esta ficha hay que habilitarla desde el menú opciones de Word. Un saludo
Muchas gracias!
30/10/24 20:11
16/03/2020