Heim > Java > javaLernprogramm > Hauptteil

JAVA-Einführungssystem-Tutorial (7) Objektorientiert (Kapselung 2)

php是最好的语言
Freigeben: 2018-08-10 10:56:32
Original
1587 Leute haben es durchsucht

###Objektorientiert (Kapselung 2)###

1. Interne Klassen in Java

1) Was ist Was ist mit inneren Klassen: Eine innere Klasse (innere Klasse) ist eine Klasse, die in einer anderen Klasse definiert ist. Dementsprechend wird eine Klasse, die eine innere Klasse enthält, als äußere Klasse bezeichnet.

2) Warum eine Klasse innerhalb einer anderen Klasse definieren?

Die Hauptfunktionen interner Klassen sind wie folgt:

1> innere Klasse innerhalb der äußeren Klasse und erlauben Sie anderen Klassen im selben Paket nicht, auf die Klasse zuzugreifen

    2> Die Methoden der inneren Klasse können direkt auf alle Daten der äußeren Klasse zugreifen, einschließlich privater Daten

3> Die von internen Klassen implementierten Funktionen können auch mithilfe externer Klassen implementiert werden, aber manchmal ist es bequemer, interne Klassen zu verwenden

3) Wie viele Arten interner Klassen gibt es: interne Klassen , statische interne Klassen, Methoden Innere Klassen, anonyme innere Klassen

JAVA-Einführungssystem-Tutorial (7) Objektorientiert (Kapselung 2)

2. Interne Mitgliedsklassen in Java

Die häufigsten internen Klassen sind interne Mitgliedsklassen , auch als gewöhnliche innere Klasse bekannt. Schauen wir uns den folgenden Code an:

JAVA-Einführungssystem-Tutorial (7) Objektorientiert (Kapselung 2)

Aus dem obigen Code können wir sehen, wie innere Mitgliedsklassen verwendet werden:

1 Die innere Klasse ist definiert in Das Innere der Outer-Klasse entspricht dem Speicherort einer Mitgliedsvariablen der Outer-Klasse. Die Inner-Klasse kann beliebige Zugriffskontrollzeichen wie öffentlich, geschützt, privat usw. verwenden.

Der Test ()-Methode, die in der inneren Klasse definiert ist, kann direkt auf die Daten in der äußeren Klasse zugreifen, ohne vom Zugriffskontrollzeichen betroffen zu sein, z. B. direkt auf die privaten Eigenschaften in der äußeren Klasse zugreifen a

3 Nach der Definition des Mitglieds Innere Klasse, Sie müssen das äußere Klassenobjekt verwenden, um das innere Klassenobjekt zu erstellen, und können ein inneres Klassenobjekt nicht direkt neu erstellen, das heißt: innerer Klassenobjektname = äußeres Klassenobjekt.neue innere Klasse ();

4. Nach dem Kompilieren des obigen Programms werden Sie zwei .class-Dateien finden

Unter ihnen ist die zweite die .class-Datei der externen Klasse und die erste die .class-Datei der internen Klasse. Das heißt, die .class-Datei der internen Klasse des Mitglieds sieht immer so aus: externer Klassenname $ interner Klassenname.class

Außerdem freundliche Erinnerungen:

1. Externe Klassen können nicht direkt Verwenden Sie Mitglieder und Methoden interner Klassen

JAVA-Einführungssystem-Tutorial (7) Objektorientiert (Kapselung 2)

Sie können zuerst ein Objekt der inneren Klasse erstellen und dann über das Objekt der inneren Klasse auf seine Mitgliedsvariablen und -methoden zugreifen.

2. Wenn die äußere Klasse und die innere Klasse dieselben Mitgliedsvariablen oder -methoden haben, greift die innere Klasse standardmäßig auf ihre eigenen Mitgliedsvariablen oder -methoden zu , können Sie das Schlüsselwort this verwenden. Zum Beispiel:

JAVA-Einführungssystem-Tutorial (7) Objektorientiert (Kapselung 2)

Beispiel: Die interne Mitgliedsklasse Inner wird im Editor definiert und die Attributwerte der äußeren Klasse und der inneren Klasse werden in der Show ausgegeben Methode der inneren Klasse.

JAVA-Einführungssystem-Tutorial (7) Objektorientiert (Kapselung 2)

3. Statische innere Klassen in Java

Statische innere Klassen sind statisch modifizierte innere Klassen:

1) Statische innere Klassen können nicht direkt auf nicht statische Mitglieder der äußeren Klasse zugreifen, können aber über neue äußere Klassen ().members darauf zugreifen

2) Wenn die statischen Mitglieder der äußeren Klasse unterschiedlich sind Wenn die Namen der Mitglieder der inneren Klasse identisch sind, können Sie über „Klassenname.statisches Mitglied“ auf die statischen Mitglieder der äußeren Klasse zugreifen, wenn dies nicht der Fall ist Ebenso können Sie die statischen Mitglieder der äußeren Klasse direkt über „Mitgliedsname“ aufrufen.

