SlideShare una empresa de Scribd logo
VARIABLES Y METODOS DE INSTANCIA
Una clase en Java puede contener variables y métodos. Las variables pueden ser
tipos primitivos como int, char, etc. Los métodos son funciones.
Por ejemplo, en el siguiente trozo de código podemos observarlo:
public MiClase {
int i;
public MiClase() {
i = 10;
}
public void Suma_a_i( int j ) {
i = i + j;
}
}
La clase MiClase contiene una variable (i) y dos métodos, MiClase que es el
constructor de la clase y Suma_a_i( int j ).
Ambito de una variable
Los bloques de sentencias compuestas en Java se delimitan con dos llaves. Las
variables de Java sólo son válidas desde el punto donde están declaradas hasta el
final de la sentencia compuesta que la engloba. Se pueden anidar estas sentencias
compuestas, y cada una puede contener su propio conjunto de declaraciones de
variables locales. Sin embargo, no se puede declarar una variable con el mismo
nombre que una de ámbito exterior.
El siguiente ejemplo intenta declarar dos variables separadas con el mismo
nombre. En C y C++ son distintas, porque están declaradas dentro de ámbitos
diferentes. En Java, esto es ilegal.
Class Ambito {
int i = 1; // ámbito exterior
{ // crea un nuevo ámbito
int i = 2; // error de compilación
}
}
Métodos y Constructores
Los métodos son funciones que pueden ser llamadas dentro de la clase o por otras
clases. El constructor es un tipo específico de método que siempre tiene el mismo
nombre que la clase.
Cuando se declara una clase en Java, se pueden declarar uno o más constructores
opcionales que realizan la inicialización cuando se instancia (se crea una
ocurrencia) un objeto de dicha clase.
Utilizando el código de ejemplo anterior, cuando se crea una nueva instancia de
MiClase, se crean (instancian) todos los métodos y variables, y se llama al
constructor de la clase:
MiClase mc;
mc = new MiClase();
La palabra clave new se usa para crear una instancia de la clase. Antes de ser
instanciada con new no consume memoria, simplemente es una declaración de
tipo. Después de ser instanciado un nuevo objeto mc, el valor dei en el
objeto mc será igual a 10. Se puede referenciar la variable (de instancia) i con el
nombre del objeto:
mc.i++; // incrementa la instancia de i de mc
Al tener mc todas las variables y métodos de MiClase, se puede usar la primera
sintaxis para llamar al método Suma_a_i() utilizando el nuevo nombre de
clase mc:
mc.Suma_a_i( 10 );
y ahora la variable mc.i vale 21.
Finalizadores
Java no utiliza destructores (al contrario que C++) ya que tiene una forma de
recoger automáticamente todos los objetos que se salen del alcance. No obstante
proporciona un método que, cuando se especifique en el código de la clase, el
reciclador de memoria (garbage collector) llamará:
// Cierra el canal cuando este objeto es reciclado
protected void finalize() {
close();
}
En esta sección, discutimos el uso de la palabra clave static para crears campos
ys métodos que pertenecen a la clase, en lugar de a una instancia de la clase.
Variables de Clase
Cuando un número de objetos se crean del mismo esquema de la clase, cada
uno tiene sus propias copias distintas de variables de instancia. En el caso de la
claseBicycle, las variables de instancia son cadence, gear, y speed. Cada
objeto Bicycle tiene sus propios valores para estas variables, almacenados en
diversas posiciones de memoria.
A veces, deseas tener variables que sean comunes a todos los objetos. Esto se
logra con el modificador static. Los campos que tienen el modificador static en
su declaración se llaman campos estáticos o variables de la clase. Estas están
asociadas con la clase, en lugar de a cualquier objeto. Cada instancia de la clase
comparte una variable de clase, que está en una localización fija en memoria.
Cualquier objeto puede cambiar el valor de una variable de clase, pero las
variables de clase pueden también ser manipuladas sin crear una instancia de la
clase.
Por ejemplo, suponga que desea crear un número de objetos Bicycle y asignar a
cada uno un número de serie, comenzando con 1 para el primer objeto. Este
número de identificación es único a cada objeto y es por lo tanto una variable de
instancia. Al mismo tiempo, necesita un campo para llevar la cuanta de cuántos
objetos Bicycle se han creado de modo que sepas qué ID asignar al siguiente.
Este campo no se relaciona con ningún objeto individual, sino con la clase en
como un todo. Para esto necesita una variable de clase, numberOfBicycles, como
sigue:
public class Bicycle{
private int cadence;
private int gear;
private int speed;
// agregar una variable de instancia para el ID de objeto
private int id;
// agregar una variable de clase para el número de objetos Bicycle
instanciados
private static int numberOfBicycles = 0;
......
}
Las variables de clase se referencian por el nombre de clase en sí mismo, como
en
Bicycle.numberOfBicycles
Esto hace claro que son variables de clase.
Nota: Puede también referirse a campos estáticos con una referencia de objeto
como
myBike.numberOfBicycles
pero esto no se recomienda porque no hace claro que estas son variables de
clase.
Puede usar el constructor de Bicycle para establecer la variable de instancia id e
incrementar la variable de clase numberOfBicycles:
public class Bicycle{
private int cadence;
private int gear;
private int speed;
private int id;
private static int numberOfBicycles = 0;
public Bicycle(int startCadence, int startSpeed, int startGear){
gear = startGear;
cadence = startCadence;
speed = startSpeed;
// incrementar el número de bicicletas y asignar un número de ID
id = ++numberOfBicycles;
}
// nuevo método para regresar la variable de instancia ID
public int getID() {
return id;
}
.....
}
Métodos de Clase
El lenguaje de programación Java soporta métodos estáticos así como variables
estáticas. Los métodos estáticos, que tienen el modificador static en sus
declaraciones, se deben invocar con el nombre de la clase, sin la necesidad de
crear una instancia de la clase, como en
ClassName.methodName(args)
Nota: Puede también referirse a métodos estáticos con una referencia de
objeto como
instanceName.methodName(args)
pero no se recomienda porque no hace claro que estas son variables de clase.
Un uso común para los métodos estáticos es el acceder a campos estáticos. Por
ejemplo, podríamos agregar un método estático a la clase Bicycle para acceder el
campo estático numberOfBicycles:
public static int getNumberOfBicycles() {
return numberOfBicycles;
}
No todas las combinaciones de variables de instancia y de clase se permiten:
 Los métodos de instancia pueden acceder variables de la instancia y a
