Объект класса (x) как атрибут класса (y) - PullRequest
0 голосов
/ 18 марта 2019

Мне не удалось найти ответ на этот вопрос, потому что я не знал, как его поставить.

У меня есть класс Car () и класс Owner ().Мне нужно иметь объект 'owner' в качестве простого атрибута моего класса Car (), чтобы я мог передать его в качестве аргумента после создания экземпляра объекта Car ().

Мой владелец () Класс:

class Owner
{
    public Owner(string address){
        this.address = address;
    }
}

My Car () Класс:

class Car
{
    public Car(object owner){ // what type to use?
        this.owner = owner; 
    }

    private object owner; // what type to use?
}

И мой Main () Класс:

static void Main(string[] args){
    Owner owner1 = new Owner("street foo city bar");
    Car car1 = new Car(owner1); // this needs to work
}

Очевидно, используя «объект»Тип для атрибута не делал этого.После печати я получаю «myProjectName.Owner».Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 18 марта 2019

Вы можете написать свой код, как показано ниже, написав публичные методы для возврата нужных вам объектов.

 class Program
    {
        static void Main(string[] args)
        {
            Owner owner1 = new Owner("street foo city bar");
            Car car1 = new Car(owner1); // this needs to work

            Console.WriteLine("Car 1 owner address : " + car1.getOwner().getAddress());
            Console.ReadKey();


        }
    }


    class Car
    {
        private Owner owner;  // same here\
        public Car(Owner owner)
        { // use Owner class
            this.owner = owner;
        }

        public Owner getOwner() // write a public method to return owner
        {
            return this.owner;
        }


    }


    class Owner
    {

        private string address; // this 
        public Owner(string address)
        {

            this.address = address;
        }

        public string getAddress() // write a public method to return address
        {
            return this.address;
        }
    }
1 голос
/ 18 марта 2019
public class Car
{
    public Car(Owner owner)
    {
        this.Owner = owner;
    }

    //Since Owner is public, you don't have to create a getter method for this. i.e GetOwner()
    public Owner Owner;
}

public class Owner
{
    //Since address is private, you'll have to create a public getter for this
    private string address;

    public Owner(string address)
    {
        this.address = address;
    }

    //public getter for the address
    public string GetAddress()
    {
        return this.address;
    }
}

public class Main
{
    static void main(string[] args)
    {
        Owner owner1 = new Owner("street address");
        Car car1 = new Car(owner1);

        car1.Owner.GetAddress();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...