Jak zawrzeć wywołanie obiektu w innej klasie - kompozycja?

0

Chciałbym konstruktorem w klasie Samochód stworzyć obiekt klasy Radio. Jednak nie wiem czy to robię dobrze. W c++ robiło się to w liście inicjalizacyjnej, jak to wygląda w c#?

class Radio
{
    private string kolor;

    public Radio(string kolor)
    {
        this.kolor = kolor;
    }
}

class Samochod
{
    private int licznik;
    
    public Samochod(string kolor, int licznik)
    {
        this.licznik = licznik;
        Radio radio = new Radio(kolor);
    }
} 
0
class Samochod
{
    private int licznik;
    
    Radio radio = new Radio(kolor);
 
    public Samochod(string kolor, int licznik)
    {
        this.licznik = licznik;
    }
}  

lub

class Samochod
{
    private int licznik;
    
    Radio radio;
 
    public Samochod(string kolor, int licznik)
    {
        this.licznik = licznik;
        radio = new Radio(kolor);
    }
}  
2

A czemu po prostu nie przekazać obiekt radio w konstruktorze?

class Samochod
   {
      private readonly Radio radio;
      private int licznik;

      public Samochod(Radio radio, int licznik)
      {
         this.radio = radio;
         this.licznik = licznik;
      }
   }

Jak Radio będzie przyjmowało dwa parametry w konstruktorze to będziesz je też dopisywał do konstruktora klasy Samochod?

0

ok dzięki, z c++ mi się trochę myli bo tam lista inicjalizacyjna była.

0
Shakaz napisał(a):
class Samochod
{
    private int licznik;
    
    Radio radio = new Radio(kolor);
 
    public Samochod(string kolor, int licznik)
    {
        this.licznik = licznik;
    }
}  

Jak to ma działać?

1 użytkowników online, w tym zalogowanych: 0, gości: 1