Win a copy of The Journey To Enterprise Agility this week in the Agile and Other Processes forum! And see the welcome thread for 20% off.
  • 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 all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Jeanne Boyarsky
  • Liutauras Vilda
  • Campbell Ritchie
  • Tim Cooke
  • Bear Bibeault
Sheriffs:
  • Paul Clapham
  • Junilu Lacar
  • Knute Snortum
Saloon Keepers:
  • Ron McLeod
  • Ganesh Patekar
  • Tim Moores
  • Pete Letkeman
  • Stephan van Hulst
Bartenders:
  • Carey Brown
  • Tim Holloway
  • Joe Ess

a beginner wanna knows something about this( )  RSS feed

 
Greenhorn
Posts: 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I have started java a month ago. And I have a little concept of some basic C++. Now while studying classes I came across a method this()whose logic, I don't seem to pick up. Can anybody please
 
Ranch Hand
Posts: 732
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
it makes sense since you come from c++ you wouldnt get that method.
java uses the this() method so u can call one constructor from another constructor.
you cant do that in c++ but it looks for exmaple like this:

you get the idea?
you can call one constructor from another in the same class to save some code writing (if the constrcutors have a simliar code to be written).
this() without anything as parameter calls the empty constructor in the class.
just as a last note. this() must be the first line in the constructor you are using and you can't have super() with it.
[ April 29, 2002: Message edited by: Roy Ben Ami ]
[ April 29, 2002: Message edited by: Roy Ben Ami ]
 
Greenhorn
Posts: 6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
hello there
this() is used for constructor chaining
for example..if u want to call a single argument constructor from within a zero argument constructor.
class Tiger{
Tiger(){
this(6); //must be the first line of a
} //constructor!

Tiger(int i){
System.out.println("Tiger");
}
}

if u are still confuse please read the book.
 
Ranch Hand
Posts: 315
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Can anyone help me about and give me a short example about the difference between this() and super? thanks so much! =)
coz I am stil lconfused after reading the teh contructor call for this and super
 
Jackie Wang
Ranch Hand
Posts: 315
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I mean i still don't understand after reading some notes about the contructor call, it make me more confused

Originally posted by jackie Wang:

coz I am stil lconfused after reading the teh contructor call for this and super

 
Sheriff
Posts: 9087
12
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
"this" is for the same class.
"super" is for the class that the "this" class extends (inherits from), in other words, its "super" class.
 
Sheriff
Posts: 4313
Android IntelliJ IDE Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
the one major rule with this() and super() is that it has to be the FIRST statement in the constructor definition (if you're using it).
-- so because of that -- you can't use both this() and super() in the same definition.
 
Jackie Wang
Ranch Hand
Posts: 315
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
thanks jessica and Marilyn for the prompt reply.
I really appreciated that.
Any simple example which can demonstrate the "super()"? Thanks so much
 
Sheriff
Posts: 7023
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
 
Jessica Sant
Sheriff
Posts: 4313
Android IntelliJ IDE Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
try running this blip of code -- with the println statements you'll be able to see the flow of operation:

Output:
Instantiate MySuper( "blah" );
MySuper() default constructor
MySuper( blah )
Instantiate MySub( "stuff" )
MySuper() default constructor
MySuper( stuff )
MySub( stuff )
 
Jackie Wang
Ranch Hand
Posts: 315
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
thanks dirk and jessica. I got it now.
really appreciated that
 
Fahad Golra
Greenhorn
Posts: 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thank u all for making me understand this topic. Thank u all again
 
Dirk Schreckmann
Sheriff
Posts: 7023
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
As if [fill in some saying], here's a link to part of Sun's java tutorial that discusses this and super a bit: http://java.sun.com/docs/books/tutorial/java/javaOO/methodbody.html
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!