métodos de la instancia directamente.
 Los métodos de instancia pueden acceder variables de la clase y a
métodos de la clase directamente.
 Los métodos de la clase pueden acceder variables de la clase y a métodos
de la clase directamente.
 Los métodos de la clase no pueden acceder variables de la instancia o a
métodos de la instancia directamente—estos deben utilizar una
referencia de objeto. También, los métodos de la clase no pueden utilizar
la palabra clave this ya que no hay instancia de this a la cual referirse.
Constantes
El modificador static, junto con el modificador final, también se utiliza para
definir constantes. El modificador final indica que el valor de este campo no
puede cambiar.
Por ejemplo, la siguiente declaración de variable define una constante
llamada PI, cuyo valor es una aproximación de pi (el cociente de la
circunferencia de un círculo a su diámetro):
static final double PI = 3.141592653589793;
Las constantes definidas de esta manera no pueden ser reasignadas, y es un
error de tiempo de compilación si su programa intenta hacerlo. Por convención,
el nombre de valores constantes se deletreado en letras mayúsculas. Si el
nombre se compone de más de una palabra, las palabras se separan por un
guión bajo (_).
Nota: Si se define un tipo primitivo o una cadena como una constante y el valor
es conocido en tiempo de compilación, el compilador substituye el nombre de la
constante en todas partes en el código con su valor. Esta se llama constante de
tiempo de compilación. Si el valor de la constante cambia en el mundo exterior
(por ejemplo, si se legisla que el pi realmente debe ser 3.975), necesitará
recompilar cualquier clase que utilice esta constante para obtener el valor
actual.
La Clase Bicycle
Después de todas las modificaciones hechas en esta sección, la clase Bicycle es
ahora:
public class Bicycle{
private int cadence;
private int gear;
private int speed;
private int id;
private static int numberOfBicycles = 0;
public Bicycle(int startCadence, int startSpeed, int startGear){
gear = startGear;
cadence = startCadence;
speed = startSpeed;
id = ++numberOfBicycles;
}
public int getID() { //obtener ID
return id;
}
public static int getNumberOfBicycles() { //obtener número de
bicicletas
return numberOfBicycles;
}
public int getCadence(){ //obtener cadencia
return cadence;
}
public void setCadence(int newValue){ //establecer cadencia
cadence = newValue;
}
public int getGear(){ //obtener engrane
return gear;
}
public void setGear(int newValue){ //establecer engrane
gear = newValue;
}
public int getspeed(){ //obtener velocidad
return speed;
}
public void applyBrake(int decrement){ //aplicar frenos
speed -= decrement;
}
public void speedUp(int increment){ //acelerar
speed += increment;
}
}

Más contenido relacionado

La actualidad más candente

Topicos Avanzados de Programacion - Unidad 3 componentes y librerias
Topicos Avanzados de Programacion - Unidad 3 componentes y libreriasTopicos Avanzados de Programacion - Unidad 3 componentes y librerias
Topicos Avanzados de Programacion - Unidad 3 componentes y librerias
José Antonio Sandoval Acosta
 
Metodo de Euler M.pptx
Metodo de Euler M.pptxMetodo de Euler M.pptx
Metodo de Euler M.pptx
SoulEvans6
 
Arraylist
ArraylistArraylist
Arraylist
Fernando Solis
 
Programación C++ - DEV C++
Programación C++ - DEV C++Programación C++ - DEV C++
Java colecciones
Java coleccionesJava colecciones
Java colecciones
Renny Batista
 
Presentacion Java
Presentacion JavaPresentacion Java
Presentacion Java
maeusogo
 
Programación modular estructurada.ppt
Programación modular estructurada.pptProgramación modular estructurada.ppt
Programación modular estructurada.pptLeydi Hernandez
 
Poo
PooPoo
Algoritmo 18 uso del segun
Algoritmo 18   uso del segunAlgoritmo 18   uso del segun
Algoritmo 18 uso del segunjmachuca
 
