• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Tim Cooke
  • Campbell Ritchie
  • paul wheaton
  • Ron McLeod
  • Devaka Cooray
Sheriffs:
  • Jeanne Boyarsky
  • Liutauras Vilda
  • Paul Clapham
Saloon Keepers:
  • Tim Holloway
  • Carey Brown
  • Piet Souris
Bartenders:

Problem while compiling

 
Greenhorn
Posts: 22
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
The following code compiles fine.
class ThisTest {
final int ijjj;
ThisTest(){
this( 5 ); }
ThisTest( int x ){
this();
System.out.println( "this( int )" );
}
public static void main(String[] args) {
ThisTest tt = new ThisTest();
}
}
But when i remove the 2 constructors it is giving the following error:
variable ijjj might not have been initialized
class ThisTest {
^
I have n't understood
 
Ranch Hand
Posts: 1683
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
A blank final field like ijjj needs to have a value assigned by one of these means:
1. In every constructor.
2. In an instance initializer.
 
Ranch Hand
Posts: 348
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
when I tries it, I got one error mesg !
--------------------------------------------------
ThisTest.java:8: recursive constructor invocation
ThisTest( int x ){
^
1 error
--------------------------------------------------

Originally posted by shiva thadakamadla:
The following code compiles fine.

 
Ranch Hand
Posts: 808
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi, Shiva -
I'm surprised you're not overflowing your stack, because your two constructors are calling each other. (One should call super(), but you can't have a call to super() and a call to this() in the same constructor.) Some compilers will permit this -- though it won't run properly -- while others will generate a compile error.
Also, your constructor needs to initialize the final variable ijjj or your code won't compile.
Regards,
Jeff
[ August 25, 2003: Message edited by: Jeff Bosch ]
 
Greenhorn
Posts: 2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
A final variable has to be initialized either at the class level or in the constructor.
 
reply
    Bookmark Topic Watch Topic
  • New Topic