Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

MeninoBonito

[Resolvido] Classe é um tipo?!? O que isso significa?

Recommended Posts

Olá! Estou com dúvidas. Estudando poo encontrei as seguintes afirmações (em aspas).

 

"

Classe...

 

Uma classe é um conjunto de variáveis e funções relacionadas a essas variáveis. Uma classe é um tipo, e portanto não pode ser atribuída a uma variável.

 

"

 

----------------------------- ----------------------------- -----------------------------

 

"

 

Uma classe é uma abstração que define um tipo de objeto e o que objetos deste determinado tipo tem dentro deles (seus atributos) e também define que tipo de ações esse tipo de objeto é capaz de realizar (métodos).

 

"

 

O que quer dizer "classe é um tipo"?

Objetos também são tipos?

Classes definem objetos? Se sim então o objeto é a finalização de uma classe?

 

Se puderem responder minhas dúvidas, serei muito grato! Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

João parabéns pelo o artigo!

 

Diante da leitura, veja se estou correto:

 

A classe é um modelo ou template para criação de objetos. E este possui a mesma estrutura da classe mais diferenciando que ele se comporta de forma dinâmica, interagindo com o sistema e possuindo dados nele armazenados, ao contrário da classe que é estática e sem vida.

Sobre a classe ser um tipo, o sentido era que ela define objetos que ao serem instanciados recebem uma instância da classe, assim determinando seu tipo.

 

Este meu pensamento está correto? Desculpe-me se estou sendo chato. Acredito que o mais importante após ter lido seu artigo é entender e tirar minhas próprias conclusões de forma concisa e correta.

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

João parabéns pelo o artigo!

 

;)

 

A classe é um modelo ou template para criação de objetos. E este possui a mesma estrutura da classe mais diferenciando que ele se comporta de forma dinâmica, interagindo com o sistema e possuindo dados nele armazenados, ao contrário da classe que é estática e sem vida.

Sobre a classe ser um tipo, o sentido era que ela define objetos que ao serem instanciados recebem uma instância da classe, assim determinando seu tipo.

 

Ok, existem várias coisas ai, vamos por partes:

 

A classe é um modelo ou template para criação de objetos.

 

Cuidado para não confundir ou causar confusão, ao dizer que uma classe é um template; Linguagens como C++, além de classes, possuem também templates de classes.

 

E este possui a mesma estrutura da classe mais diferenciando que ele se comporta de forma dinâmica, interagindo com o sistema e possuindo dados nele armazenados

 

O sistema interage com os vários objetos e não o contrário.

 

Pense em um LEGO e imagine-se diante desse lego.

 

Imagem Postada

 

Agora pense que você é o sistema.

 

Quem interage com quem ??

 

Você brinca com o LEGO ou o LEGO brinca com você ??

 

Cada peça do LEGO é um objeto no seu sistema, cada um tem uma função e, você, utiliza cada um desses objetos para construir alguma coisa.

 

ao contrário da classe que é estática e sem vida.

 

Dizer que uma classe é estática, tudo bem, mas é totalmente equivocado dizer que ela é sem vida:

 

class UmaClasse {
	private static $valor;

public static function mudaValor( $valor ){
 	self::$valor = $valor;
}

public static function mostraValor() {
 	echo self::$valor , PHP_EOL;
}
}

 

Como pode ver, essa classe possui apenas propriedades e métodos estáticos:

 

UmaClasse::mudaValor( 10 );
UmaClasse::mostraValor();
UmaClasse::mudaValor( 20 );
UmaClasse::mostraValor();

 

A saída:

10

20

 

Sobre a classe ser um tipo, o sentido era que ela define objetos que ao serem instanciados recebem uma instância da classe, assim determinando seu tipo.

 

O tipo de um objeto é definido pelos métodos de interface, quando uma classe define uma série de métodos públicos que podem ser utilizados com um objeto, ela definiu a interface do objeto e, dessa forma, seu tipo.

 

Para compreender tipo, pense no seguinte:

 

1. Você tem vários objetos LEGO.

2. Cada LEGO tem uma função.

2.1. Pense como função, alguma coisa que um objeto faz ou executa.

 

Então, tipo de objeto é o que tal objeto faz.

 

Pensando em uma pessoa:

 

Um médico é um tipo de pessoa que medica pessoas.

Um engenheiro é um tipo de pessoa que constrói coisas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um médico é um tipo de pessoa que medica pessoas.

Um engenheiro é um tipo de pessoa que constrói coisas.

Nota: Ambos são pessoas, mas basicamente:

 

class Medico implements Pessoa, Medicina {}

 

class Engenheiro implements Pessoa, Engenharia {}

 

^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.