Podstawy klas

0

Witam dopiero zaczynam programowac i prosze o pomoc w rozwiazaniu zad:
Stwórz klasy:
• Osoba z polami: imie, nazwisko, wiek, konstruktorem inicjującym wszystkie pola oraz
metodą Wypisz.
• Książka z polami: tytul, autor (typu Osoba), data wydania oraz metodą Wypisz
Utwórz różne obiekty stworzonych klas. Wykonaj metody Wypisz.

Ogolnie chodzi mi o przypisanie do pola
ksiazka.autor = osoba1, gdyz autor ma byc typu osoba i za nic mi to nie dziala.

0

To pokarz co już napisałeś i zobaczymy co nie działa:)

0
 
public class Osoba
{
public string imie { get; set; }
public string nazwisko { get; set; }
public int wiek { get; set; }

public Osoba(string Imie, string Nazwisko, int Wiek)
{
this.imie=Imie;
this.nazwisko=Nazwisko;
this.wiek=Wiek;
}

public void Wypisz()
{
Console.WriteLine("Imie: {0}, Nazwisko: {1}, Wiek: {2}", imie, nazwisko, wiek);
}
}

public class Ksiazka
{
public string tytul { get; set; }
public DateTime dataWydania { get; set; }
public Osoba autor;

public Ksiazka(string Tytul, DateTime DataWydania, Osoba Autor)
{
this.tytul=Tytul;
this.dataWydania=DataWydania;
this.autor = Autor;
}

public void Wypisz()
{
Console.WriteLine("Tytuł:  {0}, Data wydania: {1}, Imie autora: {2}, Nazwisko autoa: {3}", tytul, dataWydania, autor.imie, autor.nazwisko);
}

}

Niesprawdzane.

0

Wielkie dzieki za pomoc ja tez tak to napisałem tylko własnie mam problem z utworzenie obiektu klasy Ksiazka , no bo autor jest klasy Osoba.Jak to zapisac w konsruktorze.Wiem ze to moze banalne ale dopiero zaczynam programowac.

0

Najpierw tworzymy instancję klasy Osoba:

Osoba autor = new Osoba("Henryk","Sienkiewicz",42);
autor.Wypisz();

Potem instancję klasy Ksiazka:

Ksiazka ksiazka = new Ksiazka("Potop",Convert.ToDataTime("22/02/1886"),autor);
ksiazka.Wypisz();

Zapoznaj się z podstawami programowania obiektowego.

0

Dzieki jestes wielki.A czy możemy w konstruktorze Ksiazka bezposrednio jako parametr autor podac konstruktor klasy Osoba?Jesli tak jak by to wygladalo?.

0

Konstruktora nie możesz dać w parametrze. Zadaniem konstruktora jest zainicjowanie obiektu. A takie rzeczy jak ulokowanie w pamięci obiektu czy obliczenie jego rozmiaru zostaw na później.

0
maic napisał(a):

Dzieki jestes wielki.A czy możemy w konstruktorze Ksiazka bezposrednio jako parametr autor podac konstruktor klasy Osoba?Jesli tak jak by to wygladalo?.

Chodzi Ci o coś takiego?

Ksiazka ksiazka = new Ksiazka("Potop", Convert.ToDataTime("22/02/1886"), new Osoba("Henryk","Sienkiewicz",42));
0

ewentualnie można tak:

public Ksiazka(string Tytul, DateTime DataWydania, string Imie, string Nazwisko, int Wiek)
{
    this.tytul=Tytul;
    this.dataWydania=DataWydania;
    this.autor = new Osoba(Imie, Nazwisko, Wiek);
}
 

i następnie:

Ksiazka ksiazka = new Ksiazka(string Tytul, DateTime DataWydania, string Imie, string Nazwisko, int Wiek)

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