Clase y Objeto en Scala

Las clases y los objetos son conceptos básicos de la programación orientada a objetos que giran en torno a las entidades de la vida real .

Clase

Una clase es un proyecto o prototipo definido por el usuario a partir del cual se crean objetos. O en otras palabras, una clase combina los campos y métodos (función miembro que define acciones) en una sola unidad. Básicamente, en una clase, el constructor se usa para inicializar nuevos objetos, los campos son variables que proporcionan el estado de la clase y sus objetos, y los métodos se usan para implementar el comportamiento de la clase y sus objetos.

Declaración de clase 
En Scala, una declaración de clase contiene la palabra clave class, seguida de un identificador (nombre) de la clase. Pero hay algunos atributos opcionales que se pueden usar con la declaración de clase de acuerdo con los requisitos de la aplicación. En general, las declaraciones de clase pueden incluir estos componentes, en orden: 

  • Clase de palabra clave: una palabra clave de clase se utiliza para declarar la clase de tipo.
  • Nombre de la clase: El nombre debe comenzar con una letra inicial (en mayúscula por convención).
  • Superclase (si existe): el nombre del padre de la clase (superclase), si existe, precedido por la palabra clave extends. Una clase solo puede extender (subclase) un padre.
  • Rasgos (si los hay): una lista separada por comas de los rasgos implementados por la clase, si los hay, precedidos por la palabra clave extends. Una clase puede implementar más de un rasgo.
  • Cuerpo: el cuerpo de la clase está rodeado por { } (llaves).

Sintaxis:  

class Class_name{
// methods and fields
}

Nota: El modificador predeterminado de la clase es público. 

Ejemplo:  

Scala

// A Scala program to illustrate
// how to create a class
 
// Name of the class is Smartphone
class Smartphone
{
     
    // Class variables
    var number: Int = 16
    var nameofcompany: String = "Apple"
     
    // Class method
    def Display()
    {
        println("Name of the company : " + nameofcompany);
        println("Total number of Smartphone generation: " + number);
    }
}
object Main
{
     
    // Main method
    def main(args: Array[String])
    {
         
        // Class object
        var obj = new Smartphone();
        obj.Display();
    }
}

Producción: 

Name of the company : Apple
Total number of Smartphone generation: 16

Objetos

Es una unidad básica de la Programación Orientada a Objetos y representa las entidades de la vida real. Un programa típico de Scala crea muchos objetos que, como sabe, interactúan invocando métodos. Un objeto consta de:  

  • Estado: Está representado por los atributos de un objeto. También refleja las propiedades de un objeto.
  • Comportamiento: Se representa mediante métodos de un objeto. También refleja la respuesta de un objeto con otros objetos.
  • Identidad: Da un nombre único a un objeto y permite que un objeto interactúe con otros objetos.

Considere Dog como un objeto y vea el siguiente diagrama para conocer su identidad, estado y comportamiento.  

Los objetos corresponden a cosas que se encuentran en el mundo real. Por ejemplo, un programa de gráficos puede tener objetos como «círculo», «cuadrado», «menú». Un sistema de compras en línea puede tener objetos como «carrito de compras», «cliente» y «producto». 
 

Declaración de objetos (también llamada instanciación de una clase)

Cuando se crea un objeto de una clase, se dice que la clase está instanciada. Todas las instancias comparten los atributos y el comportamiento de la clase. Pero los valores de esos atributos, es decir, el estado son únicos para cada objeto. Una sola clase puede tener cualquier número de instancias. 

En Scala, un objeto de una clase se crea utilizando la nueva palabra clave. La sintaxis de creación de objetos en Scala es: 

Sintaxis:  

var obj = new Dog();

Scala también proporciona una función llamada objetos complementarios en la que se le permite crear un objeto sin usar la nueva palabra clave.  

Inicializar un objeto

El operador new instancia una clase asignando memoria para un nuevo objeto y devolviendo una referencia a esa memoria. El operador new también invoca al constructor de clases. 

Ejemplo:  

Scala

// A Scala program to illustrate the
// Initialization of an object
 
// Class with primary constructor
class Dog(name:String, breed:String, age:Int, color:String )
{
        println("My name is:" + name + " my breed is:" + breed);
        println("I am: " + age + " and my color is :" + color);
     
}
object Main
{
     
    // Main method
    def main(args: Array[String])
    {
         
        // Class object
        var obj = new Dog("tuffy", "papillon", 5, "white");
    }
}

Producción: 

My name is:tuffy my breed is:papillon
I am: 5 and my color is :white

Explicación: Esta clase contiene un solo constructor. Podemos reconocer un constructor porque en Scala el cuerpo de una clase es el cuerpo del constructor y la lista de parámetros sigue al nombre de la clase. El constructor de la clase Perro toma cuatro argumentos. La siguiente declaración proporciona «tuffy», «papillon», 5, «white» como valores para esos argumentos:

var obj = new Dog("tuffy", "papillon", 5, "white");

El resultado de ejecutar esta declaración se puede ilustrar como: 

Objeto anónimo

Los objetos anónimos son los objetos que se instancian pero no contienen ninguna referencia, puede crear un objeto anónimo cuando no desee reutilizarlo. 

Ejemplo:  

Scala

// Scala program to illustrate how
// to create an Anonymous object
 
class GFG
{
    def display()
    {
        println("Welcome! GeeksforGeeks");
    }
}
object Main
{
     
    // Main method
    def main(args: Array[String])
    {
         
        // Creating Anonymous object of GFG class
        new GFG().display();
    }
}

Producción: 

Welcome! GeeksforGeeks

Publicación traducida automáticamente

Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *