Wątek przeniesiony 2015-04-15 15:42 z C# i .NET przez ŁF.

Sumowanie zmiennych z klas.

0

Witam chciałbym zsumować zmienne z pierwszej klasy i drugiej lecz nie wiem jak to za Chiny zrobić.
Ogólnie zrobiłem dwie klasy osobno bo druga klasa powinna dziedzic po pierwszej dwie zmienne lecz gdy to robię zaraz wyskakuje mi błąd od konstruktora.
Załączam kod.

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

namespace ConsoleApplication31
{
    public class KlasaO
    {
        private double zmiennaa;
        private double zmiennab;

        public KlasaO(double y, double z)
        {
            zmiennaa = y;
            zmiennab = z;
        }
        public void Pokazklaseo()
        {
            Console.WriteLine("{0,0}{1,2}{2,3}", zmiennaa, ",", zmiennab);
        }
    }

    class drugaklasa
    {
        private double zmiennac;

        public drugaklasa(double x)
        {
            zmiennac = x;
        }
        public void Pokazdrugaklase()
        {
            Console.WriteLine(5);
        }

    }
    class Program
    {
        static void Main(string[] args)
        {
            int wynik;
            KlasaO k1 = new KlasaO(2,9);
            k1.Pokazklaseo();
            drugaklasa k2 = new drugaklasa(2);
            k2.Pokazdrugaklase();
            wynik = ;
            Console.WriteLine(wynik);
            Console.ReadKey();
         }
    }
}
 
0

Jaki błąd?
Co przypisujesz do zmiennej wynik?
Czemu wyświetlasz na "sztywno" wartość w klasie drugaklasa w metodzie Pokazdrugaklase?

1

Poczytaj co to jest to dziedziczenie a w szczególności jak wywołuje się konstruktor klasy bazowej od razu zahacz o polimorfizm bo powinien ci się w tym zadaniu przydać. :) No i kod masz strasznie niechlujny.

0

Szczerze mocno się zgubiłem w tym kodzie.
no właśnie tam chciałbym przypisać sumowanie 3 liczb gdzie w pierwszej klasie są dwie liczby i w drugiej klasie jest jedna liczba.
W drugiej klasie rozumiem że muszę zmienić 5 na zmienna c ?

0
public class ClassBuilder
{
     public KlasaO klasaO;
     public DrugaKlasa drugaKlasa;

     public void AddNewNumToKlasO (double numOne, double numTwo)
     {
            klasaO = new KlasaO(numOne, numTwo);
     }

     public void AddNewNumToDrugaKlasa(double numOne)
     {
            drugaKlasa = new DrugaKlasa(numOne);
     }
}

public class ClassReader
{
    private ClassBuilder classBuilder;

    public ClassReader(ClassBuilder classBuilder)
    {
        this.classBuilder = classBuilder;
    }

    public double GetSumResult()
    {
        return classBuilder.klasaO.zmiennaa + classBuilder.klasaO.zmiennab + classBuilder.drugaKlasa.zmiennac;
    }
}

Musisz tylko odpowiednio przekształcić swoje klasy by wykorzystać ten kod ;)

0

Gdzie łatwo nauczę się o dziedziczeniu klas, kolega z forum kazał próbować a ja nie mogę zatrybić ;v
tak samo mam podobny problem z datą ;p
gdzie, żeby ją wyświetlić :

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

namespace ConsoleApplication37
{
    class czas
    {
        double rok;
        double miesiac;
        double dzien;

        public czas(System.DateTime dt)
        {
            rok = dt.Year;
            miesiac = dt.Month;
            dzien = dt.Day;
        }
        public void pokazczas()
        {
            Console.WriteLine("",rok,miesiac,dzien);
        }

    }

    class Program
    {
        static void Main(string[] args)
        {
        }
    }
}
 

i staję nie wiem co dalej.

1

Przykład dziedziczenia:

// Klasa Bazowa.
public class Dom
{
     public int drzwiFrontowe;
     public int okna;
     public int scianyNosne;
     public double rozmiarDomu;

     // Konstruktor klasy bazowej.
     public Dom(int drzwiFrontowe, int okna, int scianyNosne)
     {
          this.drzwiFrontowe = drzwiFrontowe;
          this.okna = okna;
          this.scianyNosne = scianyNosne;
     }
     
     // przykład metody, która może zostać zmodyfikowana w klasie dziedziczącej.
     public virtual void Napisz()
     {
          MessageBox.Show("Dom bez Garazu");
     }
     
     // przykład metody, którą odziedziczy klasa dziedzicząca.
     public void Metoda()
     {
         MessageBox.Show("Jestem sobie metoda");
     }
}

public class DomZGarazem : Dom
{
    public int drzwiGarazowe;
    public int rozmiarGarazu;
    public int okna;

    // Konstruktor obiektu "DomZGarazem" dziedziczący konstruktor klasy "Dom".
    public DomZGarazem(int drzwiFrontowe, int okna, int scianyNosne, int drzwiGarazowe, int rozmiarGarazu, int okna) 
       : base (drzwiFrontowe, okna, scianyNosne)
    {
       this.drzwiGarazowe = drzwiGarazowe;
       this.rozmiarGarazu = rozmiarGarazu;
       this.okna = okna;
    }

    public override void Napisz()
    {
        MessageBox.Show("Dom z Garażem");
    }
}
0

Witam.
Poradziłem sobie z tamtym problemem.
Ale teraz znów mam problem jak zsumować z sobą te daty.

using System;
using System.Collections.Generic;
using System.Text;
namespace Przyklad_5_4
{
public class Czas
{
// Zmienne prywatne
private int Rok;
private int Miesiąc;
private int Dzień;

public void WyświetlCzas()
{
Console.WriteLine("{0}.{1}.{2} ", Dzień, Miesiąc, Rok);
}
public Czas(System.DateTime dt) // Konstruktor
{
Rok = dt.Year;
Miesiąc = dt.Month;
Dzień = dt.Day;
}
// Konstruktor przeciążony 
public Czas(int rok, int miesiąc, int dzień)
{
Rok = rok;
Miesiąc = miesiąc;
Dzień = dzień;
}
class Tester
{
static void Main()
{
    int wynik;
System.DateTime aktualnyCzas = System.DateTime.Now;
Czas t1 = new Czas(aktualnyCzas);
t1.WyświetlCzas();
Czas t2 = new Czas(0004, 03, 02);
t2.WyświetlCzas();
wynik = // tu nie mam pojecia co wklepac by zadzialalo to sumowanie ;
    Console.WriteLine(wynik);
Console.ReadKey();
}
}
}
}
 

Przy okazji niech ktoś poleci dobrą lekturę.
Wpisując w goolge sumowanie klas czy sumowanie zmiennych z klas, nie przyniosło oczekiwanego efektu.

0

Możesz przeładować operator + w klasie Czas.

0

Twoim głównym problemem jest to, że bierzesz przykłady z d**y co to KlasaA czy zmiennaC?

Wyobraź sobie, że robisz sklepy w którym jest ogólny Towar który zawiera np. nazwę produktu, cenę, stawkę VAT i możesz stworzyć bardziej szczegółowe rzeczy (ale dalej wystarczająco ogólne) np. szklanki które mają pojemność, ubrania które mają rozmiar i materiał, książki które mają autora i ISBN.

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