escribir un método estático al conjunto java mostrador?

onesnapthanos:

Soy bastante nuevo en la codificación, quiero escribir un método estático para establecer un valor de cuenta de 1000.

Intenté hacer cosas como

public static  int setCounter(){
        return 1000;

    }

Cuando intente utilizar este método en sí para incrementar la cuenta

tales como someVariable = constante simbólica + setcounter () ++; someVariable retorno, me da un error de tipo inesperado, variable requerida, valor que se encuentra. ¿Qué estoy haciendo mal?

editar*

editar*

private String getTicketNumber(){
    ticketNumber = TICKET_PREFIX + resetCounter()++;
    return ticketNumber;

 public static int resetCounter(int counter){
        counter = 1000;

    }

Quiero llamar a este contador se incrementará en otro método

escamillas

Una propiedad estática se asocia con la definición de la clase, y hay solo una definición de la clase. Se crea una instancia cada vez que se utiliza la newpalabra clave de la clase. Todos los casos son mantener sus propios datos privados de la clase estática. Cuando se utiliza una instancia de clase puede acceder a las variables estáticas, pero no al revés.

Se utiliza el término constante, pero creo que es posible que tenga un poco de una mala interpretación de lo que ello implica. Las constantes se declaran a menudo como static finalvalores que son inmutables (que nunca pueden ser cambiadas). Usted no debe ser capaz de modificar una constante. Un valor estático puede ser mutable si así lo desea, y esto es lo que a veces se refieren como un conjunto unitario con estado.

Tenga en cuenta estos dos ejemplos ... uno modifica una variable de instancia, la otra variable estática.

class InstanceFoo {
    int i = 1000;
    int resetCounter() {
        i = 1000;
        return i;
    }
    int getAndIncrement() {
        return i++;
    }
}

class StaticFoo {
    static int i = 1000;
    static int resetCounter() {
        i = 1000;
        return i;
    }
    static int getAndIncrement() {
        return i++;
    }
}

En el primer ejemplo es necesario utilizar una instancia para acceder a las variables .. es decir que necesita para crear una instancia con new:

InstanceFoo foo = new InstanceFoo();
System.out.println(foo.resetCounter()); // 1000
System.out.println(foo.getAndIncrement()); // 1000
System.out.println(foo.getAndIncrement()); // 1001
System.out.println(foo.getAndIncrement()); // 1002
System.out.println(foo.resetCounter()); // 1000

En la segunda se accede al valor estático. La estática puede hacer referencia a la definición de clase:

System.out.println(StaticFoo.resetCounter()); // 1000
System.out.println(StaticFoo.getAndIncrement()); // 1000
System.out.println(StaticFoo.getAndIncrement()); // 1001
System.out.println(StaticFoo.getAndIncrement()); // 1002
System.out.println(StaticFoo.resetCounter()); // 1000

En el ejemplo que está intentando incrementar el contador haciendo resetCounter()++. Esto no va a trabajar por una razón separada por completo de ser estática o instancia. Los valores primitivos en Java (como intercepciones, dobles, flotadores, etc.) se pasan por valor, no pasa por referencia.

En un sentido muy simplista, esto significa que una vez que regresan una primitiva de un método como resetCounter, está de paso en realidad una copia del valor. A continuación, incrementa la copia, pero el valor asociado a la clase permanece igual (porque se incrementa sólo la copia de la variable). Es necesario llamar al operador de sufijo ++en la propia variable, no el valor devuelto por el método. es decir, si tengo

class StaticFoo {
    static int i = 1000;
    static int get() {
        return i;
    }
}

System.out.println(StaticFoo.get()++); // prints 1000 and adds 1. the copy is then destroyed
System.out.println(StaticFoo.get()++); // prints 1000 and adds 1, the copy is then destroyed
System.out.println(StaticFoo.i); // prints 1000
System.out.println(StaticFoo.i++); // prints 1000 and now a postfix is applied to the static variable
System.out.println(StaticFoo.i++); // prints 1001 and another postfix is applied to the static variable
System.out.println(StaticFoo.get()); // prints 1002 because two postifx operators were applied to StaticFoo.i.

Espero que esto le ayuda a empezar.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=276285&siteId=1
Recomendado
Clasificación