0

Para que servem as declarações private, protected, public, abstract, interface e final nas classes?

criado por Bruno Ruaro de Souza em 07/09/2003 6:37pm
Nenhuma descrição foi enviada.

Lista de Respostas:

0
07/09/2003 8:39pm
(~21 anos atrás)
Alessander Thomaz respondeu:
Essas declarações só funcionaram no php5.

Public = define método como público, ou seja, qualquer classe pode acessá-lo.

Private = define o método como privado, somente métodos de uma mesma classe podem acessá-lo. Vc não pode acessar um método privado diretamente. Não sei muito bem a diferença, mas com protect é parecido. Nunca me atentei a muitos detalhes, na prática usamos public e private.

Não irei arriscar muito em falar bobeira, veja o link abaixo com as novas mudanças do php 5, inclusive com exemplos para sua pergunta:
http://www.php.net/zend-engine-2.php (inglês)

0
10/09/2003 2:37pm
(~21 anos atrás)
Tudo bem, a página da Zend só fala quais são os elementos que serão adicionados, mas não os explica profundamente.
Vamos lá..., as palavras chaves private e protected tem diferentes.
Private, proíbe o acesso aos membros dessa classe por outras classes, mesmo elas sendo subclesses.
Protected, proíbe o acesso aos membros da classe por outras classes, mas libera o acesso para subclasses.
public, libera para todo mundo.
abstract, quer dizer que a classe é abstrata, no caso ela será um esqueleto das suas subclasses e ela não poderá ser instanciada, só herdada. Seus métodos, seus membros serão abstract, ou seja, só se declara, não implementa nada.
interface, interfaces são interfaces, é um tipo de abstração maior que as classes abstratas, no caso várias interfaces podem ser implementadas por uma classe. Uma classe só pode herdar uma única classe abstrata, daí a vantagem da interfaces, uma simulação de múltipla herança, esse artifício é usado no java para deixar o compilador mais simples, talvez a galera da zend gostou da idéia.
E terminando,
Final, quer dizer que a parada é uma constante.

Beleza? Fui claro?

Tah dado o recado!!!

0
14/09/2003 6:39pm
(~21 anos atrás)
a respondeu:
Nunca entendi para que servem essas declarações realmente.
Sintetizando: elas servem para dar permissão à outras "entidades" para usar as funções da classe declarada?

0
15/09/2003 2:38pm
(~21 anos atrás)
Caro amigo "Bruno Ruaro de Souza",

Estas declarações servem para construir uma classe que pode ser reutilizada e/ou implementada por outra classe.

Exemplo:
1) Pense em uma classe chamada "CADEIRA" que tem as propriedade "Pes".
2) Se eu quiser Criar a Classe "CADEIRA_COM_RODINHAS" não preciso recriar toda a classe. Simplesmente implemento a classe "CADEIRA" com a propriedade "Rodinhas" e o método "Girar".

Se quiser manipular a classe "CADEIRA_COM_RODINHAS" não preciso saber como ela faz para girar. Isto é uma função inerente à cadeira. Ou seja, uma ação privada da cadeira. Agora se eu quiser implementar a propriedade "Cor" esta deverá ser pública, pois o usuário pode querer escolher uma cor para a cadeira.

O segredo é antever ou prever a utilização posterior da classe e deixá-la bem enxuta.

Não sei se fui muito claro! Mas qualquer dúvida você poderá tirar lendo qualquer apostila de orientação à objetos.

Abraço

0
28/09/2003 8:01am
(~21 anos atrás)
Wonder Alexandre respondeu:
E isso que o "Hammond Ramalho e Soares" falou cara!
vc tem que pensar em "abstração":

Abstração de Dados- É o processo de criar novos tipos de dados, ou seja, a capacidade de abstrairmos algo, porém reconhecendo todas as suas propriedade básicas. Um tipo de dado definido pelo programador ideal‚ é aquele se comporta da mesma forma como os tipos de dados definidos pela própria linguagem.
Devemos entender uma CLASSE como sendo uma especificação para um tipo abstrato que especifica os dados e as rotinas necessárias para a implementação dos dados e dos serviços adequados a necessidade do programador. Desta forma usualmente o programador irá se preocupar no que a classe possui e não naquilo que ela significa.
Os serviços oferecidos são chamados de métodos, ou seja, são as funções criadas ou utilizadas pelo programador. Aqueles elementos de dados individuais são chamados de instâncias. Finalmente os objetos são instâncias de uma classe da mesma forma que uma variável numérica nada mais‚ que uma instância do tipo inteiro em linguagem C.

Nova Resposta:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)