Modificador de acceso privado vs final en Java

Cada vez que escribimos nuestras clases, debemos proporcionar cierta información sobre nuestras clases a la JVM, como si se puede acceder a esta clase desde cualquier lugar o no, si la creación de clases secundarias es posible o no, si la creación de objetos es posible o no, etc. podemos especifique esta información utilizando una palabra clave adecuada en java denominada modificadores de acceso. Por lo tanto, los modificadores de acceso se utilizan para establecer la accesibilidad de clases, métodos y otros miembros.

Modificadores de acceso privado:

Este modificador no se aplica a clases o interfaces de nivel superior. Solo es aplicable a constructores, métodos y campos dentro de las clases. Si una variable, un método o un constructor se declaran privados, solo podemos acceder a ellos desde dentro de la clase, es decir, desde fuera de la clase no podemos acceder a ellos.

Java

// Java Program to illustrate Private Access Modifier
   
// import required packages
import java.io.*;
   
import java.util.*;
   
// helper class
class A {
     
    // helper method
    private void m1() { System.out.println("GFG"); }
}
   
// driver class
class B {
     
    // main method
    public static void main(String[] args)
    {
        // creating an object of type class A
        A a = new A();
         
        // accessing the method m1()
        a.m1();
    }
}

Modificador de acceso final:

Es un modificador aplicable a clases, métodos y variables. Si declaramos un método de clase principal como final, no podemos anular ese método en la clase secundaria porque su implementación es final y si una clase se declara como final, no podemos extender la funcionalidad de esa clase, es decir, no podemos crear una clase secundaria para esa clase, es decir, la herencia no es posible para las clases finales. Cada método presente dentro de la clase final es siempre final y predeterminado, pero no es necesario que cada variable presente dentro de la clase final sea final. La principal ventaja de la palabra clave final es que podemos lograr seguridad y podemos proporcionar una implementación única. Pero la principal desventaja de la palabra clave final es que nos faltan beneficios clave de los OOP como la herencia (debido a la clase final), 

Java

// Java program to illustrate Final keyword
 
// import required packages
import java.io.*;
import java.util.*;
// Declaring parent class P
class P {
    // Declaring a first name
    // method
    public void firstName()
    {
        // Display firstname
        System.out.println("Rahul ");
    }
    /// Declaring a final surName
    // method
    public final void surName()
    {
        // Display surname
        System.out.println("Trivedi");
    }
}
// Creating a child class
// of above parent class
class C extends P {
    // overriding the surName
    // method
    public void surName()
    {
        // Display surname
        System.out.println("Sharma");
    }
    // Main method
    public static void main(String[] args)
    {
        // Display message
        System.out.println("GFG");
    }
}

                     Modificador de acceso privado                          Modificador de acceso final 
Este modificador no se aplica a las clases de nivel superior. Este modificador es aplicable a las clases de nivel superior. 
No podemos acceder a métodos privados fuera de la clase. Podemos acceder al método final fuera de la clase.
Podemos ocultar el método privado. El método final no se puede ocultar.
Este modificador es aplicable tanto a la enumeración como al constructor. El modificador final no se aplica tanto a la enumeración como al constructor. 
Este modificador no es aplicable para variables locales. El modificador final es el único modificador que se aplica a las variables locales.

Publicación traducida automáticamente

Artículo escrito por mroshanmishra0072 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *