Data classes
Often, we create a class whose only purpose is to store data, such as, data retrieved from a server or a local database. These classes are the building blocks of application data models:
    class Product(var name: String?, var price: Double?) { 
 
       override fun hashCode(): Int { 
           var result = if (name != null) name!!.hashCode() else 0 
           result = 31 * result + if (price != null) price!!.hashCode() 
           else 0 
           return result 
       } 
 
       override fun equals(other: Any?): Boolean = when { 
           this === other -> true 
           other == null || other !is Product -> false 
           if (name != null) name != other.name else other.name != 
                             null -> false 
           price != null -> price == other.price 
           else -> other.price == null 
       } 
 
       override fun toString(): String { 
           return "Product(name=$name, price=$price)" 
       } 
    } In Java, we...
 
                                             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
     
         
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                