Ich gehe gerade einige Scala-Tutorials im Internet durch und habe festgestellt, dass in einigen Beispielen ein Objekt am Anfang des Beispiels deklariert wird.
Was ist der Unterschied zwischen class
y object
in Scala?
Ich gehe gerade einige Scala-Tutorials im Internet durch und habe festgestellt, dass in einigen Beispielen ein Objekt am Anfang des Beispiels deklariert wird.
Was ist der Unterschied zwischen class
y object
in Scala?
Der formale Unterschied -
Der Unterschied in der Nutzung:
In Scala gibt es keine statischen Methoden oder Felder. Stattdessen sollten Sie object
. Sie können es mit oder ohne zugehörige Klasse verwenden. Im 1. Fall nennt man es ein Begleitobjekt. Das müssen Sie:
Um ein Programm zu erstellen, sollten Sie die Methode main in object
, nicht in class
.
object Hello {
def main(args: Array[String]) {
println("Hello, World!")
}
}
Sie können es auch verwenden, wie Sie Singleton-Objekt in Java verwenden.
In Scala gibt es keine static
Konzept. Scala erstellt also ein Singleton-Objekt, um einen Einstiegspunkt für die Programmausführung zu schaffen. Wenn Sie kein Singleton-Objekt erstellen, wird Ihr Code zwar erfolgreich kompiliert, aber keine Ausgabe erzeugt. Methoden, die innerhalb eines Singleton-Objekts deklariert werden, sind global zugänglich. Ein Singleton-Objekt kann Klassen und Traits erweitern.
Scala Singleton Objekt Beispiel
object Singleton{
def main(args:Array[String]){
SingletonObject.hello() // No need to create object.
}
}
object SingletonObject{
def hello(){
println("Hello, This is Singleton Object")
}
}
Ausgabe:
Hello, This is Singleton Object
Wenn Sie in Scala eine Klasse mit demselben Namen wie das Singleton-Objekt haben, wird diese als Begleiterklasse und das Singleton-Objekt als Begleitobjekt bezeichnet.
Die Begleitklasse und ihr Begleitobjekt müssen beide in derselben Quelldatei definiert sein.
Scala Companion Objekt Beispiel
class ComapanionClass{
def hello(){
println("Hello, this is Companion Class.")
}
}
object CompanoinObject{
def main(args:Array[String]){
new ComapanionClass().hello()
println("And this is Companion Object.")
}
}
Ausgabe:
Hello, this is Companion Class.
And this is Companion Object.
In Scala kann eine Klasse enthalten:
1. Daten Mitglied
2. Mitglied Methode
3. Konstruktor-Block
4. Verschachtelte Klasse
5. Informationen zur Superklasse usw.
Sie müssen alle Instanzvariablen in der Klasse initialisieren. Es gibt keinen Standardbereich. Wenn Sie den Zugriffsbereich nicht angeben, ist er öffentlich. Es muss ein Objekt geben, in dem die Methode main definiert ist. Sie bildet den Ausgangspunkt für Ihr Programm. Hier haben wir ein Beispiel für eine Klasse erstellt.
Scala-Beispiel Beispiel einer Klasse
class Student{
var id:Int = 0; // All fields must be initialized
var name:String = null;
}
object MainObject{
def main(args:Array[String]){
var s = new Student() // Creating an object
println(s.id+" "+s.name);
}
}
Es tut mir leid, dass ich zu spät bin, aber ich hoffe, dass es Ihnen helfen wird.
El Objekt Schlüsselwort erzeugt einen neuen Singleton-Typ, der wie ein Klasse die nur eine einzige benannte Instanz hat. Wenn Sie mit Java vertraut sind, ist die Deklaration einer Objekt in Scala ist ähnlich wie das Erstellen einer neuen Instanz einer anonymen Klasse.
Scala hat keine Entsprechung zu Java's statisch Schlüsselwort, und ein Objekt wird in Scala oft dort verwendet, wo man in Java eine Klasse mit statischen Mitgliedern verwenden könnte.
Eine Klasse ist genau wie jede andere Klasse in anderen Sprachen. Sie definieren eine Klasse wie jede andere Sprache, mit einigen Unterschieden in der Syntax.
class Person(val name: String)
val me = new Person("My name")
Objekt ist jedoch eine Klasse mit nur einem Objekt. Dies macht es interessant, da es verwendet werden kann, um statische Mitglieder einer Klasse zu erstellen, indem man Begleitobjekt . Dieses Begleitobjekt hat Zugriff auf private Mitglieder der Klassendefinition und trägt den gleichen Namen wie die Klasse, die Sie definieren.
class Person(var name: String) {
import Person._
def hi(): String = sayHello(name)
}
object Person {
private def sayHello(name: String): String = "Hello " + name
}
val me = new Person("My name")
me.hi()
Ein weiterer wichtiger Punkt ist die Tatsache, dass die Objektklasse nachlässig erstellt wird. Sie werden also nur dann instanziiert, wenn sie in unserem Code benötigt werden.
Wenn Sie die Verbindungserstellung für JDBC definieren, können Sie sie innerhalb eines Objekts erstellen, um eine Duplizierung zu vermeiden, so wie wir es in Java mit Singleton-Objekten tun.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.