1- Introdução à Linguagem Java

Post on 13-Feb-2016

293 views 1 download

description

Conceitos básicos da linguagem java

Transcript of 1- Introdução à Linguagem Java

Introdução à Linguagem Java

O que é JAVA?

Java é uma linguagem de programação orientada a objetos e desenvolvida pela Sun Microsystems na década de 90, que atualmente, pertence a Oracle.

Instalando o JAVAJava tem suporte para Windows, Mac e Linux.

http://www.oracle.com/technetwork/pt/java/javase/downloads/index.html

Classe JAVAClasse é a representação de um objeto, ela possui atributos e comportamentos (métodos). Uma classe pode ser utilizada para instanciar n objetos

Classe JAVA

Atributos

Métodos

Tipos de dados primitivosboolean Possui os valores true ou false.

char Unicode de 16 bits. Pode armazenar dados alfanúmericos.

byte Inteiro de 8 bits. Possui o range entre -27 = -128 e 27 - 1 = 127.

short Inteiro de 16 bits. Possui o range entre -215 = -32.768 e 215 - 1 = 32.767.

int Inteiro de 32 bits. Possui o range entre -231 = -2.147.483.648 e 231 - 1 = 2.147.483.647.

long Inteiro de 64 bits. Possui o range entre -263 e 263 - 1

float Números de ponto flutuante de 32 bits

double Números de ponto flutuante de 64 bits

Tipos de métodos e variáveisToda variável (incluindo atributos) e método em Java é tipada.O tipo pode ser primitivo ou um Objeto.Os métodos podem ter tipos de retorno ou serem void, quando não retornam nenhum valor após serem executados.

Construindo classesAs classes possuem construtores que quando invocados criam uma instância da sua classe.

Construindo classes

Construtor

Construindo classes

O linha new Carro() invoca o construtor da classe Carro, alocando memória para o objeto e inicializando os seus atributos.

Construindo classesA figura ao lado mostra como o objeto meuCarro é alocado na memória. meuCarro

Preto

GolModelo

Cor

PacotesToda classe em Java pertence a um pacote.Um pacote é um grupo de classes que tem funcionalidades similares no projeto.

PacotesPara utilizar classes de pacotes diferentes, é preciso utilizar os comandos de import.Ex: Para utilizar a classe Math do Java, deve-se importa-la com o comando:import java.lang.math

EscopoToda classe tem um escopo, que é delimitado por chaves {}. Isso siginifica que tudo que estiver dentro das chaves da classe pertence a ela.O mesmo vale para métodos, laços e condicionais.

Escopo

Inicio do escopo da classe

Fim do escopo da classe

Inicio do escopo do método

Fim do escopo do método

ExpressõesOperador Descrição

- (Unário) Negativa um Valor. Ex: -x

* Multiplicação

/ Divisão

+ Adição

- Subtração

% Módulo

Operadores ++ e --int x = 3; x++; // incrementa x em uma unidadex--; // decrementa x em uma unidade

Operador Ternário

(expressão booleana)? resultado se for true: resultado se for falseint x = 10; int y = 20;System.out.println(”O maior número é:” + x > y ? x : y);

Atribuição de variáveis

int x = 10; x += 10 // x = x + 10x -= 10 // x = x - 10 x *= 10 // x = x * 10x /= 10 // x = x / 10

Operadores Lógicos - And

A B A & B

V V V

V F F

F V F

F F F

And (&) ou (&&)

Operadores Lógicos - Or

A B A | B

V V V

V F V

F V V

F F F

And (|) ou (||)

Operadores Lógicos - XOr

A B A ^ B

V V F

V F V

F V V

F F F

And (^)

Operadores Lógicos - Not

A !A

V F

F V

Not (!)

boolean isOpen = true; isOpen := !isOpen; // inverte o valor de isOpen.

Estruturas condicionaisO Java possui estruturas de condição. São elas: if, switch

Estruturas condicionais - if

