public/subjects/mobile-dev/university
davhojt 4d7ce71190 style: prettier 2023-03-11 17:53:30 +00:00
..
README.md style: prettier 2023-03-11 17:53:30 +00:00

README.md

University

Instructions

Create a class named University.

Attributes:

  • name: private string
  • city: private string
  • ranking: private int?

Getters:

  • name
  • city
  • ranking

Constructor:

  • name: required
  • city: required
  • ranking: optional

Encapsulation

Sometimes we need to limit access to class attributes, so that it can be accessed only from the class itself. This concept is called encapsulation.

Dart allows making attributes private, meaning that they can be accessed or modified from the class instance. Attributes are made private with a leading underscore (_) on the name of the method or attribute.

But... There is no encapsulation at the class level in Dart. The encapsulation is rather applied at the scope of the library which contains the class.

Importing libraries can help you create a modular and shareable code base. Libraries not only provide APIs, but are unit of privacy: private variables, i.e. starting with an underscore (_) are visible only inside the library. Every Dart app is a library, even if it doesnt use a library directive.

Still, even on a class level it is a good practice to declare private values and not to use values that are intended to be private.


class Person {
  bool _hunger = true;

  void feed() {
    this._hunger = false;
  }

}