← Back to Scala Course | Chapter 7: OOP Basics | Lesson 6 of 7

Case Classes क्या हैं

एक case class एक class है जिसमें मुफ़्त में उपयोगी extras जुड़े होते हैं, जैसे कोई toy जो batteries और manual के साथ आता है। यह अच्छे से print होता है, contents से compare करता है, और बिना new के बनाना आसान है।

In this page:

  1. Case Classes
Syntax
scala
case class ClassName(field1: Type, field2: Type)

val instance = ClassName(value1, value2)
val copy = instance.copy(field1 = new_value)

Case Classes

एक case class अपने आप उपयोगी boilerplate generate करता है: apply वाला एक companion object, value-based equals/hashCode, एक readable toString, और pattern matching के लिए support।

Case class fields default रूप से val होते हैं, जिससे instances immutable बन जाते हैं जब तक आप explicitly किसी field को var चिह्नित न करें। Case classes simple data-holding types को model करने का idiomatic Scala तरीका हैं।

Note: Case classes को मुफ़्त में pattern-matching support और value equality मिलती है, जिससे वे Scala में simple data models के लिए default choice बन जाती हैं।

उदाहरण: Case Classes

markup
case class Point(x: Int, y: Int)

object Main extends App {
  val p1 = Point(1, 2)
  val p2 = Point(1, 2)

  println(p1)
  println(p1 == p2) // value equality, not reference equality

  val p3 = p1.copy(y = 99)
  println(p3)
}
Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the view already swaps in the hi_ translation fields (or blanks these out if untranslated), so this renders correctly for both languages without a lang_code check here. #}
आम गलतियां
  1. दो case class instances को eq से compare करना और equality की उम्मीद करना, जबकि == values compare करता है लेकिन eq references compare करता है।
  2. p1.x = 5 जैसे किसी field को बदलने की कोशिश करना, जबकि case class parameters default रूप से val हैं।
  3. एक case class से दूसरी case class को inherit करना, जिसकी अनुमति नहीं है और इसे हतोत्साहित किया जाता है।
🔒

Chapter Quiz — Complete all 7 topics to unlock

0/7 topics done

Complete these topics first:

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.