Diferenciación e integración numérica
Diferenciación e integración numéricaDiferenciación e integración numérica
Diferenciación e integración numérica
Armany1
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfijaOmarzingm
 
Apunte metodosnumericos
Apunte metodosnumericosApunte metodosnumericos
Apunte metodosnumericos
bartvwn
 
Palabras Reservadas en C++
Palabras Reservadas en C++Palabras Reservadas en C++
Palabras Reservadas en C++
ncrmax
 
12 Curso de POO en java - entrada y salida de datos
12 Curso de POO en java - entrada y salida de datos12 Curso de POO en java - entrada y salida de datos
12 Curso de POO en java - entrada y salida de datos
Clara Patricia Avella Ibañez
 
Ejercicios de estructura selectiva anidadas
Ejercicios de estructura selectiva anidadasEjercicios de estructura selectiva anidadas
Ejercicios de estructura selectiva anidadasAlejandro Pacheco
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
knowallrpa
 
Serie de taylor
Serie de taylorSerie de taylor
Serie de taylorNatalia
 

La actualidad más candente (20)

Topicos Avanzados de Programacion - Unidad 3 componentes y librerias
Topicos Avanzados de Programacion - Unidad 3 componentes y libreriasTopicos Avanzados de Programacion - Unidad 3 componentes y librerias
Topicos Avanzados de Programacion - Unidad 3 componentes y librerias
 
Metodo de Euler M.pptx
Metodo de Euler M.pptxMetodo de Euler M.pptx
Metodo de Euler M.pptx
 
Arraylist
ArraylistArraylist
Arraylist
 
Programación C++ - DEV C++
Programación C++ - DEV C++Programación C++ - DEV C++
Programación C++ - DEV C++
 
Java colecciones
Java coleccionesJava colecciones
Java colecciones
 
Presentacion Java
Presentacion JavaPresentacion Java
Presentacion Java
 
Programación modular estructurada.ppt
Programación modular estructurada.pptProgramación modular estructurada.ppt
Programación modular estructurada.ppt
 
Poo
PooPoo
Poo
 
Algoritmo 18 uso del segun
Algoritmo 18   uso del segunAlgoritmo 18   uso del segun
Algoritmo 18 uso del segun
 
Diferenciación e integración numérica
Diferenciación e integración numéricaDiferenciación e integración numérica
Diferenciación e integración numérica
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfija
 
Apunte metodosnumericos
Apunte metodosnumericosApunte metodosnumericos
Apunte metodosnumericos
 
Palabras Reservadas en C++
Palabras Reservadas en C++Palabras Reservadas en C++
Palabras Reservadas en C++
 
12 Curso de POO en java - entrada y salida de datos
12 Curso de POO en java - entrada y salida de datos12 Curso de POO en java - entrada y salida de datos
12 Curso de POO en java - entrada y salida de datos
 
Ejercicios de estructura selectiva anidadas
Ejercicios de estructura selectiva anidadasEjercicios de estructura selectiva anidadas
Ejercicios de estructura selectiva anidadas
 
Funcion de heaviside
Funcion de heavisideFuncion de heaviside
Funcion de heaviside
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Clase 1. lógica de la programación
Clase 1. lógica de la programaciónClase 1. lógica de la programación
Clase 1. lógica de la programación
 
Conceptos poo (presentación1)
Conceptos poo (presentación1)Conceptos poo (presentación1)
Conceptos poo (presentación1)
 
Serie de taylor
Serie de taylorSerie de taylor
Serie de taylor
 

Destacado

2 1 1 Definiendo Clases
2 1 1 Definiendo Clases2 1 1 Definiendo Clases
2 1 1 Definiendo ClasesUVM
 
Librería String, Math de Java (NetBeans)
Librería String, Math de Java (NetBeans)Librería String, Math de Java (NetBeans)
Librería String, Math de Java (NetBeans)
Daniel Gómez
 
Tm04 modelo de clases
Tm04 modelo de clasesTm04 modelo de clases
Tm04 modelo de clasesJulio Pari
 
POO
POOPOO
Paradigma orientado a objetos
Paradigma orientado a objetosParadigma orientado a objetos
Paradigma orientado a objetos
Alejandro Bolaños Ussa
 
Introducción a la programación orientada objetos
Introducción a la programación orientada objetosIntroducción a la programación orientada objetos
Introducción a la programación orientada objetos
Renny Batista
 
Introducción a la programación y la informática. Tema 6
Introducción a la programación y la informática. Tema 6Introducción a la programación y la informática. Tema 6
Introducción a la programación y la informática. Tema 6
Andres Garcia Garcia
 
Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015
Renny Batista
 
Ecuaciones Cuadraticas
Ecuaciones CuadraticasEcuaciones Cuadraticas
Ecuaciones Cuadraticas
eccutpl
 
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a  Programación Orientada a Objetos (OOP): Clases y ObjetosIntroducción a  Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
Kudos S.A.S
 
Java
JavaJava
Java
naye32
 
Como programar java, 9na edicion deitel
Como programar java, 9na edicion   deitelComo programar java, 9na edicion   deitel
Como programar java, 9na edicion deitel
Santos Isaias Itc
 
Java orientado a objetos
Java orientado a objetosJava orientado a objetos
Java orientado a objetos
Salvador Fernández Fernández
 

