我正在学习scala。我有一个基本问题。
我的问题不是关于上课。这是关于对象的。
我想了解scala的类实例与java类实例的区别。
我在scala中有以下代码
class Employee(var id:Int,var name:String)
{
def show()
{
println("Id : " +id)
println("Name :"+name)
}
}
object obj1
{
def main(args: Array[String])
{
val emp1 = new Employee(100,"Surender")
emp1.show
}
}
我想知道什么是obj1?我们可以说obj1是类Employee的实例或类Employee的对象。
类似地,Obj1与emp1有何不同?
答案 0 :(得分:0)
Obj1不是任何命名类的实例。它是(由scala隐式构造)匿名(不可访问)类的单个实例。我想你不能说obj1是Employee的实例。因此obj1是匿名类的实例,而emp1是Employee类的实例。
答案 1 :(得分:0)
object
是定义类型并在单个声明中实例化它的简写。 obj1
的类型为obj1.type
(您可以通过在REPL中输入:t obj1
来查看此内容。)
我们可以说obj1是类Employee的实例或类Employee的对象。
不,Employee
和obj1
之间没有任何关系。
Obj1与emp1有何不同?
他们是完全不同的东西。一个更贴切的问题是obj1
与emp1
有什么共同之处?",答案仅仅是他们共享共同的祖先java.lang.Object
,正如所有参考文献所做的那样。