Gå til innhold

Peker problem, bruke variabel i andre klasser.


Anbefalte innlegg

Videoannonse
Annonse

enten kan du sette variabelen til static, da kaller du Klassenavn.s, men det er ikke lurt. Du kan sette variabelen til public, men da må du ha referanse til et objekt av variabelens klasse. Det kan du få ved hjelp av å sende objektet som et parameter til konstruktoren for andre klasser, eller den kan kalle metoder i andre klasser for å gi beskjed om at den finnes.

 

Det beste er å gjøre s privat, og lage access metoder som er public. Fortsatt trenger du da referanse til et objekt av den klassen, hvis ikke kan den ikke brukes.

Lenke til kommentar

Når kan eg bare setja 'final' ellers blir det feil

 

import java.sql.*;

 

public class Main{

 

public static void main(String[] args) throws Exception {

 

  try{

  Connection con = null;

  Statement s = con.createStatement();

 

   

        Class.forName("com.mysql.jdbc.Driver").newInstance();

      System.out.println("Done loading mysql driver!");

     

      con = DriverManager.getConnection("jdbc:mysql://xxx.xxx.xxx.xxx/test","xxxx","xxxxx");

 

          if(!con.isClosed())

            System.out.println("Successfully connected to "+"MySQL server using TCP/IP...");

        }

      catch(Exception e) {

      }     

       

      UserAction ua = new UserAction();

      ua.loadMenu();

     

        System.out.println("Program is shutting down!");

}

}

 

Detta er main klassen, nå korleis skal eg gå fram for at den skal funker i klassen UserAction?

Endret av siDDIs
Lenke til kommentar

Du legger objektreferansen som argument i metoden loadMenu(). Denne metoden må du da klargjøre for å ta imot referansen

 

Du kaller metoden slik:

ua.loadMenu(s);

 

Og metoden kan se slik ut:

   public void loadMenu(Statement s) {
       //her kan du nå bruke referansen s som kom som argument
   }

 

Kort svar, håper jeg forstod deg rett. Nå må jeg løpe på jobb!!

Lenke til kommentar

Du kan vel gjøre det samme i konstruktøren når du oppretter klassen. Et eksempel:

 

public class UserAction {
//variabler
private Statement s;
  
  //konstruktør
  public UserAction(Statement s) {
  this.s = s;

  }
...andre metoder. Hver av disse kan nå bruke variabelen (objektreferansen s)
}

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...