You are on page 1of 35

Fundamentos necessrios para desenvolvimento em java

2012.1

Fundamentos e Operaes Bsicas

Tipos de Dados
Tipos de dados so uma forma de qualificar o dado, varivel ou constante. Exemplo

float x= 3.45F; double y= 6.45D;

Tabela de tipo de dados


Tipo
boolean char byte short int long float

Descrio
Pode assumir o valor true ou o valor false. Caractere em notao Unicode de 16 bits. Serve para a armazenagem de dados alfanumricos. Tambm pode ser usado como um dado inteiro com valores na faixa entre 0 e 65535. Inteiro de 8 bits em notao de complemento de dois. Pode assumir valores entre -27=-128 e 27-1=127. Inteiro de 16 bits em notao de complemento de dois. Os valores possvels cobrem a faixa de -2-15=-32.768 a 215-1=32.767 Inteiro de 32 bits em notao de complemento de dois. Pode assumir valores entre -231=2.147.483.648 e 231-1=2.147.483.647. Inteiro de 64 bits em notao de complemento de dois. Pode assumir valores entre -263 e 263-1. Representa nmeros em notao de ponto flutuante normalizada em preciso simples de 32 bits em conformidade com a norma IEEE 754-1985. O menor valor positivo represntvel por esse tipo 1.40239846e-46 e o maior 3.40282347e+38 Representa nmeros em notao de ponto flutuante normalizada em preciso dupla de 64 bits em conformidade com a norma IEEE 754-1985. O menor valor positivo representvel 4.94065645841246544e-324 e o maior 1.7976931348623157e+308

double

Exemplos de Tipo de dados


Tipo boolean char exemplo
boolean k=true; boolean c=false; char a ='t'; char b='?'; char c='&'; char d ='9; byte x=180; // est errado, pois x>127 byte y= -130; // est errado, pois y < -128 byte z= 64; // est certo, pois z est entre o intervalo [-128, 127]. String nome=Aluno"; Int a=2; long a=5L; float x= 3.45F; double y= 6.45D;

byte string int long float double

Caracteres especiais

Converso de Tipos
Variveis de tipos diferentes podem ser atribudas entre si por meio de um processo de converso chamado de "casting". Exemplo float d=7.8f; short c=13; long a=5L; int r=10; r=(int)a; System.out.println(r); // Resultado 5 r=(int)c; System.out.println(r); // Resultado 13 r=(int)d; System.out.println(r); // Resultado 7

Tipo de operadores
Operadores de atribuio: =, +=, -=, *=, /= Operadores aritmticos: +, -, *, /, %, ++, - Operadores relacionais: <, <=, >, >=, ==, != Operador instanceof Operadores lgicos: &, |, ^, !, &&, ||

Operadores

Operadores de atribuio
Para nmeros, o tamanho importa.
int x = 5f; byte b = 500; ERRO ERRO

Para referncias, o tipo importa. int y = 5; ERRO


Exemplo boolean b = false; if(b = true) System.out.println("SIM"); else System.out.println("NAO"); Qual a sada? "SIM"

Operadores aritmticos
+ adio subtrao * multiplicao / diviso % resto ...println(17 % 5); ...println(17.0 % 5.0);

2 2.0

Exemplo com operadores aritmticos


x++;
uma maneira muito mais concisa de se escrever x = x + 1. Mas no s, esses operadores se comportam de modo diferente quando seguem ou precedem o nome de uma varivel. Se o operador precede o nome da varivel, ento o incremento (ou decremento) ocorre antes que o valor da varivel seja tomado para a expresso aritmtica. No seguinte exemplo, o valor das variveis x e y ser 6: Um cuidado importante, no confundir "==" com "=". "==" d como resultado: "true" ou "false", "=" faz atribuio correspondente ao operador int x = 5; matemtico "" no existente no Java. Portanto, x==4 int y = ++x; diferente de x=4. Porm, no prximo exemplo o valor de x ser 6 enquando que o valor de y ser 5: int x = 5; int y = x++;

Operadores Relacionais

Retornam sempre um valor booleano. <=,>=,> e < - apenas tipos numricos.

!=, == - todos os tipos inclusive referncia

Operador instanceof
Verifica se o OBJETO referenciado pelo lado esquerdo UM objeto do tipo do lado direito.

Utilizado apenas com referncias


Tambm funciona com interfaces Retorna um booleano Ex: referencia instanceof Tipo Animal a = new Animal(); Baleia b = new Baleia(); Object c = new Baleia(); ... System.out.println(a instanceof Animal); System.out.println(a instanceof Baleia);

true false

Operadores lgicos

&

&&

||

Operandos so expresses booleanas. O resultado um booleano


