Programowanie obiektowe i właściwości - proszę o wskazówki

0

Witam,
mam do zrobienia taki projekt jak w załączniku, lecz utknąłem na punkcie 13. Chodzi dokładnie o to : "Ponadto, powinna posiadać właściwość tylko do odczytu umożliwiającą odczyt adresu w formacie „pocztowym”.
Punkt 14 też jest dla mnie abstrakcją.
Prosiłbym o jakieś wskazówki.

0
  1. Tworzysz sobie klasę (np. o nazwie Address). Klasa to posiada poszczególne pola wymienione w zadaniu (ulica, miasto, itp.) jako zmienne instancyjne. Dodatkowo tworzysz sobie metodę wyświetlającą Twoje dane w podany sposób (w Javie zazwyczaj używa się toString).
  2. W klasie Osoba dodajesz zmienną instancyjną w postaci obiektu klasy, którą tworzysz na potrzeby punktu 13
0

@Burdzi0, ale on ma tam użyć właściwości. A właściwości w C# są wbudowane w składnię języka.

public string X
{
   get { return "Jakis string"; }
}

Albo korzystając z C# 6

public string X => "Jakis string";

A w 14 to nie wiem z czym problem. Właściwość robisz tak jak każdą inną, tylko jako typ dajesz klasę, którą utworzyłeś w zadaniu poprzednim.

0

Mam coś takiego
Główna funkcja programu:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            Osoba o1 = new Osoba();
            Adres a1 = new Adres();
            Console.WriteLine(a1.odczyt);
            o1.UstawDane(Console.ReadLine(), Console.ReadLine());
            o1.PrzedstawSie();
            
            
        }
    }
}

oraz dwie klasy.
Pierwsza klasa Osoba :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
    class Osoba
    {
        private string Imie;
        private string Nazwisko;

        public string imie
        {
            get
            {
                return this.Imie;
            }

            private set
            {
                Imie = value;
            }
        }

        public string nazwisko
        {
            get
            {
                return this.Nazwisko;
            }

            private set
            {
                Nazwisko = value;
            }
        }

         public static string adres
        {
            get
            {
                Adres a1 = new Adres();
                return a1.odczyt;
            }

            private set
            {
                adres = value;
            }
        }

        public void PrzedstawSie()
        {
            Console.WriteLine("Nazywam się" + this.Imie + this.Nazwisko);
        }

        public void UstawDane(string Imie, string Nazwisko)
        {
            
            this.imie = Imie;
            this.nazwisko = Nazwisko;
            
        }
    }
}
 

Druga klasa Adres :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
    class Adres
    {
        private string Ulica;
        private string NrDom;
        private string NrUlica;
        private string Kod;
        private string Miasto;
        private string Panstwo;
        private string Odczyt;

        public string ulica
        {
            get
            {
                return this.Ulica;
            }

            private set
            {
                Ulica = value;
            }
        }

        public string nrdom
        {
            get
            {
                return this.NrDom;
            }

            private set
            {
                NrDom = value;
            }
        }

        public string nrulica
        {
            get
            {
                return this.NrUlica;
            }

            private set
            {
                NrUlica = value;
            }
        }

        public string kod
        {
            get
            {
                return this.Kod;
            }

            private set
            {
                Kod = value;
            }
        }

        public string miasto
        {
            get
            {
                return this.Miasto;
            }

            private set
            {
                Miasto = value;
            }
        }

        public string panstwo
        {
            get
            {
                return this.Panstwo;
            }

            private set
            {
                Panstwo = value;
            }
        }

        public string odczyt
        {
            get
            {
                return Ulica + NrUlica + NrDom + Kod + Miasto + Panstwo;
                    
            }

            private set
            {
                Odczyt = value;
            }
        }
    }
}


    

Nie wiem, czy robię dobrze. Utknąłem na 14/15 punkcie i zero jakiegoś pomysłu.

3

Zastanawiam się jak wiele samozaparcia trzeba mieć, żeby nazywać wszystko zupełnie odwrotnie niż jest w konwencjach języka. Nazwy pól piszemy małą, a nazwy właściwości wielką literą.

class Adres
{
    public string Ulica { get; private set; }
    public string Nrdom { get; private set; }
    public string Nrulica { get; private set; }
    public string Kod { get; private set; }
    public string Miasto { get; private set; }
    public string Panstwo { get; private set; }
    public string Odczyt
    {
        get
        {
            return Ulica + Nrulica + Nrdom + Kod + Miasto + Panstwo;
        }
    }
}
0

Ok coś tam dałem rade naskrobać. Pytanie mam odnośnie ostatniego punktu jak zrobić pętle by dane się zapisywały by można potem je wyciągnąć? Wiem, że tablica, ale potrzebuje jakiegoś konkretnego rozwiązania.

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