Orientação a Objectos, Java
Java é uma linguagem orientada a objetos e, com isso, não é possível desenvolver nenhum programa sem seguir tal paradigma. Um sistema orientado a objetos é composto por um conjunto de classes e objetos bem definidos que interagem entre si, de modo a gerar o resultado esperado.
O que é?
O avanço das tecnologias na área de análise, projeto, desenvolvimento e qualidade de software permite que aplicações mais flexíveis e poderosas sejam construídas. A necessidade de integrar estas aplicações criou uma nova metodologia de análise e desenvolvimento: a Orientação à Objetos.
A Orientação à Objetos modela o mundo real com classes e instâncias. Cada classe é a estrutura de uma variável, ou seja, um tipo de dado. Nela, são declarados atributos e métodos que poderão ser executados ou acessados nas instâncias da mesma classe. As classes possuem uma função muito importante na modelagem orientada a objetos, elas dividem o problema, modularizam a aplicação e baixam o nível de acoplamento do software.
Variáveis de uma classe são chamadas de instâncias de classe. Por exemplo: Se existe uma classe Pessoa existe a instância (variável) pessoa que é do tipo Pessoa. Um Objeto, ou instância, é uma entidade cujas informações podem incluir desde suas características até suas atividades, ou seja, uma abstração de um domínio de um problema.
Abaixo há uma série de definições sobre a arquitetura de orientação a objetos em Java.
* Pacote: Conjunto de classes e demais arquivos que possuem interesses comuns ou atuam com dependências entre si. Fisicamente são pastas do sistema operacional.
* Instância, objeto: Uma variável do tipo de uma classe.
* Construtor: Responsável por iniciar a criação e inicialização de uma instância de classe.
* Método: Funções referenciados aquela classe.
* Modificador de acesso: Descreve que outras classes podem ter acesso a classe que está se criando. Também é usado para indicar que uma classe pode ser acessada de fora de seu pacote.
* Hierarquia de classes: Um grupo de classes que estão relacionadas por herança.
* Superclasse: É a classe que é estendida por uma determinada classe.
* Subclasse: É a classe que estende determinada classe.
* Classe base: A classe de determinada hierarquia que é uma superclasse de todas as outras classes. A classe? pai de todas?
Criando a primeira classe
Nesta apostila já foram criadas várias classes demonstrando outras funcionalidades da linguagem. Nos exemplos anteriores todo o código que continha um public class declarava uma classe. Porém, os exemplos anteriores tinham propósitos de explicar cada tópico, e portanto não faziam muito sentido. Neste exemplo, será construído uma classe Pessoa, que manterá os dados e as ações relativas aos dados de pessoa.
public class Pessoa {
String nome;
Date nascimento;
double dinheiroNaCarteira;
public Pessoa(String nome, Date nasc) {
this.nome = nome;
this.nascimento = nasc;
}
public void gastar(double valor) {
dinheiroNaCarteira -= valor;
}
public void receber(double valor) {
dinheiroNaCarteira += valor;
}
}
A classe pública Pessoa acima possui três variáveis, também chamados de atributos de instância: nome, nascimento, dinheiroNaCarteira. Esses atributos serão criados a cada nova instância de Pessoa que existir no sistema. Há, também, dois métodos: gastar (double valor) e receber (double valor). Eles retiram e incluem dinheiro na carteira da Pessoa respectivamente.
Entre eles existe a definição de um construtor: public Pessoa (String nome, Date nasc). O construtor é um método sem retorno, invocado quando ocorre a criação de um Objeto. Esta classe pessoa só pode ser criada passando dois parâmetros: o nome e a data de nascimento. Se este método não existisse, o java criaria um construtor padrão, sem parâmetros, para que a classe possa ser instanciada.
Algumas classes precisam evitar ser instanciadas, para ter essa proteção cria-se um construtor privado que não recebe parâmetro e também não possui corpo. É construído para evitar que o Java crie o construtor default.
Não é necessário definição de atributos, métodos ou construtores para que uma classe possa ser compilada. A declaração abaixo é válida, o javac compila corretamente e pode-se criá-la na aplicação, mesmo que sem nenhum método, construtor ou atributo:
public class NãoFazNada { }
O código abaixo usa a classe Pessoa como um exemplo de aplicação Orientada a Objetos.
// Cria uma classe que formata datas.
// É capaz de formatar de String para uma
// Date e de um Date para um String.
SimpleDateFormat formatador =
new SimpleDateFormat("dd/MM/yyyy");
// Cria um Objeto de Pessoa.
Pessoa pVitor;
pVitor = new Pessoa("Vitor Fernando Pamplona",
formatador.parse("07/11/1983"));
// Vitor Recebeu 1000 reais
// Inclui R$ 1000 na carteira da
// pessoa p criada na linha anterior
pVitor.receber(1000.00);
Primeiramente é criado um formatador de datas para que se possa converter uma data formatada em String em um tipo Date do Java. Este formatador é uma instância da classe SimpleDateFormat e, como qualquer outra criação de objeto, usa o comando new para criar uma instância.
Na linha seguinte, existe a declaração da variável pVitor que é da classe Pessoa. Esta variável ainda não está criada, portanto o valor que ali se encontra é null. Após, é criado a variável, ou melhor, a instância da classe Pessoa, com escopo do método. Esta instância já é inicializada com o nome Vitor Fernando Pamplona e a data de nascimento 07 / 11 / 1983. Na linha abaixo é invocado o método receber da classe Pessoa passando como parâmetro o double 1000.00.
Modificadores
Em Java existem uma série de palavras-chave que se comportam como modificadores de classes, métodos e atributos. Alguns desses modificadores já foram usados nesta apostila como a palavra-chave public, por exemplo. Um modificador pode ser utilizado antes da palavra class, antes do retorno de um método ou antes da declaração de um atributo.
Abaixo segue uma tabela com todos os modificadores de acesso do Java. A ordem de declaração dos modificadores não importa.
Palavra-chave Em uma classe Em um m étodo Em um atributo
public Acesso total Acesso total Acesso total.
private Não aplicável Acesso pela classe Acesso pela classe
protected Não aplicável Acesso pelo pacote Acesso pelo pacote
default Somente pacote Acesso pelo pacote Acesso pelo pacote
abstract Não instância Deve ser sobrescrito Não aplicável.
final Sem herança Não pode ser sobrescrito CONSTANTE..
static Não aplicável Acesso pela classe Acesso pela classe
native Não aplicável Indica código nativo Não aplicável
transient Não aplicável Não aplicável Cache
synchonized Não aplicável Sem acesso simultâneo. Não aplicável
Métodos
Um método em Java é uma sub-rotina semelhante as funções de C e Pascal. Os métodos têm um retorno e podem conter parâmetros. A Sintaxe de um método é a seguinte:
[modif] ([],[...]) {
}
Ao declarar um método é possível adicionar modificadores, vistos na seção anterior, antes de informar o tipo de retorno. O modificador estático declara que o método terá um determinado tipo de comportamento dentro do programa orientado a objetos. Na declaração de um método os modificadores precedem o tipo de retorno, que precede o nome do método e a lista de parâmetros. O corpo do método é colocado entre chaves.
Buscando o exemplo da classe pessoa:
//
public void gastar(double valor) { // Corpo
dinheiroNaCarteira -= valor;
}
O corpo do método pode conter declarações de variáveis e comandos. As variáveis não ficam restritas a declaração somente antes dos comandos, como acontece em C ou em um local pré-determinado como em Pascal, ao contrário, podem ser declaradas em qualquer lugar. O tipo de retorno de um método pode ser primitivo ou de referência, ou como no método main, pode ser void, ou seja, não retorna nada.
Em Java todos os argumentos são passados por valor. Não existe passagem por referência. Se for variável primitiva o valor da variável é passada no parâmetro e pode ser alterada a vontade dentro da função que nada sofrerá a variável externa. Com objetos o que muda é que o valor passado no parâmetro da função é a referência para o objeto, ou seja, se um objeto for alterado dentro da função, o objeto externo também será alterado, exceto nas instruções objeto = null;
São só algumas dicas, não de minha autoria, mas ajudam.
Depois volto com um pouco de Interfaces.
valeu, fuiiiiiii
O que é?
O avanço das tecnologias na área de análise, projeto, desenvolvimento e qualidade de software permite que aplicações mais flexíveis e poderosas sejam construídas. A necessidade de integrar estas aplicações criou uma nova metodologia de análise e desenvolvimento: a Orientação à Objetos.
A Orientação à Objetos modela o mundo real com classes e instâncias. Cada classe é a estrutura de uma variável, ou seja, um tipo de dado. Nela, são declarados atributos e métodos que poderão ser executados ou acessados nas instâncias da mesma classe. As classes possuem uma função muito importante na modelagem orientada a objetos, elas dividem o problema, modularizam a aplicação e baixam o nível de acoplamento do software.
Variáveis de uma classe são chamadas de instâncias de classe. Por exemplo: Se existe uma classe Pessoa existe a instância (variável) pessoa que é do tipo Pessoa. Um Objeto, ou instância, é uma entidade cujas informações podem incluir desde suas características até suas atividades, ou seja, uma abstração de um domínio de um problema.
Abaixo há uma série de definições sobre a arquitetura de orientação a objetos em Java.
* Pacote: Conjunto de classes e demais arquivos que possuem interesses comuns ou atuam com dependências entre si. Fisicamente são pastas do sistema operacional.
* Instância, objeto: Uma variável do tipo de uma classe.
* Construtor: Responsável por iniciar a criação e inicialização de uma instância de classe.
* Método: Funções referenciados aquela classe.
* Modificador de acesso: Descreve que outras classes podem ter acesso a classe que está se criando. Também é usado para indicar que uma classe pode ser acessada de fora de seu pacote.
* Hierarquia de classes: Um grupo de classes que estão relacionadas por herança.
* Superclasse: É a classe que é estendida por uma determinada classe.
* Subclasse: É a classe que estende determinada classe.
* Classe base: A classe de determinada hierarquia que é uma superclasse de todas as outras classes. A classe? pai de todas?
Criando a primeira classe
Nesta apostila já foram criadas várias classes demonstrando outras funcionalidades da linguagem. Nos exemplos anteriores todo o código que continha um public class declarava uma classe. Porém, os exemplos anteriores tinham propósitos de explicar cada tópico, e portanto não faziam muito sentido. Neste exemplo, será construído uma classe Pessoa, que manterá os dados e as ações relativas aos dados de pessoa.
public class Pessoa {
String nome;
Date nascimento;
double dinheiroNaCarteira;
public Pessoa(String nome, Date nasc) {
this.nome = nome;
this.nascimento = nasc;
}
public void gastar(double valor) {
dinheiroNaCarteira -= valor;
}
public void receber(double valor) {
dinheiroNaCarteira += valor;
}
}
A classe pública Pessoa acima possui três variáveis, também chamados de atributos de instância: nome, nascimento, dinheiroNaCarteira. Esses atributos serão criados a cada nova instância de Pessoa que existir no sistema. Há, também, dois métodos: gastar (double valor) e receber (double valor). Eles retiram e incluem dinheiro na carteira da Pessoa respectivamente.
Entre eles existe a definição de um construtor: public Pessoa (String nome, Date nasc). O construtor é um método sem retorno, invocado quando ocorre a criação de um Objeto. Esta classe pessoa só pode ser criada passando dois parâmetros: o nome e a data de nascimento. Se este método não existisse, o java criaria um construtor padrão, sem parâmetros, para que a classe possa ser instanciada.
Algumas classes precisam evitar ser instanciadas, para ter essa proteção cria-se um construtor privado que não recebe parâmetro e também não possui corpo. É construído para evitar que o Java crie o construtor default.
Não é necessário definição de atributos, métodos ou construtores para que uma classe possa ser compilada. A declaração abaixo é válida, o javac compila corretamente e pode-se criá-la na aplicação, mesmo que sem nenhum método, construtor ou atributo:
public class NãoFazNada { }
O código abaixo usa a classe Pessoa como um exemplo de aplicação Orientada a Objetos.
// Cria uma classe que formata datas.
// É capaz de formatar de String para uma
// Date e de um Date para um String.
SimpleDateFormat formatador =
new SimpleDateFormat("dd/MM/yyyy");
// Cria um Objeto de Pessoa.
Pessoa pVitor;
pVitor = new Pessoa("Vitor Fernando Pamplona",
formatador.parse("07/11/1983"));
// Vitor Recebeu 1000 reais
// Inclui R$ 1000 na carteira da
// pessoa p criada na linha anterior
pVitor.receber(1000.00);
Primeiramente é criado um formatador de datas para que se possa converter uma data formatada em String em um tipo Date do Java. Este formatador é uma instância da classe SimpleDateFormat e, como qualquer outra criação de objeto, usa o comando new para criar uma instância.
Na linha seguinte, existe a declaração da variável pVitor que é da classe Pessoa. Esta variável ainda não está criada, portanto o valor que ali se encontra é null. Após, é criado a variável, ou melhor, a instância da classe Pessoa, com escopo do método. Esta instância já é inicializada com o nome Vitor Fernando Pamplona e a data de nascimento 07 / 11 / 1983. Na linha abaixo é invocado o método receber da classe Pessoa passando como parâmetro o double 1000.00.
Modificadores
Em Java existem uma série de palavras-chave que se comportam como modificadores de classes, métodos e atributos. Alguns desses modificadores já foram usados nesta apostila como a palavra-chave public, por exemplo. Um modificador pode ser utilizado antes da palavra class, antes do retorno de um método ou antes da declaração de um atributo.
Abaixo segue uma tabela com todos os modificadores de acesso do Java. A ordem de declaração dos modificadores não importa.
Palavra-chave Em uma classe Em um m étodo Em um atributo
public Acesso total Acesso total Acesso total.
private Não aplicável Acesso pela classe Acesso pela classe
protected Não aplicável Acesso pelo pacote Acesso pelo pacote
default Somente pacote Acesso pelo pacote Acesso pelo pacote
abstract Não instância Deve ser sobrescrito Não aplicável.
final Sem herança Não pode ser sobrescrito CONSTANTE..
static Não aplicável Acesso pela classe Acesso pela classe
native Não aplicável Indica código nativo Não aplicável
transient Não aplicável Não aplicável Cache
synchonized Não aplicável Sem acesso simultâneo. Não aplicável
Métodos
Um método em Java é uma sub-rotina semelhante as funções de C e Pascal. Os métodos têm um retorno e podem conter parâmetros. A Sintaxe de um método é a seguinte:
[modif]
}
Ao declarar um método é possível adicionar modificadores, vistos na seção anterior, antes de informar o tipo de retorno. O modificador estático declara que o método terá um determinado tipo de comportamento dentro do programa orientado a objetos. Na declaração de um método os modificadores precedem o tipo de retorno, que precede o nome do método e a lista de parâmetros. O corpo do método é colocado entre chaves.
Buscando o exemplo da classe pessoa:
//
public void gastar(double valor) { // Corpo
dinheiroNaCarteira -= valor;
}
O corpo do método pode conter declarações de variáveis e comandos. As variáveis não ficam restritas a declaração somente antes dos comandos, como acontece em C ou em um local pré-determinado como em Pascal, ao contrário, podem ser declaradas em qualquer lugar. O tipo de retorno de um método pode ser primitivo ou de referência, ou como no método main, pode ser void, ou seja, não retorna nada.
Em Java todos os argumentos são passados por valor. Não existe passagem por referência. Se for variável primitiva o valor da variável é passada no parâmetro e pode ser alterada a vontade dentro da função que nada sofrerá a variável externa. Com objetos o que muda é que o valor passado no parâmetro da função é a referência para o objeto, ou seja, se um objeto for alterado dentro da função, o objeto externo também será alterado, exceto nas instruções objeto = null;
São só algumas dicas, não de minha autoria, mas ajudam.
Depois volto com um pouco de Interfaces.
valeu, fuiiiiiii
Greetings from Finland. This blog is a fun, through access to other countries, people, culture and nature. Come see Teuvo pictures on my blog. Tell your friends why he must visit Teuvo pictures on my blog. Therefore, to obtain your country's flag rise higher Teuvo blog pictures of the flag collection. Have a wonderful weekend Teuvo Vehkalahti Finland
ResponderEliminar