Desafio: Palavra-Chave `static`
Neste problema, é necessário:
- Criar um novo campo privado chamado
totalCars
do tipodouble
, 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
1234567891011121314151617181920212223242526272829303132333435363738using 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()); } }
- O campo que rastreia o número de objetos deve ser estático porque ele sempre armazena algum dado.
- 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 retornartotalCars
. - O método
getTotalCars
também deve ser estático porque queremos utilizá-lo sem uma instância.
index.cs
123456789101112131415161718192021222324252627282930313233343536373839404142using 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?
Obrigado pelo seu feedback!
Seção 4. Capítulo 6
Pergunte à IA
Pergunte à IA
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
Desafio: Palavra-Chave `static`
Deslize para mostrar o menu
Neste problema, é necessário:
- Criar um novo campo privado chamado
totalCars
do tipodouble
, 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
1234567891011121314151617181920212223242526272829303132333435363738using 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()); } }
- O campo que rastreia o número de objetos deve ser estático porque ele sempre armazena algum dado.
- 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 retornartotalCars
. - O método
getTotalCars
também deve ser estático porque queremos utilizá-lo sem uma instância.
index.cs
123456789101112131415161718192021222324252627282930313233343536373839404142using 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?
Obrigado pelo seu feedback!
Seção 4. Capítulo 6