Java Fundamentals 14 Orientada a objetos ~ Interfaz y clase interna

¡Como tú que amas la programación!
Aprenda los cursos prácticos de SpringBoot https://edu.csdn.net/course/detail/31433
Aprenda los cursos de introducción a SpringCloud https://edu.csdn.net/course/detail/31451


Serie orientada a objetos: la encapsulación de
clases y objetos hereda la palabra clave estática polimórfica y la interfaz de modo singleton y la clase interna




Prefacio

Hola a todos. La interfaz es un tipo importante en Java. En el desarrollo real del proyecto, se utilizará una gran cantidad de interfaces, llamadas: programación orientada a interfaces. Este capítulo se centrará en las interfaces y las clases internas.

interfaz

Cual es la interfaz

Inserte la descripción de la imagen aquí
La interfaz en la vida,
como la interfaz USB en la computadora, regula la forma y el tamaño de la interfaz. Siempre que el dispositivo cumpla con el estándar, se puede conectar.

La interfaz en el programa
es un conjunto de especificaciones, que estipula la definición del método, siempre que la clase que implementa la interfaz deba definirse de acuerdo con la especificación de la interfaz.

Usar interfaz

La sintaxis para definir la interfaz:

public interface 接口名{
	静态常量的定义;
	方法的定义;
}

Tenga en cuenta al definir la interfaz:

  1. El método es abstracto y no se puede realizar
  2. Las propiedades definidas se convertirán automáticamente en constantes estáticas
  3. El método solo puede ser público, el predeterminado es público

Implementar interfaz

public class 类名 implements 接口名{
	具体方法的实现
}

Preste atención a la implementación de la interfaz:

  1. Se deben implementar todos los métodos en la interfaz
  2. El método debe ser exactamente el mismo que se define en la interfaz
  3. El método debe ser público
  4. Una clase puede implementar múltiples interfaces
  5. Una clase puede heredar la clase mientras implementa la interfaz
class 类名 extends 父类 implements 接口{
}
  1. La interfaz puede heredar la interfaz, la clase de implementación debe implementar todos los métodos
interface A{
	void testA();
}
//接口之间的继承
interface B extends A{
	void testB();
}
class C implements B{
	public void testA() {
	}
	public void testB() {
	}
}

La importancia de la interfaz en desarrollo

  1. Desarrollar un conjunto de especificaciones para la realización de la clase.
  2. Diseño e implementación separados

palabra clave predeterminada

Una nueva característica de Java 1.8, los métodos definidos por defecto pueden tener implementaciones por defecto.

public interface Person {
	//给接口方法默认的实现
	default void eat(){
		System.out.println("在吃饭!!");
	}
	void walk();
}

La clase de implementación no es obligatoria para implementar métodos por defecto.

Similitudes y diferencias entre interfaces y clases abstractas

La diferencia entre las interfaces y clases abstractas son preguntas comunes de la entrevista similitudes.
:

  1. Puede haber métodos no implementados
  2. No se puede crear una instancia

diferencia:

  1. La clase abstracta es una herencia única, la clase puede implementar múltiples interfaces
  2. La interfaz no puede definir un constructor
  3. Los métodos de la interfaz solo pueden ser públicos y las clases abstractas pueden tener varios tipos de acceso.
  4. Solo las constantes estáticas se pueden definir en interfaces y las variables miembro ordinarias se pueden definir en clases abstractas.
  5. No es necesario agregar métodos abstractos en la interfaz, deben agregarse clases abstractas.

Clase interior

La clase interna es la clase definida en la clase.
Las clases internas de Java incluyen:

  • Clase interna de miembro
  • Clase interna estática
  • Clase interna local
  • Clase interna anónima

Clase interna de miembro

El mismo nivel que las variables miembro (atributos) y los métodos miembro son propiedad de un determinado objeto.
gramática:

class 外部类{
	class 内部类{
	...
	}
}

caracteristicas:

  • Generalmente solo se usa en clases externas
  • Los atributos y métodos de la clase interna y la clase están al mismo nivel.
  • Los objetos que pertenecen a la clase se cargan en la memoria cuando se crea cada objeto

Clase interna estática

Agregar estática a la clase interna del miembro es la
sintaxis de la clase interna estática :

public class 外部类{
	static class 内部类{
	}
}

La diferencia con la clase interna del miembro:

  1. La clase interna del miembro pertenece al objeto, la clase interna estática pertenece a la clase externa
  2. La clase interna del miembro se carga cada vez que se crea un objeto, la clase interna estática y la clase externa se cargan juntas
  3. La clase interna de miembros puede acceder a todos los miembros de la clase externa, y la clase interna estática solo puede acceder a los miembros estáticos de la clase externa

Clase interna local

La clase definida en el método solo se puede usar en el método actual y la clase se carga en la memoria cuando se llama al método.
gramática:

class 外部类{
	public void test(){
		class 内部类{
		
		}
		内部类 对象 = new 内部类();
	}
}

Clase interna anónima

Una clase interna sin nombre, se crea un objeto cuando se crea la clase.
Aplicación: la clase de implementación de la interfaz o la clase abstracta solo debe usarse una vez y el código es de una sola vez.
gramática:

new 接口/抽象类()
{
	实现方法
};

Implementar carcasa USB

//Usb接口
interface Usb{
	void connect(); //连接
	void charge(); //充电
}
//匿名内部类实现接口
Usb usb = new Usb(){
	public void connect(){
		System.out.println("Test2测试连接");
	}
	public void charge(){
		System.out.println("Test2测试充电");
	}
};
usb .connect();
usb .charge();

La diferencia con la clase general:

  1. sin nombre
  2. Solo se puede usar una vez
  3. Sin método de construcción
  4. No se pueden definir miembros estáticos

Pregunta de la entrevista: ¿en? Complete lo que se puede generar 30, 20, 10 en la consola.

class Outer {
 	public int num = 10;
     class Inner {
         public int num = 20;
         public void show() {
             int num = 30;
             System.out.println(?);   	num
             System.out.println(?);   	this.num
             System.out.println(?); 	Outer.this.num
         }
     }
 }

 class InnerClassTest {
     public static void main(String[] args) {
         Outer.Inner oi = new Outer().new Inner();
         oi.show();
     }    
 }   

Fin

De acuerdo, ¿todos dominan este artículo? Bienvenido a dejar un mensaje para debatir.
Deja dos asignaciones:

  1. Definir la interfaz del jugador, reproducir el método de música; definir la interfaz de la consola de juegos, jugar el método del juego;
    definir la clase de teléfono, con atributos de marca y precio, y el método de llamada
    definir la clase de teléfono móvil para heredar el teléfono e implementar la interfaz del jugador y la consola
  2. Defina la interfaz aritmética y defina cuatro métodos de suma, resta, multiplicación y división.Cada método tiene dos parámetros dobles y el valor de retorno es doble.
    Utilice clases regulares y clases internas anónimas para implementar interfaces.

Si necesita aprender otros conocimientos de Java, haga clic aquí Conocimiento ultra detallado de Java Resumen

Supongo que te gusta

Origin blog.csdn.net/u013343114/article/details/112523663
Recomendado
Clasificación