No confundir "&&" e "&", " || " e " | " . "&" e "|" estes operadores quando sozinhos, eles apenas realizam operaes binrias, ou seja, operaes entre "0" e "1". O operador de "xor" dado por " ^ " vlido tanto para expresses envolvendo "true" e "false", como para operaes binrias, envolvendo "0" e "1".

Controle de Fluxo Condicional


So estruturas que impem condies para executar instrues. As condies so avaliadas apenas uma vez e a estrutura no retorna para incio da estrutura para ser repetida como nos laos ou nos loops. Resumindo a habilidade de ajustar a maneira como um programa realiza suas tarefas.

Tipos de controle de fluxo


Tomada de decises (condicional)

Tipos de controle de fluxo


Laos ou repeties

Tipos de controle de fluxo


Apontamento e tratamento de excesses

Classe
A classe est sempre identificada pelo comando class e
mtodos tero ao lado parnteses "()". O importante, por enquanto, saber o que acontece dentro das chaves "{ }" de um mtodo.

Exemplo:
package primeiro; public class Main {

Classe uma "estrutura" que agrupa atributos e mtodos por afinidade de objetivo

System.out.println(Ol mundo);

}
}

Atributo
Os Atributos so tambm denominadas de variveis de
instncia. So armazenadores de dados do programa. So variveis que podem ser utilizadas em qualquer lugar da classe, ao contrrio das variveis locais que so utilizveis

somente dentro do corpo (ou melhor, entre as chaves) dos


mtodos. Exemplo: double a=70;
Repare que no passam de variveis, mas que so "visveis", ou melhor, podem ser manipuladas em toda a classe. Estas variveis recebem valores iniciais, como nos atributos "a" e "b" ou ficam apenas declaradas sem receber valores como no atributo "media", mas na expectativa de receber valor no futuro.

double b=90;
double media;

Mtodo
So equivalentes a uma subroutina ou subprograma em
linguagens estruturadas. No C e C++, so semelhantes a Funo, no Pascal ao Procedimento (Procedure) e Funo. Exemplo:

public double calcula_media2(double c, double d){


media = (c+d)/2; return media; }
O Mtodo o responsvel por realizar as tarefas, praticar as aes, ou melhor ainda,"fazer acontecer", pegando os dados que ele tem (advindos de variveis locais ou no) para fazer realizar alguma tarefa de desejo do programador. Mas geralmente so tarefas especficas.

Mtodo public static void main(String[] args)


mtodo que inicia a execuo do programa Java. Ele chama
todos os demais mtodos de outras classes. Exemplo:
o mtodo que visto inicialmente pelo Java Local e sugere-se que seja o primeiro mtodo a ser procurado quando se l um programa Java, assim como a classe Main deve ser a primeira classe a ser procurada.

package primeiro;
public class Main {

public static void main(String[] args) { Calcula calcula=new Calcula();

calcula.calcula_media1();
System.out.println(calcula.calcula_media2(30, 40)); } public Main() { } }

Objeto
como se fosse um clone ou uma cpia da classe.
Tudo o que voc precisa entender que "calcula" como se fosse uma cpia da classe "Calcula"

Exemplo:
Calcula calcula=new Calcula(); // criou o objeto, "calcula" como se fosse o objeto sendo uma cpia da classe "Calcula"

calcula.calcula_media1();
// executa o mtodo "calcula_media1()" que agora faz parte do objeto "calcula".

Encapsulamento set/get
So usados para encapsular atributos. Apesar de ser possvel declarar
os atributos como pblicos, no conveniente em termos de segurana. Por isto, necessrio que as variveis continuem privativas as classes. Mas como ento as demais classes podero usar as variveis se elas A soluo criar mtodos que recebam os valores das variveis ou Exemplo: mandem valores para variveis e s Um exemplo de encapsulamento em que os atributos "num1", trabalhar com eles. esto privadas?

"num2" e "nome" tem mtodos correspondentes a eles.

