JaViNhORule escribió:Hola gente, llevo unos dias caña al java y he mejorado mucho pero al entregar una serie de ejercicios me han comentado de un error en todos ellos. Me dicen que el codigo introducido dentro del main no se puede reutilizar y por tanto es como si no existiera. Como puedo sacar el codigo del main sin perjudicar nada? Aqui os pongo un ejemplo:import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class FechaActual {
public static void main(String[] args) {
System.out.println (new Date());
Calendar c = new GregorianCalendar();
String dia, mes, anyo;
dia = Integer.toString(c.get(Calendar.DATE));
mes = Integer.toString(c.get(Calendar.MONTH)+1);
anyo = Integer.toString(c.get(Calendar.YEAR));
System.out.println (dia + " /" + mes +" / " + anyo);
}
}
Salu2 y gracias
Producto buscar(String nombre){
Producto producto;
int mitad, compara,limiteInferior, limiteSuperior;
mitad = 0;
compara = 0;
limiteInferior = 0;
limiteSuperior = _siguiente;
producto = null;
while ((limiteInferior <= limiteSuperior) && (producto == null)) {
mitad = (limiteInferior + limiteSuperior) / 2;
compara = _productos[mitad].compareTo(producto.obtenerNombre());
if (compara < 0) {
limiteInferior = mitad +1;
}
else if (compara > 0) {
limiteSuperior = mitad -1;
}
else {
producto = _productos[mitad];
}
}
return producto;
}
JaViNhORule escribió:Hola gente. Os escribo porque tengo un par de dudas que no consigo resolver. Tengo un error en la linea del compareTo y no me doy cuenta que pasa. Es un metodo que sirve para buscar un producto en una matriz (_productos[]).Producto buscar(String nombre){
Producto producto;
int mitad, compara,limiteInferior, limiteSuperior;
mitad = 0;
compara = 0;
limiteInferior = 0;
limiteSuperior = _siguiente;
producto = null;
while ((limiteInferior <= limiteSuperior) && (producto == null)) {
mitad = (limiteInferior + limiteSuperior) / 2;
compara = _productos[mitad].compareTo(producto.obtenerNombre());
if (compara < 0) {
limiteInferior = mitad +1;
}
else if (compara > 0) {
limiteSuperior = mitad -1;
}
else {
producto = _productos[mitad];
}
}
return producto;
}
compara = _productos[mitad].compareTo(producto.obtenerNombre());
JaViNhORule escribió:Y otra cosa que no soy capaz de conseguir. Necesito un método que intercambie la posicion de dos productos dentro de la matriz. Los productos son nombres (es una practica sobre un supermercado). @param i posicion del primer producto y @param j posicion del segundo producto. ¿Se os ocurre algo para hacerlo?
Salu2 y muchas gracias.
JaViNhORule escribió:El error que da el primer metodo es:
symbol : method compareTo(java.lang.String)
location: class Producto
compara = _productos[mitad].compareTo(producto.obtenerNombre());
_________________________^
1 error
Tengo 3 clases (supermercado, almacen y producto) y una clase de prueba (PruebaSupermercado).
El metodo obtenerNombre() lo tengo declarado en esa clase, creo que ese no es el problema porque en el resto de lugares funciona correcto. El puntero del error señala hacia el compareTo y no se muy bien porque, tal vez sea una chorrada.
amuchamu escribió:JaViNhORule escribió:El error que da el primer metodo es:
symbol : method compareTo(java.lang.String)
location: class Producto
compara = _productos[mitad].compareTo(producto.obtenerNombre());
_________________________^
1 error
Tengo 3 clases (supermercado, almacen y producto) y una clase de prueba (PruebaSupermercado).
El metodo obtenerNombre() lo tengo declarado en esa clase, creo que ese no es el problema porque en el resto de lugares funciona correcto. El puntero del error señala hacia el compareTo y no se muy bien porque, tal vez sea una chorrada.
¿No te indica qué error es? ¿Nada de NullPointerException?
Producto producto;
producto = null; ¿?
while ((limiteInferior <= limiteSuperior) && (producto == null)) {
compara = _productos[mitad].compareTo(producto.obtenerNombre());
}
MyObject o = null;
o.toString; //NullPointerException
redscare escribió:No se que cojones habrás hecho, pero si llamas a un método de una instancia de un objecto que es null, te va a petar SIEMPRE.MyObject o = null;
o.toString; //NullPointerException
Vamos, que lo que tenías de while(... && producto==null) { producto.getNombre() } es imposible que llegue a funcionar correctamente.
JaViNhORule escribió:redscare escribió:No se que cojones habrás hecho, pero si llamas a un método de una instancia de un objecto que es null, te va a petar SIEMPRE.MyObject o = null;
o.toString; //NullPointerException
Vamos, que lo que tenías de while(... && producto==null) { producto.getNombre() } es imposible que llegue a funcionar correctamente.
Pues siento contradecirte pero esa parte la he conservado y funciona perfectamente. Me parece que no as entendido como funciona el metodo. A lo que llamo es a la clase producto que contiene el metodo obtenerNombre(). Es un poco enrevesado, tengo 3 clases enlazadas entre si, pero funciona perfectamente, ahora mismo lo acabo de terminar todo.
Seguramente me halla explicado yo mal con las dudas, llevo muy poco en java y esta mi primera aplicacion con mas de 1 clase y me ha costado un poquito.
Salu2 y gracias
JaViNhORule escribió:redscare escribió:No se que cojones habrás hecho, pero si llamas a un método de una instancia de un objecto que es null, te va a petar SIEMPRE.MyObject o = null;
o.toString; //NullPointerException
Vamos, que lo que tenías de while(... && producto==null) { producto.getNombre() } es imposible que llegue a funcionar correctamente.
Pues siento contradecirte pero esa parte la he conservado y funciona perfectamente. Me parece que no as entendido como funciona el metodo. A lo que llamo es a la clase producto que contiene el metodo obtenerNombre(). Es un poco enrevesado, tengo 3 clases enlazadas entre si, pero funciona perfectamente, ahora mismo lo acabo de terminar todo.
Seguramente me halla explicado yo mal con las dudas, llevo muy poco en java y esta mi primera aplicacion con mas de 1 clase y me ha costado un poquito.
Salu2 y gracias
Guantanamera escribió:Buenas!
Estoy empezando un GS de informática, en concreto DAM y nos han mandado un libro. Core java 2 volumen 1 y 2. Aunque no los he conseguido en castellano...
LLevamos 2 semanas de clases, y por ahora me está decepcionando un poquito... Quizás porque van muy lentos... Aún no ha explicado nada de la POO; ni tan siquiera if for while do-while etc... Sólo algunos métodos de String y poco más.... Espero que avance y en el primer trimestre ya hagamos cosas decentes, porque sino me voy a aburrir mucho
Un saludo y gracias por todo
Guantanamera escribió:Buenas!
Estoy empezando un GS de informática, en concreto DAM y nos han mandado un libro. Core java 2 volumen 1 y 2. Aunque no los he conseguido en castellano...
LLevamos 2 semanas de clases, y por ahora me está decepcionando un poquito... Quizás porque van muy lentos... Aún no ha explicado nada de la POO; ni tan siquiera if for while do-while etc... Sólo algunos métodos de String y poco más.... Espero que avance y en el primer trimestre ya hagamos cosas decentes, porque sino me voy a aburrir mucho
Un saludo y gracias por todo
class Measurement{
int longitud(int L){
return L*5;
}}
[FlooD1993] escribió:Buenas, primero de todo, perdón si ésto no va aquí, no sabía muy bien dónde ponerlo ni que buscar para ver donde ponerlo.
El caso es que estoy empezando programación en la universidad y el lenguaje que usamos es Java. El caso es que el profesor explica fatal y en los apuntes que nos pasa no viene nada sobre ésto. El caso es que he estado toqueteando y he conseguido (con Dr Java, no sé si influye, es lo que usamos) que me compile un programa que supuestamente multiplica por 5 el valor que le metes.class Measurement{
int longitud(int L){
return L*5;
}}
Mi duda es como hacer para probarlo, es decir, meterle yo un valor, por ejemplo 2 y que me dé 10 de resultado. Según tengo entendido, sólo puede ejecutarse un programa si existe un 'main', pero no sé exactamente lo que es ni cómo meterlo. Lo único que sé es que tengo que meter algo tipo Measurement p==new Measurement (valor); en el panel de interacciones, aunque no sé. Si alguien me echa una mano sobre cómo seguir le estaría agradecido.
Gracias.
the_waterman escribió: ...
boolean pruebaMiPrograma(){
return MiPrograma(2)==10
}
// POST: Determina si x es una solución para
// x2 + 2 · x + 1 = 0
boolean ecuacion1 (double x){
return x*x+2.0*x+1.0==0.0;
}
[FlooD1993] escribió:the_waterman escribió: ...
public static void main( String args[] ) Cuando tengas tiempo, ¿puedes por favor explicarme qué significa cada parte de esa frase y si se usa en todos los programas ''así porque sí''? ¿O sólo se necesita si quiero X?
amuchamu escribió:[FlooD1993] escribió:the_waterman escribió: ...
public static void main( String args[] ) Cuando tengas tiempo, ¿puedes por favor explicarme qué significa cada parte de esa frase y si se usa en todos los programas ''así porque sí''? ¿O sólo se necesita si quiero X?
¿Ni siquiera habéis probado a hacer el típico Hola Mundo? Te han liado bastante. Lo mejor será que te mires un manual de java y lo vayas siguiendo.
[FlooD1993] escribió:Pues alguna diapositiva puso el primer día de eso, creo recordar, pero no explicó nada. ¿Alguna recomendación de un manual decente?
public class MiPrograma {
public static void main(String args[]) {
int a;
//Leer número por teclado y guardar en a
a = a*5;
System.out.println(a);
}
}
public class MiPrograma {
public static void main(String args[]) {
int n;
n = multiplicar(x); //x es el número a multiplicar por 5
}
public int multiplicar(int numero) {
return numero*5;
}
}
[FlooD1993] escribió:El caso es que estoy empezando programación en la universidad y el lenguaje que usamos es Java. El caso es que el profesor explica fatal y en los apuntes que nos pasa no viene nada sobre ésto. El caso es que he estado toqueteando y he conseguido (con Dr Java, no sé si influye, es lo que usamos) que me compile un programa que supuestamente multiplica por 5 el valor que le metes.class Measurement{
int longitud(int L){
return L*5;
}}
Mi duda es como hacer para probarlo, es decir, meterle yo un valor, por ejemplo 2 y que me dé 10 de resultado. Según tengo entendido, sólo puede ejecutarse un programa si existe un 'main', pero no sé exactamente lo que es ni cómo meterlo. Lo único que sé es que tengo que meter algo tipo Measurement p==new Measurement (valor); en el panel de interacciones, aunque no sé. Si alguien me echa una mano sobre cómo seguir le estaría agradecido.
Gracias.
public class Multiplica {
public static void main (String args[]) {
int num = Integer.parseInt(args[0]);
System.out.print(num * 5);
}
}
import java.util.Scanner;
public class Multiplica {
public static void main (String args[]) {
int num;
Scanner teclado = new Scanner(System.in);
System.out.print("Introduce un número: ");
num = teclado.nextInt();
System.out.print("El número " + num + " multipliaco * 5 = " + num * 5);
}
}
pecneyst escribió:En una matriz de java,tengo que meter una posicion(ejemplo : 00 01 10 11) ,y que me diga si existe o no,la matriz esta hecha,pero a la hora de que me saque la posicion, aquellas posiciones introducidas que van del 00 al 09 no me muestra correctamente.
Si la matriz es de 2 x2
Las posiciones serian : 00 01 11 12
Es decir si introduzco la posicion: 00 me muestra cuando le doy a imprimir su valor solo 0,si meto posicion 01 solo me muestra el 1,eso si...a partir de la posicion 10 si me las muestra,el problema va del 00 al 09.
El codigo es este.
//Muestro las posiciones de las matrices ya metidas anteriormente
System.out.print("\nLas posiciones disponibles son:");
for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){
System.out.print("\n"+i+j);
}
}
int posicion=0;
System.out.println("\nIntroduzca una posicion:");
posicion=valor.nextInt();
System.out.println(posicion); ->aki me da el problema solo me sale correcto a partir de la posicion 10,si meto posicion 01,me muestra solo el 0 y el 1 no.........
pecneyst escribió:En una matriz de java,tengo que meter una posicion(ejemplo : 00 01 10 11) ,y que me diga si existe o no,la matriz esta hecha,pero a la hora de que me saque la posicion, aquellas posiciones introducidas que van del 00 al 09 no me muestra correctamente.
Si la matriz es de 2 x2
Las posiciones serian : 00 01 11 12
Es decir si introduzco la posicion: 00 me muestra cuando le doy a imprimir su valor solo 0,si meto posicion 01 solo me muestra el 1,eso si...a partir de la posicion 10 si me las muestra,el problema va del 00 al 09.
El codigo es este.
//Muestro las posiciones de las matrices ya metidas anteriormente
System.out.print("\nLas posiciones disponibles son:");
for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){
System.out.print("\n"+i+j);
}
}
int posicion=0;
System.out.println("\nIntroduzca una posicion:");
posicion=valor.nextInt();
System.out.println(posicion); ->aki me da el problema solo me sale correcto a partir de la posicion 10,si meto posicion 01,me muestra solo el 0 y el 1 no.........
pecneyst escribió:...
amuchamu escribió:Tienes 2 problemas:
- No reinicias el valor inicial de "mayor" cuando pasas de una columna a otra.
- Sólo imprimes el valor de "mayor" cuando se encuentra un número mayor al que estás comparando.
public class Superclase(){
static protected boolean x = true;
}
public class Subclase() extends Superclase{
}
public class Subclase() extends Superclase{
public Subclase(){
x = false;
}
}
System.out.println(getx());