Explicação Atributo da Classe

Alguém poderia me explicar o que ocorre quando eu informo o atributo da seguinte forma conforme segue abaixo na classe Conta?

Cliente titular (Eu sei que Cliente é uma classe e que titular é o atributo da minha classe Conta, mas queria entender melhor isso.)

public class Conta {

int numero;
Cliente titular;
double saldo;

// saca uma determinada quantidade conforme valor recebido via parâmetro
boolean saca(double valor) {
	if (this.saldo < valor) {
		return false;
	} else {
		this.saldo = this.saldo - valor;
		return true;
	}
}

// deposita uma determinada quantidade conforme valor recebido via parâmetro
void deposita(double quantidade) {
	this.saldo += quantidade;
}

// verifica se a conta possui a quantidade a ser transferida disponível
boolean transfere(Conta destino, double valor) {
	boolean retirou = this.saca(valor);

	if (retirou == false) {
		// nao deu pra sacar!
		return false;
	} else {
		destino.deposita(valor);
		return true;
	}
}

}

Java é uma linguagem de programação de tipagem estática, o que significa que o tipo de toda variável ou expressão é conhecido logo durante a compilação.

Além dos tipo primitivos (int, double, char, etc…), a linguagem permite que vc crie seus próprios tipos através de classes.

Na expressão abaixo, vc sabe que double é o tipo da variável saldo.

double saldo;

No exemplo que vc citou, Cliente nada mais é do que um novo tipo, um tipo definido por vc.

Logo, na expressão abaixo, Cliente é o tipo da variável titular.

Cliente titular;
1 curtida

Em linguagens de programação existem diferentes paradigmas, Java é uma linguagem do paradigma Orientação por Objeto, procure estudar sobre este paradigma que irá compreender melhor como as coisas funcionam.

P.S: Tem autores que irão dizer que Orientação Objeto não é um paradigma, mas essa discussão é bem inútil.

1 curtida