Dudas de Java

Started by Drumpi, January 29, 2011, 01:06:43 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Drumpi

Hola a todos:

Pues nada, como sabeis (porque soy más pesado que un Jumbo en la superficie de Júpiter :D) estoy aprendiendo Java por mi cuenta.
No, no he dejado Bennu, sólo busco una manera de llenar el depósito cuando se vacía, y de paso, aprendo cosas nuevas :D
Y claro, como es normal, me surgen dudas, así que las voy a poner en este hilo a medida que me vayan surgiendo, para tenerlo todo recogidito y ordenado. Esto no quiere decir que si alguno de vosotros también tiene dudas, no las pueda poner aquí, al contrario, el hilo está abierto a todas las inquietudes acerca del lenguaje.

Pero no olvidemos que aun seguimos en el foro de programación de Bennu :D

Antes de plantear mi duda, un par de párrafos: uno informativo (lectura opcional) y otro de opinión (lectura no necesaria).
El curso que estoy siguiendo es el de la web www.javaya.com.ar, que es un manual muy sencillo para todos los niveles, quizás demasiado bajo, porque el que sepa algo de programación se va a aburrir como un espectador de call-tv, sobre todo por la tanda (muy necesaria, por cierto) de ejercicios.

(Opinión). Aun no he avanzado demasiado en el curso, pero empiezo a vislumbrar por qué los autodenominados "informáticos de verdad" odian Java, y es que en según qué aspectos, facilita mucho la vida. Por ejemplo, tiene funciones para leer palabras de forma independiente, o frases, o enteros... cosas que en lenguajes como C requieren unas cuantas líneas y un buen control del buffer de teclado. También, declarar un array es algo más complicado, pero se puede crear en cualquier momento con cualquier longitud (se puede especificar el tamaño con un valor que se le pase por teclado), cuando de otra forma tienes que aprender a manejar punteros sí o sí.

Bien, vamos con la duda. El caso es que estoy terminando con los capítulos sobre clases (aquí Splinter ha dejado de leer ;D) y no le veo demasiado problema, no entiendo por qué tanto odio, si poco más o menos es lo que se hace con los procesos de Bennu, o siendo más precisos, con los textos en Bennu.
Sin embargo, a la hora de declarar los atributos (variables locales a toda la clase), siempre se han declarado como "private", aunque sé que se pueden declarar "public":
private int variable;
Sin embargo, en un ejemplo se ha omitido la palabra private, quedando su declaración como:
int variable;
Y el compilador no se ha quejado ¿entonces se puede hacer así? ¿por defecto se declaran como "private" o como "public"?
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Rein (K´)ah Al-Ghul

no tengo idea, de como se declaran si se omite "private", pero porque lo declaras como int en lugar de Integer, la ultima es una clase y viene con todos los beneficios de las mismas...

Rein (K´)ah Al-Ghul
Infected with the Krieger strain of the Human-MetaHuman Vampiric Virus.

en vez de darme Karma positivo, denme (K´)arma negativ

Noivern

Cuando no se declara modificador de acceso de una variable esta queda por defecto package-protected. Esto significa que la variable es pública para todas las clases pertenecientes al mismo package, pero para el resto del mundo, incluida las hijas son privadas y no pueden acceder. Es muy parecido al modificador protected, que aparte de esto si garantiza acceso a las clases hijas.

Fuente:
http://download.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

Hasta ahora pensaba que si no se declaraba era como si se pusiera protected, fail u.u

Por cierto, al menos yo, usalmente no uso Integer pero si int, es más el Integer casi siempre lo he tenido que utilizar para métodos puntuales que son estáticos como el Integer.ParseInt() por lo que no es necesario un objeto Integer para utilizarlo.

Vaya "locos" que son los informáticos de verdad que no les gusta algo que les facilita la vida xD

Yawin

No recuerdo mucho del java, porque sin ser informático de verdad lo odio; pero, creo que si no lo especificas, se declara como privada.
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

Noivern

Quote from: yawin on January 29, 2011, 01:10:04 PM
No recuerdo mucho del java, porque sin ser informático de verdad lo odio; pero, creo que si no lo especificas, se declara como privada.
falso :P

Drumpi

Muchas gracias por la ayuda.
Lo de public, private o protected, yo sólo conocía public y private, en parte por Benu, en parte por lo poquísimo que vimos de clases en la facultad (de forma teórica, de pasada y usando pseudo-lenguaje). Supongo que esto se verá un poco más adelante.
Igual pasa con Int e Integer: de momento (tutorial 20) los tipos que se han usado son int, float y String, supongo que para no marear al principio demasiado con la teoría, porque en C sí que lo vimos y vaya peñazo hasta que empezamos a ver el "hola mundo".

Respecto a los "informáticos de verdad", bueno, es una subespecie de informáticos que abunda en demasía en mi círculo de conocidos: suelen ser estudiantes de informática o recién licenciados, también son los primeros que se quejan sobre el "intrusismo laboral" y sólo programan lo que se les dice. Suelen tener conocimientos de HW justitos, lo suficiente para conocer los nuevos dispositivos comerciales, las placas que se venden y los periféricos más potentes del mercado :D :D :D
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Yawin

Quote from: Noivern on January 29, 2011, 04:17:11 PM
Quote from: yawin on January 29, 2011, 01:10:04 PM
No recuerdo mucho del java, porque sin ser informático de verdad lo odio; pero, creo que si no lo especificas, se declara como privada.
falso :P

