PDA

Click to See Complete Forum and Search --> : problem with non-static variable


fundean
Sep 9th, 2004, 09:28 AM
//The following error occurs when I try compiling the program:

//"non-static variable cannot be referenced from static context"

//The error occurs on lines beginning with

// messages[0] = new WelcomeEnglish();
//messages[1] = new WelcomeSpanish();
//messages[2] = new WelcomeFrench();

// can anyone suggest a solution? TIA

public class welcome
{
public interface WelcomeMessage
{
String getWelcomeMessage();
}

public class WelcomeEnglish implements WelcomeMessage
{
public String getWelcomeMessage()
{
return "Hello";
}
}

public class WelcomeSpanish implements WelcomeMessage
{
public String getWelcomeMessage()
{
return "Hola";
}
}

public class WelcomeFrench implements WelcomeMessage
{
public String getWelcomeMessage()
{
return "Bonjour";
}
}

public static void main(String args[])
{
WelcomeMessage messages[];
messages = new WelcomeMessage[3];
messages[0] = new WelcomeEnglish();
messages[1] = new WelcomeSpanish();
messages[2] = new WelcomeFrench();

for(int i=0; i<3; i++)
{
System.out.println(messages[i].getWelcomeMessages());
}
}
}

Dillinger4
Sep 9th, 2004, 03:02 PM
Please use the code tags. It just makes it eaiser to read. ;) Correct. A non-static variable cannot be accessed from a static context.

Dillinger4
Sep 9th, 2004, 06:09 PM
interface WelcomeMessage{
String getWelcomeMessage();
}

class WelcomeEnglish implements WelcomeMessage{
public String getWelcomeMessage(){
return "Hello";
}
}

class WelcomeSpanish extends WelcomeEnglish{
public String getWelcomeMessage(){
return "Hola";
}
}

class WelcomeFrench implements WelcomeMessage{
public String getWelcomeMessage(){
return "Bonjour";
}
}

public class welcome{
public static void main(String args[]){
WelcomeEnglish[] welcomeenglish = {new WelcomeSpanish()};
WelcomeMessage[] welcomemessage = {new WelcomeEnglish(),new WelcomeSpanish(), new WelcomeFrench()};

for(int i=0; i<welcomeenglish.length; i++){
System.out.println(welcomeenglish[i].getWelcomeMessage());
}
for(int i=0; i<welcomemessage.length; i++){
System.out.println(welcomemessage[i].getWelcomeMessage());
}
}
}