Avatar billede maxmuldjord Nybegynder
05. december 2004 - 12:52 Der er 8 kommentarer og
1 løsning

2 i 1 spørgsmål

Hej
Håber at det går med et 2 trinsspørgsmål?

Jeg skal i ud fra nedenstående lave:

en default constructor der ikke kun initialisere de enklete værdier definerede i de enkelte klasser men også de arvede brandname og IsOn ( skal lige have dem smidt ind men det går nok) men hvordan skal jeg gribe den an?

En construktor der tager 2 argumenter en for at angive værdien for klassen (currentFrequency, internalmemory og lastNumberdialed) og en til at sætte værdien for brandName.

ja sådan lyder mine opgave, jeg er ikke rigtigt klar over hvad det er de vil have mig til så lidt hjælp til at sprede tågerne ville være meget velkommen.

using System;

namespace ElectronicDevice
{
   
    class ElectronicDevice
    {
        private string brandName;
        private bool isOn;
        public ElectronicDevice()
        {
            brandName = "unknown";
            isOn = false;
        }
   
       
       
        public string BrandName
        {
            get
            {
                return brandName;
            }
            set
            {
                brandName = value;
            }
        }

        public virtual void SwitchOn()
        {
            isOn = true;
            Console.WriteLine("On");
        }

        public virtual void SwitchOff()
        {
            isOn = false;
            Console.WriteLine("Off");
        }
    }
    class Radio:ElectronicDevice
    {
        private double currentFrequency;
        public Radio(): base()
        {
        }
            public override void SwitchOn()
            {
                base.SwitchOn();
                Console.WriteLine("Radio");
            }
   
        public override void SwitchOff()
        {
            base.SwitchOff();
            Console.WriteLine("Radio");
        }
   
    }
    class Computer:ElectronicDevice
    {
        private int internalMemory;
            public Computer() : base()
        {
        }
    }
    class MobilePhone:ElectronicDevice
    {
        uint lastNumberDialed;
        public MobilePhone():base()
        {
        }
    }
    class Tester
    {
            [STAThread]
            static void Main(string[] args)
            {
                Radio r = new Radio();
                r.SwitchOn();



                Console.ReadLine();
            }
        }

    }
Avatar billede arne_v Ekspert
05. december 2004 - 13:26 #1
class Computer:ElectronicDevice
    {
        private int internalMemory;
        public Computer() : base()
        {
            internalMemory = 0;
            BrandName = "";'
            SwitchOff();
        }
    }

måske
Avatar billede arne_v Ekspert
05. december 2004 - 13:27 #2
public Computer(int ram, string brand) : base()
        {
            internalMemory = ram;
            BrandName = brand;'
            SwitchOff();
        }
    }
Avatar billede arne_v Ekspert
05. december 2004 - 13:27 #3
Men det var noget kønnere hvis ElectronicDevice havde en constructor med
argumenter !!
Avatar billede maxmuldjord Nybegynder
05. december 2004 - 13:32 #4
Hej Arne

Jeg prøver lige lidt af det her men jeg ville da meget gerne lige hører lidt om dit sidste forslag
Avatar billede maxmuldjord Nybegynder
05. december 2004 - 13:49 #5
Når jeg gør sådan her :

class Computer:ElectronicDevice
    {
        private int internalMemory;

        public Computer(int ram, string brand) : base()
        {
        internalMemory = ram;
        BrandName = brand;
       
        }
               
                public override void SwitchOn()
                {
                    base.SwitchOn();
                    Console.WriteLine("Computer");
                }
   
        public override void SwitchOff()
        {
            base.SwitchOff();
            Console.WriteLine("Computer");
       
        }
    }
Får jeg problemer med min main:

static void Main(string[] args)
            {
                Radio r = new Radio();
                r.SwitchOn();
                Computer c = new Computer();
                c.SwitchOn();


Den siger no overload - - hmmm hvad er det nu jeg tåger rundt i ?
Avatar billede arne_v Ekspert
05. december 2004 - 13:52 #6
Du skal have begge constructorerne går jeg ud fra !?

class Computer:ElectronicDevice
    {
        private int internalMemory;

        public Computer(int ram, string brand) : base()
        {
        internalMemory = ram;
        BrandName = brand;
     
        }
        public Computer() : base()
        {
            internalMemory = 0;
            BrandName = "";'
            SwitchOff();
        }

eller så skal du kalde med 2 argumenter her:

Computer c = new Computer();
                c.SwitchOn();
Avatar billede arne_v Ekspert
05. december 2004 - 14:26 #7
Det andet jeg snakkede om var:

    class ElectronicDevice
    {
        private string brandName;
        private bool isOn;
        public ElectronicDevice()
        {
            brandName = "unknown";
            isOn = false;
        }
        public ElectronicDevice(string brand)
        {
            brandName = brand;
            isOn = false;
        }
...

class Computer:ElectronicDevice
    {
        private int internalMemory;

        public Computer(int ram, string brand) : base(brand)
        {
        internalMemory = ram;
            SwitchOff();
        }
        public Computer() : base("")
        {
            internalMemory = 0;
            SwitchOff();
        }
Avatar billede maxmuldjord Nybegynder
05. december 2004 - 14:58 #8
Ok, tak Arne !

jeg holder mig lige til den første løsning til at begynde med. Men jeg skal have set på nr. 2 lidt senere. Tak for hjælpen,  - venligst, et svar - Tak!
Avatar billede arne_v Ekspert
05. december 2004 - 15:28 #9
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester