Avatar billede eksplayer Nybegynder
20. november 2003 - 14:03 Der er 9 kommentarer og
5 løsninger

hvad betyder this?

Hey

Jeg forstår ikke rigtig hvad "this" betyder i java. Er der en der gider at brug et par min på at forklare :)

...og hvad betyder en sætning som fx denne?
this.farve = farve;
Avatar billede medions Nybegynder
20. november 2003 - 14:04 #1
Det tager fat i det element du står på!

//>Rune
Avatar billede Spotgun Seniormester
20. november 2003 - 14:05 #2
this.farve betyder blot at du f.eks. vil ændre farven på det object du skriver det ved...

This betyder altså kort og godt "dette objekt".

Skal der forklares mere? :)
Avatar billede medions Nybegynder
20. november 2003 - 14:05 #3
Fx. så this.height, kunne fx. få højden på den windows form du befinder dig i e.l

//>Rune
Avatar billede spunk13 Nybegynder
20. november 2003 - 14:11 #4
<input type="text" onkeyup="alert(this.value)">
Avatar billede medions Nybegynder
20. november 2003 - 14:14 #5
spunk13> dette er ikke JavaScriptkategorien...

//>Rune
Avatar billede eksplayer Nybegynder
20. november 2003 - 14:17 #6
void setColor(Color farve) {
this.farve = farve;
repaint();
}

Så denne stump kode betyder bare, at man repainter "dette" objekt
Avatar billede mikkelbm Nybegynder
20. november 2003 - 14:18 #7
du kan også bruge this hvis du eksempelvis vil bruge samme variabelnavne:

public class Test
{
  private Color farve;

  public Test(Color farve)
  {
      this.farve = farve; // her sætter du klassens farve lig med den den farve der kommer ind.
  }
}
Avatar billede arne_v Ekspert
20. november 2003 - 14:21 #8
repaint() er implicit det samme som this.repaint()

this.rave = farve betyder assign argumentet farve til instans member farve
Avatar billede arne_v Ekspert
20. november 2003 - 14:23 #9
Man bruger typisk this hvis:

* man skal skelne mellem et argument og en instans memer
* man skal kalde en metode med en referance til sig
* man skal kalde en constructor fra en anden constructor
Avatar billede _carsten Nybegynder
20. november 2003 - 14:35 #10
Og så lige et eksempel som måske kan illustrere det

import java.awt.*;

public class Frame extends javax.swing.JFrame {
    private Color farve = Color.BLUE;

    public Frame(Color farve) {
        initComponents();
        setSize(400,400);
       
        jPanel1.setBackground(farve);
        jPanel2.setBackground(this.farve);
       
    }

    private void initComponents() {
        jPanel1 = new javax.swing.JPanel();
        jPanel2 = new javax.swing.JPanel();

        getContentPane().setLayout(new javax.swing.BoxLayout(getContentPane(), javax.swing.BoxLayout.X_AXIS));

        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                exitForm(evt);
            }
        });

        getContentPane().add(jPanel1);

        getContentPane().add(jPanel2);

        pack();
    }
   
    private void exitForm(java.awt.event.WindowEvent evt) {
        System.exit(0);
    }
   
    public static void main(String args[]) {
        new Frame(Color.RED).show();
    }

    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
}
Avatar billede eksplayer Nybegynder
20. november 2003 - 14:51 #11
arne_v og carsten kan i ikke også smide et svar - så prøver jeg at fordele pointene ud
Avatar billede arne_v Ekspert
20. november 2003 - 14:56 #12
svar
Avatar billede _carsten Nybegynder
20. november 2003 - 14:57 #13
Svar
Avatar billede spunk13 Nybegynder
20. november 2003 - 18:28 #14
Så ikke kategorien, sorry :)
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