Вы находитесь на странице: 1из 10

Curso Java Bsico

1 Histria rpida do Java

O Java uma linguagem baseada no C++, seu desenvolvimento teve inicio em 1991 com a Sun Microsystem em um projeto de codinome Green. O criador da linguagem James Gosling a chamou de Oak em homenagem a uma arvore que ele via da janela de seu escritrio. Mas tarde descobriu-se que j existia uma linguagem com esse nome, o nome java foi sugerido por acaso quando a equipe visitava a cafeteria (java era o nome de uma cidade de origem de um caf importado). Durante algum tempo o projeto passou por dificuldades por causa da falta de mercado, pois o mercado produtos eletrnicos que era o principal foco da linguagem no estava crescendo como esperando, porm aps a grande popularidade alcanada pela internet em 1993, a Sun viu o grande potencial que o java tinha para criar paginas mais dinmicas. A Sun anunciou formalmente o Java em 1995, e hoje uma das linguagens mais populares do mundo, sendo usada para construir paginas web, sistemas para PC, celulares, palms e todo tipo de dispositivos moveis.

2 Vantagens do Java

A tecnologia Java Free, o custo quase totalmente zero, como j foi explicado anteriormente, os editores e ambientes de produo tambm so gratuitos (NetBeans, Eclipse, Jcreator, entre outros.) e ainda tem a gratuidade dos Servidores de Aplicao (TomCat, Jboss, Jetty e outros.). A Linguagem Orientada a Objetos (OO), segue o paradigma OO, o que a torna uma ferramenta extremamente poderosa. E tambm MultiThreaded, o que significa dizer que ela suporta processamento paralelo mltiplo. Possui portabilidade, onde o mesmo cdigo Java roda em diversas plataformas sem a necessidade de alterao de cdigo e as aplicaes podem ser facilmente migradas entre servidores. Tornado desnecessrio ficar preso a somente um fabricante.

Java padronizada e ma i

.A

JCP mantida por diversas empresas: Sun, Oracle, IBM, Novell, Xerox. Pelo fato de Java ser OO, possvel fazer reuso de cdigo j produzido. E o suporte dado a Tecnologia Java satisfatrio, pois a comunidade Java, hoje, a mais extensa. Existem inmeros JUGs (Java User Groups), que promovem eventos, disponibilizam material, artigos, revistas especializadas e frum de discusses. E ainda possvel graas a otimizaes como a compilao especulativa, que aproveita o tempo ocioso do processador para pr-compilar bytecode para cdigo nativo. Outros mecanismos ainda mais elaborados como o HotSpot da Sun, que guarda informaes disponveis somente em tempo de execuo para otimizar o funcionamento da JVM, isso possibilita que a JVM v h h . I i

presente que hoje fcil encontrar programas corporativos e de misso crtica usando tecnologia Java. No Brasil, por exemplo, a maioria dos Bancos utiliza a tecnologia Java para construir seus home banks, que so acessados por milhares de usurios diariamente. Grandes sites como o eBay utilizam Java para garantir alta performance. E a cada ano Java tem se tornado mais rpido, na medida em que se evolui o compilador dinmico.

3 A plataforma Java

O universo Java um vasto conjunto de tecnologias, composto por trs plataformas principais que foram criadas para segmentos especficos de aplicaes:

Java SE (Java Platform, Standard Edition). a base da

plataforma; inclui o ambiente de execuo e as bibliotecas comuns.

Java EE (Java Platform, Enterprise Edition). A edio voltada para

o desenvolvimento de aplicaes corporativas e para internet.

Java ME (Java Platform, Micro Edition). A edio para o

desenvolvimento de aplicaes para dispositivos mveis e embarcados. Alm disso, pode-se destacar outras duas plataformas Java mais especficas:

Java Card. Voltada para dispositivos embarcados com limitaes

de processamento e armazenamento, como smart cards e o Java Ring.

JavaFX.

Plataforma

para

desenvolvimento

de

aplicaes

multimdia em desktop/web (JavaFX Script) e dispositivos mveis (JavaFX Mobile).

4 Objetos

Objetos so instncias de classes. atravs deles que (praticamente) todo o processamento ocorre em sistemas implementados com linguagens de programao orientadas a objetos. O uso racional de objetos, obedecendo aos i i i i x i i . onforme estabelecido no paradigma de

desenvolvimento orientado a objetos, chave para o desenvolvimento de

Um objeto um elemento que representa, no domnio da soluo, alguma entidade (abstrata ou concreta) do domnio de interesse do problema sob anlise. Objetos similares so agrupados em classes. No paradigma de orientao a objetos, tudo pode ser potencialmente representado como um objeto. Sob o ponto de vista da programao orientada a objetos, um objeto no muito diferente de uma varivel normal. Por x , q -se uma varivel do tipo int em uma linguagem de

programao como C ou Java, essa varivel tem:

um espao em memria para registrar o seu estado (valor); um conjunto de operaes que podem ser aplicadas a ela, atravs dos i i g g q i i i .

5 Classes, Atributos e Mtodos

Classes Uma classe um gabarito para a definio de objetos, atravs da definio de uma classe, descreve-se que propriedades -- ou atributos -- o objeto ter. Alm da especificao de atributos, a definio de uma classe descreve tambm qual o comportamento de objetos da classe, ou seja, que funcionalidades podem ser aplicadas a objetos da classe. Essas funcionalidades so descritas atravs de mtodos. Um mtodo nada mais que o equivalente a um procedimento ou funo, com a restrio que ele manipula apenas suas variveis locais e os atributos que foram definidos para a classe.

