Hola y bienvenidos a esta elección.
A continuación vamos a ver el tema de contexto estático en Java están listos.
Vamos bien vamos a hacer nuestro proyecto
derecho Clowes y vamos a crear un nuevo proyecto damos un Infinit Project dejamos los valores por default
Java huid Maybe y ya va Application y el nombre del proyecto va a ser ejemplo estatico
y lo depositamos en la carpeta de cursos diagonal Java
quitamos el nombre del paquete y dejamos los demás valores por default y damos siguen finalizar
bien vamos a crear una nueva clase damos clic derecho new Java class y el nombre de la clase va a ser
ejemplo estático dejamos los demás valores por default y damos clic en Finalizar
y vamos a crear una segunda clase llamada persona damos clic derecho sobre el default package new Java
class y el nombre de la clase se llama persona.
Dejamos los demás valores por default y damos clic en Finalizar quitamos los comentarios y vamos a crear
esta clase para poner en práctica el concepto de contexto estático así que agregamos los siguientes
atributos a nuestra clase.
Ya vamos a aplicar el concepto de encapsulamiento.
Por lo tanto vamos a utilizar Privat como modificador de acceso para declarar nuestros atributos declaramos
un primer atributo llamado Heydi persona este atributo va a almacenar el valor de Leidi que le vamos
a asignar a este objeto de tipo persona cada que creemos un objeto positivamente definimos el atributo
de nombre de persona y vamos a agregar ahora algo nuevo que es un atributo estático así que definimos
y agregamos el modificador Static y ese atributo va a ser el tipo entero llamado Contador personas y
la diferencia entre los atributos que son no estáticos y el atributo estático quiere decir que los atributos
que contienen esta thick se asocia con la clase y no con los objetos.
En cambio los atributos que no contienen esta thick se asocia
con un objeto es decir con la instancia
bien así que para empezar esta es la diferencia los atributos no estáticos se asocian con los objetos
que estamos creando así que por cada objeto creado va a contener diferentes valores en cada atributo
que no es estático pero si el atributo es estático entonces se asocia con la clase y por lo tanto los
objetos se acceden al atributo estático todos los objetos van a poder acceder al mismo valor ya que
este valor se asocia con la clase con la plantilla y no con los objetos bien precisamente lo que vamos
a poner en práctica así que vamos a continuar ahora vamos a agregar un constructor con un argumento.
Así que declaramos un constructor de tipo públic se debe de llamar exactamente igual que nuestra clase.
Por ello ponemos persona en mayúscula recibe un argumento que es el nombre que queremos inicializar
y ahora en este ejercicio lo que vamos a hacer es asignar un nuevo valor de manera automática al atributo
de Heydi persona no lo vamos a proporcionar nosotros sino que cada que creemos un nuevo objeto de tipo
persona por medio del atributo estático Contador personas vamos a asignarle un nuevo valor.
Así que utilizamos el operador dis para acceder al atributo Heydi persona y posteriormente si queremos
acceder al atributo estático utilizando dice Vamos a ver que no es posible no podemos acceder.
No nos muestra el atributo Contador personas.
Esto debido a que el operador dis se asocia con el contexto dinámico y los atributos o métodos estáticos
se asocian con la clase con el contexto estático y lo que significa es lo siguiente Nuestra clase en
este caso la clase de persona primero se debe de levantar en memoria para que pueda ser utilizada así
que en este momento estamos en el contexto estático
y una vez que esta clase ya se levantó en memoria entonces podemos crear objetos y estos objetos entonces
ya estamos en el contexto dinámico
por lo tanto los objetos sí pueden acceder al contexto estático pero el contexto estático no puede acceder
al contexto dinámico ya que aún no ha sido creado así que en este sentido no podemos acceder al contexto
estático no puede acceder al contexto dinámico pero el contexto dinámico sí puede acceder al contexto
estático ya que una vez que se ha cargado la clase en memoria entonces los objetos sí pueden acceder
a la clase es decir al contexto estático y por lo tanto los atributos o métodos estáticos que se declaren
dentro de esta clase se van a asociar con la clase por lo tanto el atributo de Contador persona
se va a asociar con nuestra clase y los objetos lo que van a hacer es acceder a este valor todos los
objetos que se creen van a acceder al mismo valor a diferencia de los atributos no estáticos entonces
eso se asocian con los objetos y cada objeto va a tener su propio valor pero en particular los atributos
estáticos van a compartir su valor con todos los objetos que se creen de tipo persona y por ello es
que el operador dis.
Si recordamos el operador DIS es un apuntador a los objetos al objeto que se está disputando en este
momento pero quiere decir que ya debemos de haber creado el objeto y por lo tanto estamos en el contexto
dinámico pero si estamos en el contexto estático aún no se han creado objetos ya que solamente se ha
cargado la clase en memoria.
Esto quiere decir que el operador dis no puede acceder al contexto estático y por lo tanto no puede
utilizar los atributos o métodos estáticos bien vamos a continuar.
Una vez explicado esto entonces quiere decir que no podemos hacer dis punto Contador persona ya que
nos marcaria error por lo tanto lo que tenemos que hacer es asignarle un nuevo valor
utilizando el atributo estático Contador persona Contador personas.
Sin embargo por cada vez que mandemos a llamar este constructor esto quiere decir que queremos un objeto
de tipo persona entonces le vamos a asignar un nuevo valor para asignarle un nuevo valor.
Vamos a incrementar primero este contador y posteriormente una vez incrementado el valor se lo asignamos
al atributo hoy de persona y de esta manera entonces vamos a inicializar el valor del atributo Heydi
persona y ahora lo que hacemos es inicializar el atributo de nombre y le asignamos el valor de nuestro
argumento que estamos recibiendo bien y ahora generamos los métodos jet set para cada atributo podemos
apoyarnos de lide o en este caso como estamos comenzando vamos a generarlo manualmente así que para
el atributo de Heydi persona vamos a generar su método jet set así que escribimos públic ya que debe
ser un método público va a regresar un tipo entero y el método se va a llamar Get Heydi persona podemos
observar que estamos utilizando la notación de camello o de altas y bajas.
Esto quiere decir que la letra y se debe de convertir en mayúscula y posteriormente por cada palabra
que tengamos también la primera letra comienza en mayúscula y agregamos el prefijo de Get y así que
con esto ya estamos creando el método GET Heydi persona y básicamente este método lo que va a hacer
es regresar el valor de Heydi persona.
Así escribimos Guichón diez Heydi persona recordemos que es opcional pero para que nos vayamos familiarizando
con esta sintaxis vamos a utilizar en todo momento 10 cuando trabajemos con los atributos de nuestra
clase excepto los atributos que sean estáticos.
Ahora definimos el método Zet así escribimos públic Veidt set Heydi persona así que se agrega el prefijo
de set y en este caso si vamos a recibir un parámetro el parámetro va a ser el valor que queremos asignar
en este caso va a ser un argumento de tipo entero llamado Heydi persona y lo vamos a utilizar para inicializar
el valor de atributo de persona
sin embargo debido a que el constructor ya inicia alisó este valor de Heydi persona podríamos omitir
este método así que vamos a ponerlo entre comentarios debido a que este valor Heydi persona se va a
modificar a través del constructor y no a través del método Zep.
Esto quiere decir que no siempre debemos de generar el método jet set sino que dependiendo de lo que
necesitemos es que podemos agregar ciertos métodos incluso en nuestra clase podríamos tener los métodos
G.T y ser para todos los atributos y no utilizarlos ya que debemos de preparar la funcionalidad de nuestra
clase para ser utilizada en un futuro.
Esto quiere decir que nuestro programa no necesariamente va a utilizar todos los métodos pero la plantilla
ya debe estar preparada para ser utilizada en un futuro así que en este caso el método set de persona
no lo vamos a utilizar ya que no vamos a permitir la modificación del valor Heydi persona directamente
sino que se va a modificar únicamente a través del constructor de la clase así que poco a poco vamos
a empezar a tener más claro el uso de los métodos jet set.
No siempre debemos de tener ambos.
Ahora definimos el método G.T para el atributo de nombre así que agregamos públic regresa un valor de
tipo string y se llama Goeth nombre no recibe ningún parámetro y únicamente regresa el valor del atributo
de nombre y agregamos el método C.T Public Veidt set nombre recibe un argumento de tipo string llamado
nombre y lo que hacemos es inicializar los atributos de nombre con este argumento que estamos recibiendo
y ahora vamos a agregar un método para poder acceder al atributo Contador personas no para modificarlo
ya que únicamente se va a modificar a través del constructor.
Por lo tanto no vamos a agregar un método Zet Contador personas pero si queremos saber el valor de este
contador para saber cuántos objetos de tipo personas se han creado ya que cada vez que se crea un objeto
de tipo persona se está incrementando esta variable y como se asocia con la clase entonces y mandamos
a llamar el valor de esta variable Contador persona vamos a saber cuántos objetos se han creado de tipo
persona así que para ello vamos a agregar el siguiente método públic va a ser de tipo Static ya que
lo que va a utilizar en nuestra variable estática Contador personas por lo tanto también vamos a definir
un método estático y este método estático se va a asociar con la clase y no con los objetos.
Sin embargo como hemos comentado el contexto estático se carga primero y posteriormente el contexto
dinámico.
Así que los objetos sí van a poder hacer uso de este método estático así que definimos el método Public
Static regresa un entero llamado Get Contador personas utilizando la notación de altas y bajas y básicamente
lo que hacemos es regresar el valor de Contador personas.
Recordemos que el contexto estático no puede acceder al contexto dinámico por lo tanto no podemos usar
Diz y posteriormente acceder a Contador personas.
Esto no es posible ya que se asocia con el contexto dinámico cuando ya creamos nuestros objetos así
que únicamente vamos a regresar la variable Contador personas bien y con esto ya tenemos nuestra clase.
Por último vamos a agregar el método string vamos a validar manualmente.
Es un método público para que pueda ser accedido desde otras clases.
Regresa un tipo string y el método se va a llamar string no reciben ningún argumento y lo que va a hacer
es regresar los valores de nuestro objeto.
En este caso los atributos no estáticos y también podría regresar el valor del atributo estático así
que vamos a analizar lo siguiente Vamos a crear la cadena retorné vamos a regresar el valor de la persona
con k tenemos el valor de allí persona posteriormente con k tenemos el valor de nombre dos puntos espacio
con k tenemos el valor de nombre y finalmente concatenados también el valor del atributo estático
Contador personas
punto y coma.
Y podemos observar que con esto ya tenemos la definición de nuestro método string para que cuando mandemos
a imprimir un objeto de tipo Persona a consola entonces en automático se va a mandar a llamar.
Este método es opcional agregar la notación de averigue no es necesario pero podemos ver que si le agregamos
entonces en automático también el ítem reconoce que este método se está escribiendo de la clase padre
de todas las clases en Java que es la clase obvie.
Como hemos comentado esto lo vamos a ver a detalle posteriormente ya que debemos de ver más temas para
entender a detalle esto pero para utilizarlo es más sencillo simplemente vamos a escribir este código
y posteriormente lo vamos a explicar a detalle.
Una vez que ya hemos visto los temas de herencia y sobrecarga de métodos bien de momento vamos a utilizarlo
únicamente vamos a dejar hasta aquí este video y en el siguiente video vamos a continuar con la creación
de la prueba del ejemplo estático nos vemos en el siguiente video.
Saludos.