Web - Programacao Java 02
Web - Programacao Java 02
ricardo@cefetpi.br
Outubro 2006
Linguagem de Programação Java 2
3.0 - Introdução
“Paradigma é um conjunto de regras que estabelecem fronteiras e
descreve como resolver os problemas dentro destas fronteiras. Os paradigmas
influenciam nossa percepção; ajudam-nos a organizar e a coordenar a maneira
como olhamos para o mundo...”
A POO (Programação Orientada a Objetos) é o paradigma de
programação predominante dos dias atuais, tendo substituído as técnicas de
programação baseada em procedimentos, “estruturadas”, que foram
desenvolvidas nos anos 70.
A programação tradicional estruturada consiste em projetar um conjunto
de funções para resolver um problema. (Essas funções são geralmente
chamadas de algoritmos). O passo seguinte convencional é encontrar a forma
apropriada de armazenar os dados. É por isso que o criador do Pascal original,
Niklaus Wirth, chamou seu famoso livro de Algoritmos + Estrutura de Dados =
Programas (Algorithms + Data Structures = Programs, Prentice Hall, 1975).
Observe que no título do livro de Wirth, os algoritmos vinham antes e as
estruturas de dados depois. Isso imitava a forma com que os programadores
trabalhavam naqueles tempos. Primeiro, decidia-se como manipular os dados;
depois, que estrutura impor aos dados a fim de tornar mais fácil o
processamento. A POO inverte essa ordem e coloca as estruturas de dados em
primeiro lugar, examinando depois os algoritmos que vão processar os dados.
Orientação a Objetos
O termo orientação a objetos significa organizar o mundo real como uma
coleção de objetos que incorporam estrutura de dados e comportamento.
Linguagens de Programação Orientada a Objetos: Simula, Smalltalk, Flavours,
Objective C, C++, etc.
Linguagem de Programação Java 3
3.1.1 Classes
Uma classe é geralmente descrita como o modelo ou a forma a partir da
qual um objeto é criado.
Usamos as classes para construir objetos, o que é chamado de
instanciação. E os objetos consistem a essência da programação orientada a
objetos (ou OOP, do inglês Object-Oriented Programming). Falando
intuitivamente, as classes são uma maneira de organizar um conjunto de
dados e designar todos os métodos necessários para usar ou alterar esses
dados.
Semáforo
Dados luzAcesa
Métodos Main(String[] args)
Alternar()
Modificadores
Ao declarar uma nova classe, é possível especificar um dos seguintes
modificadores:
- public: permite definir classes públicas. Estas classes são acessíveis a
partir de qualquer objeto, independentemente do package. Uma classe pública
deve ser a única classe desse tipo no arquivo em que está declarada e o nome
do arquivo deve ser igual ao da classe;
- friendly: se nenhum modificador de classe for especificado, então a
classe será considerada friendly. Apenas os objetos integrantes do mesmo
package podem utilizar uma classe friendly;
- final: uma classe final pode ser instanciada, mas não pode ser derivada,
isto é, não pode ser superclasse de nenhuma subclasse;
- abstract: classes abstratas são aquelas que contém ao menos um
método incompleto. Desse modo uma classe abstrata não pode ser
instanciada, mas pode ser derivada. Neste caso, a subclasse deve prover o
corpo do método para que possa ser instanciada. Isto é muito útil quando
desejamos definir em uma classe regras gerais para o comportamento de uma
parte do programa, para que, mais tarde, as regras mais específicas sejam
introduzidas por subclasses.
Exercício 1.2.
Empregado
Dados Nome
função
salario
Métodos Empregado(n,f,s)
print()
aumentarSalario(aumento)
3.1.4 Objetos
Quando se cria um objeto a partir de uma classe, diz-se que foi criada
uma instância da classe.
Objetos são pacotes de software compostos de dados e procedimentos
que atuam sobre estes dados. Os procedimentos são também conhecidos como
métodos e determinam o comportamento do objeto.
Linguagem de Programação Java 7
}
}
Linguagem de Programação Java 8
3.1.5 Construtores
Vamos examinar o primeiro método apresentado na classe Empregado:
public Empregado(String n, String f, double s)
{
nome = n;
funcao = f;
salario = s;
}
empregado1.aumentarSalario(450);
// acionando o método aumentarSalario para o objeto definido em
//empregado1
empregado1.print;
}
}
Exercício 1.5
public Ponto()
{
setPonto( 0, 0 );
}
{
return "O ponto tem x = " + x + ", e y = " + y;
}
class TestaPonto
{
public static void main(String args[])
{
Ponto meuponto;
meuponto.setponto(10,23);
System.out.println(meuponto.posicao());
}
}
classe. Nesse caso, apenas esse método específico requer o uso do this se
quiser fazer referência ao campo da classe;
- Quando uma classe precisa passar uma referência de si própria a um
método.
Há um outro significado para a palavra-chave this. Se o primeiro
elemento de um construtor tiver a forma this (...), então o construtor chama
outro construtor da mesma classe.
Exemplo.
public Ponto()
{
this( 0, 0 );
}
Exercício 1.7. Obs: Criar um arquivo com nome TestaPonto que possua
as duas classes abaixo. Identifique e corriga o(s) erro(s)
p1.mover(3,25);
p2.mover(1,14);
System.out.println(p1.distancia(p2));
}
}
y = b;
}