Destacado (18)

2 1 1 Definiendo Clases
2 1 1 Definiendo Clases2 1 1 Definiendo Clases
2 1 1 Definiendo Clases
 
Librería String, Math de Java (NetBeans)
Librería String, Math de Java (NetBeans)Librería String, Math de Java (NetBeans)
Librería String, Math de Java (NetBeans)
 
Tm04 modelo de clases
Tm04 modelo de clasesTm04 modelo de clases
Tm04 modelo de clases
 
POO
POOPOO
POO
 
Paradigma orientado a objetos
Paradigma orientado a objetosParadigma orientado a objetos
Paradigma orientado a objetos
 
Introducción a la programación orientada objetos
Introducción a la programación orientada objetosIntroducción a la programación orientada objetos
Introducción a la programación orientada objetos
 
MéTodos En Java
MéTodos En JavaMéTodos En Java
MéTodos En Java
 
Introducción a la programación y la informática. Tema 6
Introducción a la programación y la informática. Tema 6Introducción a la programación y la informática. Tema 6
Introducción a la programación y la informática. Tema 6
 
Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015
 
Ecuaciones Cuadraticas
Ecuaciones CuadraticasEcuaciones Cuadraticas
Ecuaciones Cuadraticas
 
METODOS
METODOSMETODOS
METODOS
 
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a  Programación Orientada a Objetos (OOP): Clases y ObjetosIntroducción a  Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
 
Taller 1 3
Taller 1 3Taller 1 3
Taller 1 3
 
Java
JavaJava
Java
 
Transp objetos
Transp objetosTransp objetos
Transp objetos
 
Clase math.java
Clase math.javaClase math.java
Clase math.java
 
Como programar java, 9na edicion deitel
Como programar java, 9na edicion   deitelComo programar java, 9na edicion   deitel
Como programar java, 9na edicion deitel
 
Java orientado a objetos
Java orientado a objetosJava orientado a objetos
Java orientado a objetos
 

Similar a Variables y metodos de instancia

Leguaje de programacion C#
Leguaje de programacion C#Leguaje de programacion C#
Leguaje de programacion C#
Ana Maria Martinez
 
Tarea 5
Tarea 5Tarea 5
Tarea 5
ar qb
 
Unidad o informatica
Unidad o informaticaUnidad o informatica
Unidad o informatica
Marisa Torrecillas
 
Programación ii presentación tema 5
Programación ii presentación tema 5Programación ii presentación tema 5
Programación ii presentación tema 5
Joel Mieses
 
Unidad 3 CLASES, OBJETOS E INTSANCIAS
Unidad 3 CLASES, OBJETOS E INTSANCIASUnidad 3 CLASES, OBJETOS E INTSANCIAS
Unidad 3 CLASES, OBJETOS E INTSANCIAS
Cindy Adriana Bohórquez Santana
 
Sesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clasesSesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clasesecodereck
 
Conceptos basicos POO
Conceptos basicos POOConceptos basicos POO
Conceptos basicos POO
Uniminuto - San Francisco
 
Presentacion de clases en c#
Presentacion de clases en c#Presentacion de clases en c#
Presentacion de clases en c#
Sterling Rafael Santana Vargas
 
Clases en Java y todo lo relacionado
Clases en Java y todo lo relacionadoClases en Java y todo lo relacionado
Clases en Java y todo lo relacionado
Juan Carlos Espinoza
 
05 Creando Clases
05   Creando Clases05   Creando Clases
05 Creando Clases
Network Sens
 
La palabra reservada this y los métodos "getters" y "setters"
La palabra reservada this y los métodos "getters" y "setters"La palabra reservada this y los métodos "getters" y "setters"
La palabra reservada this y los métodos "getters" y "setters"
ingemg1
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02
Krizztiina Pacheko
 
INTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVAINTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVA
Karla Estefania Villanueva Epigmenio
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje java
Margarita Romero
 

Similar a Variables y metodos de instancia (20)

Datos previos
Datos previosDatos previos
Datos previos
 
Datos Previos
Datos PreviosDatos Previos
Datos Previos
 
Datos Previos
Datos PreviosDatos Previos
Datos Previos
 
Leguaje de programacion C#
Leguaje de programacion C#Leguaje de programacion C#
Leguaje de programacion C#
 
Tarea 5
Tarea 5Tarea 5
Tarea 5
 
Unidad o informatica
Unidad o informaticaUnidad o informatica
Unidad o informatica
 
Programación ii presentación tema 5
Programación ii presentación tema 5Programación ii presentación tema 5
Programación ii presentación tema 5
 
Unidad 3 CLASES, OBJETOS E INTSANCIAS
Unidad 3 CLASES, OBJETOS E INTSANCIASUnidad 3 CLASES, OBJETOS E INTSANCIAS
Unidad 3 CLASES, OBJETOS E INTSANCIAS
 
Sesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clasesSesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clases
 
Conceptos basicos POO
Conceptos basicos POOConceptos basicos POO
Conceptos basicos POO
 
Presentacion de clases en c#
Presentacion de clases en c#Presentacion de clases en c#
Presentacion de clases en c#
 
Semana9b Vbr
Semana9b VbrSemana9b Vbr
Semana9b Vbr
 
