Upload
vonhu
View
227
Download
0
Embed Size (px)
Citation preview
Universidade do Vale do ParaíbaColégio Técnico Antônio Teixeira Fernandes
Disciplina Programação Orientada a Objetos - III
Material I-Bimestre
Fundamentos da linguagem Java (Programação Orientada a Objetos)
Site : http://www1.univap.br/~wagner
Prof. Responsável
Wagner Santos C. de Jesus
Introdução a Linguagem Java
LinguagemJava temorigemcomnome
Inspirado emuma xícara de café quente por
durante as fases de projeto da linguagemos
programadores tomavammuito café.
Símbolo Mascote
Aplicações
• Genéricas (comercial ou científica)
• Criação de servidores (redes)
• Criação de Interfaces para jogos
• Criação de Framewoks
• Criação de softwares para área de Biociências.
• Criação de softwares para celulares
• Criação de softwares embarcados
A Linguagem Java
• Desenvolvida nadécada de 90 por umaequipe deprogramadoreschefiada por JamesGosling, na empresaSun Microsystems.
Programador Canadense Foto 2005
Os mentores do projeto eram Patrick Naughton, Mike Sheridan, e James Gosling.
Histórico sobre (Java)
A linguagemJava se tornou oficial a todo omundo em1995, depois que a Netscape alicenciou para o uso do navegadorNavigator. Atualmente existemoutrasopções para a Web mais quando alinguagemJava foi criada ela revolucionoua natureza de páginas na web. Os (Applets)Java. Essa linguageme um produto criadopela empresa norte americanaSunMicrosystem.
As ferramentas de programação Rad (Desenvolvimento Rápido de Aplicações) para Java.
• Jbuilder empresa (Borland)• Forte empresa (Sun) FreeWare• SunSoft (Sun)• Java WorkShop (sun)• JDK, JSDK (Sun) FreeWare (*)• Visual Café (Symantec)• VisualAge for Java (IBM)• LJ-Java (Colégio Técnico A.T.F.) Univap - 2002
Principais Características da Linguagem Java• A linguagem Java foi projetada tendo em vista os seguintes objetivos:• Orientação a objeto- Baseado no modelo de Smalltalk e Simula67; • Portabilidade - Independência de plataforma -"write once run anywhere"; • Recursos de Rede - Possui extensa biblioteca de rotinas que facilitam a
cooperação com protocolos TCP/IP, como HTTP e FTP; • Segurança - Pode executar programas via rede com restrições de execução; • Além disso, podem-se destacar outras vantagens apresentadas pela linguagem:• Sintaxe similar a Linguagem C/C++ e principalmente, a C#. • Facilidades de Internacionalização - Suporta nativamente caracteres Unicode; • Simplicidade na especificação, tanto da linguagem como do "ambiente" de
execução (JVM); • É distribuída com um vasto conjunto de bibliotecas (ou APIs); • Possui facilidades para criação de programas distribuídos e multitarefa
(múltiplas linhas de execução num mesmo programa); • Desalocação de memória automática por processo de coletor de lixo (garbage
collector); • Carga Dinâmica de Código - Programas em Java são formados por uma
coleção de classes armazenadas independentemente e que podem ser carregadas no momento de utilização.
Um programa Java atinge essa independência através de um recurso denominado como Máquina Virtual Java(JVM).
Exemplo : Um programa tradicional Compilado.(Delphi)
----------------
---------------------------
Seu Código(Delphi) Compilador
Windows
Compilador Mact.
CompiladorLinux
Arquivo BinárioWindows
Arquivo BinárioMact.
Arquivo BinárioLinux
O que (JVM)
O termo emJava para representar umprocesso parecido como de cima mais deforma que qualquer plataforma consigaentender e executar suas instruções échamado deByteCode.(Que vema ser amáquina virtual Java). Que é conhecidacomo interpretador Java ou runtimeJava.
Javac hello.java
Hello.class
SOByte Code Verifier
Code Generator
hardware
Class Loader
interpretador
RunTime
Compile Runtime
Funcionamento da JVM
O que é o ByteCode
Obs : O bytecode é semelhante ao código demáquina produzido por outras linguagens,mas ele não é específico de nenhumprocessador. Ele acrescenta umnível entre ocódigo-fonte e o código de Máquina.
Programa Multiplataforma da Linguagem Java.
----------------
---------------------------
Código Java
Compilador Java
Bytecode Java(Independente
da Plataforma)
Interpretador Java(Windows)
Interpretador Java(Mac)
Interpretador Java(Linux)
A linguagem Java é Orientada a Objetos.
A programação Orientada a Objetos -Também chamada(OOP) é ummodo deconceituar umprograma de computadorcomo um conjunto de objetos que seinteragem. Para alguns, ela é apenas ummodo de organizar programas emqualquerlinguagem pode ser usada para criarprogramas orientados a objetos.
Classe
Vem a ser uma estrutura de dados criada para dar origem ou modelar um objeto.
Carro
Propriedades
Marcha
FreioEmbreagemMotor
Método :
Método vem a ser um grupo deinstruções emuma classe que define comoos objetos da classe se comportarão. Osmétodos são análogos às funções emoutraslinguagens.
Método da classe carro
Devem ser descritos comuma ação(verbo) que podemcontrolar o estado doobjeto.
Exemplo :
Mudar_Marcha(estado_marcha)
Marcha = estado_marcha{0,1,2,3,4....}
Freiar_carro(estado_freio)
Freio = estado_freio{true,false}
Estrutura de uma classe
Carro
Propriedades
Marcha
FreioEmbreagemMotor
Métodos
Mudar_Marcha(..)
Freiar_Carro(..)
Objetos
É uma instância de uma classe. Umobjeto é capaz de armazenar estados atravésde seus atributos e reagir a mensagensenviadas a ele, assimcomo se relacionar eenviar mensagens a outros objetos.
Exemplo de objeto
Carroobj_carro1= Carro ()
Carroobj_carro2= Carro ()
obj_carro1.Freiar_carro(true)
obj_carro1.Mudar_Marcha(3)
obj_carro2.Freiar_carro(false)
Herança
Herança (ou generalização) é o mecanismopelo qual uma classe (sub-classe) pode estenderoutra classe (super-classe), aproveitando seuscomportamentos (métodos) e variáveis possíveis(atributos). Há Herança múltipla quando umasub-classe possui mais de uma super-classe. Essarelação é normalmente chamada de relação "éum". Um exemplo de herança: Mamífero é super-classe de Humano. Ou seja, umHumanoé ummamífero.
Polimorfismo
Polimorfismo é o princípio pelo qual duas ou maisclasses derivadas de uma mesma superclasse podeminvocar métodos que têma mesma assinatura (lista deparâmetros e retorno) mas comportamentos distintos,especializados para cada classe derivada, usando para tantouma referência a umobjeto do tipo da superclasse. Adecisão sobre qual o método que deve ser selecionado, deacordo como tipo da classe derivada, é tomada emtempode execução, através do mecanismo de ligação tardia. Nocaso de polimorfismo, é necessário que os métodos tenhamexatamente a mesma identificação, sendo utilizado omecanismo de redefinição de métodos. Esse mecanismo deredefinição não deve ser confundido como mecanismo desobrecarga de métodos.
Polimorfismo
Podem haver implementações diferentes para o mesmo método.
Cachorro
Animal
Gato Cavalo
Barulho()
Barulho()
Latir
Barulho()
Miar
Barulho()
Relinchar
Polimorfismo ou sobrecarga parâmetros
:
:
Mudar_Marcha(bool estado_marcha)
:
:
Mudar_Marcha(char estado_marcha)
:
:
Definindo um programa em Java
Classes :
Todo programa na linguagemJava é uma classeque permite nela atribuir métodos e objetospertencentes a ela.
Uma classe vema ser ummodelo para o objeto quecontémvariáveis para descrevê-los e métodos paradescrever como eles se comportam. As Classespodem herdar variáveis e métodos de outrasclasses.
Tipos Básicos
Os tipos básicos de dados emJava sãoString, (Alfanuméricos), int (númerosInteiros) e double (números comcasasdecimais) boolean(Operadores true, false).
Exemplo de declaração de tipos em Java.
String a = "null"; (Cria a variável a para receber umaString)
int x = 0; (Cria a variável x para receber um inteiro).boolean teste = true; (Cria a variável teste para receber
um boolean).
double lista = 2.3; (Cria a variável lista para receber umnúmero fracionário).
Obs : poderá ser criada a variável sematribuir valorespara a mesma emalguns casos.
Exemplo:String x;
Operadores Aritméticos do Java.
(+) - soma
(-) - Subtração
(*) - Multiplicação
(/) - Divisão
(%) - Módulo (Resto da Divisão)
Exemplo de Operações :
int a=3;
a *= 5; // multiplica o valor da variável apor 5 o resultado será 15.
int k = 3;
int j = 2;
int m = k % j; // O resto da divisão de três por2 é igual 1 portanto o resultado será 1.
Operadores Relacionais.
>- Maior que
< - Menor que
= = - Igual a ( somente para números)
!= - Diferente de
>= - Maior ou Igual
<= - Menor ou Igual
Operadores de Incremento e Decremento.
++ => Equivalente à x++/ x = x + 1_ _ =>Equivalente à y-- / y = y - 1
Estruturas de Controle da linguagem Java.
Em Java como emqualquer linguagemtemos as três estruturas básicas deprogramação são elas.
a) Condiçãob) Atribuiçãoc) Repetição
Se a for igual a 3. Exemplo.
b = a++ (O valor da variável b será 3 e davariável a = 4).
b = ++a ( O valor da variával b será 4 e davariável a = 4).
Obs : Idem para operação de subtração
if( ) - Analisa se uma condição é verdadeira ou falsa.
Sintaxe :
if (<condição>) {<Bloco de Instruções-1>
}else { <Bloco de Instruções-2> }
Obs : Em Java o símbolo ( { )- Representa Begin e ( } ) -Representa end
Exemplo : if()
int a = 1;if( a == 5)
System.out.println("Valor de (a) esta Correto");else
System.out.println("Valor de (a) esta Invalido !!!!");
Obs : A classe System.out.Println() permite imprimir umainformação no video.(saida padrão)
for ( ) - Cria uma repetição sequêncial mediante a uma condição.
Sintaxe :
for (<variável de inicialização>;< condição >;<variável de incremento>) {<Bloco de Instruções>
}
Observação Importante :Todos os comandos da linguagem Java devem estar escritos em letras
minúsculas.
Comandos break e continue.
Exemplo do comando break:
int a=1;while(a <= 5) {
if(a == 3)break;System.out.println(a);a++; }
Exemplo do comando continue:
int a=1;while(a <= 5) {
if(a = = 3) {a=1;continue;
}System.out.println(a);a++;
}
Usar a estrutura switch(), que corresponde ao case do delphi o select case VB.
switch(<Varm>) {case valor1 :
.....................break;
case valor2 :........................break;
case valor3 :........................break;
default :........................
}
Exemplo:
Exemplo. switch
switch(opcao) {
case 1 :System.out.println("UM");break;
case 2 :System.out.println("DOIS");break;
case 3 :System.out.println("TRÊS");break;
default :System.out.println("Nenhum desses números foi teclado !!!!");
}
Estrutura de um programa em Java
class :Declara uma classe emJava.
Como todo programa emJava vema seruma classe então toda a vez que formosescrever umprograma Java devemos usar ocomandoclassque declara uma classe.
Método
Por sua vez toda as classe são composta demétodos que realizamtarefas como noexemplo abaixo.
public static void main(String args[]) {::
}
• public - Onde a palavra chave publicsignifica que esse método será reconhecidopor todas as outras classes e métodos.(objetos)
• static - Significa que esse método não seránunca instânciado.
• void - Significa que o método não iráretornar nenhumvalor.
• main - Vem a ser o próprio método que éonde toda a aplicação escrita irá funcionar.
• args[] - Vem a ser umvetor criado peloJava automaticamente comparâmetrospassados pela linha de comandos esse vetorserá sempre do tipo String.
Exemplo de um programa Java para sercompilado emlaboratório.
class exemplo2 {public static void main(String args[]) {
System.out.println("Alo Mundo!!!!");}
}
Estudando o Vetor de parâmetros da Linguagem Java
• Em Java o métodomain() aceita umparâmetroque permite comque informações sejampassadasda linha de comandos direto para o programa esseargumento(Parâmetro) temo nome simbólico deargs[] mais pode ser alterado para qualquer outronome como qualquer outra variável.
• Obs : Esse argumento que deve ser passado para ométodomain() deve ser sempre uma String. Comojá foi visto.
Exemplo de execução de um programa Java com passagem de parâmetros
C:\java\aula\>java exemplo2 Maria Pedro
Na posição 0 como foi ilustrado na figuraacima existe a string maria e na posição 1do vetor a string pedro.
Exemplo : args[0] = "Maria"
args[1] = "Pedro"
Método : parseInt() - Converte uma string em número inteiro.
Exemplo :
String a = "123";int x = Integer.parseInt(a);
Converte o valor da String a = "123" para um
número inteiro.
Método : parseDouble() -Converte uma string em número ponto flutuante.
• Exemplo :
• String a = "123.75";• double x = Double.parseDouble(a);
• Converte o valor da String a = "123" para um número de ponto flutuante.
Formatando saídas:
printf ( ) – Método que realiza a formatação dos valores na saída padrão; Por intermédio do símbolo de porcentagem.
Sintaxe :
System.out.printf(“%<formato>”,<Varm>);
Formatos válidosFormato Tipo do Valor
%d Valor inteiro decimal
%f Valor em ponto flutuante
%c Caracter em formato ASCII
%s String de caracteres
%u Inteiro decimal sem sinal
%i Valor inteiro decimal
%o Valor inteiro octal
%x Valor inteiro hexadecimal
%% Caracter %
\n Pula uma linha após impressão
Exemplo :
double a = 2.2;
System.out.printf("%2.3f\n",a);
Resultado : 2,200
int b = 255;
System.out.printf("%4d\n",b);
Resultado : b255
b = Espaço em branco
int b = 255;
System.out.printf("%X\n",b);
Resultado : FF
System.out.printf("%o\n",b);
Resultado : 377
int ch = 97;
System.out.printf("%c\n",ch);
Resultado : a
double a = 2.2;
System.out.printf("%e\n",a);
Resultado : 2.20000e+00
System.out.printf("%d %2d %3d\n",3,5,7);
Resultado : 3bb5bbb7
String str1 = “ana”;System.out.printf("%s\n",str1);Resultado : ana
System.out.printf("%S\n",str1);Resultado : ANA
double a = 2.2;String st = “ana”;System.out.printf("%S %1.1f\n",st,a);Resultado : ANA 2,2
Escopo com variáveis
Quando umvariável emjava é declaradano interior de uma estrutura seus valores ereferências serão mantidos durante omomento emque a estrutura estiver sendoexecutada, depois disso essa variável nãomais terá finalidade para o programadevendo ser destruída, caso o programadortente usar essa variável logo após aexecução dessa estrutura o compilador irádetectar erro.
Variável : Permanência de valor
Variável
Estrutura de repetição
Estrutura de Condição
Variável
Permanece o valorda variável caso amesma estejadeclarada fora deuma estrutura.
Variável : Não Permanência de valor
Estrutura de repetição
Estrutura de Condição
Variável
Não Permanece ovalor da variávelcaso a mesma estejadeclarada fora deuma estrutura.
Variável
Não Existe essa variável
Exemplo : Variável Global
int a = 1;
for( int i=1;i<=10;i++) {
System.out.println(i);
}
System.out.println(i);
System.out.println(a);
Neste exemplo o compilador irá enviar um erro de sintaxe dizendo não reconhecer o símbolo (i), mas para a variável (a) estaria tudo correto.
Exemplo : Variável Globalclass teste{
public static void main(String args[]){
int i=1;for(;i<=10;i++) {
int a = 1;System.out.println(i);
}System.out.println(i); System.out.println(a);
}}
Neste exemplo o tratamento coma variável (i) estariacorreto, o funcionamento do programa estariacomprometido pela variável (a).
Criando Entrada de dados (padrão)
Importar o pacote util, indicando as classe Scanner; Apartir da versão (5.0)
Exemplo :
import java.util.Scanner;
Usando os métodos da classe Scanner.
Métodos Resultado
next() Realiza a leitura de uma string pelo teclado.
nextInt() Realiza a leitura de um inteiro pelo teclado.
nextDouble() Realiza a leitura de um ponto flutuante precisão dupla pelo teclado.
nextBoolean() Realiza a leitura de um boolean pelo teclado.
nextFloat() Realiza a leitura de um float pelo teclado.