Atributos

O conjunto de propriedades da classe. Para cada propriedade, especifica-se:


nome: um identificador para o atributo. tipo: o tipo do atributo (inteiro, real, carter, etc.) valor_default: opcionalmente, pode-se especificar um valor inicial

para o atributo.

visibilidade: opcionalmente, pode-se especificar o quo acessvel

um atributo de um objeto a partir de outros objetos. Valores possveis so:

- (privativo), + (pblico),

nenhuma visibilidade

visibilidade externa total;

externa; e

# (protegido), visibilidade externa limitada.

Mtodos

O conjunto de funcionalidades da classe. Para cada mtodo, especifica-se sua assinatura, composta por:

nome: um identificador para o mtodo. tipo: quando o mtodo tem um valor de retorno, o tipo desse valor. lista de argumentos: quando o mtodo recebe parmetros para

sua execuo, o tipo e um identificador para cada parmetro.

visibilidade: como para atributos, define o quo visvel um

mtodo a partir de objetos de outros classes.

6 Utilizao das APIs

Um dos grandes atrativos da programao orientada a objetos a possibilidade de adaptar funcionalidades oferecidas em classes existentes s necessidades de cada aplicao. Java, no

diferentemente, oferece essa facilidade, aliando-a ao oferecimento de um amplo conjunto de classes organizadas nos pacotes da API padro. Para oferecer um primeiro contato com essa API,

apresentando como essas funcionalidades podem ser usadas nas aplicaes sendo desenvolvidas em Java, algumas classes dos pacotes java.io ejava.util sero estudadas, respectivamente para a realizao de operaes de entrada e sada e para a manipulao de colees de dados.

7 Polimorsmo

i i i

ou mais classes derivadas de i i , especializados para

uma mesma superclasse podem invocar mtodos que tm a mesma

cada classe derivada, usando para tanto uma referncia a um objeto do tipo da superclasse. Esse mecanismo fundamental na programao orientada a bj , ii i funcionalidades que operem genericamente com

objetos, abstraindo-se de seus detalhes particulares quando esses no forem necessrios. q x , i iz i q j i i i if i i i i i b utilizado, necessrio que os i ; i i g. g h

Esse mecanism

de mtodos, onde as listas de argumentos so diferentes. N a , q i i i iz b i i i , i f i bj i i i i q

estar sendo referenciado como sendo um objeto da superclasse. Se esse for o caso, o mtodo que deve ser selecionado o da classe derivada e no o da superclasse. Dessa forma, a deciso sobre qual dos mtodos mtodo que deve ser selecionado, de acordo com o tipo do objeto, pode ser tomada apenas em tempo de execuo, atravs do mecanismo de ligao tardia. O mecanismo de ligao tardia tambm conhecido pelos termos em ingls late binding, dynamic binding ou ainda run-time binding.

8 Composio e Herana

Herana Herana a capacidade de especializar tipos de objetos (classes), de forma que os tipos especializados contenham, alm de caractersticas estruturais e c definidas para eles prprios. A especializao pode ser feita tanto a partir de classes j construdas pelo prprio programador, como por classes de terceiros ou classes-padro da linguagem Java. Ou seja, uma caracterstica da linguagem Java que qualquer objeto que no herde explicitamente de outra classe, automaticamente ser subclasse direta de java.lang.Object, que a superclasse no nvel mais alto da linguagem. i j fi i i ,

Forma: Tipo especializado tipo ancestral um tipo de tipo ancestral.

A especializao pode ser feita tanto a partir de classes j construdas pelo prprio programador, como por classes de terceiros ou classes-padro da linguagem Java.

Herana Mltipla Ah E i , f ig ifi i i i q h .

caractersticas de mais de uma classe ao mesmo tempo. Li g g g ++ i ecurso, embora Java

no o permita diretamente. i q h j h i i i f .

Construtores em subclasses

A subclasse AviaoRadar define um construtor prprio, com o intuito de inicializar os seus prprios atributos. Quando h herana entre classes, ao se criar um objeto da classe derivada, este contm um subobjeto de sua superclasse. Isto significa que este sub-objeto equivalente a criar um objeto puro desta superclasse. AviaoRadar contm um sub-objeto de Aviao.

Composio

a tcnica de construir um tipo no pela derivao partindo de outra classe, mas pela juno de vrios outros objetos de menor complexidade que fornecem ao objeto composto determinada funcionalidade quando em conjunto.

Forma: Tipo composto tipo fundamental ou tipo composto formado por tipo fundamental ou tipo composto.

No h nenhuma palavra-chave ou recurso especial para utilizar composio em Java, visto que esta tcnica nada mais do que um modo particular, para cada situao, de agrupar classes existentes de forma a criar novas classes com novas funcionalidades em determinado arranjo.

Exemplo de composio

Carro composto {Motor, Som, Pneu, Chassi}

Interfaces

i b

fi i b

b hi

. q i

derivadas, podendo implementar parte do cdigo comum a todas elas. A q pode implementar parte do cdigo, uma classe

abstrata no pode ser instanciada. Ai derivada. i f i