Clase viii
Clase viiiClase viii
Clase viii
 
Leccion 7 Java
Leccion 7 JavaLeccion 7 Java
Leccion 7 Java
 
Clases en Java y todo lo relacionado
Clases en Java y todo lo relacionadoClases en Java y todo lo relacionado
Clases en Java y todo lo relacionado
 
05 Creando Clases
05   Creando Clases05   Creando Clases
05 Creando Clases
 
La palabra reservada this y los métodos "getters" y "setters"
La palabra reservada this y los métodos "getters" y "setters"La palabra reservada this y los métodos "getters" y "setters"
La palabra reservada this y los métodos "getters" y "setters"
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02
 
INTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVAINTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVA
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje java
 

Más de Robert Wolf

Tema 16 acceso a base de datos usando jpa por gio
Tema 16   acceso a base de datos usando jpa por gioTema 16   acceso a base de datos usando jpa por gio
Tema 16 acceso a base de datos usando jpa por gioRobert Wolf
 
Tema 15 aplicaciones de dos capas por gio
Tema 15   aplicaciones de dos capas por gioTema 15   aplicaciones de dos capas por gio
Tema 15 aplicaciones de dos capas por gioRobert Wolf
 
Tema 14 imágenes en java por gio
Tema 14   imágenes en java por gioTema 14   imágenes en java por gio
Tema 14 imágenes en java por gioRobert Wolf
 
Tema 13 gráficas en java por gio
Tema 13   gráficas en java por gioTema 13   gráficas en java por gio
Tema 13 gráficas en java por gioRobert Wolf
 
Tema 12 hilos en java por gio
Tema 12   hilos en java por gioTema 12   hilos en java por gio
Tema 12 hilos en java por gioRobert Wolf
 
Tema 11 expresiones regulares en java por gio
Tema 11   expresiones regulares en java por gioTema 11   expresiones regulares en java por gio
Tema 11 expresiones regulares en java por gioRobert Wolf
 
Tema 10 clase abstractas e interfaz
Tema 10 clase abstractas e interfazTema 10 clase abstractas e interfaz
Tema 10 clase abstractas e interfazRobert Wolf
 
Tema 10 entrada y salida por gio
Tema 10   entrada y salida por gioTema 10   entrada y salida por gio
Tema 10 entrada y salida por gioRobert Wolf
 
Tema 9 pruebas unitarias por gio
Tema 9   pruebas unitarias por gioTema 9   pruebas unitarias por gio
Tema 9 pruebas unitarias por gioRobert Wolf
 
Tema 9 aplicaciones de dos capas por gio
Tema 9   aplicaciones de dos capas por gioTema 9   aplicaciones de dos capas por gio
Tema 9 aplicaciones de dos capas por gioRobert Wolf
 
Tema 8 entrada y salida por gio
Tema 8   entrada y salida por gioTema 8   entrada y salida por gio
Tema 8 entrada y salida por gioRobert Wolf
 
Tema 8 desarrollo de aplicaciones en java por gio
Tema 8   desarrollo de aplicaciones en java por gioTema 8   desarrollo de aplicaciones en java por gio
Tema 8 desarrollo de aplicaciones en java por gioRobert Wolf
 
Tema 7 gui, swing y java beans por gio
Tema 7   gui, swing y java beans por gioTema 7   gui, swing y java beans por gio
Tema 7 gui, swing y java beans por gioRobert Wolf
 
Tema 7 desarrollo de aplicaciones en java - lsia por gio
Tema 7   desarrollo de aplicaciones en java - lsia por gioTema 7   desarrollo de aplicaciones en java - lsia por gio
Tema 7 desarrollo de aplicaciones en java - lsia por gioRobert Wolf
 
Tema 6 gui, swing y java beans por gio
Tema 6   gui, swing y java beans por gioTema 6   gui, swing y java beans por gio
Tema 6 gui, swing y java beans por gioRobert Wolf
 
Tema 6 colecciones por gio
Tema 6   colecciones por gioTema 6   colecciones por gio
Tema 6 colecciones por gioRobert Wolf
 
Tema 5 arreglos y cadenas por gio
Tema 5   arreglos y cadenas por gioTema 5   arreglos y cadenas por gio
Tema 5 arreglos y cadenas por gioRobert Wolf
 

Más de Robert Wolf (20)

Tema6resumido
Tema6resumidoTema6resumido
Tema6resumido
 
Tema4 herencia
Tema4 herenciaTema4 herencia
Tema4 herencia
 
Tema 6
Tema 6Tema 6
Tema 6
 
Tema 16 acceso a base de datos usando jpa por gio
Tema 16   acceso a base de datos usando jpa por gioTema 16   acceso a base de datos usando jpa por gio
Tema 16 acceso a base de datos usando jpa por gio
 
Tema 15 aplicaciones de dos capas por gio
Tema 15   aplicaciones de dos capas por gioTema 15   aplicaciones de dos capas por gio
Tema 15 aplicaciones de dos capas por gio
 
Tema 14 imágenes en java por gio
Tema 14   imágenes en java por gioTema 14   imágenes en java por gio
Tema 14 imágenes en java por gio
 
Tema 13 gráficas en java por gio
Tema 13   gráficas en java por gioTema 13   gráficas en java por gio
Tema 13 gráficas en java por gio
 
