Win a copy of Clojure in Action this week in the Clojure forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

static methods in detail

 
budsy remo
Ranch Hand
Posts: 103
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I have 3 questions related to the following program:-

My question starts from the eight'th line ....
1.if we cannot access non static variables why does the static method main lets me make a variable x?
2.i get it that i cannot make an instance variable of S1 but then why can i make an instance variable of Y?

I am sorry if the questions are too stupid but i think it's best to have answers for the language you love.
 
fred rosenberger
lowercase baba
Bartender
Pie
Posts: 12020
25
Chrome Java Linux
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Your code won't compile at all, so it's hard to answer your questions... There is an extra '}' at the end, and you don't initialize 'x'.

If you correct those two errors, it compiles and runs just fine.

and for question 1, the answer is because it is not a non-static variable.
 
Rob Spoor
Sheriff
Pie
Posts: 20380
45
Chrome Eclipse IDE Java Windows
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Please keep your indentation when pasting code next time. I've added some and it immediately shows that class S1 is a non-static nested class inside class Xyz. I think Fred missed that (because of the lack of indentation), because there is no extra }.

budsy remo wrote:1.if we cannot access non static variables why does the static method main lets me make a variable x?

You can't access non static fields. Local variables declared inside the method itself are always accessible inside the method.

2.i get it that i cannot make an instance variable of S1 but then why can i make an instance variable of Y?

Class Y is a top-level class. Class S1 is, as I said before, a non-static nested class inside class Xyz (a.k.a. an inner class). Because it's nested the same rules for fields apply - you need an instance to create instances of this class:
 
fred rosenberger
lowercase baba
Bartender
Pie
Posts: 12020
25
Chrome Java Linux
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
yup...totally missed it was an inner-class.
 
Jesper de Jong
Java Cowboy
Saloon Keeper
Pie
Posts: 15150
31
Android IntelliJ IDE Java Scala Spring
 
budsy remo
Ranch Hand
Posts: 103
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
thanks a million Rob Spoor ,didn't know that we can actually make instances of an inner class through that syntax . Thanks to others too for answering .Will give some more study .
 
I agree. Here's the link: http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic