class AreaOfSquare { // class
var lengthOftheSide = 10;
private var msg = "Welcome"
private def displayMessage() = {
println("Message : " + msg)
}
def area(): Unit = {
{
var ar = lengthOftheSide * lengthOftheSide
println("Length : " + lengthOftheSide)
print ("Area Of Square : "+ar)
}
}
}
object AreaOfSquare { // object
var lengthOftheSide = 10;
private var msg = "Welcome"
private def displayMessage() = {
println("Message : " + msg)
}
def area(): Unit =
{
var ar = lengthOftheSide * lengthOftheSide
println("Length : " + lengthOftheSide)
print ("Area Of Square : "+ar)
}
}
class my1st { // companion class
var lengthOftheSide = 10;
private var msg = ""
private def displayMessage() = {
println("Message : " + msg)
}
def area(): Unit = {
{
var ar = lengthOftheSide * lengthOftheSide
println("Length : " + lengthOftheSide)
print ("Area Of Square : "+ar)
}
}
}
object my1st {
def main(args:Array[String]) : Unit = {
var obj = new AreaOfSquare() /*Creating instance of the class*/
obj.lengthOftheSide = 15
// obj.msg = "Something" // inaccessible because the variable is declared as private
// obj.displayMessage() // inaccessible because the variable is declared as private
obj.area()
println()
AreaOfSquare.lengthOftheSide = 11 // Simply calling the object - static equivalent - no need to instantiate*/
// AreaOfSquare.msg = "Something" // inaccessible because the variable is declared as private
// AreaOfSquare.displayMessage() // inaccessible because the variable is declared as private
AreaOfSquare.area()
println()
var myobj = new my1st() // object name = class name --> companion object, class
/* Companion object : class and object where we calling the class name both are same
* A companion object is allowed to access both private methods and private fields of the class.*/
myobj.lengthOftheSide = 8
myobj.area()
myobj.msg = "Welcome to Companion Objects and Class" // companion object can access private fields and methods
myobj.displayMessage() // companion object can access private fields and methods
}
}
Result :
Length : 15
Area Of Square : 225
Length : 11
Area Of Square : 121
Length : 8
Area Of Square : 64Message : Welcome to Companion Objects and Class
No comments:
Post a Comment