Ben,
I had the same doubt today and this is what I figured out, main is a static method and you cannot refer any non static methods or variables in a static method. In your example you are refering to a non static variable f1 in a static method main,so it wouldn't work. It is not the question of it being in the same class it is just that non static variables and methods cannot be refered in a static method.
Below is a small example I used to understand the concept:
class StaticTest
{
int age;
public static void main(String args[])
{
age=10;
System.out.println(age);
}
}
Here, age is a instance variable and Iam refering that in a static method main so I got a complilation error saying 'Can't make a static reference to nonstatic variable age in class Static'
But if you say int age=10; in the main and notice that they is no problem even if age is a instance variable.
Hope this helps,
Summer