Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Desafio: Palavra-Chave `static` | Essenciais de Poo
C# Além do Básico

bookDesafio: Palavra-Chave `static`

Neste problema, é necessário:

  • Criar um novo campo privado chamado totalCars do tipo double, que rastreia o número total de objetos Car criados;
  • Criar um método getter chamado getTotalCars, que simplesmente retorna o número de objetos;
  • Garantir que o valor do campo totalCars seja incrementado toda vez que um novo objeto Car for criado.
index.cs

index.cs

copy
1234567891011121314151617181920212223242526272829303132333435363738
using System; class Car { int modelYear; double mileage; string brandName; public Car(string brandName, int modelYear, double mileage) { this.brandName = brandName; this.modelYear = modelYear; this.mileage = mileage; // Write code below this line // Write code above this line } // Write code below this line // Write code above this line } class ConsoleApp { static void Main() { Console.WriteLine(Car.getTotalCars()); Car car1 = new Car("Toyota", 2022, 25.5); Car car2 = new Car("Honda", 2020, 30.2); Car car3 = new Car("Ford", 2021, 28.8); Console.WriteLine(Car.getTotalCars()); } }
  1. O campo que rastreia o número de objetos deve ser estático porque ele sempre armazena algum dado.
  2. Foi explicado no capítulo Modificadores de Acesso que um método getter é simplesmente um método público que retorna o valor de um campo privado. Neste caso, getTotalCars deve retornar totalCars.
  3. O método getTotalCars também deve ser estático porque queremos utilizá-lo sem uma instância.
index.cs

index.cs

copy
123456789101112131415161718192021222324252627282930313233343536373839404142
using System; class Car { int modelYear; double mileage; string brandName; public Car(string brandName, int modelYear, double mileage) { this.brandName = brandName; this.modelYear = modelYear; this.mileage = mileage; // Write code below this line totalCars += 1; // Write code above this line } // Write code below this line private static double totalCars; public static double getTotalCars() { return totalCars; } // Write code above this line } class ConsoleApp { static void Main() { Console.WriteLine(Car.getTotalCars()); Car car1 = new Car("Toyota", 2022, 25.5); Car car2 = new Car("Honda", 2020, 30.2); Car car3 = new Car("Ford", 2021, 28.8); Console.WriteLine(Car.getTotalCars()); } }
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 6

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Suggested prompts:

Can you show me how to declare a static private field in Java?

How do I increment the static field in the constructor?

Can you explain why the getter method should be static?

Awesome!

Completion rate improved to 2.04

bookDesafio: Palavra-Chave `static`

Deslize para mostrar o menu

Neste problema, é necessário:

  • Criar um novo campo privado chamado totalCars do tipo double, que rastreia o número total de objetos Car criados;
  • Criar um método getter chamado getTotalCars, que simplesmente retorna o número de objetos;
  • Garantir que o valor do campo totalCars seja incrementado toda vez que um novo objeto Car for criado.
index.cs

index.cs

copy
1234567891011121314151617181920212223242526272829303132333435363738
using System; class Car { int modelYear; double mileage; string brandName; public Car(string brandName, int modelYear, double mileage) { this.brandName = brandName; this.modelYear = modelYear; this.mileage = mileage; // Write code below this line // Write code above this line } // Write code below this line // Write code above this line } class ConsoleApp { static void Main() { Console.WriteLine(Car.getTotalCars()); Car car1 = new Car("Toyota", 2022, 25.5); Car car2 = new Car("Honda", 2020, 30.2); Car car3 = new Car("Ford", 2021, 28.8); Console.WriteLine(Car.getTotalCars()); } }
  1. O campo que rastreia o número de objetos deve ser estático porque ele sempre armazena algum dado.
  2. Foi explicado no capítulo Modificadores de Acesso que um método getter é simplesmente um método público que retorna o valor de um campo privado. Neste caso, getTotalCars deve retornar totalCars.
  3. O método getTotalCars também deve ser estático porque queremos utilizá-lo sem uma instância.
index.cs

index.cs

copy
123456789101112131415161718192021222324252627282930313233343536373839404142
using System; class Car { int modelYear; double mileage; string brandName; public Car(string brandName, int modelYear, double mileage) { this.brandName = brandName; this.modelYear = modelYear; this.mileage = mileage; // Write code below this line totalCars += 1; // Write code above this line } // Write code below this line private static double totalCars; public static double getTotalCars() { return totalCars; } // Write code above this line } class ConsoleApp { static void Main() { Console.WriteLine(Car.getTotalCars()); Car car1 = new Car("Toyota", 2022, 25.5); Car car2 = new Car("Honda", 2020, 30.2); Car car3 = new Car("Ford", 2021, 28.8); Console.WriteLine(Car.getTotalCars()); } }
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 6
some-alt