Als erfahrener Java-Enthusiast habe ich dieses Dokument speziell zusammengefasst und hoffe, dass es allen helfen kann. Sind Sie nach dem Lesen immer noch unklar über Objekte und Klassen? Das Objekt sucht hier nicht nach einer Freundin, es ist eine Instanz einer Klasse mit Zustand und Verhalten, und eine Klasse ist eine Vorlage, die das Verhalten und den Zustand eines Objekttyps beschreibt.
Java ist eine objektorientierte Sprache. Unterstützt die folgenden Grundkonzepte:
Polymorphismus
Vererbung
Einkapselung
Abstrakt
Klasse
Objekt
Instanz
Methoden
Überladung
In diesem Abschnitt konzentrieren wir uns auf die Konzepte von Objekten und Klassen.
Objekt: Objekt ist eine Instanz einer Klasse (Objekt ist nicht Find a Girlfriend), hat Status und Verhalten. Zu seinem Status gehören beispielsweise: Farbe, Name und Rasse; zu seinen Verhaltensweisen gehören: Schwanzwedeln, Bellen, Fressen usw.
Klasse : Eine Klasse ist eine Vorlage, die das Verhalten und den Status einer Klasse von Objekten beschreibt.
Im Bild unten sind Jungen und Mädchen Klassen, und jede einzelne Person ist ein Objekt der Klasse:
Lassen Sie uns nun näher darauf eingehen, was ein Objekt ist. Wenn Sie die reale Welt um Sie herum betrachten, werden Sie feststellen, dass sich um Sie herum viele Objekte befinden, wie zum Beispiel Autos, Hunde, Menschen usw. Alle diese Objekte haben ihren eigenen Zustand und ihr eigenes Verhalten.
Nehmen Sie einen Hund als Beispiel: Zu seinem Status gehören: Name, Rasse und Farbe. Zu seinen Verhaltensweisen gehören: Bellen, Schwanzwedeln und Laufen.
Vergleichen Sie reale Objekte und Softwareobjekte, sie sind sich sehr ähnlich.
Softwareobjekte haben auch Status und Verhalten. Der Zustand eines Softwareobjekts ist sein Attribut, und sein Verhalten wird durch Methoden widergespiegelt.
In der Softwareentwicklung bearbeiten Methoden Änderungen im internen Zustand von Objekten, und auch gegenseitige Aufrufe zwischen Objekten werden durch Methoden vervollständigt.
Klassen können als Vorlagen zum Erstellen von Java-Objekten betrachtet werden.
Verstehen Sie die Definition einer Klasse in Java anhand der folgenden einfachen Klasse:
public class Dog{ String breed; int age; String color; void barking(){ } void hungry(){ } void sleeping(){ } }
Eine Klasse kann die folgenden Typvariablen enthalten:
Lokale Variablen: In Methoden, Konstruktoren oder Anweisungsblöcken definierte Variablen werden als lokale Variablen bezeichnet. Die Variablendeklaration und -initialisierung erfolgt alle in Methoden. Nach Beendigung der Methode werden die Variablen automatisch zerstört.
Mitgliedsvariablen : Mitgliedsvariablen sind Variablen, die in der Klasse und außerhalb des Methodenkörpers definiert sind. Solche Variablen werden beim Erstellen des Objekts instanziiert. Auf Mitgliedsvariablen kann über Methoden, Konstruktoren und Anweisungsblöcke einer bestimmten Klasse zugegriffen werden.
Klassenvariable : Klassenvariablen werden auch in der Klasse außerhalb des Methodenkörpers deklariert, müssen jedoch als statischer Typ deklariert werden.
Eine Klasse kann mehrere Methoden haben. Im obigen Beispiel sind barking(),hunger() und Sleeping() alles Methoden der Dog-Klasse.
Jede Klasse hat eine Konstruktormethode. Wenn für eine Klasse kein Konstruktor explizit definiert ist, stellt der Java-Compiler einen Standardkonstruktor für die Klasse bereit.
Beim Erstellen eines Objekts muss mindestens ein Konstruktor aufgerufen werden. Der Name des Konstruktors muss mit dem der Klasse identisch sein. Eine Klasse kann mehrere Konstruktoren haben.
Das Folgende ist ein Beispiel für eine Konstruktormethode:
public class Puppy{ public Puppy(){ } public Puppy(String name){ // 这个构造器仅有一个参数:name } }
Objekte werden aus Klassen erstellt. Verwenden Sie in Java das Schlüsselwort new, um ein neues Objekt zu erstellen. Das Erstellen eines Objekts erfordert die folgenden drei Schritte:
Deklaration: Deklarieren Sie ein Objekt, einschließlich des Objektnamens und des Objekttyps.
Instantiierung: Verwenden Sie das Schlüsselwort new, um ein Objekt zu erstellen.
Initialisierung: Wenn new zum Erstellen eines Objekts verwendet wird, wird die Konstruktormethode aufgerufen, um das Objekt zu initialisieren.
Das Folgende ist ein Beispiel für die Erstellung eines Objekts:
public class Puppy{ public Puppy(String name){ //这个构造器仅有一个参数:name System.out.println("小狗的名字是 : " + name ); } public static void main(String []args){ // 下面的语句将创建一个Puppy对象 Puppy myPuppy = new Puppy( "tommy" ); } }
Kompilieren Sie das obige Programm und führen Sie es aus. Die folgenden Ergebnisse werden gedruckt:
小狗的名字是 : tommy
Greifen Sie wie folgt über das erstellte Objekt auf Mitgliedsvariablen und Mitgliedsmethoden zu:
/* 实例化对象 */ ObjectReference = new Constructor(); /* 访问类中的变量 */ ObjectReference.variableName; /* 访问类中的方法 */ ObjectReference.MethodName();
Das folgende Beispiel zeigt, wie auf Instanzvariablen zugegriffen und aufgerufen wird Mitgliedsmethode:
public class Puppy{ int puppyAge; public Puppy(String name){ // 这个构造器仅有一个参数:name System.out.println("小狗的名字是 : " + name ); } public void setAge( int age ){ puppyAge = age; } public int getAge( ){ System.out.println("小狗的年龄为 : " + puppyAge ); return puppyAge; } public static void main(String []args){ /* 创建对象 */ Puppy myPuppy = new Puppy( "tommy" ); /* 通过方法来设定age */ myPuppy.setAge( 2 ); /* 调用另一个方法获取age */ myPuppy.getAge( ); /*你也可以像下面这样访问成员变量 */ System.out.println("变量值 : " + myPuppy.puppyAge ); } }
Kompilieren Sie das obige Programm und führen Sie es aus, um die folgenden Ergebnisse zu erzielen:
小狗的名字是 : tommy 小狗的年龄为 : 2 变量值 : 2
Im letzten Teil dieses Abschnitts Wir lernen die Deklarationsregeln für Quelldateien kennen. Achten Sie besonders auf diese Regeln, wenn Sie mehrere Klassen in einer Quelldatei definieren und wenn Importanweisungen und Paketanweisungen vorhanden sind.
Es kann nur eine öffentliche Klasse in einer Quelldatei geben
Eine Quelldatei kann mehrere nicht öffentliche Klassen haben
Der Name der Quelldatei sollte mit dem Klassennamen der öffentlichen Klasse übereinstimmen. Beispiel: Der Klassenname der öffentlichen Klasse in der Quelldatei lautet Employee, dann sollte die Quelldatei Employee.java heißen.
Wenn eine Klasse in einem Paket definiert ist, sollte die Paketanweisung in der ersten Zeile der Quelldatei stehen.
Wenn die Quelldatei eine Importanweisung enthält, sollte diese zwischen der Paketanweisung und der Klassendefinition platziert werden. Wenn keine Paketanweisung vorhanden ist, sollte die Importanweisung an erster Stelle in der Quelldatei stehen.
import语句和package语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明。
类有若干种访问级别,并且类也分不同的类型:抽象类和final类等。这些将在访问控制章节介绍。
除了上面提到的几种类型,Java还有一些特殊的类,如:内部类、匿名类。
包主要用来对类和接口进行分类。当开发Java程序时,可能编写成百上千的类,因此很有必要对类和接口进行分类。
在Java中,如果给出一个完整的限定名,包括包名、类名,那么Java编译器就可以很容易地定位到源代码或者类。Import语句就是用来提供一个合理的路径,使得编译器可以找到某个类。
例如,下面的命令行将会命令编译器载入java_installation/java/io路径下的所有类
import java.io.*;
Employee.java 文件代码: import java.io.*; public class Employee{ String name; int age; String designation; double salary; // Employee 类的构造器 public Employee(String name){ this.name = name; } // 设置age的值 public void empAge(int empAge){ age = empAge; } /* 设置designation的值*/ public void empDesignation(String empDesig){ designation = empDesig; } /* 设置salary的值*/ public void empSalary(double empSalary){ salary = empSalary; } /* 打印信息 */ public void printEmployee(){ System.out.println("名字:"+ name ); System.out.println("年龄:" + age ); System.out.println("职位:" + designation ); System.out.println("薪水:" + salary); } }
程序都是从main方法开始执行。为了能运行这个程序,必须包含main方法并且创建一个实例对象。
下面给出EmployeeTest类,该类实例化2个 Employee 类的实例,并调用方法设置变量的值。
将下面的代码保存在 EmployeeTest.java文件中。
EmployeeTest.java 文件代码: import java.io.*; public class EmployeeTest{ public static void main(String []args){ /* 使用构造器创建两个对象 */ Employee empOne = new Employee("RUNOOB1"); Employee empTwo = new Employee("RUNOOB2"); // 调用这两个对象的成员方法 empOne.empAge(26); empOne.empDesignation("高级程序员"); empOne.empSalary(1000); empOne.printEmployee(); empTwo.empAge(21); empTwo.empDesignation("菜鸟程序员"); empTwo.empSalary(500); empTwo.printEmployee(); } }
编译这两个文件并且运行 EmployeeTest 类,可以看到如下结果:
$ javac EmployeeTest.java $ java EmployeeTest 名字:RUNOOB1 年龄:26 职位:高级程序员 薪水:1000.0 名字:RUNOOB2 年龄:21 职位:菜鸟程序员 薪水:500.0
相关推荐:
Das obige ist der detaillierte Inhalt vonHolen Sie sich jetzt die neueste Methode zur Unterscheidung zwischen Klassen und Objekten in Java.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!