Herana
Herana o mecanismo pelo qual uma classe obtm caractersticas
(mtodos e atributos) de outra classe. A classe "filho" que recebe estas Exemplo: caractersticas chamada de package mamifero; "subclasse" e a classe "pai" que passa public class Guepardo extends Mamifero{ estas caractersticas so chamadas de String alimentacao_adulta="canivora"; "superclasse".
String animal = " Guepardo"; float expectativa_de_vida=8; double velocidade_maxima=110; public void metodo_Guepardo(){ System.out.println(" Este animal um" + animal); System.out.println(animal + " um " + classe_de_animal); System.out.println("Tem expectativa de vida de " + expectativa_de_vida +"anos"); System.out.println("Ele } } chega a uma velocidade de " + velocidade_maxima+"km/h");

Classe Abstrata
Vamos supor que no queiramos usar a classe em si por acharmos que
mamfero algo "abstrato" demais! Melhor dizendo, mamfero pode ser um monte de espcie de animais que sequer podem ser visualizados como um s, afinal, um "elefante" bem diferente de um "rato", no entanto, so ambos mamferos.

Exemplo:
Por isto, podemos no querer saber sobre o mamfero em si por ser genrico demais ou por no fazer sentido querer us-lo.
package mamifero;
public abstract class Mamifero{ // usamos o qualificador abstract para dizer que uma classe abstrata

Mtodos Abstratos
So mtodos declarados em classe abstrata e no realizam nenhuma
tarefa ou operao, apenas so declarados. A finalidade do mtodo abstrato obrigar que as subclasses tenham os mesmos nomes e tipos dos mtodos da superclasse. como se fosse um contrato, voc Exemplo: herda as caractersticas desta classe e as suas vantagens e tambm a obrigao de executar certas tarefas por meio de mtodos com mesmo nome.
public abstract void numero_de_pernas(); // indica que as subclasses tero que criar um mtodo concreto equivalente a este mtodo

Interface
semelhante a uma classe abstrata com algumas diferenas. Uma classe
pode herdar apenas uma classe abstrata ou concreta, mas pode implementar vrias interfaces. Outra diferena que a interface s tem mtodos abstratos, isto obriga a classe que implementa a interface a ter os mtodos correspondes de mesmo nome e com os mesmos

parmetros.

Exemplo:
public interface ICliente {

Alis, a finalidade de uma interface esta mesma, obrigar a criao de mtodos com as mesmas caractersticas definidas na interface.

// os mtodos e atributos abaixo sero obrigados a serem executados pelas

// classes que implementam ICliente


public void lerNome(); public void lerTel(); public void lerEmail(); public String getNome(); public String getEmail(); public String getTel(); }

Polimorfismo Esttico
Polimorfismo Esttico: Ocorre quando na definio de uma classe criamos mtodos com o mesmo nome, porm com argumentos diferentes. Dizemos neste caso que o mtodo est sobrecarregado (overloading). A deciso de qual mtodo chamar tomada em tempo de compilao, baseada nos argumentos que foram passados.

Exemplo:
public class Sobrecarga { public int metodo_sobrecarregado(){ // no passa nenhum valor System.out.println("mtodo sobrecarregado 1"); return 0; } public float metodo_sobrecarregado(int a){ // passa uma varivel inteira System.out.println("mtodo sobrecarregado 2"); return 0f; }

Sobrecarga o processo em que mtodos distintos tm o mesmo nome, mas se diferenciam pelo tipo de parmetros passados, ou melhor, o tipo de variveis entre os parnteses, que vai diferenciar um mtodo e outro.

Polimorfismo Dinmico
Esta associado com o conceito de herana e ocorre quando uma
subclasse redefine um mtodo existente na superclasse. Dizemos neste caso que o mtodo foi sobreescrito (overriding) na subclasse. A deciso de qual mtodo executar tomada somente em tempo de execuo, como veremos mais adiante.

Exemplo:
Na classe "Mamfero", havia um mtodo abstrato: "public abstract void numero_de_pernas()", este mtodo foi substitudo por um mtodo no abstrato, ou melhor, mtodo concreto, com mesmo nome na subclasse: "public void numero_de_pernas()".

A sobrescrita no necessariamente feita entre um mtodo abstrato e outro concreto, pode ser tambm entre dois mtodos concretos.

Qualificadores ou Modificadores de Acesso


Do o grau de privacidade do mtodo, do atributo ou mesmo
da classe. public - Mtodos ou Atributos declarados como "public" podem

ser chamados por outros mtodos da prpria classe e pelos


mtodos de qualquer outra classe, inclusive de outros pacotes.

protected - Mtodos ou variveis declarados como "protected"


podem ser chamados por outros mtodos da prpria classe e pelos mtodos da classe "filho". private - Mtodos ou variveis declarados como "private" s podem ser chamados por outros mtodos da prpria classe.

Construtor
muito parecido com o mtodo, mas tem propriedades que o
diferencia dele. - O construtor possibilita o acesso a informaes da classe e a criao de um objeto. - Ao contrrio do mtodo, o construtor no retorna valor nunca. Ele pode realizar tarefas, como operaes matemticas, por exemplo, de dentro de seu escopo (o lugar entre as chaves { }) como um mtodo normal. fcil reconhecer um construtor, ele parecido com o mtodo, tem

um parntese ao lado (com ou sem parmetros dentro dele) e seu


escopo delimitado por {} como no mtodo. Todavia tem o mesmo nome da classe e comea com letra maiscula. Como mtodo comum, ele pode fazer passagem de parmetros comum.

O construtor pode estar explcito ou implcito na classe, ou seja, podemos ver ou no na classe, mas ele sempre estar l!

Exemplo de construtor
Veja o exemplo deste cdigo em que o construtor usado como se
fosse um mtodo comum no programa. Exemplo

Contato

E-mail : profvmarques@gmail.com

You might also like