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;
Annonceindlæg tema
20. november 2003 - 14:04
#1
Det tager fat i det element du står på! //>Rune
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? :)
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
20. november 2003 - 14:11
#4
<input type="text" onkeyup="alert(this.value)">
20. november 2003 - 14:14
#5
spunk13> dette er ikke JavaScriptkategorien... //>Rune
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
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. } }
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
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
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; }
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
20. november 2003 - 14:56
#12
svar
20. november 2003 - 14:57
#13
Svar
20. november 2003 - 18:28
#14
Så ikke kategorien, sorry :)
Kurser inden for grundlæggende programmering