Bueno las constante en Java no existen pero hay una forma de utilizarlas...
Bueno en el curso donde me lo explica me dice lo siguiente.
1.Nombres constantes en mayúsculas
2. Debemos usar también modificadores: final y static.
final: No puede ser cambiado en el programa.
static: lo convierte en constante de clase
Ejemplos:
final int PRIMA = 12000;
static final float PI = 3.1416;
Bueno lo que no entiendo es lo de convierte en constante la clase? o mejor dicho ¿Que es constantes de clase?
Alguien me puede explicar algo mas detallado esto?
De clase significa que está declarado e inicializado únicamente dentro de la clase en la que se define.
Que alguien me corrija si me equivoco
eso quiere decir que para todo tu sistema va a existir una solo variable PI no una ni dos ni 3 solo una variable pi
digamos que tienes un objeto Persona y tiene una variable global edad si no es estatica todas las personas tendrian edades diferentes es decir que puedes crear el objeto panchito de tipo Persona con edad de 15 y tambien el objeto juancito con edad 17 cada persona tiene su edad independiente es decir en el programa estarian en memoria varias edades pero si pones edad como static existiria una sola edad para todo el sistema es decir que si pones edad =14 con static todas las personas tendrian 14 no importa si crees a panchito o a juancito ambos siempre tendran la misma edad
A ver si entendí... por ejemplo imaginaros yo tengo 3 variables
static final int elhacker= 350
int Sixtoex
int elquesea
¿Tendría el mismo valor ¿? Sixtoex y elquesea el valor 350?
Saludos
Cita de: SixToex (Agares) en 21 Abril 2012, 10:55 AM
A ver si entendí... por ejemplo imaginaros yo tengo 3 variables
static final int elhacker= 350
int Sixtoex
int elquesea
¿Tendría el mismo valor ¿? Sixtoex y elquesea el valor 350?
Saludos
Mira, las constantes en Java, se definen como:
static final tipo ID = valor....
Se les llama miembros de clase, ¿por qué? porque son miembros de las clases y no de los objetos.
Si creas objetos de la clase, cada objeto tendrá el mismo valor (son estáticas y final), y lo más importante de este concepto es que solo habrá una sola constante para todos, ¿por qué? porque es un miembro de clase estático, le pertenece a la clase.
-pon la clase completa
-uu en primer lugar pon nombres logicos y ejemplos concretos por que asi es mas facil
-noo elhacker sixtoex elquesea(aparte te tener nombres horribles) no tendrian el mismo valor la palabra static solo afecta a elHacker
un ejemplo
package javaapplication7;
public class Apliacion {
static String CREADOR="M$crosoft el lado oscuro $$$";
}
public class Main {
public static void main(String[] args) {
Apliacion excel=new Apliacion();
Apliacion powerPoint=new Apliacion();
Apliacion word=new Apliacion();
System.out.println(Apliacion.CREADOR);
System.out.println(powerPoint.CREADOR);
System.out.println(word.CREADOR);
}
}
me imprime
M$crosoft el lado oscuro $$$
M$crosoft el lado oscuro $$$
M$crosoft el lado oscuro $$$
y el ide me dice "sapo bruto no se supone que debas programar asi mira la linea 10 y 11 estas imprimiendo una variable static usando un objeto"
y si pongo algo como esto
public static void main(String[] args) {
Apliacion excel=new Apliacion();
Apliacion powerPoint=new Apliacion();
Apliacion word=new Apliacion();
powerPoint.CREADOR="Sapo corporation made in wilson peru";
System.out.println(Apliacion.CREADOR);
System.out.println(powerPoint.CREADOR);
System.out.println(word.CREADOR);
}
y me resalta que no es logico lo que puse en la linea 8 por que estoy intentando ponerle un creador a powerpoint pero eso no tiene sentido por que le pongo el creador a la clase Apliacion y no al objeto power point
verifica lo siguiente:
class Prueba{
public static void main(String[] args)
{
Persona p=new Persona();
p.setNombre("Ricardo");
System.out.println(""+p.getNombre());
System.out.println(""+p.getEdad());
}
}
class Persona{
private static int EDAD=30;
private String nombre;
public void setNombre(String nombre)
{
this.nombre=nombre;
}
public String getNombre()
{
return nombre;
}
public int getEdad()
{
return EDAD;
}
}
Si te fijas todas las instancias de la clase persona que pueda crear tendran siempre la
misma edad...
Ahora te pregunto yo a ti Puedo crear un metodo que me permita cambiar el valor static
de una variable... espero me respondas asi continuamos con la explicacion.
si puedes crear un metodo que le cambie el valor static para cambiar la edad pero una ves que le cambies la edad a una persona el resto de las personas tambien tendran la misma edad
static es por clase no por objeto
class Prueba {
public static void main(String[] args) {
Persona p = new Persona();
p.setNombre("Ricardo");
p.setEdad(50);
Persona pancho = new Persona();
pancho.setNombre("pancho");
System.out.println("" + p.getNombre());
System.out.println("" + p.getEdad());
System.out.println(pancho.getEdad());
}
}
class Persona {
private static int EDAD = 30;
private String nombre;
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getNombre() {
return nombre;
}
public int getEdad() {
return EDAD;
}
public void setEdad(int edad) {
EDAD = edad;
}
}
y la respuesta seria
Ricardo
50
50
Uta sapito tenias que hacer pensar a SixToex