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

Programowanie obiektowe i właściwości - proszę o wskazówki
W1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 60
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.

Burdzi0
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Futurama
  • Postów: 887
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
SO
  • Rejestracja: dni
  • Ostatnio: dni
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.

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

Albo korzystając z C# 6

Kopiuj
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.

W1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 60
0

Mam coś takiego
Główna funkcja programu:

Kopiuj
 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 :

Kopiuj
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 :

Kopiuj
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.

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
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ą.

Kopiuj
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;
        }
    }
}
W1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 60
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.