Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Modificador Private | Clases Avanzadas
Java Avanzado
course content

Contenido del Curso

Java Avanzado

Java Avanzado

1. Estructura Profunda de Java
2. Métodos
3. String Avanzado
4. Clases
5. Clases Avanzadas

book
Modificador Private

¿Cómo ocultar campos y métodos de otra clase?

Los modificadores de acceso se utilizan para controlar la visibilidad y accesibilidad de variables y métodos en Java. Permiten definir el alcance y restringir el acceso a ciertos miembros de una clase.

Ya hemos tratado los modificadores de acceso en la sección anterior. Ahora, examinemos más de cerca el modificador de acceso más utilizado: private.

Como sabes, con el modificador de acceso private, solo se puede acceder a un campo o método desde la clase en la que se encuentra. Veamos un ejemplo del uso del modificador private:

Por ejemplo, si no queremos que una variable en una clase sea visible o accesible desde otra clase, podemos utilizar el modificador de acceso private:

Main.java

Main.java

copy
123456789101112131415
package com.example; public class Main { public static void main(String[] args) { Person bob = new Person(); bob.name = "Bob"; System.out.println(bob.name); } } class Person { private String name; private int age; private String gender; }

Hemos declarado los campos de la clase Person como private. Cuando intentamos inicializar el campo directamente, obtenemos un error que indica que el campo name tiene un modificador de acceso private y no es accesible para ser llamado o modificado en el método main.

¿Cómo inicializar un campo privado?

La forma más sencilla de evitar la protección es utilizar la inicialización a través de un constructor. Sin embargo, de esta manera, solo podemos inicializar los campos de los objetos, pero no acceder a esos campos. Veamos un ejemplo:

Main.java

Main.java

copy
123456789101112131415161718
package com.example; public class Main { public static void main(String[] args) { Person bob = new Person("Bob"); System.out.println(bob.name); } } class Person { private String name; private int age; private String gender; public Person(String name) { this.name = name; } }

Pudimos inicializar el campo name a través del constructor, pero aún no podemos acceder a este campo ni imprimirlo usando System.out.println(). Para evitar esto, podemos sobrescribir el método toString() para que, al llamar a System.out.println(bob);, se muestre información sobre sus campos. Veamos un ejemplo:

Main.java

Main.java

copy
1234567891011121314151617181920212223
package com.example; public class Main { public static void main(String[] args) { Person bob = new Person("Bob"); System.out.println(bob); } } class Person { private String name; private int age; private String gender; public Person(String name) { this.name = name; } @Override public String toString() { return "Person{" + "name='" + name + '\'' + '}'; } }

Finalmente logramos mostrar el valor del campo name del objeto bob. Esto se consiguió utilizando el método sobrescrito toString(), donde implementamos la lógica para mostrar el name.

Surge la pregunta, ¿por qué necesitamos este modificador de acceso si tenemos que escribir tanto código adicional?

A veces, en diferentes clases, existen variables con el mismo nombre, y en tales casos, es necesario ocultar las variables de estas clases para que otras clases no tengan acceso a campos innecesarios. Esto mejora considerablemente la comodidad al escribir código en general, ya que permite comprender a qué clase pertenece cada campo.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 5. Capítulo 3

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

course content

Contenido del Curso

Java Avanzado

Java Avanzado

1. Estructura Profunda de Java
2. Métodos
3. String Avanzado
4. Clases
5. Clases Avanzadas

book
Modificador Private

¿Cómo ocultar campos y métodos de otra clase?

Los modificadores de acceso se utilizan para controlar la visibilidad y accesibilidad de variables y métodos en Java. Permiten definir el alcance y restringir el acceso a ciertos miembros de una clase.

Ya hemos tratado los modificadores de acceso en la sección anterior. Ahora, examinemos más de cerca el modificador de acceso más utilizado: private.

Como sabes, con el modificador de acceso private, solo se puede acceder a un campo o método desde la clase en la que se encuentra. Veamos un ejemplo del uso del modificador private:

Por ejemplo, si no queremos que una variable en una clase sea visible o accesible desde otra clase, podemos utilizar el modificador de acceso private:

Main.java

Main.java

copy
123456789101112131415
package com.example; public class Main { public static void main(String[] args) { Person bob = new Person(); bob.name = "Bob"; System.out.println(bob.name); } } class Person { private String name; private int age; private String gender; }

Hemos declarado los campos de la clase Person como private. Cuando intentamos inicializar el campo directamente, obtenemos un error que indica que el campo name tiene un modificador de acceso private y no es accesible para ser llamado o modificado en el método main.

¿Cómo inicializar un campo privado?

La forma más sencilla de evitar la protección es utilizar la inicialización a través de un constructor. Sin embargo, de esta manera, solo podemos inicializar los campos de los objetos, pero no acceder a esos campos. Veamos un ejemplo:

Main.java

Main.java

copy
123456789101112131415161718
package com.example; public class Main { public static void main(String[] args) { Person bob = new Person("Bob"); System.out.println(bob.name); } } class Person { private String name; private int age; private String gender; public Person(String name) { this.name = name; } }

Pudimos inicializar el campo name a través del constructor, pero aún no podemos acceder a este campo ni imprimirlo usando System.out.println(). Para evitar esto, podemos sobrescribir el método toString() para que, al llamar a System.out.println(bob);, se muestre información sobre sus campos. Veamos un ejemplo:

Main.java

Main.java

copy
1234567891011121314151617181920212223
package com.example; public class Main { public static void main(String[] args) { Person bob = new Person("Bob"); System.out.println(bob); } } class Person { private String name; private int age; private String gender; public Person(String name) { this.name = name; } @Override public String toString() { return "Person{" + "name='" + name + '\'' + '}'; } }

Finalmente logramos mostrar el valor del campo name del objeto bob. Esto se consiguió utilizando el método sobrescrito toString(), donde implementamos la lógica para mostrar el name.

Surge la pregunta, ¿por qué necesitamos este modificador de acceso si tenemos que escribir tanto código adicional?

A veces, en diferentes clases, existen variables con el mismo nombre, y en tales casos, es necesario ocultar las variables de estas clases para que otras clases no tengan acceso a campos innecesarios. Esto mejora considerablemente la comodidad al escribir código en general, ya que permite comprender a qué clase pertenece cada campo.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 5. Capítulo 3
some-alt