Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #23547
| Date | 2013-04-21 11:04 +0100 |
|---|---|
| From | lipska the kat <"nospam at neversurrender dot co dot uk"> |
| Organization | Trollbusters 3 |
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: A small exercise |
| References | <exercise-20130420150736@ram.dialup.fu-berlin.de> <R_2dnU9jtOi9Ie_MnZ2dnUVZ7q-dnZ2d@bt.com> <5172e967$0$32109$14726298@news.sunsite.dk> |
| Message-ID | <LvqdnUgkK5sPJO7MnZ2dnUVZ7oydnZ2d@bt.com> (permalink) |
On 20/04/13 20:15, Arne Vajhøj wrote:
> On 4/20/2013 12:02 PM, lipska the kat wrote:
>> On 20/04/13 14:11, Stefan Ram wrote:
>>> Try to predict the behavior of the execution or compilation
>>> of the following code!
>>>
>>> public class Main
>>> { final int a; final int b;
>>> Main(){ this.a = 0; Main.this.b = 0; }
>>> public static void Main( final java.lang.String[] args )
>>> { new Main(); }}
>>>
>>> (I made this observation while programming something else
>>> using Oracle JDK 7, but I have not read the JLS about it yet.)
>>
>> open-jdk6 and open-jdk7
>>
>> I think that logically, Main.this.b refers to the enclosing *instance*
>> which implies that the class has been instantiated, final fields can
>> only be initialized once in a constructor so trying to (logically)
>> assign a value to a final variable after instantiation is illegal.
>>
>> I think :-|
>>
>> If you remove the final modifier from b then the code compiles, but then
>> you know this already.
>
> My understanding of the question is that it is why a work but not b
> as this and Main.this should be the same.
Yes, this is what I understood.
I just don't think that >>this<< and >>Main.this<< are logically
equivalent.
>>this<< refers to the current instance,
>>Main.this<< refers to the (logically) enclosing instance which
implies that the >>Main.this.b<< assignment occurs after instantiation
which would be illegal which is why the compiler complains.
lipska
--
Lipska the Kat©: Troll hunter, sandbox destroyer
and farscape dreamer of Aeryn Sun
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Re: A small exercise lipska the kat <"nospam at neversurrender dot co dot uk"> - 2013-04-20 17:02 +0100
Re: A small exercise Arne Vajhøj <arne@vajhoej.dk> - 2013-04-20 15:15 -0400
Re: A small exercise lipska the kat <"nospam at neversurrender dot co dot uk"> - 2013-04-21 11:04 +0100
Re: A small exercise Arne Vajhøj <arne@vajhoej.dk> - 2013-04-26 22:13 -0400
Re: A small exercise lipska the kat <"nospam at neversurrender dot co dot uk"> - 2013-04-27 09:25 +0100
Re: A small exercise Arne Vajhøj <arne@vajhoej.dk> - 2013-04-27 21:58 -0400
Re: A small exercise "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2013-04-28 11:34 +0100
Re: A small exercise Martin Gregorie <martin@address-in-sig.invalid> - 2013-04-28 12:17 +0000
Re: A small exercise lipska the kat <"nospam at neversurrender dot co dot uk"> - 2013-04-28 14:05 +0100
Re: A small exercise Sven Köhler <remove-sven.koehler@gmail.com> - 2013-04-28 16:14 +0300
Re: A small exercise lipska the kat <"nospam at neversurrender dot co dot uk"> - 2013-04-28 14:54 +0100
Re: A small exercise Arne Vajhøj <arne@vajhoej.dk> - 2013-04-28 09:57 -0400
Re: A small exercise Arne Vajhøj <arne@vajhoej.dk> - 2013-04-28 10:14 -0400
Re: A small exercise Sven Köhler <remove-sven.koehler@gmail.com> - 2013-04-27 22:28 +0300
Re: A small exercise markspace <markspace@nospam.nospam> - 2013-04-27 13:53 -0700
Re: A small exercise Arne Vajhøj <arne@vajhoej.dk> - 2013-04-27 21:44 -0400
Re: A small exercise lipska the kat <"nospam at neversurrender dot co dot uk"> - 2013-04-28 10:37 +0100
csiph-web