Tema 12 hilos en java por gio
Tema 12   hilos en java por gioTema 12   hilos en java por gio
Tema 12 hilos en java por gio
 
Tema 11 expresiones regulares en java por gio
Tema 11   expresiones regulares en java por gioTema 11   expresiones regulares en java por gio
Tema 11 expresiones regulares en java por gio
 
Tema 10 clase abstractas e interfaz
Tema 10 clase abstractas e interfazTema 10 clase abstractas e interfaz
Tema 10 clase abstractas e interfaz
 
Tema 10 entrada y salida por gio
Tema 10   entrada y salida por gioTema 10   entrada y salida por gio
Tema 10 entrada y salida por gio
 
Tema 9 pruebas unitarias por gio
Tema 9   pruebas unitarias por gioTema 9   pruebas unitarias por gio
Tema 9 pruebas unitarias por gio
 
Tema 9 aplicaciones de dos capas por gio
Tema 9   aplicaciones de dos capas por gioTema 9   aplicaciones de dos capas por gio
Tema 9 aplicaciones de dos capas por gio
 
Tema 8 entrada y salida por gio
Tema 8   entrada y salida por gioTema 8   entrada y salida por gio
Tema 8 entrada y salida por gio
 
Tema 8 desarrollo de aplicaciones en java por gio
Tema 8   desarrollo de aplicaciones en java por gioTema 8   desarrollo de aplicaciones en java por gio
Tema 8 desarrollo de aplicaciones en java por gio
 
Tema 7 gui, swing y java beans por gio
Tema 7   gui, swing y java beans por gioTema 7   gui, swing y java beans por gio
Tema 7 gui, swing y java beans por gio
 
Tema 7 desarrollo de aplicaciones en java - lsia por gio
Tema 7   desarrollo de aplicaciones en java - lsia por gioTema 7   desarrollo de aplicaciones en java - lsia por gio
Tema 7 desarrollo de aplicaciones en java - lsia por gio
 
Tema 6 gui, swing y java beans por gio
Tema 6   gui, swing y java beans por gioTema 6   gui, swing y java beans por gio
Tema 6 gui, swing y java beans por gio
 
Tema 6 colecciones por gio
Tema 6   colecciones por gioTema 6   colecciones por gio
Tema 6 colecciones por gio
 
Tema 5 arreglos y cadenas por gio
Tema 5   arreglos y cadenas por gioTema 5   arreglos y cadenas por gio
Tema 5 arreglos y cadenas por gio
 

Último

INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
Alejandrogarciapanta
 
Presentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdfPresentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdf
H4RV3YH3RN4ND3Z
 
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
María Sánchez González (@cibermarikiya)
 
Guia para Docentes como usar ChatGPT Mineduc Ccesa007.pdf
Guia para Docentes como usar ChatGPT  Mineduc Ccesa007.pdfGuia para Docentes como usar ChatGPT  Mineduc Ccesa007.pdf
Guia para Docentes como usar ChatGPT Mineduc Ccesa007.pdf
Demetrio Ccesa Rayme
 
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docxLecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Alejandrino Halire Ccahuana
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
JAVIER SOLIS NOYOLA
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
pablomarin116
 
El espiritismo desenmascarado.pdf. Lec. 10
El espiritismo desenmascarado.pdf. Lec. 10El espiritismo desenmascarado.pdf. Lec. 10
El espiritismo desenmascarado.pdf. Lec. 10
Alejandrino Halire Ccahuana
 
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdfBlogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
lautyzaracho4
 
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
AracelidelRocioOrdez
 
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
20minutos
 
IMÁGENES SUBLIMINALES EN LAS PUBLICACIONES DE LOS TESTIGOS DE JEHOVÁ
IMÁGENES SUBLIMINALES EN LAS PUBLICACIONES DE LOS TESTIGOS DE JEHOVÁIMÁGENES SUBLIMINALES EN LAS PUBLICACIONES DE LOS TESTIGOS DE JEHOVÁ
IMÁGENES SUBLIMINALES EN LAS PUBLICACIONES DE LOS TESTIGOS DE JEHOVÁ
Claude LaCombe
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
20minutos
 
El ensayo mexicano en el siglo XX LITERATURA
El ensayo mexicano en el siglo XX LITERATURAEl ensayo mexicano en el siglo XX LITERATURA
El ensayo mexicano en el siglo XX LITERATURA
Armando920824
 
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdfGuia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Demetrio Ccesa Rayme
 
PANDERETAS DECORADAS CON MOTIVOS DE LA RIOJA
PANDERETAS DECORADAS CON MOTIVOS DE LA RIOJAPANDERETAS DECORADAS CON MOTIVOS DE LA RIOJA
PANDERETAS DECORADAS CON MOTIVOS DE LA RIOJA
estroba5
 
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdfFORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
El Fortí
 
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
20minutos
 
Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
LorenaCovarrubias12
 
PLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxx
PLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxxPLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxx
PLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxx
cportizsanchez48
 

Último (20)

INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
 
Presentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdfPresentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdf
 
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
 
