Scala中的对象
对象是类的实例。创建它是为了使用该类的成员,即使用与该类相关的字段和方法。
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;
}
}该对象在其函数中使用该类来制作更高效的程序。可以通过导入包调用来使用此对象。