对象是类的实例。创建它是为了使用该类的成员,即使用与该类相关的字段和方法。
new关键字用于创建类的对象。
语法:
var class_name = new obj_name;
说明:
创建对象时,将为所有成员提供所需的存储空间。创建变量并调用函数。实际的调用是在调用成员时,但是在对象初始化时为其分配了内存空间。
示例
import java.io._ class Student(val rlno: Int, val sname: String, val percent: Int) { var rollno: Int = rlno var name : String = sname var percentage = percent; def printresult(){ print("Roll number : " + rollno); print("\nName : "+ name); print("\n Has scored "+ percentage +" % and is "); if(percentage > 40) print("passed") else print("failed") } } object Demo { def main(args: Array[String]) { var stu = new Student(10, "Ramesh", 56); stu.printresult(); } }
输出结果
Roll number : 10 Name : Ramesh Has scored 56 % and is passed
在首次访问时,将执行惰性初始化以初始化变量。这样可以提高代码的效率。惰性变量由惰性修饰符定义。
语法:
lazy var class_name = new obj_name;
单例对象是只有一个实例的类。它是一个值,是由类定义的对象。可以通过使用import语句进行定义来重用它,并在其中直接定义方法。
Object dog{ def bark (){ print("parting") } }
伴随对象与类具有相同的名称。对象和类都是彼此的伴侣。伴随对象可以使用该类的私有成员,并通过其功能为其添加一些功能。
class circle{ def perimeter(var radius){ return (2 * 3.14 * radius) } } object circle { def area( var radius){ return (peimeter(radius)*radius)/2; } }
该对象在其函数中使用该类来制作更高效的程序。可以通过导入包调用来使用此对象。