Wątek przeniesiony 2014-06-11 12:57 z C# i .NET przez ŁF.

Dziedziczenie zmiennych po klasie

0

Mam dwie klasy w zewnętrznym pliku i główna wykonująca w głównym pliku. Wszystko kompiluje się ładnie bez błędów tylko dla czego nie wyświetla żadnych danych. Za wyświetlanie odpowiada klasa pokazik która dziedziczy po klasie samochód (w niej wprowadzam dane).
codefile1.cs:

public class samochod
{
    public int rocznik;
    public string marka, model;
    public void dane()
    {
        System.Console.WriteLine("podaj marke");
        marka = System.Console.ReadLine();
        System.Console.WriteLine("podaj model");
        model = System.Console.ReadLine();
        System.Console.WriteLine("podaj rocznik:");
        rocznik = int.Parse(System.Console.ReadLine());
        if (rocznik > 2014 || rocznik < 1900)
        {
            do
            {
                System.Console.WriteLine("zła data, podaj jeszcze raz");
                rocznik = int.Parse(System.Console.ReadLine());
            }
            while (rocznik > 2014 || rocznik < 1900);
        }


    }
   
}
class pokazik : samochod
{
    
   
    public void pokaz()
    {
        
        System.Console.WriteLine("DANE AUTA");
        System.Console.Clear();
        System.Console.WriteLine("MARKA: " + marka);
        System.Console.WriteLine("MODEL: " + model);
        System.Console.WriteLine("ROCZNIK: " + rocznik);
        System.Console.Read();

    }
}

program.cs

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)
        {
          
            samochod klaska = new samochod();
            klaska.dane();
            pokazik poka = new pokazik();
            poka.pokaz();

        }
        
    }
}
1

Nie wywołujesz metody dane() na obiekcie "poka", więc ma on niezainicjowane pola. Nazewnictwo pozostawia wiele do życzenia...

0

Dziękuję bardzo, jest dobrze. Nazewnictwo ok, wiem i przyjmuje krytykę, dopiero zaczynam z C# ale obiecuje poprawić . Temat zamknięty. :)

0

W ramach rady dopiszę więc, że nazwy klas w c# najlepiej zaczynać z wielkiej litery. Wszystkie nazwy zmiennych/klas powinny coś mówić. Oraz te dane najlepiej by było pobierać w ramach maina, a potem zainicjować pola konstruktorem, do którego podajesz pobrane od użytkownika dane.

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