Guia para Docentes como usar ChatGPT Mineduc Ccesa007.pdf
Guia para Docentes como usar ChatGPT  Mineduc Ccesa007.pdfGuia para Docentes como usar ChatGPT  Mineduc Ccesa007.pdf
Guia para Docentes como usar ChatGPT Mineduc Ccesa007.pdf
 
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docxLecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
 
El espiritismo desenmascarado.pdf. Lec. 10
El espiritismo desenmascarado.pdf. Lec. 10El espiritismo desenmascarado.pdf. Lec. 10
El espiritismo desenmascarado.pdf. Lec. 10
 
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdfBlogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
 
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
 
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
 
IMÁGENES SUBLIMINALES EN LAS PUBLICACIONES DE LOS TESTIGOS DE JEHOVÁ
IMÁGENES SUBLIMINALES EN LAS PUBLICACIONES DE LOS TESTIGOS DE JEHOVÁIMÁGENES SUBLIMINALES EN LAS PUBLICACIONES DE LOS TESTIGOS DE JEHOVÁ
IMÁGENES SUBLIMINALES EN LAS PUBLICACIONES DE LOS TESTIGOS DE JEHOVÁ
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
 
El ensayo mexicano en el siglo XX LITERATURA
El ensayo mexicano en el siglo XX LITERATURAEl ensayo mexicano en el siglo XX LITERATURA
El ensayo mexicano en el siglo XX LITERATURA
 
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdfGuia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
 
PANDERETAS DECORADAS CON MOTIVOS DE LA RIOJA
PANDERETAS DECORADAS CON MOTIVOS DE LA RIOJAPANDERETAS DECORADAS CON MOTIVOS DE LA RIOJA
PANDERETAS DECORADAS CON MOTIVOS DE LA RIOJA
 
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdfFORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
 
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
 
Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
 
PLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxx
PLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxxPLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxx
PLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxx
 