if (expresão booleana) { //ação executada quando a expressão é verdadeira. } else { //Executada quando a expressão não é verdadeira.}

Estruturas condicionais - If

Estruturas condicionais - switchswitch(identificador) {

case 1: //Ação para o caso 1;break;

case 2: //Ação para o caso 2; break;

default: //Ação executada quando nenhum caso é atendido

}

Estruturas condicionais - switch

Looping Forfor (contador ; condição ; incremento ) {

//Ação executada}

for (int i = 1; i < 10 ; i++ ) {

//código executado em loop}

Looping whilewhile (condição ) {

//Ação executada}

while (i < 10) {//código executado em loop

}

Looping do whiledo {

//Ação executada} while (condição);

do {//código executado em loop

} while (x > 10)

Looping for eachArrayList carros = new ArrayList();for (Carro carro : carros) {

}

Comando breakfor (int i = 0 ; i < 10 ; i++) {

if (i == 4) {break; // Finaliza todo o looping for.

}System.out.println("i: " + i);

}

Comando continuefor (int i = 0 ; i < 10 ; i++) {

if (i == 4) {continue; // Finaliza a iteração atual e vai para

a próxima}System.out.println("i: " + i);

}

Modificadores de Acesso

Java possui quatro modificadores de acesso: public, protected, private e default.

Esses modificadores podem ser utilizados tanto para métodos como para atributos

Modificadores de Acesso

Quando um atributo ou método é privado (private), apenas a própria classe consegue acessá-lo

Modificadores de Acesso

Quando um atributo ou método é público (public), qualquer classe do projeto pode acessá-lo.

Modificadores de Acesso

É possível declarar métodos e variáveis sem definir o seu modificador de acesso. Nesse caso, dizemos que o modificador é default.

Com o modificador default, o método ou atributo é visível por todas as classes que estão no mesmo pacote.

Ex: void print(){ System.out.println(“Metodo com acesso default”);}

Modificadores de Acesso

O modificador protected tem um comportamento similar ao default, ou seja, todos os membros de um mesmo pacote conseguem enxergar os atributos e métodos protected

A diferença é relacionada a herança, quando um método ou atributo é protected, as classes filhas da classe dona do método ou atributo conseguem acessa-los, mesmo que as classes estejam em pacotes diferentes

Classes e Subclasses

A classe mãe de todas as classes do Java é a Object. Quando uma classe é subclasse de outra, ela herda os

atributos e métodos da classe mãe. E consegue acessá-los diretamente se eles são protected.

Crie uma subclasse basta usar a palavra chave extends

Classes e Subclasses

Classes e Subclasses

Em qualquer lugar onde a classe Veiculo seria utilizada, é possível utilizar a classe Carro, pois ao herdar de Veiculo, Carro passa a ser uma classe especializada de Veiculo.

É possível instanciar um Veiculo com um objeto do tipo Carro, isso é chamado de encapsulamento: Veiculo veiculo = new Carro();

Classes e Subclasses

Em um método que requer um Veiculo, é possivel utilizar um carro como parametro:

int getNumeroRodas(Veiculo v){...}

Carro c = new Carro();getNumeroRodas(c);

Classes e Subclasses

Esse poder do Objeto de assumir várias formas através de herança é chamado de Polimorfismo

As classes herdeiras podem redefinir os métodos da classe pai, desde que mantenham a assinatura. Isso é chamado de sobrescrita (Overrride). Quando um método redefinido for chamado, mesmo que a classe filha esteja encapsulada, a sua implementação do método é que será executada.

Polimorfismo

Classes e Subclasses

Classes e Subclasses

Caso seja necessário, a implementação do método original da classe pai também pode ser utilizado através do comand super.

Classes e Subclasses

O mesmo vale para construtores. Porém o construtor de uma classe pai sempre deve executar primeiro. Caso você não chame o construtor da classe pai explicitamente, ele será chamado automáticamente.

Classes Abstratas

É possível definir classes que não podem ser instanciadas em Java. Essas classes são chamadas de abstratas.

Elas são utilizadas para definir métodos que sejam comuns a qualquer classe que possam potencialmente herdar dela. As classes abstratas também podem ter atributos.

Classes Abstratas

Interfaces

Interfaces são utilizadas para definir comportamentos.Elas funcionam como contratos, qualquer classe que

implementa uma interface deve criar os métodos com a mesma assinatura que está definida na interface

Ao contrário da classe abstrata a interface não pode ter atributos e nem definir corpo de métodos

ExceçõesExceções em Java servem para indicar a ocorrência de erros ou comportamentos inesperados do sistema.Existem dois tipos: Exceções de runtime e Exceções checadas

ExceçõesAs exceções de runtime não devem ser capturadas, pois quando ocorrem, o problema está na codificação.Ex: NullPointerException e ArrayIndexOutOfBOundsException

ExceçõesAs exceções checadas devem ser tratadas. Por exemplo ao lidar com arquivos, uma exceção do tipo IOException pode ser lançada e isso não ocorre por defeitos no código e sim por erros que podem ocorrer no processo.

ExceçõesPara tratar uma exceção, o trecho de código que pode lançar uma exceção fica dentro do escopo do comand try. Embaixo desse escopo deve-se escrever um comando catch para cada exceção que ser quer tratar.

ExceçõesÉ possível ainda lançar a exceção para os métodos que irão chamar o método atual. Através do comand throws na assinatura do método.Se um método tem o comando throws, qualquer método que o chama deve tratar ou passar adiante a exceção.

ExceçõesPara lançar uma exceção de dentro do escopo do método,é necessário dar um comando throw e instanciar uma nova classe de exceção.Para criar uma nova exceção, bastar criar uma classe que extenda da classe Exception.