Vamos voltar ao básico: Programação procedural.
Quando estamos em procedural, uma função é um pequeno pedaço do código que eu vou dar um nome específico e então dar um propósito para ele.
Em OO, como Java, usamos classes. Nas classes nós colocamos as características das variáveis, ou seja, se são privadas, estáticas, booleanas, inteiras, double... E eu preciso me comunicar com elas para manipulá-las ou acessar seus dados! O método é a forma como eu posso fazer isso.
Assim como em procedural, eu posso nomear os métodos. Mas diferente de função, um método está relacionado a uma classe e suas variáveis. Quando você inicializa a classe com o new classe();, todas as variáveis passam a existir e tem um valor de 0/null.
E então você pode operar as variáveis pq elas foram "instanciadas".
Quando eu quero lembrar o programa que aquela variável está dentro da classe que armazena o método, eu lembro ele com o "this." . Dessa forma não preciso inicializar, declarar a variável antes de usar, porque ela já existe, tem seus valores e então ela pode ser referenciada.
if(this.saldo >= montante) {
//essa parte do código verifica se o saldo na classe q foi previamente inicializada é igual ou maior que o montante a ser sacado. Se for...
this.saldo -= montante;
//subtraia do saldo o valor do montante
Eu não preciso inicializar saldo como double. Saldo já existe no objeto que estou comparando no if. Para facilitar, lembro ele (java) que é this.saldo e que ele deve comparar com um valor passado para gerar true ou false (ifs são booleanos)