Como ya he dicho, apenas recuerdo nada de Java xD Me parece una aberración. Una burda  copia de C++, pero que tampoco se parece.
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

Noivern

Quote from: yawin on January 29, 2011, 09:55:01 PM
Quote from: Noivern on January 29, 2011, 04:17:11 PM
Quote from: yawin on January 29, 2011, 01:10:04 PM
No recuerdo mucho del java, porque sin ser informático de verdad lo odio; pero, creo que si no lo especificas, se declara como privada.
falso :P

Como ya he dicho, apenas recuerdo nada de Java xD Me parece una aberración. Una burda  copia de C++, pero que tampoco se parece.

Yo creo que no hay que cerrarse a nada, pues te puede ser una fuente de trabajo hoy en día. A mi me gusta java en general por lo relativamente simple de llegar a resultados. Lo que a veces me molesta es tener que dar mil vueltas en la API para encontrar como se utilizan algunos objetos, especialmente cuando algún método loco por ahí retorna una clase base abstracta. De todos modos me gustaría aprender algo de C++, pero hoy por hoy prefiero Android que es... oh sorpresa, sintaxis java xD (quizás que carajo irá a pasar con android y las demandas a google por "inspirarse al pie de la letra" de la tecnología java de SUN -fuck you oracle troll de pantentes :P - )

------

Con respecto a los tipos de variables, uhm creo que es un tanto especial ya que se mezclan los primitivos con las clases.
Primitivos serían los clasicos boolean, byte, short, int, long, float, double y char. Obviamente no tienen métodos asociados. TODO LO DEMÁS son clases.

Drumpi

Por cierto, me estoy planteando cuando termine echarle un vistazo a J2EE y J2ME ¿hay mucha diferencia o sabiendo Java normal ya me vale? ¿se puede usar java en las páginas web o se usa javascript (y cuales serían las diferencias).
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Rein (K´)ah Al-Ghul

Quote from: Drumpi on January 30, 2011, 01:24:46 AM
Por cierto, me estoy planteando cuando termine echarle un vistazo a J2EE y J2ME ¿hay mucha diferencia o sabiendo Java normal ya me vale? ¿se puede usar java en las páginas web o se usa javascript (y cuales serían las diferencias).
ME, por ser version ser para moviles tiene menos clases, creo que menos tipos de datos/clases q ocupen su lugar...
por lo demas debe ser igual.

nunca me meti del todo con javascript, pero se que acompañan al archivo html, java en si, se encuentra mas debajo si hay que hacer algo con una base de datos por ejemplo

Rein (K´)ah Al-Ghul
Infected with the Krieger strain of the Human-MetaHuman Vampiric Virus.

en vez de darme Karma positivo, denme (K´)arma negativ

FreeYourMind

j2ee, enterprise edition, es java normal, el j2me, micro edition, es para moviles, y como calcularas esta adaptado a estos con menos recursos, pero al dia de hoy son terminos mas obsoletos que otra cosa, ya que los moviles ya no son lo que eran xDDD

Java sirve para hacer paginas tb, la logica en el lado del serivodr como conexión a BD, sprint, hibernate, etc...
Javascript, no es javam pero si un java retocado, y del lado del cliente, javascript no utiliza mucho la filosofia de objetos, aunque tambien puede usarlos (jsom).

Yawin

En la web puedes usar Java en forma de Javaapplets. Este es un applet que tuve que hacer en clase hace tiempo:

http://pensarescompartir.com/lahsoft/ajax/VisorFichero.html
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

Drumpi

Ah, guay, una cosa menos que estudiar :D
Nah, es que vi una oferta en la que pedían conocimientos de J2ME y me quedé así :O Y el otro día, realizando una copia de mis copias de seguridad (sí, también se hacen, sobre todo cuando los discos tienen ya sus añitos ;D) me encontré un PDF sobre el lenguaje, creado por un profesor de no se qué facultad de informática.

Más adelante espero poder renovar la web, añadiendo en la parte superior menús desplegables, contadores de descargas y visitas, y cosas así (quien sabe, lo mismo meto allí mis juegos para venderlos ;D). Y también un Blog con lo que me recomendasteis hace tiempo, que veo que la cosa se queda muy organizada, y puedo tener diversos hilos según temática: proyectos, juegos paperactivos, chorradas...
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Noivern

Osea de lo que tienes que estudiar es más bien el comportamiento de Java. Como decía antes, cuando domines el comportamiento, pues pasarte a J2ME o J2EE es solo mirar las APIs que necesites para desarrollar.

Drumpi

Lo que sí que estoy viendo es que todo el lenguaje java se resume a usar objetos, uno tras otro, hasta para lo más simple. No me extraña que no les guste a los "informáticos de verdad", porque ellos sólo programan en C (ya que en C++ no se puede programar sin objetos :D).

Lo cierto es que en ese aspecto me recuerda a VHDL, ya que el lenguaje en si casi no existe, se limita a usar "arquitecturas" hasta para definir los tipos de datos.

Pero ya empezamos con las cosas raras: matrices irregulares, ¡toma ya!
Hombre, el concepto lo entiendo perfectamente, es sencillo (si consigues no liarte entre tanto corchete ;D), pero hay que reconocer que es, cuanto menos, un derechazo al rostro cuando te lo encuentras la primera vez.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)