SlideShare uma empresa Scribd logo
1 de 7
Baixar para ler offline
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;
}
}

Mais conteúdo relacionado

Mais procurados (17)

Politica de seguridad
Politica de seguridadPolitica de seguridad
Politica de seguridad
 
139885220 series-uniformes
139885220 series-uniformes139885220 series-uniformes
139885220 series-uniformes
 
Ejercicio 1 tp3
Ejercicio 1 tp3Ejercicio 1 tp3
Ejercicio 1 tp3
 
CORRIENTE ALTERNA
CORRIENTE ALTERNACORRIENTE ALTERNA
CORRIENTE ALTERNA
 
Discriminante o-hessiano
Discriminante o-hessianoDiscriminante o-hessiano
Discriminante o-hessiano
 
Imprimir control 7
Imprimir control 7Imprimir control 7
Imprimir control 7
 
Problemas Impares Unidad Ii De Simulacion
Problemas Impares Unidad Ii De SimulacionProblemas Impares Unidad Ii De Simulacion
Problemas Impares Unidad Ii De Simulacion
 
Diagrama de flujo de caja
Diagrama de flujo de cajaDiagrama de flujo de caja
Diagrama de flujo de caja
 
Ejemplo Algoritmo Lineal
Ejemplo Algoritmo LinealEjemplo Algoritmo Lineal
Ejemplo Algoritmo Lineal
 
Clasificación de las ecuaciones diferenciales
Clasificación de las ecuaciones diferencialesClasificación de las ecuaciones diferenciales
Clasificación de las ecuaciones diferenciales
 
Algoritmos Coungrenciales No Lineales
Algoritmos Coungrenciales No LinealesAlgoritmos Coungrenciales No Lineales
Algoritmos Coungrenciales No Lineales
 
Costo capitalizado
Costo capitalizadoCosto capitalizado
Costo capitalizado
 
Depreciación en línea recta
Depreciación en línea rectaDepreciación en línea recta
Depreciación en línea recta
 
Apuntes transformaciones lineales - UTFSM
Apuntes transformaciones lineales - UTFSMApuntes transformaciones lineales - UTFSM
Apuntes transformaciones lineales - UTFSM
 
Introducción a la Programación No Lineal
Introducción a la Programación No LinealIntroducción a la Programación No Lineal
Introducción a la Programación No Lineal
 
Capacitacion de analista en sistema
Capacitacion de analista en sistemaCapacitacion de analista en sistema
Capacitacion de analista en sistema
 
Interes efectivo equivalente-nominal
Interes efectivo  equivalente-nominalInteres efectivo  equivalente-nominal
Interes efectivo equivalente-nominal
 

Destaque

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
 
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 objetosRenny 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 6Andres 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 2015Renny Batista
 
Ecuaciones Cuadraticas
Ecuaciones CuadraticasEcuaciones Cuadraticas
Ecuaciones Cuadraticaseccutpl
 
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 ObjetosKudos S.A.S
 
Como programar java, 9na edicion deitel
Como programar java, 9na edicion   deitelComo programar java, 9na edicion   deitel
Como programar java, 9na edicion deitelSantos Isaias Itc
 

Destaque (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
 

Semelhante a Variables y metodos de instancia

Semelhante 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#
 
Unidad 2 clases y objetos
Unidad 2 clases y objetosUnidad 2 clases y objetos
Unidad 2 clases y objetos
 
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"
 
Presentacion Java
Presentacion JavaPresentacion Java
Presentacion Java
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02
 

Mais 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
 

Mais 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

Valoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVValoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVGiustinoAdesso1
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdfenelcielosiempre
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesYanirisBarcelDelaHoz
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxnandoapperscabanilla
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfenelcielosiempre
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperiomiralbaipiales2016
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIIsauraImbrondone
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICAÁngel Encinas
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 

Último (20)

Valoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVValoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCV
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdf
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdf
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperio
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 

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; } }