Diversos, Java

Introdução a Orientação a Objetos – Segunda parte

Classes:

As classes são os verdadeiros elementos da orientação a objetos. Uma classe descreve um tipo contendo sub-rotinas (ou métodos) e dados. Como uma classe descreve um tipo, pode-se construir variáveis que contem tanto métodos quanto variáveis. Tais variáveis são os objetos. Os objetos diferem das variáveis das linguagens de programação procedimentais porque podem definir o modo como os dados podem ser alterados. As sub-rotinas nas linguagens orientadas a objetos diferem de seus equivalentes nas linguagens procedimentais pois elas têm um conjunto de dados (os membros de dados definidos na mesma classe), o qual elas podem alterar, mas os outros métodos não.

A classe é o ponto de partida da programação orientada a objetos. São elas que fornecem modelos para a especificação do estado e do comportamento de um objeto durante a execução. Um objeto é reconhecido como uma instância de uma classe.

Uma classe é constituída de atributos e métodos. Um atributo pode ser visto como uma qualidade ou característica da classe. Por exemplo, a classe Funcionário, terá os seguintes atributos: nome, idade, sexo, etc. Já os métodos são os serviços que uma classe pode oferecer. Para este caso, Funcionário, poderia-se ter: calcularSalario, calcularHorasExtras, etc.

Definição de classes em Java:

Em Java, classes são definidas através do uso da palavra-chave class. Para definir uma classe, utiliza-se a construção:

[modif] class NomeDaClasse {
// corpo da classe…
}

A primeira linha é um comando que inicia a declaração da classe. Após a palavra-chave class, segue-se o nome da classe, que deve ser um identificador válido para a linguagem. O modificador modif é opcional; se presente, pode ser uma combinação de public e abstract ou final.

A definição da classe propriamente dita está entre as chaves { e }, que delimitam blocos na linguagem Java. Este corpo da classe usualmente obedece à seguinte seqüência de definição:

1. As variáveis de classe, public, protected, e private.
2. Os atributos (ou variáveis de instância) dos objetos dessa classe, seguindo a mesma ordenação definida para as variáveis de classe.
3. Os construtores de objetos dessa classe.
4. Os métodos da classe, geralmente agrupados por funcionalidade.

Toda classe pode também ter um método main associado, que será utilizado pelo interpretador Java para dar início à execução de uma aplicação.

Java também oferece outra estrutura, denominada interface, com sintaxe similar à de classes mas contendo apenas a especificação da funcionalidade que uma classe deve conter, sem determinar como essa funcionalidade deve ser implementada.

Exemplos de código:

Método main:

O método main é onde o programa inicia. Pode estar presente em qualquer classe. Os parâmetros de linha de comando são enviados para a array args[], do tipo String.

public class OlaMundo {
public static void main(String args[]) {
System.out.println(“Olá, Mundo!”);
}
}

Criação de classes:

Exemplo:

public abstract class Animal {
public abstract void fazerBarulho();
}

public class Cachorro extends Animal {
public void fazerBarulho() {
System.out.println(“AuAu!”);
}
}

public class Gato extends Animal {
public void fazerBarulho() {
System.out.println(“Miau!”);
}
}

O exemplo acima cria a classe Animal e duas classes derivadas de Animal.

Java não suporta herança múltipla.

Herança Múltipla é o principio, implementado em algumas linguagens de programação orientadas a objetos, que possibilita o compartilhamento de atributos e operações de duas ou mais classes em uma subclasse.

Ela é implementada nas linguagens de programação C++ e em Python, por exemplo. A linguagem Java possui apenas herança simples (uma classe possui no máximo uma classe pai), mas permite que uma classe implemente várias interfaces.

O uso indiscriminado desta característica pode levar a uma codificação confusa que dificultaria a manutenção do código.

Todas as classes em Java derivam de Object.

Classes internas:

Java pode ter classes internas.

Exemplos:

public class Cavalo extends Animal {
public void fazerBarulho() {
System.out.println(“RIINCH!”);
}

//Classe interna e privada. Existe só no contexto do cavalo.
private class Parasita extends Animal {
public void fazerBarulho() {
System.out.println(“SQRRT”);
}
}
}

Objetos e classes anônimos:

Podemos ter também objetos e ou classes anônimas.

exemplo:

public class MostraBarulho {
public static void main(String args[]) {
new Cavalo().fazerBarulho(); //Objeto anônimo.

//Abaixo um objeto e classe anônimos!
new Animal() {
public void fazerBarulho() {
System.out.println(“QUAC!”);
}
}.fazerBarulho();
}
}

Interfaces:

Uma interface modela um comportamento esperado. Pode-se entendê-la como uma classe que contenha apenas métodos abstratos. Embora uma classe não possa conter mais de uma superclasse, a classe pode implementar mais de uma interface.

Exemplo:

public interface Pesado {
double obterPeso();
}

public interface Colorido {
Color obterCor();
}

public class Porco extends Animal
implements Pesado, Colorido {
public void fazerBarulho() {
System.out.println(“Óinc!”);
}

//Implementação da interface Pesado
public double obterPeso() {
return 50.00;
}

//Implementação da interface Colorido
public Color obterCor() {
return Color.BLACK;
}

//Um método só do porco
public boolean enlameado() {
return true;
}
}

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s