I am bit confused when to use this keyword. I know usually we use them to set parameters in constructors or if we have multiple constructors, however, which approach below is correct? 
public class ResultsPage {
    private WebDriver driver;
    private JavascriptExecutor jsx;    
    private Selector selector;
    private WaitFor waitFor;
    private WebElementUtilities webElementUtilities;
    public ResultsPage(WebDriver driver) {
        this.driver = driver;
        this.webElementUtilities = new WebElementUtilities(driver);
        this.selector = new ReactSearchResultsPageSelector();
        this.waitFor = new WaitFor();            
        this.jsx = (JavascriptExecutor) driver;
    }
}
or
public class ResultsPage {
    private WebDriver driver;
    private JavascriptExecutor jsx;    
    private Selector selector;
    private WaitFor waitFor;
    private WebElementUtilities webElementUtilities;
    public ResultsPage(WebDriver driver) {
        // I used this here since the parameter has the same name.
        this.driver = driver;
        // I did not use this here but should I?
        webElementUtilities = new WebElementUtilities(driver);
        selector = new ReactSearchResultsPageSelector();
        waitFor = new WaitFor();            
        jsx = (JavascriptExecutor) driver;
    }
}
 
     
     
     
     
     
    