Avatar billede protoz Nybegynder
22. november 2004 - 13:45 Der er 3 kommentarer og
1 løsning

Opdeling af java program til objekter

Jeg har skrevet et program i java og vil nu have det delt op i objekter så hvert objekt har hver sin del at tage sig til. Det er et nogenlunde simpelt program, men jeg har ikke så meget erfaring i java endnu.


Sådan her ser mit program ud:

import cs1.Keyboard;

class Faktuelt{
        public static void main(String[]arguments){
        ShowMenu();
    }

    public static void ShowMenu()
    {
        System.out.println("\n\n#############################################");
        System.out.println("## Menu - Fakulteten af et eller flere tal ##");
        System.out.println("#############################################\n");
        System.out.println("Tryk 1 for at f† et tal udregnet" );
        System.out.println("Tryk 2 for at f† flere tal udregnet" );
        System.out.println("Tryk 3 for at lukke programet");
        System.out.print("Tryk s†: ");

        int svar=-1;

        while(svar!=3)
        {



            svar = Keyboard.readInt();

            switch(svar){
                case 1:
                  SingleFakt();
                  ShowMenu();
                  break;

                case 2:
                  MultiFakt();
                  ShowMenu();
                  break;

                case 3:
                  System.out.println("Byyye!");
                  System.exit(0);
                  break;
                default:
                  System.out.print("\nFyy! Det m†s man ik'! Man m† kun tryk p† 1, 2 eller 3, nemli'!\nPr0v igen: ");
            }
        }
    }

    public static void SingleFakt()
    {
        System.out.print("\nIndtast det tal der ønskes fakulteret: ");
        int svar2 = Keyboard.readInt();

        if(svar2>0)
            System.out.println("\nFakulteten af " + svar2 + " er lig " + M(svar2));
        else
            System.out.print("\nFyy! Det m†s man ik'! Man m† kun tryk p† 1, 2 eller 3, nemli'!\nPrív igen: ");


    }

    public static long M(int n)
    {
        if(n==1)
        return(1);
        else
        return n * M(n-1);
    }

    public static void MultiFakt()
    {
        System.out.print("\nHvor mange tal vil du have udregnet? ");
        int svar2 = Keyboard.readInt();
            int i;
            int InputTabel[] = new int[svar2];

            for(i=0;i<svar2;i++)

            {
                System.out.print("Indtast det " + (i+1) + ". tal: ");
                InputTabel[i] = Keyboard.readInt();
            }

            int iMaxInput=InputTabel[0];
            for(i=0;i<svar2;i++)
            {
                if(iMaxInput<InputTabel[i])
                {
                    iMaxInput = InputTabel[i];
                }
            }

            long[] FktTabel = new long[iMaxInput];
            FktTabel[0]=1;
            for(i=1;i<iMaxInput;i++)
            {
                FktTabel[i] = (i+1) * FktTabel[i-1];

            }

            for(i=0;i<svar2;i++)
            {
                System.out.println("Fakulteten af " + InputTabel[i] + " er lig " + FktTabel[InputTabel[i]-1]);
            }

    }

}



Hvordan får jeg det delt op så jeg har et objekt der tager sig af input fra brugeren og sender det videre til et beregnings objekt?
Avatar billede arne_v Ekspert
22. november 2004 - 13:56 #1
Umiddelbart er dit program ikke speciel velegnet til objekt orienteret opbygning.

Mit bedste bud vil nok være følgende klasser:

Main
UserInterface
Calculation
Avatar billede protoz Nybegynder
22. november 2004 - 14:04 #2
Ja tak :)

Mit mål er ikke at det skal være optimalt.. jeg vil bare gerne lærer tingene..
men jeg har problemer med at få tingene til at arbejde sammen når jeg vil dele dem op...

Jeg kan ik få nogen til at hjælpe mig med at lave det?
Avatar billede arne_v Ekspert
22. november 2004 - 21:34 #3
Hvis du lader Main main lave en instans af hver af de andre 2 klasser, så kan
den kalde metoder i begge klasser med forskellige argumenter.
Avatar billede arne_v Ekspert
12. december 2004 - 19:55 #4
OK ?
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
Kurser inden for grundlæggende programmering

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