(Fundación Java) palabras clave

palabras clave

¿Java tiene goto?

  • goto es una palabra reservada en Java y no se usa en la versión actual de Java.

¿Cuál es el uso de la final?

用于修饰类、属性和方法;
  • Las clases modificadas por final no se pueden heredar
  • Un método modificado por final no se puede anular
  • Las variables modificadas por final no se pueden cambiar. Lo que se modifica final e inmutable es la referencia de la variable, no el contenido al que apunta la referencia. El contenido al que apunta la referencia se puede cambiar.

final finalmente finalizar diferencia

  • Final puede modificar clases, variables y métodos. Las clases modificadas indican que la clase no se puede heredar, los métodos modificados indican que el método no se puede anular y las variables modificadas indican que la variable es una constante que no se puede reasignar.
  • "finally generalmente funciona en el bloque de código try-catch. Cuando se trata de excepciones, generalmente colocamos el método de código que debe ejecutarse en el bloque de código finalmente, lo que indica que el bloque de código se ejecutará independientemente de si se produce una excepción. Por lo general, es se utiliza para almacenar algunos recursos cerrados.
  • finalizar es un método que pertenece a la clase Object, y la clase Object es la clase principal de todas las clases. Este método generalmente lo llama el recolector de basura. Cuando llamamos al método System.gc(), el recolector de basura llama a finalize ( ), reciclaje de basura, el juicio final de si un objeto puede ser reciclado.

uso de esta palabra clave

  • este es un objeto de sí mismo, que representa el objeto mismo, que puede entenderse como: un puntero al objeto mismo.

  • El uso de esto en Java se puede dividir aproximadamente en tres tipos:

    • 1. Referencia directa ordinaria, esto equivale a señalar el propio objeto actual.

    • 2. El nombre del integrante de la participación formal es el mismo, úselo para distinguir:

      public Person(String name, int age) {
              
              
          this.name = name;
          this.age = age;
      }
      
    • 3. Hacer referencia al constructor de esta clase

      class Person{
              
              
          private String name;
          private int age;
          
          public Person() {
              
              
          }
       
          public Person(String name) {
              
              
              this.name = name;
          }
          public Person(String name, int age) {
              
              
              this(name);
              this.age = age;
          }
      }
      

Uso de la palabra clave super

  • super puede entenderse como un puntero a su propio objeto de clase super (padre), y esta superclase se refiere a la clase padre más cercana a sí misma.

  • super también tiene tres usos:

    • 1. Cotizaciones directas ordinarias

      Similar a esto, super es equivalente a una referencia a la clase principal del objeto actual, por lo que super.xxx se puede usar para referirse a miembros de la clase principal.

    • 2. Cuando la variable miembro o el método de la subclase tiene el mismo nombre que la variable miembro o el método de la clase principal, use super para distinguir

      class Person{
              
              
          protected String name;
       
          public Person(String name) {
              
              
              this.name = name;
          }
       
      }
       
      class Student extends Person{
              
              
          private String name;
       
          public Student(String name, String name1) {
              
              
              super(name);
              this.name = name1;
          }
       
          public void getInfo(){
              
              
              System.out.println(this.name);      //Child
              System.out.println(super.name);     //Father
          }
       
      }
      
      public class Test {
              
              
          public static void main(String[] args) {
              
              
             Student s1 = new Student("Father","Child");
             s1.getInfo();
       
          }
      }
      
    • 3. Consulte el constructor de la clase principal

      • super (parámetro): llame a un constructor en la clase principal (debe ser la primera declaración en el constructor).
      • this (parámetro): llame a otra forma de constructor en esta clase (debe ser la primera declaración en el constructor).

