Isto para mim foi motivo de dores de cabeça, para muitos um bicho de sete cabeças. Já pesquisei na internet uma maneira fácil de se entender programação orientada a objeto e não achei.
Não entendia nada de herança, instância, classe e etc.
Vou tentar esplicar da minha maneira:
Qual é a diferença do vídeo cassete para o DVD; sabendo-se que todos os dois tem controle remoto?
É assim a diferença da linguagem de programação de antigamente (video cassete) para o de hoje (DVD).
O video cassete só tem quatro funções retornar, pausar (pause), reprodusir (play) e avançar. Se eu quisesse a quarta música deveria assistir a 1ª, 2ª e 3ª música. Se eu quisesse retornar a primeira deveria rebobinar a fita para a 4ª, 3ª e 2ª para daí chegar a primeira.
A linguagem de programação de antigamente era no sentido linear de cima para baixo.
Para voutar para cima usava-se a estrutura de repetição While e For. Mesmo assim seu sentido era de cima para baixo.
Então surgiu a programação orientada a objeto.
É semelhate ao DVD, além das funções retornar, pausar, reprodusir e avançar. Se eu quiser a quarta música apertava o botão 4 e imediatamente tocava a quarta música sem assistir a 1ª, 2ª e 3ª música. Se eu quiser voltar a primeira música apertava o botão 1 e imediatamente tocava a primeira música sem retroceder para a 4ª, 3ª e 2ª música.
Então a linguagem de programação passou de cima para baixo, para qualquer direção. Sem utilizar muito as estruturas de repetição For e While.
Então o DVD é um objeto e os botões do controle remoto as propriedades do objeto.
É por isto que o computador é cheio de botões: botões do teclado, botões do mouse, botões da barra de menu, botões da barra de ferramenta, botões da barra de tarefa, botões do menu iniciar, ícones também são botões, etc.
Cada botão é um objeto e cada objeto tem as suas propriedades.
Ficou claro?
Esta aula é baseado no Visual Basic.
Suponhamos que um formulário tenha 1 botão, veja foto:
Este botão tem as seguintes propriedades:
Nome: botao_1
Texto sobre o botão: Botão 1
Altura: 30 pixels
Largura: 100 pixels
Topo: 50 pixels
Esquerda: 50 pixels
Fonte: Times New Roman
Negrito: Sim
Itálico: Não
Sublinhado: Não
Tamanho da fonte: 10
Cor da fonte: Verde
Cor de fundo: Amarelo
Alinhamento: Centro
Para que o computador entenda esta lista de propriedades devemos inserir códigos, veja:
botao_1 = Novo objeto_botao()
botao_1.Texto = "Botão 1"
botao_1.Altura = 30
botao_1.Largura = 100
botao_1.Topo = 50
botao_1.Esquerda = 50
botao_1.Fonte = "Times New Roman"
botao_1.Negrito = True
botao_1.Italico = False
botao_1.Sublinhado = False
botao_1.Tamanho_da_fonte = 10
botao_1.Cor_da_fonte = "Verde"
botao_1.Cor_de_fundo = "Amarelo"
botao_1.alinhamento = "Centro"
Ficou fácil?
Agora iremos estudar programação orientada a objetos:
Agora iremos criar um botão igual a imagem acima:
<html>
<head>
<title>Objeto PHP </title>
</head>
<body>
<?php
class botao_teste {
function objeto_botao($seletor, $eventoOnClick) {
echo '
<span id="'.$seletor.'" onclick="'.$eventoOnClick.'" style="border-style: outset;cursor: pointer; font-family: Arial; position: absolute;" onmousedown="style.borderStyle=\'inset\'" onmouseup="style.borderStyle=\'outset\'" >Teste</span>
';
$this->seletor = $seletor;
}
function Cor_de_fundo($cor) {
echo '
<script language="javascript">
document.getElementById("'.$this->seletor.'").style.backgroundColor = "'.$cor.'";
</script>
';
$this->Cor_de_fundo = $cor;
}
function Texto($texto) {
echo '
<script language="javascript">
document.getElementById("'.$this->seletor.'").innerHTML = "'.$texto.'";
</script>
';
$this->Texto = $texto;
}
function Altura($altura) {
echo '
<script language="javascript">
document.getElementById("'.$this->seletor.'").style.height = "'.$altura.'";
</script>
';
$this->Altura = $altura;
}
function Largura($largura) {
echo '
<script language="javascript">
document.getElementById("'.$this->seletor.'").style.width = "'.$largura.'";
</script>
';
$this->Largura = $largura;
}
function Topo($topo) {
echo '
<script language="javascript">
document.getElementById("'.$this->seletor.'").style.top = "'.$topo.'";
</script>
';
$this->Topo = $topo;
}
function Esquerda($esquerda) {
echo '
<script language="javascript">
document.getElementById("'.$this->seletor.'").style.left = "'.$esquerda.'";
</script>
';
$this->Esquerda = $esquerda;
}
function Fonte($fonte) {
echo '
<script language="javascript">
document.getElementById("'.$this->seletor.'").style.fontFamily = "'.$fonte.'";
</script>
';
$this->Fonte = $fonte;
}
function Negrito($negrito) {
echo '
<script language="javascript">
';
if ($negrito == true) {
echo 'document.getElementById("'.$this->seletor.'").style.fontWeight = "bold";';
} else {
echo 'document.getElementById("'.$this->seletor.'").style.fontWeight = "normal";';
}
echo '
</script>
';
$this->Negrito = $negrito;
}
function Italico($italico) {
echo '
<script language="javascript">
';
if ($italico == true) {
echo 'document.getElementById("'.$this->seletor.'").style.fontStyle = "italic";';
} else {
echo 'document.getElementById("'.$this->seletor.'").style.fontStyle = "normal";';
}
echo '
</script>
';
$this->Italico = $italico;
}
function Sublinhado($sublinhado) {
echo '
<script language="javascript">
';
if ($sublinhado == true) {
echo 'document.getElementById("'.$this->seletor.'").style.textDecoration = "underline";';
} else {
echo 'document.getElementById("'.$this->seletor.'").style.textDecoration = "none";';
}
echo '
</script>
';
$this->Sublinhado = $sublinhado;
}
function Tamanho_da_fonte($tamanho) {
echo '
<script language="javascript">
document.getElementById("'.$this->seletor.'").style.fontSize = "'.$tamanho.'";
</script>
';
$this->Tamanho_da_fonte = $tamanho;
}
function Cor_da_fonte($colour) {
echo '
<script language="javascript">
document.getElementById("'.$this->seletor.'").style.color = "'.$colour.'";
</script>
';
$this->Cor_da_fonte = $colour;
}
function Alinhamento($alinhamento) {
echo '
<script language="javascript">
document.getElementById("'.$this->seletor.'").style.textAlign = "'.$alinhamento.'";
</script>
';
$this->Alinhamento = $alinhamento;
}
}
?>
<form name="form1">
<input type="text" name="texto"><br><br>
<?php
$botao1 = new botao_teste;
$botao1->objeto_botao("botao1", "document.form1.texto.value ='Teste'");
$botao1->Texto("Botão 1");
$botao1->Altura(30);
$botao1->Largura(100);
$botao1->Topo(50);
$botao1->Esquerda(50);
$botao1->Fonte("Times New Roman");
$botao1->Negrito(true);
$botao1->Italico(false);
$botao1->Sublinhado(false);
$botao1->Tamanho_da_fonte(10);
$botao1->Cor_da_fonte("green");
$botao1->Cor_de_fundo("yellow");
$botao1->Alinhamento("center");
echo "<br>";
echo $botao1->Texto."<br>";
echo $botao1->Altura."<br>";
echo $botao1->Largura."<br>";
echo $botao1->Topo."<br>";
echo $botao1->Esquerda."<br>";
echo $botao1->Fonte."<br>";
echo $botao1->Negrito."<br>";
echo $botao1->Italico."<br>";
echo $botao1->Sublinhado."<br>";
echo $botao1->Tamanho_da_fonte."<br>";
echo $botao1->Cor_da_fonte."<br>";
echo $botao1->Cor_de_fundo."<br>";
echo $botao1->Alinhamento."<br>";
?>
</form>
</body>
</html>
O mesmo exemplo funciona igual ao Javascript: