Skip to main content
A public getter in Dart is a specialized method that provides read access to an object’s state or computed properties using field-access syntax. In Dart, identifiers are public by default; therefore, a getter is public as long as its name does not begin with an underscore (_).

Implicit Public Getters

When you declare a public instance variable, Dart automatically generates an implicit public getter for it.

Explicit Public Getters

Explicit public getters are defined using the get keyword. They allow you to define custom logic for property retrieval, such as computing a value dynamically or exposing a private field, while maintaining the syntactic footprint of a standard field access.

Syntax

An explicit getter is declared with an optional return type, the get keyword, and the identifier, followed by either a block body or an arrow function. It strictly takes no parameters and omits the parameter list parentheses (). Arrow Syntax:
Block Body Syntax:

Code Example

Technical Characteristics

  • Parameterless: A getter cannot define any parameters. Attempting to add parentheses () to a getter declaration results in a compilation error.
  • Uniform Access Principle: Because both implicit and explicit getters are invoked using dot notation (object.property), you can change a standard public field into an explicit getter later without breaking the API or requiring changes to the calling code.
  • Scope: Public getters can be declared at the top level of a library, or within classes, mixins, enums, and extensions.
  • Read-Only Enforcement: Defining an explicit getter without a corresponding explicit setter (set) creates a read-only property from the perspective of the caller. Attempting to assign a value to it will result in a compilation error.
  • Overriding: Explicit getters can override implicit getters (fields) from a superclass, and vice versa.
Tired of Poor Dart Skills? Fix That With Deep Grasping!Learn More