This Keyword in Java Full Tutorial - How to Use "this"

Поділитися
Вставка
  • Опубліковано 7 лют 2025
  • What does the "this" keyword mean in Java? How and when do you use "this"? We'll cover all of that (and all of "this") in this video.
    In Java, the keyword "this" can be confusing for beginners. What does "this" even really mean? How do I know when I have to use it, and what does "this" actually refer to when I do use it?
    In this beginner Java tutorial video, we'll give a complete overview of the "this" keyword in Java. By the end of the vide you'll know everything you need to confidently use "this" in your Java programs.
    Learn or improve your Java by watching it being coded live!
    Hi, I'm John! I'm a Lead Java Software Engineer and I've been in the programming industry for more than a decade. I love sharing what I've learned over the years in a way that's understandable for all levels of Java learners.
    Let me know what else you'd like to see!
    Links to any stuff in this description are affiliate links, so if you buy a product through those links I may earn a small commission.
    📕 THE best book to learn Java, Effective Java by Joshua Bloch
    amzn.to/36AfdUu
    📕 One of my favorite programming books, Clean Code by Robert Martin
    amzn.to/3GTPVhf
    🎧 Or get the audio version of Clean Code for FREE here with an Audible free trial
    www.audibletria...
    🖥️Standing desk brand I use for recording (get a code for $30 off through this link!)
    bit.ly/3QPNGko
    📹Phone I use for recording:
    amzn.to/3HepYJu
    🎙️Microphone I use (classy, I know):
    amzn.to/3AYGdbz
    Donate with PayPal (Thank you so much!)
    www.paypal.com...
    ☕Complete Java course:
    codingwithjohn...
    codingwithjohn...

