airmigjr, isso não é OO.
Isso é um recurso fornecido pela linguagem que, pode ou não, estar presente em outras linguagens que suportam OO.
O caso é, suponha que você é o objeto pessoa, da classe Pessoa.
Você, como qualquer objeto, possui atributos e realiza ações, os métodos.
Suponha que um dos atributos é o objeto CPF, da classe Documento.
Quando você precisa passar o CPF para alguém, primeiro é solicitado o nome e, então, o CPF, correto?
Isso significa que, foi acionado o método getPessoa, que retornou você, depois o método getNome e então o método getDocumento, que, por ter passado por herança, retornou o CPF
Pessoa mae = new Pessoa():
Pessoa airmigjr = new mae.getPessoa(); // nasceu vivo
airmigjr.setNome("nomeDeBatismo");
String nome = airmigjr.getNome(); // retorna o nome dado a você por teus pais.
Documento doc = airmigjr.getDocumento();//devolve o cpf
//lembre-se, documento é uma classe filha da superclasse documento, isso é herança, é OO
Isso tudo você conhece.
Agora, java permite que você trabalhe com os métodos e atributos de uma classe, mesmo que você nao a veja.
Ele manterá o objeto em memória e, por referência, você pode invocar os métodos de tal objeto.
String nome = mae.getPessoa()/*nasceu*/.getNome();/*retorna o nome da pessoa*/
Documento doc = mae.getPessoa()/*aqui é como se fosse Pessoa pessoa = mae.getPessoa();
Documento doc = pessoa.getDocumento();
*/.getDocumento();
Ou seja, você não invoca um método do método anterior, mas do resultado dele:
public class Teste {
public static void main(String args[]){
Teste ta = new Teste();
ta.setA(1);
ta.setB(2);
ta.setC(3);
Teste tb = new Teste();
tb.setA(1);
tb.setB(2);
tb.setC(3);
Teste tc = new Teste();
tc.setA(1);
tc.setB(2);
tc.setC(3);
System.out.println("Resultado: " + (ta.getA() + ta.getB() + ta.getC() - tb.getA() - tb.getB() + tb.getC() - tc.getA() - tc.getB() - tc.getC()));
}
int a;
int b;
int c;
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
public int getB() {
return b;
}
public void setB(int b) {
this.b = b;
}
public int getC() {
return c;
}
public void setC(int c) {
this.c = c;
}
}
Se você somar 1 + 2 + 3 -1 -2 + 3 - 1 - 2 - 3 = 0, que é o que a JVM enxerga ao executar o método acima.