Cómo utilizar las clases internas de java en su aplicación para android

Video: Curso de Java desde 0

Aquí está una gran noticia! Se puede definir una clase dentro de otra clase! Esto es útil para los desarrolladores de aplicaciones para Android. La mayoría de las clases no viven dentro de otra clase, y la mayoría de las clases no contienen otras clases. Pero cuando la idea detrás de una clase grita a formar parte de otra clase, no dude en crear una clase dentro de una clase.

Video: Como Hacer una Interfaz Gráfica Profesional en JAVA con NetBeans

clases internas con nombre

En este código, el Mi actividad clase contiene su propio MiOyente clase.

paquete com.allmycode.samples-importación e importación android.app.Activity android.os.Bundle-importación e importación android.view.View android.view.View.onclickListener-import-android.widget.Button pública MyActivity clase extiende Actividad { botón botón de @ Overridepublic vacío onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState) -setContentView (R.layout.main) -botón = ((botón) findViewById (R.id.button1)) - button.setonclickListener (nueva MiOyente ()) -} MiOyente clase implementa onclickListener {@Overridepublic vacío onclick (Ver arg0) {button.setBackgroundColor (android.graphics.Color.GRAY) -}}}

los MiOyente clase es una clase interna. Una clase interna se parece mucho a cualquier otra clase. Pero en el código de una clase interna, puede hacer referencia a los campos de la clase envolvente. Por ejemplo, el al hacer clic método en el interior MiOyente utiliza el nombre botón, y botón se define en la envolvente Mi actividad clase.

Video: Curso Java. Tipos enumerados. Vídeo 48

clases internas anónimas

Observe que el código anterior utiliza el MiOyente clase sólo una vez. (El único uso es en una llamada a button.setonclickListener.) Por lo tanto, lo que realmente necesita un nombre para algo que se utiliza una sola vez? No, no lo hace. Puede sustituir toda la definición de la clase interna dentro de la llamada a button.setonclickListener. Al hacer esto, usted tiene una clase interna anónima. El código siguiente muestra cómo funciona.

paquete com.allmycode.samples-importación e importación android.app.Activity android.os.Bundle-importación e importación android.view.View android.view.View.onclickListener-import-android.widget.Button pública MyActivity clase extiende Actividad { botón botón de @ Overridepublic vacío onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState) -setContentView (R.layout.main) -botón = ((botón) findViewById (R.id.button1)) - button.setonclickListener (nueva onclickListener () {@Overridepublic anular onclick (Ver arg0) {button.setBackgroundColor (android.graphics.Color.GRAY) -}}) -}}

Las clases internas son buenas para cosas como controladores de eventos, tales como la al hacer clic método. Lo más difícil acerca de una clase interna anónima es hacer el seguimiento de los paréntesis, los corchetes, y la sangría. Así que aquí hay algunos consejos: Comience a escribir código sin ningún tipo de clases internas. Más tarde, cuando se aburren con las clases de Java ordinarias, experimento cambiando algunos de sus clases normales en las clases internas.

Artículos Relacionados