3) Wenn Sie ein Objekt einer statischen inneren Klasse erstellen, benötigen Sie kein Objekt einer äußeren Klasse Erstellen Sie es direkt

Name des inneren Klassenobjekts = neue innere Klasse();

Beispiel:

JAVA-Einführungssystem-Tutorial (7) Objektorientiert (Kapselung 2)

4

Innere Klasse der Methode bedeutet, dass die innere Klasse in der Methode der äußeren Klasse definiert ist und die innere Klasse der Methode nur in Die Methode ist intern sichtbar, dh sie kann nur innerhalb verwendet werden diese Methode.

JAVA-Einführungssystem-Tutorial (7) Objektorientiert (Kapselung 2)

PS: Da die innere Klasse der Methode nicht außerhalb der Methode der äußeren Klasse verwendet werden kann, kann die innere Klasse der Methode keine Zugriffskontrollzeichen und statischen Zeichen verwenden Änderungssymbol.

JAVA-Einführungssystem-Tutorial (7) Objektorientiert (Kapselung 2)

5. Zufallsmethode des Mathematikunterrichts

Beispiel: Zahlenratespiel

JAVA-Einführungssystem-Tutorial (7) Objektorientiert (Kapselung 2)

6. Dokumentationsanweisungen

package example.make_api;

/**
 * 当前这个ArrayTool这个类是针对数组操作的工具类,里面提供了遍历数组以及获取数组的最大值和
 * 查找数组中第一次出现的索引这些功能
 * @author 梦竹
 * @version V1.0
 */
public class ArrayTool {
	/**
	 * 无参构造私有化的目的,是为了不让外界创建对象
	 */
	private ArrayTool() {
		
	}
	/**
	 * 当前这个方法是针对数组遍历的功能
	 * @param arr  是需要被遍历的数组
	 */
	public static void printArray(int[] arr) {
		System.out.print("[");
		for(int x = 0 ; x < arr.length ;x ++) {
			//判断
			if(x==arr.length-1) {
				System.out.println(arr[x]+"]");
			}else {
				System.out.print(arr[x]+", ");
			}
		}
	}
	/**
	 * 当前getMax方法是获取数组中最大值的方法
	 * @param arr  需要遍历的数组
	 * @return     返回到就是数组中的最大值
	 */
	public static int getMax(int[] arr) {
		//定义一个参照物,假设为最大值
		int max = arr[0] ;
		//遍历其他元素
		for(int x = 1; x < arr.length ;x ++) {
			//判断
			if(arr[x] > max) {
				max = arr[x] ;
			}
		}
		return max ;
	}
	/**
	 * 当前这个方法是查找数组的某个元素在数组中第一次出现的索引
	 * @param arr  
	 * @param value
	 * @return
	 */
	public static int getIndex(int[] arr,int value) {
		//假设找不到
		int index = -1 ;
		//遍历数组
		for(int x = 0 ; x < arr.length ; x ++) {
			//判断
			if(arr[x] == value) {
				//将当前x索引赋值给index
				index = x ;
				break ;
			}
		}
		return index ;
	}
}
Nach dem Login kopieren
package example.make_api;
/**
 * 需求:自定义一个数组,遍历数组
 * 制作文档说明书:
 * 		可以定义一个ArrayTool,数组操作的工具类
 * 		在工具类,必须文档注释,来让解析成文档
 * 		在数组工具类ArrayTool,提供遍历功能,获取最大值的,查找数组中某个元素第一次出现的索引
 * 
 * 
 * @author Administrator
 *
 */
public class ArrayDemo {

	public static void main(String[] args) {
		
		//定义数组,静态初始化
		int[] arr = {57,69,13,24,80} ;
		
		//测试
		//遍历功能
		ArrayTool.printArray(arr);
		//最大值
		int max = ArrayTool.getMax(arr) ;
		System.out.println("最大值是:"+max);
		//求元素在数组中第一次参出现的索引
		int index = ArrayTool.getIndex(arr, 13) ;
		System.out.println("索引是:"+index);
	}	

}
Nach dem Login kopieren

Zu diesem Zeitpunkt werden zwei Klassendateien gefunden

Paket example.make_api aus Tool löschen

JAVA-Einführungssystem-Tutorial (7) Objektorientiert (Kapselung 2)

Win+R zum Aufrufen von DOS

JAVA-Einführungssystem-Tutorial (7) Objektorientiert (Kapselung 2)

####END####

Verwandt Artikel:

Tutorial zum JAVA-Eingabesystem (5) Grundlegende Syntax (3)

Tutorial zum JAVA-Eingabesystem (6) Objektorientiert (Kapselung)

Das obige ist der detaillierte Inhalt vonJAVA-Einführungssystem-Tutorial (7) Objektorientiert (Kapselung 2). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!