Remove ads
sub-rotina associada a um objeto para determinar comportamento e acessar seus dados Da Wikipédia, a enciclopédia livre
Em orientação a objetos, uma Função (ou função membro) é uma sub-rotina (ou procedimento ou função) associada a um objeto, e que possui acesso aos seus dados, as variáveis membro. Ele é executado por um objeto ao receber uma mensagem. Os métodos determinam o comportamento dos objetos de uma classe e são análogos às funções ou procedimentos da programação estruturada. O envio de mensagens (chamada de métodos) pode alterar o estado de um objeto.
Em linguagens baseadas em classe eles são definidos na classe. Métodos definem o comportamento a ser exibido pelas instâncias da classe associada no tempo de execução do programa. Métodos possuem a propriedade especial que em tempo de execução, possuem acesso aos dados armazenados em uma instância da classe (ou instância de classe ou objeto de classe ou objeto) que estão associados e são, desta forma, capazes de controlar o estado da instância. A associação entre classe e método é chamada de ligação (binding). Um método associado com uma classe é dito estar ligado (bound) à classe. Métodos podem ser ligados a uma classe em tempo de compilação (ligação estática) ou a um objeto em tempo de execução (ligação dinâmica).
O seguinte código Java define um método "retângulo" na classe "main", que pode encontrar a área de um retângulo.
public class Main {
int retangulo(int a, int h) {
return a*h;
}
}
Um método abstrato é aquele com apenas uma assinatura e sem corpo de implementação. É frequentemente utilizado para especificar que uma subclasse deve fornecer uma implementação do método. Métodos abstratos são usados para especificar interfaces em algumas linguagens de computador.
O seguinte código em Python mostra uma classe abstrata que precisa ser estendida:
from abc import *
class Veiculo(metaclass = ABCMeta):
@abstractmethod
def transportar(self, fator):
pass
A seguinte subclasse estende a classe principal:
class Aeroplano(Veiculo):
def transportar(self, pessoas):
super().transportar(fator):
self.combustivel = pessoas * fator * trecho
def voar(self):
return "Aeronave em vôo"
Métodos de classe são métodos que são chamados sobre uma classe (comparar este com métodos de instância de classe ou métodos de objeto). Seu significado pode variar dependendo da linguagem de programação:[1]
this
não pode ser usado em métodos estáticosthis
se refere ao objeto de classeclassmethod
e staticmethod
, respectivamente. O primeiro possui acesso ao this
(isto é, o objeto de instância, convencionalmente conhecido como self
), enquanto o segundo não.Os métodos especiais são muito específicos da linguagem e uma linguagem pode suportar nenhum, alguns ou todos os métodos especiais definidos aqui. O compilador de uma linguagem pode gerar automaticamente métodos especiais padrão ou um programador pode ter permissão para definir métodos especiais opcionalmente. A maioria dos métodos especiais não pode ser chamada diretamente, mas, em vez disso, o compilador gera código para chamá-los nos momentos apropriados.
Os métodos estáticos devem ser relevantes para todas as instâncias de uma classe, e não para qualquer instância específica. Nesse sentido, são semelhantes a variáveis estáticas. Um exemplo seria um método estático para somar os valores de todas as variáveis de cada instância de uma classe. Por exemplo, se houvesse uma classe Produto
, ela poderia ter um método estático para calcular o preço médio de todos os produtos.
Em Java, um método estático comumente usado é:
Math.max(double a, double b)
Este método estático não possui nenhum objeto proprietário e não é executado em uma instância. Ele recebe todas as informações de seus argumentos.[2] Métodos estáticos não requerem uma instância da classe nem podem acessar implicitamente os dados (ou this
, self
, Me
, etc.) de tal instância. Um método estático é distinguido em algumas linguagens de programação com a palavra-chave static
colocada em algum lugar na assinatura do método.
Um método estático pode ser chamado mesmo que ainda não exista nenhuma instância da classe. Os métodos estáticos são chamados de "estáticos" porque são resolvidos em tempo de compilação (estaticamente), com base na classe em que são chamados, e não dinamicamente, como no caso dos métodos de instância, que são resolvidos polimorficamente com base no tipo de tempo de execução do objeto.
Um operador de conversão fornece um meio para que o compilador implicitamente (realizado pelo compilador automaticamente quando for o caso) fornece um objeto de um tipo diferente do tipo do objeto de classe.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.