Avatar billede jakoba Nybegynder
18. august 2005 - 11:44 Der er 6 kommentarer og
1 løsning

Korrekt brug af klasse begrebet.

Er nedenstående en 'politisk korrekt' måde at bruge en java klasse ?

Klassen Perm er reelt blot en funktion med et privat scope til variablene 'arr' og 'temp'.

--- kode ---

class Program {
    public static void main ( String[] args ) {
        char[] inputArray = { 'a', 'b', 'c', 'd' };
        Perm.uter( inputArray );
    }
} //endclass Program

class Perm {
    private char[] arr;
    private char temp;

    private perm( char[] arr ) {
        this.arr = new char[arr.length];
        for (int i=0; i< arr.length; i++ ) {
            this.arr[i] = arr[i];
        }
        doPerm ( arr.length-1 );   
    }
    private void doPerm( int level ) {
        if ( level == 0 ) {
            System.out.println( new String( arr ) );
        } else {
            for (int i=level; i >= 0; i-- ) {
                swap( level, i );
                doPerm( level-1 );
                swap( level, i );
            }
        }
    }
    private void swap( int i, int j ) {
        temp  = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }
    public static void uter( char[] arr ) {
        new Perm( arr );
    }
} //endclass Perm

--- end kode ---

mvh JakobA
Avatar billede bromer Nybegynder
18. august 2005 - 11:54 #1
Hvad mener du med korrekt måde at benytte en klasse? Det er vel ligetil at benytte en klasse. Udfordringen ligger vel i at skrive klassen.
Avatar billede arne_v Ekspert
18. august 2005 - 14:30 #2
selvfølgelig er det korrekt

ikke alle problem stillinger er meget objekt orienterede

Jeg ville måske have fundet det fristende at droppe de fields, tilføje
ekstra argumenter til metoderne og så gjordt metoderne static netop
for at understrege at det er kode ikke data der er i fokus.

Men smag og behag.
Avatar billede jakoba Nybegynder
19. august 2005 - 12:59 #3
læg lidt svar begge to. (der er jo ikke endegyldig facitliste til sådan et spm.)
Avatar billede bromer Nybegynder
19. august 2005 - 13:08 #4
Jeg har ikke skrevet noget konstruktivt. Bare giv points til jakoba.
Avatar billede arne_v Ekspert
19. august 2005 - 13:09 #5
.
Avatar billede jakoba Nybegynder
20. august 2005 - 06:48 #6
bromer >> jeg tror jeg gir dem til arne_v istedet. :-))
Avatar billede bromer Nybegynder
20. august 2005 - 13:23 #7
Hehe.. ja.. min fejl..
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