La diferencia entre esto y super

  • super: se refiere a los miembros de la clase principal directa del objeto actual (utilizados para acceder a los datos o funciones de los miembros en la clase principal oculta en la clase principal directa, cuando la clase base y la clase derivada tienen la misma definición de miembro, como como: super.nombre de variable super.nombre de datos de función de miembro (parámetro real)
  • esto: Representa el nombre del objeto actual (donde es probable que ocurra ambigüedad en el programa, esto debe usarse para indicar el objeto actual; si los datos del miembro en la clase de participación formal de la función tienen el mismo nombre, esto es requerido para indicar el nombre de la variable miembro)
  • super() es similar a this(), la diferencia es que super() llama al constructor de la clase padre en la subclase, y this() llama a otros constructores de la clase en la clase.
  • Tanto super() como this() deben colocarse en la primera línea del constructor.
  • Aunque puede llamar a un constructor con esto, no puede llamar a dos.
  • This y super no pueden aparecer en un constructor al mismo tiempo, porque esto inevitablemente llamará a otros constructores, y otros constructores también deben tener declaraciones de super, por lo que si hay las mismas declaraciones en el mismo constructor, se perderá. la declaración, el compilador no pasará.
  • Tanto this() como super() se refieren a objetos, por lo que ninguno puede usarse en un entorno estático. Incluyendo: variable estática, método estático, bloque de declaración estática.
  • Esencialmente, este es un puntero a este objeto, mientras que super es una palabra clave de Java.

El significado principal de la existencia estática.

  • El significado principal de static es crear variables de dominio o métodos independientes de objetos específicos. ¡De modo que incluso sin crear un objeto, puede usar propiedades y llamar a métodos !
  • Otra función clave de la palabra clave estática es formar bloques de código estáticos para optimizar el rendimiento del programa . El bloque estático se puede colocar en cualquier lugar de la clase y puede haber varios bloques estáticos en la clase. Cuando la clase se carga por primera vez, cada bloque estático se ejecutará en el orden de los bloques estáticos y solo se ejecutará una vez.
  • La razón por la que el bloque estático se puede utilizar para optimizar el rendimiento del programa es por sus características: solo se ejecutará una vez cuando se cargue la clase. Por lo tanto, en muchos casos, algunas operaciones de inicialización que solo deben realizarse una vez se colocan en bloques de código estáticos.

Singularidad de la estática

  • 1. Las variables o métodos modificados por static son independientes de cualquier objeto de la clase, es decir, estas variables y métodos no pertenecen a ningún objeto instancia, sino que son compartidos por objetos instancia de la clase .

¿Cómo entiendes la frase "compartido por objetos de instancia de la clase"? Es decir, un miembro estático de una clase pertenece a todos [Todos se refieren a múltiples instancias de objetos de esta clase, ¡todos sabemos que una clase puede crear múltiples instancias! ], todos los objetos de clase son compartidos, no como si las variables miembro fueran propias [self se refiere a un único objeto de instancia de esta clase]... Creo que lo que he dicho es muy general, ¿entiendes?

  • 2. Cuando la clase se carga por primera vez, cargará la parte modificada por estática, y solo cargará e inicializará la clase cuando se use por primera vez. Tenga en cuenta que debe inicializarse por primera vez. Necesidad ser reasignable.
  • 3. Al valor de la variable estática se le asigna espacio cuando se carga la clase y no se reasignará cuando se cree el objeto de la clase más adelante. ¡Si asigna un valor, puede asignarlo arbitrariamente!
  • 4. Las variables o métodos modificados por static son anteriores a los objetos, es decir, después de cargada una clase, se puede acceder a ella aunque no se haya creado ningún objeto.

escenarios de aplicaciones estáticas

  • Dado que la estática la comparten los objetos de instancia de la clase, si todos los objetos comparten una variable miembro, entonces esta variable miembro debe definirse como una variable estática .
  • Por lo tanto, los escenarios de aplicaciones estáticas más comunes son:

1. Variables miembro modificadas 2. Métodos miembro modificados 3. Bloques de código estático 4. Clases modificadas [solo se pueden modificar clases internas, es decir, clases internas estáticas] 5. Importación de paquetes estáticos

notas estáticas

  • 1. Estático solo puede acceder a estático
  • 2. No estático puede acceder tanto a estático como no estático.

Supongo que te gusta

Origin blog.csdn.net/QRLYLETITBE/article/details/129644008
Recomendado
Clasificación