Linguagens Típicas Linguagens Típicas Classificação das linguagens com relação ao suporte a objetos: não baseadas em objetos • não suporta objetos • Pascal, C, FORTRAN e COBOL. baseadas em objetos • suporte a objetos • Modula-2, ADA, CLU, Simula, SmallTalk, C++ e Object Pascal
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Linguagens TípicasLinguagens Típicas
Classificação das linguagens com relação ao suporte a objetos:
não baseadas em objetos
• não suporta objetos
• Pascal, C, FORTRAN e COBOL.
baseadas em objetos
• suporte a objetos
• Modula-2, ADA, CLU, Simula, SmallTalk, C++ e Object Pascal
Linguagens TípicasLinguagens Típicas
Classificação das linguagens com relação ao suporte a objetos:
baseadas em classes• todo objeto deve pertencer a uma classe• CLU, Simula, SmallTalk, C++, Java e
Object Pascal• ADA e Modula-2 não possuem classes
orientadas a objetos• hierarquia de classes (herança)• ADA-95, SmallTalk, C++, Java e Object
Pascal
Relacionamento entre classes de Relacionamento entre classes de linguagens baseadas em objetoslinguagens baseadas em objetos
Baseadas em Objetos
Baseadas em ClassesModula-2
Orientadas a ObjetosCLU
Java C++SmallTalk
+Classes
+Herança
A linguagem SmallTalkA linguagem SmallTalk
O paradigma de objetos é levado às últimas conseqüências
A idéia fundamental: uniformidade
Um objeto representa um componente do sistema: números, filas, diretórios de discos, compiladores, etc.
A maioria dos conceitos de POO são derivados de SmallTalk
Todas as classes são descendentes da classe Object
A linguagem SmallTalkA linguagem SmallTalk
Toda classe é instância de uma metaclasse
Todas as metaclasses são instâncias de uma classe chamada Metaclass
Um objeto é alocado explicitamente através da mensagem new
Não há mecanismos para destruição de um objeto
Uso de garbage collection
A linguagem SmallTalkA linguagem SmallTalk Não implementa herança múltipla Associação de mensagem com método
em tempo de execução Programa em SmallTalk é formado por
uma expressão ou uma seqüência de expressões separadas por “.”
Expressões podem ser: um literal uma variável (referência a um objeto) um envio de mensagem um bloco (uma seqüência, entre colchetes,
de expressões separadas por “.”)
Definição de classes em SmallTalkDefinição de classes em SmallTalkclass name
Empregado
superclass
Object
Instance variable names
nome
salario
class variable names
NumEmpregados
class methods
initialize
NumEmpregados := 0
Definição de classes em SmallTalkDefinição de classes em SmallTalknew
Programa exemplo em SmallTalkPrograma exemplo em SmallTalk Contagem da quantidade de números ímpar em um
vetor
» 1ª linha: declaração de duas variáveis sem tipo
» 2ª linha: “v” torna-se o apontador para um vetor
» 3ª linha: “nOdd” recebe o objeto zero
» 4ª linha: envia a mensagem “do” para “v” executar uma expressão. Para cada elemento verifica se é ímpar; testa se o resultado é verdadeiro; se for, incrementa “nOdd”
» 5ª linha: atribui “nOdd” para a primeira posição de “v”
» 6ª linha: retorna “nOdd”
| v n O d d |v : = # (1 5 2 3 6 ) .n O d d : = 0 .v d o : [ : e le m | e le m o d d ifT r u e : [n O d d : = n O d d + 1 ] ] .v a t : 1 p u t: n O d d .^ n O d d
A linguagem Object PascalA linguagem Object Pascal
Desenvolvida a partir da linguagem Pascal: Objetos, Classes Herança
Teve grande destaque com o Delphi
Não permite herança múltipla
Não suporta polimorfismo paramétrico
Possui encapsulamento a nível de objeto e de Unit
Pode ser usada para várias aplicações: depende das bibliotecas de classes
A linguagem Object PascalA linguagem Object Pascal
Em Delphi, bibliotecas para RAD
Todas as classes são subclasses de TObject
Componentes de uma classe: Campos: itens de dados
Métodos: subrotinas que efetuam alguma operação em um objeto. Usa construtor e destrutor
Propriedades: atributos para os quais são definidas ações para a sua leitura e escrita
A linguagem Object PascalA linguagem Object Pascal
Cinco níveis de visibilidade: Public: nenhuma restrição
Protected: descendentes
Private: dentro da Unit
Published: igual a public, com informação de tipagem em tempo de execução
Automated: igual a public, servidor OLE
CClasses em Object Pascallasses em Object Pascalunit Exemplo
interface
type
TEmpregado = class
protected
Nome: string[30];
Salario: real;
public
constructor Create;
destructor Destroy;
procedure AtualizaNome (umNome: string);
function ObtemNome: string;
procedure AtualizaSalario (umSalario: real);
CClasses em Object Pascallasses em Object Pascalfunction ObtemSalario: real; virtual;
Definição de classes em C++Definição de classes em C++
void Gerente::
atualizaComissao(float umaComissao){
comissao = umaComissao;
}
float Gerente::obtemSalario() {
return (Empregado::obtemSalario() +
comissao);
}
A lA linguagem Javainguagem Java
Sintaxe similar a C++
Elementos básicos da linguagem são: objetos, classes e interfaces
Bytecode interpretado sobre máquina virtual
Independência de ambiente operacional
Herança simples e múltiplas interfaces Simulação de herança múltipla através das
interfaces
A lA linguagem Javainguagem Java
Tipos fortes, com ligação dinâmica
Coleta de lixo
Sem aritmética de ponteiros
Bibliotecas portáveis
Threads e monitores Programação concorrente
Integração com C/C++ Métodos nativos
A lA linguagem Javainguagem Java
Classes armazenadas em pacotes
Uso de tipos primitivos boolean, char, int, float
Uso de comandos de controle de fluxo if, switch, while, for, do…while
Modificadores de Visibilidade private protected public friendly
A lA linguagem Javainguagem Java private
Aplicado à declaração de um método ou variável, o modificador private torna este elemento acessível apenas ao código da classe onde está declarado.
Aplicado à declaração de uma classe ou interface torna esta classe ou interface inacessível fora do arquivo onde está declarada.
protected Aplicado à declaração de um método ou variável
de uma classe, torna este elemento acessível apenas às classes que pertencem ao mesmo pacote desta classe, e ao código das classes que herdam desta primeira.
A lA linguagem Javainguagem Java protected
Aplicado à declaração de uma classe ou interface torna esta classe ou interface visível apenas no escopo do pacote onde está declarada.
public Aplicado à declaração de um método, variável,
classe ou interface elimina qualquer restrição de visibilidade a este elemento.
friendly (Default) Aplicado à declaração de um método, variável,
classe ou interface torna o elemento acessível no pacote onde foi declarado.
Definição de classes em Definição de classes em JavaJava
class Empregado {
private string nome;
private float salario;
private static int numeroEmpregados = 0;
public Empregado(String nome) {nome = umNome;salario = 0.0;++numeroDeEmpregados;
}
public void setNome(String umNome){ nome = umNome;
}
Definição de classes em Definição de classes em JavaJava
public String obtemNome() {
return nome;
}
public void setSalario(float salario){
this.salario = umSalario;
}
public float obtemSalario(){
return salario;
}
};
Definição de classes em Definição de classes em JavaJava