КОМЕНТАРІ • 193

  • @lfcbpro
    @lfcbpro Рік тому +70

    I've gotta say John, I am doing Java in Uni, and I have their book, and a few others, but your videos wipe the floor with them when it comes to clarity and explanations.
    Seriously, if you aren't a teacher, you should be one.
    I was disheartened when I was reading the course materials for my class, but just watching your videos has really helped with everything.
    Thank you very much indeed.

  • @Clean_Slate
    @Clean_Slate 2 роки тому +40

    You make things look so much easier. I feel like I have watched perhaps an entire lecture after most (if not all) of your videos.
    And I mean that in the best possible way. Keep being great, you certainly have a gift in teaching!

  • @ne_univayte_pazani
    @ne_univayte_pazani Місяць тому +1

    Probably nobody gonna see my comment, but im having a java exam in 2 days and figuring out something that was a pain in ass the whole semester in 7 minutes is truly a save. Thank you, John!

  • @luomle-f6z
    @luomle-f6z Рік тому +3

    Your channel single handedly allowed me to pass my intro to java course. Went from failing to a 3.0.
    Thank you!

  • @JusQuelle
    @JusQuelle 3 роки тому +62

    This was a great explanation of the "this" keyword, thank you so much!

  • @janelain8611
    @janelain8611 2 роки тому +7

    this keyword was so confusing to me as a beginner- more than most other concepts!!-video really nails it down, and helps reinforce my understanding

  • @AeV_artss
    @AeV_artss Рік тому +2

    grabe ka na johnny, you really know a lot of work, legend

  • @bhaweshpandey4306
    @bhaweshpandey4306 3 роки тому +20

    I am a beginner, so I guess it will take sometime to thoroughly grasp all at once.
    Thanks for the explanation man!!

    • @vipulpatel1849
      @vipulpatel1849 Місяць тому

      Hey bro how it's going you have learned java right now,,,??

  • @mariap11315
    @mariap11315 2 роки тому +6

    I've watched a bunch of your videos today just in two hours and I'm amazed of how you make things look so clear in just seven minutes or so per topic :D Great job!

  • @IluSsIoNnN
    @IluSsIoNnN 3 роки тому +11

    I am just learning Java (from mechanical engineering, career switch) and your videos are great.
    Keep it up and Thank you !

    • @CodingWithJohn
      @CodingWithJohn  3 роки тому +8

      Awesome, good luck on the career switch!

  • @ayenoodles9068
    @ayenoodles9068 2 роки тому +12

    Thank you John! I’m a sophomore Software Engineer, and you explain things much clearer than my professor ✨

    • @getyournekoshere9824
      @getyournekoshere9824 2 роки тому

      @@jamesdrinkard687 what do you think assignments are in school? also, you think john never went to school? you sound like you're coping a bit.

  • @wallywild5088
    @wallywild5088 3 роки тому +2

    Plz keep doing this in just a couple months you’ve provided so much value

    • @CodingWithJohn
      @CodingWithJohn  3 роки тому

      Been going for about a year now! But the first bunch of videos were much rougher for sure, so you're probably not wrong that the last couple months had some of the best stuff so far. 🙂

  • @user-0987-a
    @user-0987-a 2 роки тому

    You explain it better than anyone, bc you inform us what we need to know NOT what you know.

  • @NovaEngineer
    @NovaEngineer 9 місяців тому +1

    Best explaination on "this" keyword i have ever seen so far on Yt!!! Thanks a lot man🙏🙏🙏🙏🙏🙏

  • @tianyiyin4847
    @tianyiyin4847 2 роки тому +2

    The explanation is insanely clear! Saved me from another course tbh

  • @jingyiwang5113
    @jingyiwang5113 2 роки тому +1

    Your explanation of the "this" keyword is crystal clear. After being stuck at this point for such a long time, it finally makes sense to me. I am really grateful for your help! I am in my second year of college and right now, struggling in a java class highlighting algorithms and data structures. I have also checked some of your other videos and will certainly watch more! Thanks!

    • @darrenfrancis8126
      @darrenfrancis8126 Рік тому

      im in the same boat but i am building a calculator app and in the tutorial he used "this keyword in a different context.
      functionButtons[i].addActionListener(this);

    • @gamingzonezone1
      @gamingzonezone1 2 місяці тому

      Hi jingyi can we be friends

  • @abdelkaderkaouane9682
    @abdelkaderkaouane9682 3 роки тому +5

    I think that using "this" in class methods, like constructor or getters and setters, is not for avoid confusing between the function parameter and the filed name.
    The uses of "this" is for referencing the specific object in memory beacause we can have many other objects of the same class.

  • @danial_amini
    @danial_amini 5 місяців тому

    Why is this guy so helpful, so much clarity & speed in teaching 😭😭😭😭

  • @sportingdirector1
    @sportingdirector1 4 місяці тому

    Thank you! I'm so appreciative of this that I'll watch the ad in its entirety so you can get some of the money!

  • @instayville-is2no
    @instayville-is2no Рік тому

    Your explanations have helped me fully wrap my head around these concepts that I have never been able to understand for years in my self-study. Thank you so much! I've subscribed since I'm going all-in on learning Java at this point and I really want to hone in on the basic concepts.

  • @dekumutant
    @dekumutant 3 роки тому +2

    Your channel is fantastic. Please don't stop

  • @kevincarter3753
    @kevincarter3753 Рік тому

    Great tutorials! Right length, right content and great attitude!

  • @gabrielfono844
    @gabrielfono844 Рік тому

    This is whole different level.
    I am working hard to get to this point where explaining concept is as easy as coidng with john currently explains
    thanks for your hard work
    we all really appreciate.

  • @gigachard5690
    @gigachard5690 2 роки тому

    Omg been fighting with Intellij to understand getters, setters and constructors and watching This was an instant 4 piece! Thank you!!!

  • @atmariaelvira
    @atmariaelvira Рік тому +2

    You're saving my Java studies. I am really grateful for your classes !

    • @hikaru_e
      @hikaru_e Рік тому

      ong, he is crystal clear with what he explains and many times he answers questions I've been wondering about for quite some time

    • @gamingzonezone1
      @gamingzonezone1 2 місяці тому

      Hi atmaria can we be friends

  • @tonyregalado7281
    @tonyregalado7281 3 роки тому

    probably the best "this" keyword tutorial I've come across... and I've watched a ton. Thanks!

  • @Hassan-lv9di
    @Hassan-lv9di Рік тому

    The best explanation i've ever seen !!! thank you alot John! keep up the hard work

  • @jvsnyc
    @jvsnyc 3 роки тому +4

    Dang near perfect, and no, I don't have any complaint at all, except that in other languages some good developers felt that "this" was redundant in instance methods and should generally be avoided as noise (their approach was non-ideal when the natural name for a method parameter was the same as a data member, of course -- they would wind up having to munge those). On the theme of "I love how you do brief intros that don't overwhelm the learner with minor details without lying or teaching anything they will have to learn later" a very good book I am reading does just that. In a quest to prepare the reader for cert exams, they don't merely ignore stuff that isn't on the exam in that area, but actively make some misstatements that won't affect one's performance on the exam, but if you go beyond later, you will actively have to unlearn some "convenient lies" that they could have just ignored instead. It is a fine line, but you normally always land on the right side of it. There are extremely few "untrue statements" or "non-facts" found in your videos in service of making a good introduction. That is not easy to pull off, and I really appreciate it.

  • @atazky613
    @atazky613 3 роки тому +1

    Youre a f*cking magician John, i literally thought about refreshing my java constructor knowledge when you uploaded this video

    • @CodingWithJohn
      @CodingWithJohn  3 роки тому +2

      Thanks! 🧙‍♂️
      You may have seen it already, but I have another recent video with even more constructor info here: ua-cam.com/video/pgBk8HC7jbU/v-deo.html

  • @cshishir4582
    @cshishir4582 Рік тому

    The tenth grade board exams are comming up and i think that this was a pretty informative video.
    I really like the efforts put by Sir John who is also teaching us for free unlike most of the cases (tutions example) where they charge tons of money for basic concepts.
    The plus point is that he is a really great teacher too.
    Sir i hope that you will continue to do this.

  • @matheuscastroks
    @matheuscastroks Рік тому

    your the best teacher ive ever had, thank you

  • @Gandhi_Physique
    @Gandhi_Physique 3 роки тому

    Wow, I wasn't expecting to learn anything but now I understand it much better. I didn't even know you could call a constructor in that way.

  • @prasanthivasu
    @prasanthivasu Рік тому

    thank you john. I got my concept clear. was confused in class.

  • @mk17173n
    @mk17173n 2 роки тому

    I see what you did there with the dog named Kramer and the Kramer poster in the back. BTW your explanations are super easy to understand compared to other videos. Amazing work.

  • @hammer9185
    @hammer9185 Рік тому

    I'm just impressed by the way you explain Everything! Excellent job!

  • @s.a.806
    @s.a.806 11 місяців тому +1

    Very clear, thanks a lot!

  • @Larfty
    @Larfty 2 роки тому +1

    Thank you so much for teaching this

  • @littlemissmuppet40
    @littlemissmuppet40 2 роки тому

    Far better than the course i've paid good money for :) - Thanks very much!

  • @rubinconineski526
    @rubinconineski526 Рік тому

    It is very good. You speak very good. I understand almost everything 95 %.
    Thank you.

  • @IndellableHatesHandles
    @IndellableHatesHandles 2 роки тому +1

    I work in C#, and I swear Java is basically the same language with a different API.
    I feel like I'll be referring to your videos a lot while working on my CS Java course, though, since Java is different enough to cause some confusion.

  • @clementinerose916
    @clementinerose916 2 роки тому

    I am learning java and this helps me a lot , thank you so much John

  • @mckenziepictures
    @mckenziepictures Рік тому

    1. This video was AWESOME!
    2. Even more awesome, John listens to Rush! (R.I.P. Neil Ellwood Peart)

  • @Roberto-lb5or
    @Roberto-lb5or Рік тому

    Magnificent explanation as always. I got your bootcamp course at your web page

  • @ColonelloRS
    @ColonelloRS 2 роки тому

    Very well explained, thank you!

  • @tamingpaola
    @tamingpaola Рік тому

    this definitely helped me, im 11 weeks in my java cs class and needed to understand what the hell was going on with these constructors XD

  • @gunslinger7779
    @gunslinger7779 3 роки тому +2

    Thank you so much for THIS video.

    • @CodingWithJohn
      @CodingWithJohn  3 роки тому +2

      I almost added a counter to the video to show every time I said the word "this", I thought it would be hilarious. But then I thought it might have been too distracting. So you all can turn it into a drinking game instead.

  • @SwarcMaster
    @SwarcMaster 3 роки тому

    Keep doing great job, John. Thanks to you i can progress Helsinky MooC course like walk in a park.

  • @elfentsuki
    @elfentsuki 2 роки тому

    Excellent video, very clearly explained, also cool vibe. 10 out of 10. Thank you very much!

  • @Alstash
    @Alstash Рік тому

    Clear, pleasant, and understandable. Thank you!

  • @24K-r2l
    @24K-r2l Рік тому

    Really clear explanation, thank you so much!

  • @BoonkiCoC14
    @BoonkiCoC14 3 роки тому

    His videos are so cracked. It's so beginner friendly.

  • @manikandansivakumar4077
    @manikandansivakumar4077 2 роки тому

    you give answer for every why I ask myself. Thanks

  • @gulshanmustafayeva1707
    @gulshanmustafayeva1707 Рік тому

    You are thee greatest explainer ever 🙂 thank uu

  • @abdesamad6616
    @abdesamad6616 2 роки тому

    This was a great explanation of the "this" keyword

  • @josefiel6842
    @josefiel6842 2 роки тому

    Great video, the subject is so clearly explained. Amazing explanation, Thanks!!!

  • @viniciuslima1185
    @viniciuslima1185 3 роки тому

    your videos are really helpful... much love from brasil!

  • @paladarsh39
    @paladarsh39 2 роки тому

    Great explanation. Addicted to your channel. Thanks for such a simple explanation

  • @jingothejumper
    @jingothejumper 2 роки тому

    This is wonderful, I finally understand how this works!

  • @seifashraf2046
    @seifashraf2046 Рік тому

    I don't know how you make things this simple, suddenly I just understand it and idk how lol

  • @fantasy9960
    @fantasy9960 2 роки тому

    THank you soooo much! Please continue creating your videos!!

  • @zehrairkicatal2156
    @zehrairkicatal2156 3 роки тому

    Perfectly it was explained Looking forward to next your video reference type and primitive type CASTING

  • @paulgrossman8830
    @paulgrossman8830 Рік тому

    John, are you a drummer? Just looking at your kit in the background. Thanks as always for the great videos.

  • @mitmordag
    @mitmordag 3 роки тому

    Great explanation! Thank you. I am looking forward to next videos

  • @micleh
    @micleh 3 роки тому

    I'm so annoyed by the fact that here in Germany the government makes pupils use parameters prefixed with a 'p', which is why they'll never get in contact with the 'this' keyword, since there is never a conflict with the field names - I'll tell them, though, anyway. Your Dog constructor would therefore look like 'this': public Dog(String pName, int pAge).
    I think this is a relict from the time that the default language in higher education was Delphi and senior developers in the government didn't want to give up this parameter naming convention when they had to learn Java.
    Thanks again for the awesome content. I'll definitely recommend your videos to my students.

  • @jerrygord3131
    @jerrygord3131 2 роки тому

    Thank you so much! This video completely made sense out of it.

  • @isackcosta5660
    @isackcosta5660 Рік тому

    Good video! Helped me a lot.

  • @ceciliaw1065
    @ceciliaw1065 2 роки тому

    Finally understood this, thank u so much

  • @jer5206
    @jer5206 3 роки тому

    These vids are gold ty!

  • @ukrainewarchannel5682
    @ukrainewarchannel5682 2 роки тому

    Thanks a lot for your videos, they have been a godsend!

  • @tellefsolberg5698
    @tellefsolberg5698 3 роки тому

    Absolutely terrific videos!

  • @ujeshnada5141
    @ujeshnada5141 2 роки тому

    this should be the first line in the constructor is the new thing i have learnt.

  • @iliasettaoussi4680
    @iliasettaoussi4680 3 роки тому

    you are an amazing instructor

  • @amiraliazimi6355
    @amiraliazimi6355 3 роки тому

    Great! ❤️
    I always watch your videos

  • @cetinarslan262
    @cetinarslan262 3 роки тому

    Thank you. It was really clear. Good luck...

  • @yahyaking3250
    @yahyaking3250 2 роки тому

    Thank you so much, it really helped

  • @ousmanetall1286
    @ousmanetall1286 Рік тому

    My hope is you explain in details the differences between method and constructor, and the purposes

  • @meetbohra5415
    @meetbohra5415 3 роки тому

    Thank-you John!

  • @jam43040
    @jam43040 2 роки тому

    Really great videos, thanks!

  • @thegopodude7000
    @thegopodude7000 6 місяців тому

    Doug Demuro loves this keyword

  • @juliaineslopez4856
    @juliaineslopez4856 3 роки тому +1

    I love all your videos! never stop making them!

  • @derrickli497
    @derrickli497 Рік тому

    no cap you teach better than my triple PHD professor from a top 30 university in the world

  • @tarikelqari4702
    @tarikelqari4702 2 роки тому

    thank you so much, i was struggling with this "this" hahahahaha

  • @vedantjha2327
    @vedantjha2327 Рік тому

    Point to note
    This keyword can also be used to call other parameterized constructor
    Which will be the first statment

  • @g33kyt
    @g33kyt 2 роки тому

    ur a god!!! help me soooo much thank you so much

  • @ozaanyigit
    @ozaanyigit 2 роки тому

    great video thank you so much

  • @lofi_ish5613
    @lofi_ish5613 2 роки тому

    Thank you so much!

  • @uritaabdelmasih292
    @uritaabdelmasih292 2 роки тому

    You are amazing! Thanksss

  • @tomkutscher942
    @tomkutscher942 11 місяців тому

    Currently Iam in the first year of systems engineering and we have to learn java but with bluej, but bluej sometimes sucks, there are many features like markings in eclipse and other editors that bluej doesnt have.

  • @PedrovoriskAB
    @PedrovoriskAB 3 роки тому

    Make a video about creating a server and client with java pls !!!!!!!!! THANK U FOR ALL UR VIDEOS

  • @itsZahid22
    @itsZahid22 Рік тому

    just helped me thanks

  • @zaptodeathx
    @zaptodeathx 3 роки тому +3

    Hi John.
    How come we don’t just use a different parameter name instead of “name”. Wouldn’t that also avoid there being two “names” to be referred to? For example:
    public void setName(String nameSet) {
    name = nameSet;
    }

    • @CodingWithJohn
      @CodingWithJohn  3 роки тому

      You're absolutely right, that would do the trick too! I suppose programmers are kind of a stubborn bunch and we don't want to use another name for something if we don't have to. I don't have much of a better explanation unfortunately, but the convention you'll see used is still to use the same names with "this".

    • @zaptodeathx
      @zaptodeathx 3 роки тому

      @@CodingWithJohn alright! Thank you for explaining that.

    • @ЮрийОлейник-ы6н
      @ЮрийОлейник-ы6н 3 роки тому +1

      "this" is a reference to a current object. I'm suprised that author can't show a simple example when usage of "this" is necessary. One of the examples could be a method for class Node like:
      void add(Node aNode){
      aNode.next=next;
      next.prev=aNode;
      next=aNode;
      aNode.prev=this;
      }
      Here Node is a node of double linked list. This method adds aNode right after current(or "this") Node in list. And it can't be done without "this".

  • @LoreAndPeace
    @LoreAndPeace Рік тому +1

    I feel like this is a dumb question, but why not just change the names of the method parameters? Wouldn't that remove the need for the 'this' keyword?

  • @dsan6274
    @dsan6274 2 роки тому

    Thank you again :)

  • @Robert-jt9yg
    @Robert-jt9yg Рік тому

    Great stuff

  • @zladtv1456
    @zladtv1456 Рік тому

    Useful!

  • @aminegttabi2994
    @aminegttabi2994 3 роки тому

    you are the best ❤

  • @manishjoshi539
    @manishjoshi539 2 роки тому

    Thanks for this, except @4.38 - "point of a static method is that they CAN NOT be used"

  • @bolbans
    @bolbans 3 роки тому

    Does this channel have a video about Override?

  • @hw_was_taken423
    @hw_was_taken423 3 роки тому

    Could you do a Quicksort Tutorial, that would be really cool

    • @CodingWithJohn
      @CodingWithJohn  3 роки тому +1

      It's a tough algorithm to describe very clearly, but it's definitely a video that will happen eventually!

    • @hw_was_taken423
      @hw_was_taken423 3 роки тому

      @@CodingWithJohn Thank you, sir

  • @MTB_Bay_Area
    @MTB_Bay_Area 2 роки тому

    Thank you