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;
}
}