Variables y metodos de instancia

  • 1. VARIABLES Y METODOS DE INSTANCIA Una clase en Java puede contener variables y métodos. Las variables pueden ser tipos primitivos como int, char, etc. Los métodos son funciones. Por ejemplo, en el siguiente trozo de código podemos observarlo: public MiClase { int i; public MiClase() { i = 10; } public void Suma_a_i( int j ) { i = i + j; } } La clase MiClase contiene una variable (i) y dos métodos, MiClase que es el constructor de la clase y Suma_a_i( int j ). Ambito de una variable Los bloques de sentencias compuestas en Java se delimitan con dos llaves. Las variables de Java sólo son válidas desde el punto donde están declaradas hasta el final de la sentencia compuesta que la engloba. Se pueden anidar estas sentencias compuestas, y cada una puede contener su propio conjunto de declaraciones de variables locales. Sin embargo, no se puede declarar una variable con el mismo nombre que una de ámbito exterior. El siguiente ejemplo intenta declarar dos variables separadas con el mismo nombre. En C y C++ son distintas, porque están declaradas dentro de ámbitos diferentes. En Java, esto es ilegal. Class Ambito { int i = 1; // ámbito exterior { // crea un nuevo ámbito int i = 2; // error de compilación } } Métodos y Constructores Los métodos son funciones que pueden ser llamadas dentro de la clase o por otras clases. El constructor es un tipo específico de método que siempre tiene el mismo nombre que la clase.
  • 2. Cuando se declara una clase en Java, se pueden declarar uno o más constructores opcionales que realizan la inicialización cuando se instancia (se crea una ocurrencia) un objeto de dicha clase. Utilizando el código de ejemplo anterior, cuando se crea una nueva instancia de MiClase, se crean (instancian) todos los métodos y variables, y se llama al constructor de la clase: MiClase mc; mc = new MiClase(); La palabra clave new se usa para crear una instancia de la clase. Antes de ser instanciada con new no consume memoria, simplemente es una declaración de tipo. Después de ser instanciado un nuevo objeto mc, el valor dei en el objeto mc será igual a 10. Se puede referenciar la variable (de instancia) i con el nombre del objeto: mc.i++; // incrementa la instancia de i de mc Al tener mc todas las variables y métodos de MiClase, se puede usar la primera sintaxis para llamar al método Suma_a_i() utilizando el nuevo nombre de clase mc: mc.Suma_a_i( 10 ); y ahora la variable mc.i vale 21. Finalizadores Java no utiliza destructores (al contrario que C++) ya que tiene una forma de recoger automáticamente todos los objetos que se salen del alcance. No obstante proporciona un método que, cuando se especifique en el código de la clase, el reciclador de memoria (garbage collector) llamará: // Cierra el canal cuando este objeto es reciclado protected void finalize() { close(); } En esta sección, discutimos el uso de la palabra clave static para crears campos ys métodos que pertenecen a la clase, en lugar de a una instancia de la clase. Variables de Clase
  • 3. Cuando un número de objetos se crean del mismo esquema de la clase, cada uno tiene sus propias copias distintas de variables de instancia. En el caso de la claseBicycle, las variables de instancia son cadence, gear, y speed. Cada objeto Bicycle tiene sus propios valores para estas variables, almacenados en diversas posiciones de memoria. A veces, deseas tener variables que sean comunes a todos los objetos. Esto se logra con el modificador static. Los campos que tienen el modificador static en su declaración se llaman campos estáticos o variables de la clase. Estas están asociadas con la clase, en lugar de a cualquier objeto. Cada instancia de la clase comparte una variable de clase, que está en una localización fija en memoria. Cualquier objeto puede cambiar el valor de una variable de clase, pero las variables de clase pueden también ser manipuladas sin crear una instancia de la clase. Por ejemplo, suponga que desea crear un número de objetos Bicycle y asignar a cada uno un número de serie, comenzando con 1 para el primer objeto. Este número de identificación es único a cada objeto y es por lo tanto una variable de instancia. Al mismo tiempo, necesita un campo para llevar la cuanta de cuántos objetos Bicycle se han creado de modo que sepas qué ID asignar al siguiente. Este campo no se relaciona con ningún objeto individual, sino con la clase en como un todo. Para esto necesita una variable de clase, numberOfBicycles, como sigue: public class Bicycle{ private int cadence; private int gear; private int speed; // agregar una variable de instancia para el ID de objeto private int id; // agregar una variable de clase para el número de objetos Bicycle instanciados private static int numberOfBicycles = 0; ...... } Las variables de clase se referencian por el nombre de clase en sí mismo, como en Bicycle.numberOfBicycles Esto hace claro que son variables de clase.
  • 4. Nota: Puede también referirse a campos estáticos con una referencia de objeto como myBike.numberOfBicycles pero esto no se recomienda porque no hace claro que estas son variables de clase. Puede usar el constructor de Bicycle para establecer la variable de instancia id e incrementar la variable de clase numberOfBicycles: public class Bicycle{ private int cadence; private int gear; private int speed; private int id; private static int numberOfBicycles = 0; public Bicycle(int startCadence, int startSpeed, int startGear){ gear = startGear; cadence = startCadence; speed = startSpeed; // incrementar el número de bicicletas y asignar un número de ID id = ++numberOfBicycles; } // nuevo método para regresar la variable de instancia ID public int getID() { return id; } ..... } Métodos de Clase El lenguaje de programación Java soporta métodos estáticos así como variables estáticas. Los métodos estáticos, que tienen el modificador static en sus declaraciones, se deben invocar con el nombre de la clase, sin la necesidad de crear una instancia de la clase, como en ClassName.methodName(args)
  • 5. Nota: Puede también referirse a métodos estáticos con una referencia de objeto como instanceName.methodName(args) pero no se recomienda porque no hace claro que estas son variables de clase. Un uso común para los métodos estáticos es el acceder a campos estáticos. Por ejemplo, podríamos agregar un método estático a la clase Bicycle para acceder el campo estático numberOfBicycles: public static int getNumberOfBicycles() { return numberOfBicycles; } No todas las combinaciones de variables de instancia y de clase se permiten:  Los métodos de instancia pueden acceder variables de la instancia y a métodos de la instancia directamente.  Los métodos de instancia pueden acceder variables de la clase y a métodos de la clase directamente.  Los métodos de la clase pueden acceder variables de la clase y a métodos de la clase directamente.  Los métodos de la clase no pueden acceder variables de la instancia o a métodos de la instancia directamente—estos deben utilizar una referencia de objeto. También, los métodos de la clase no pueden utilizar la palabra clave this ya que no hay instancia de this a la cual referirse. Constantes El modificador static, junto con el modificador final, también se utiliza para definir constantes. El modificador final indica que el valor de este campo no puede cambiar. Por ejemplo, la siguiente declaración de variable define una constante llamada PI, cuyo valor es una aproximación de pi (el cociente de la circunferencia de un círculo a su diámetro): static final double PI = 3.141592653589793; Las constantes definidas de esta manera no pueden ser reasignadas, y es un error de tiempo de compilación si su programa intenta hacerlo. Por convención,
  • 6. el nombre de valores constantes se deletreado en letras mayúsculas. Si el nombre se compone de más de una palabra, las palabras se separan por un guión bajo (_). Nota: Si se define un tipo primitivo o una cadena como una constante y el valor es conocido en tiempo de compilación, el compilador substituye el nombre de la constante en todas partes en el código con su valor. Esta se llama constante de tiempo de compilación. Si el valor de la constante cambia en el mundo exterior (por ejemplo, si se legisla que el pi realmente debe ser 3.975), necesitará recompilar cualquier clase que utilice esta constante para obtener el valor actual. La Clase Bicycle Después de todas las modificaciones hechas en esta sección, la clase Bicycle es ahora: public class Bicycle{ private int cadence; private int gear; private int speed; private int id; private static int numberOfBicycles = 0; public Bicycle(int startCadence, int startSpeed, int startGear){ gear = startGear; cadence = startCadence; speed = startSpeed; id = ++numberOfBicycles; } public int getID() { //obtener ID return id; } public static int getNumberOfBicycles() { //obtener número de bicicletas return numberOfBicycles;
  • 7. } public int getCadence(){ //obtener cadencia return cadence; } public void setCadence(int newValue){ //establecer cadencia cadence = newValue; } public int getGear(){ //obtener engrane return gear; } public void setGear(int newValue){ //establecer engrane gear = newValue; } public int getspeed(){ //obtener velocidad return speed; } public void applyBrake(int decrement){ //aplicar frenos speed -= decrement; } public void speedUp(int increment){ //acelerar speed += increment; } }