Avatar billede gladmhensk Nybegynder
03. september 2003 - 11:40 Der er 11 kommentarer og
2 løsninger

Kanon forvirret med metoder og objekter

Jeg er de sidste par dage blevet pisse forvirret angående objekter og metoder ;(

Så hvorfor virker den her ikke ?:


public class Hej
{
    String Firma;

    void VisFirma(Firma){

        System.out.println(Firma);

    }

    public static void main(String[] args)
    {
    Hej Vis = new Hej();
    Firma = Toyota;

    Vis.VisFirma();

    }

}




Og kan nogen beskrive objekter ? (tror jeg misforstod dem første gang).
Avatar billede gladmhensk Nybegynder
03. september 2003 - 11:42 #1
Kan godt være, at jeg har kaldt klassen nåt underligt, men kunne ikke finde på andet ;)
Avatar billede dsj Nybegynder
03. september 2003 - 11:45 #2
Det skal se således ud:

public class Hej
{
    String firma;

    void Hej(String firma){
        this.firma = firma
    }

    void visFirma() {
        System.out.println(firma);
    }

    public static void main(String[] args)
    {
    Hej vis = new Hej("Toyota");
    vis.visFirma();

    }

}
Avatar billede dsj Nybegynder
03. september 2003 - 11:46 #3
æhhhh lige en fejl :)

    void Hej(String firma){
        this.firma = firma
    }

er forkert og skal være:

    public Hej(String firma){
        this.firma = firma
    }
Avatar billede repsak Nybegynder
03. september 2003 - 11:47 #4
Et objekt er en abstrakt repræsentation af noget. F.eks. kan et objekt laves af klassen Elev. Du kan nu oprette en masse Elev-objekter. Metoderne bruges så f.eks. til at behandle objektet. Du kan for eksempel bruge de såkaldte set/get metoder til at hente eller sætte den enkelte elevs navn.

public class Hej
{
    String Firma;

    void VisFirma(String Firma){

        System.out.println(Firma);

    }

    public static void main(String[] args)
    {
    Hej Vis = new Hej();
    Firma = "Toyota";

    Vis.VisFirma(Firma);

    }
}
Avatar billede dsj Nybegynder
03. september 2003 - 11:48 #5
Hej er en klasse du laver, en skabelon der kan bruges tilo at lave instanser af, eller objekter, som de også kaldes.

Når du laver et objekt, kalder du konstruktrøren, i dette tilfælde - public Hej(String firma) {...} -
Avatar billede repsak Nybegynder
03. september 2003 - 11:54 #6
Bemærk at en klasse er en skabelon, og at et objekt er det som klassen producerer.
class Elev{
}

...Elev elev1 = new Elev();

elev1 er et objekt (eller rettere en objektreference) af typen Elev
Avatar billede gladmhensk Nybegynder
03. september 2003 - 13:09 #7
Tror jeg fatter det nu... :)

Så håber jeg sgu, at jeg ikke bliver mere forvirret ;)
Avatar billede gladmhensk Nybegynder
03. september 2003 - 13:17 #8
Ohv, kan i lige svare en uden at få point ? ;)

Hej Vis = new Hej();

Hvorfor skal den med ? kun så man kan kalde metoder eller hva ?
Avatar billede dsj Nybegynder
03. september 2003 - 13:59 #9
det er den linie der laver et objekt ud fra din klasse.
Avatar billede repsak Nybegynder
03. september 2003 - 16:41 #10
Ja, variablen Vis refererer til ét object. Hvis du skriver Hej Vis2 = new Hej(), så refererer Vis2 til et andet objekt af typen Hej. Dvs. det er 2 forskellige objekter. Du gør dig selv en bjørne tjeneste ved at bruge et dårligt navn som Hej. Hvus istedet for et navneord. =)
Avatar billede gladmhensk Nybegynder
03. september 2003 - 19:44 #11
Er der nogen fordele ved, at oprette flere objekter ?

Så som

Hej Vis1 = new Hej();
Hej Vis2 = new Hej();
Hej Vis3 = new Hej();

???
Der er jo stort set ingen forskel...
Avatar billede gladmhensk Nybegynder
03. september 2003 - 21:32 #12
Tror bare jeg læser videre... ;)
Avatar billede repsak Nybegynder
04. september 2003 - 13:54 #13
Et objekt repræsenterer jo kun én. For igen at bruge mit første eksempel. Hvis du har 10 elever, så skal du have 10 objekter af typen elev. Hver objekt har så sit egen navn, klasse, alder mm. Så der er MEGET STOR FORSKEL
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