In PHP, um ein neues Objekt zu erstellen, würden Sie so etwas tun, $dog = new Dog;
. Aber in Java würden Sie etwas wie Dog x = new Dog;
oder Dog x;
tun. Kann jemand erklären, warum Sie die Hundeklasse vor der Variable sagen müssen?Erstellen von Objekten in Java Frage
Antwort
Java statisch und explizit eingegeben.
Der Typ der Variablen kann aufgrund von Vererbung vom Typ des Werts abweichen, den sie enthält. Zum Beispiel:
Animal dog = new Dog();
hier der Typ der dog
variableAnimal
ist, aber der Wert gilt, ist ein Verweis auf eine Instanz Dog
.
nun in einigen anderen Sprachen (C# 3 ist das offensichtlichste Beispiel als naher Nachbar von Java ist) können Sie implizit typisierte lokale Variablen verwenden, wenn Sie tatsächlich den Typ einer lokalen Variablen wollen die gleiche sein wie die Art der der Ausdruck früher initialisieren:
var dog = new Dog(); // Equivalent to Dog dog = new Dog();
(. die Typenanalyse-Funktionen von einigen anderen statisch typisierten Sprachen geht weit darüber hinaus)
Also, um Ihre ursprüngliche Frage zurück zu gehen, ist die Antwort:
- Die
dog
Variable hat einen Typ, der zur Kompilierzeit bekannt ist; dies ist nicht wahr in PHP - Der Typ der Variablen muss explizit in Java angegeben werden; dies statische Typisierung verwandt ist, aber es ist kein Anforderung statischer
In Java Sie den Konstruktor wie folgt aufrufen würde (im Falle hat es keine Parameter):
Dog x = new Dog();
durch die Klasse-Namen vor der Variablen schreiben, Sie Java sagen, dass Ihre Variable x
ist von Typ Dog
. Diese Java ermöglicht es Ihnen etwas, um herauszufinden, falsch machen beim Schreiben:
Dog x = new Cat();
PHP Variables at w3schools Siehe:
PHP ist eine lose typisierte Sprache
In PHP, hat eine Variable nicht muss deklariert sein, bevor ein Wert hinzugefügt wird.
Im obigen Beispiel sehen Sie, dass Sie PHP nicht mitteilen müssen, welche Daten die Variable eingeben.
PHP konvertiert die Variable automatisch in den richtigen Datentyp, , abhängig von seinem Wert.
In einer stark typisierten Programmierung Sprache, müssen Sie vor der Verwendung (definieren) die Art und Name der Variablen erklären.
In PHP wird die Variable automatisch deklariert, wenn Sie sie verwenden.
Es scheint, Sie mögen auch Hunde und Katzen;) – Desintegr
Ich denke, es ist, weil Java streng typisiert ist. Sie müssen den Typ des Objekts zur Kompilierzeit setzen.
Sie müssen den Typ präzisieren, da Java eine starke und statische typisierte Sprache ist.
Wenn Sie x
als Hund erklären, kann es nur ein Hund oder eine Unterklasse von Dog sein.
Ein weiteres Beispiel:
public class Animal {
}
public class Dog extends Animal {
}
public class Cat extends Animal {
}
Der folgende Code ist gültig, weil x
als Tier erklärt, kann es ein Hund oder ein Cat oder jede Unterklasse von Tiere sein:
Animal x;
x = new Dog();
x = new Cat();
+1 für eine gute, vollständige Antwort. Ich füge nur hinzu, dass der Typ der Variablen auch eine Schnittstelle sein kann, solange die Klasse nach dem 'Neuen' diese Schnittstelle implementiert. – PhiLho
Danke, ich verstehe jetzt! –
Es ist möglich, eine starke und statische typisierte Sprache zu verwenden, bei der Sie den Typ nicht zweimal deklarieren müssen (z. B. Scala). Ich denke, eine genauere Antwort ist, was Sie gesagt haben, plus "... und Java macht sehr wenig in der Art der Typ-Inferenz." – Grundlefleck
Das ist Java-Syntax zum Erstellen eines Objekts einer Klasse eingeben, die auch als eine Instanz genannt.
Zum Beispiel Dog adog;
adog
wo eine Referenzvariable vom Typ Dog
.
Dog adog=new Dog();
wo adog
ist eine Referenzvariable vom Typ Dog
das nun an das Dog
Objekt im Speicher verweist.
Und Sie verwenden den Punkt (.) -Operator, um auf die Instanzvariablen und -methoden des Objekts zuzugreifen.
Ihr Klassenname Objektname = neuer Klassenname(); Für Beispiel
Klasse Tier() {
// Code }
Tier Hund = new Tier();
- 1. Erstellen von Objekten im Stapelspeicher in Java?
- 2. Erstellen von Java-Objekten mit JQuery
- 3. Erstellen Array von Objekten zur Laufzeit mit Klassennamen in Java
- 4. So erstellen Sie ein Array von Objekten in Java
- 5. Verwenden von Paketnamen zum Erstellen von Objekten in Java
- 6. Löschen von Objekten in Java
- 7. Python, Erstellen von Objekten
- 8. Deserialisieren von Objekten in Java
- 9. Probleme beim Verschieben von Objekten in Java
- 10. Erstellen von unveränderlichen Objekten von Javabean
- 11. Objekt eine Klasse von Objekten in Java
- 12. Java Reflexion in zwei Ebenen von Objekten
- 13. Java JFrame Frage
- 14. Installieren oder Erstellen von Objekten
- 15. Generisch erstellen von Objekten in C#
- 16. Erstellen von Objekten in Loop C#
- 17. Erstellen einer Liste von Objekten in Python
- 18. Java - Kopieren von Arraylist-Objekten
- 19. Erstellen von neuen Objekten aus eingefrorenen übergeordneten Objekten
- 20. Vergleichen von XML-Objekten java
- 21. Intercept-Feldzugriff von Java-Objekten in Rhino
- 22. Zuweisen und Zurückgeben von Objekten in Java
- 23. Mehrere Arten von Objekten in Java-Containern
- 24. Gemeinsame Nutzung von Objekten in Java-Prozessen
- 25. Verwenden von Operatoren mit Objekten in Java
- 26. Frage zu Java enums
- 27. Java Zusammensetzung Frage
- 28. Ruby on Rails: Kind Erstellen von Objekten
- 29. Verwenden von XML-Dateien zum Erstellen von Objekten in C#
- 30. Erstellen Sie eine Liste von Objekten C#
Weil PHP, gut ... s ** ks. (sehr subjektiv) – whiskeysierra