Escolar Documentos
Profissional Documentos
Cultura Documentos
Funes
Existem vrias situaes na vida em que um nmero
completamente dependente de outro.
Por exemplo:
O valor da mensalidade que um aluno paga dependente do nmero de
crditos que ele cursa.
Logo, dizemos que a mensalidade funo do nmero de crditos.
Funes
Funes
y
x
No funo!
x
funo!
x
No funo!
x
funo!
Avaliando funes
Seja f(x) = 3x - 5. Qual o valor de f(-2)?
Substitua -2 onde encontrar x: 3(-2) - 5 = -11
Logo f(-2) = -11
Seja f(x) = x3 -3x. Encontre f(2) e f(-1)
f(2) = (2)3 -3(2) = -14
f(-1) = (-1)3 -3(-1) = 2
Avaliando funes
x
No funo!
Exemplos
f(x)=5
f(x)= 2x+5
f(x) = 2x4+x+3
f(w,z)= w/(z-1)
f(a,b) = 2a
f(x,y,z) = 2xy+z/2
f(x,y,z) = 2zcos(x+y)
etc.
Mtodos em Java
mtodos: Uma funo definida dentro de uma classe.
Mtodos de Classe : mtodos que so invocados sem rferncias a um
objeto em particular (mais detalhes mais frente).
Mtodos de classe afetam toda a classe, no uma instncia especfica da
classe. Tambm so chamados de mtodos estticos.
Mtodos de instncia: Todos os mtodos que so invocados dentro de uma
instncia especfica de uma classe. So chamados simplesmente de
mtodos.
Mtodos em Java
Reduzemacomplexidade
Abstrao
Encapsulamainformao
Minimizamotamanhodocdigo
Aumentam a facilidade!
Aumentamamanutenibilidadeeacorreo
Evitamduplicaodocdigo
Limitamoefeitodasmudanas
Promovemareutilizaodocdigo
Diminuem o custo!
Mtodos
Mtodos
Exemplos:
public static void main(String args[]);
public static double sqrt(double pVal);
Assinatura de mtodos
Exemplos:
public static void main(String args[]);
Assinatura
public static double sqrt(double pVal);
Assinatura de mtodos
Exemplo:
public static double sqrt(double pVal);
public static float sqrt(float pVal);
Assinatura de mtodos
Definindo mtodos
Chamando mtodos
Documentando mtodos
Documentando mtodos
Simplesmente coloque o seguinte cdigo de documentao
imediatamente antes dos mtodos
/**
* A primeira frase deve ser uma descrio
* breve e sucinta do cdigo.
* Depois, voc pode ser mais prolixo e
* discutir bem o que o mtodo faz.No
* costumeiro explicar o que ele faz. Depois
* colocamos a lista de parmetros:
*
* @param paramName descrio do parmetro
* @param paramName2 descrio do 2 parmetro
* @return texto descrevendo o valor de retorno
*/
public static double sqrt(double pVal)
Documentando mtodos
public class Class1 {
/** Creates a new instance of Class */
public Class1() {
}
/**Mtodo main
*O mtodo main o mtodo onde o processamento comea
*Este mtodo s imprime Hello World e no faz mais nada de til
*@param args so as palavras passadas na linha de comando (vamos discuti-los depois)
*@return no retorna nenhum valor til ( void)
*/
public static void main (String[] args) throws Exception
{
String name;
System.out.println("Hello World!");
name=Console.readString("Enter your name:");
System.out.println("Hello "+name);
}
}
Documentando mtodos
Chamada padro
Resultado : http://home.ismnet.com.br/~rlinden/javadoc
Mtodos
Mtodos
Nomenclatura usual:
Use um verbo seguido de um objeto (no sentido gramatical)
No use nomes extremamente grandes.
A primeira letra minscula, mas outras palavras componentes do
nome so iniciadas por maisculas.
Ex. : printReport, updatePosition, etc
Existe uma longa disputa sobre qual o tamanho ideal para mtodos:
Muitos acham que devemos nos restringir a uma nica pgina, no mximo
Muitos acham que vrios pequenos mtodos podem diminuir a legibilidade do
cdigo.
s vezes, mtodos longos so bons, desde que possuam uma unicidade lgica.
Passagem de Parmetros
ParmetrosparamtodosJavasopassadossempreporvalor.
Istosignificaqueumacpiadovalorpassadoserusadopelos
mtodos,noavarivelreal.
ApassagemporreferncianuncafeitanoJava.
Passagem de Parmetros
Ns nunca passamos um objeto, mas sim uma referncia
paraumobjeto,earefernciapassadaporvalor.
NastatementJavaButtonb=newButton();avarivelb
noumobjeto,massimumarefernciaaumobjeto(dao
termovariveldereferncia,encontrvelemmuitoslivros).
Passagem de Parmetros
Sejaomtododeclaradopor
publicvoidmtodosX(Buttony){...}
Senschamarmosestemtodopassamosumarefernciaa
umboto,oqueaconteceexatamente?
Buttonb=newButton();
mtodosX(b);
Passagem de Parmetros
Logo,dentrode mtodosXnspodemosatualizaroobjetoatravsda
varivelderefernciay.
Passagem de Parmetros
Um objeto pode ter mltiplas referncias a ele
Da mesma maneira que uma rea de memria pode ser apontada por vrios
ponteiros.
Da mesma maneira que ns respondemos quando nos chamam de vrias
maneiras diferentes (por nomes, apelidos, psiu, etc.)
Logo, neste exemplo existe apenas um objeto sendo referenciado por duas
variveis de referncia distintas
Se mudarmos o valor da varivel y dentro de mtodosX ela passar a referenciarse a outro objeto:
y = new Button("another button");
Mas, como b foi passado por valor, ele permanecer inalterado referenciando-se ao
mesmo objeto de quando iniciamos o mtodo.
Variveis de Classe
Variveis de Classe
Seja a classe Classe1, que tem a varivel static (de classe x).
Variveis de Classe
123
Obj1
classe1.x=1;
Depois de obj1.x=3;
obj2.x=2;
Obj2
O atributo alterado sempre o
mesmo. No h dois atributos
diferentes para os objetos obj1 e obj2!
x classe1
Mtodos de classe
Exemplo: Math.sqrt();
Math
Mtodos de classe
Mtodos de classe so diferentes dos mtodos de instncia pois
nos mtodos de classe no existe uma referncia ao objeto corrente
(varivel de referncia this)
Logo, mtodos de classe no podem se referir a nenhuma
instncia nem invocar mtodos de instncia.
Vamos discutir a varivel de referncia this
com cuidado mais frente neste curso!
Inicializador Esttico
Inicializadores
Exemplo:
public class Classe1 {
int x=2;
Inicializao de variveis de instncia
final int BUFFER_SIZE=5;
static int y=3;
Inicializao de variveis de classe
static double[] buffer=new double[BUFFER_SIZE];
static {
for (int i=0;i<BUFFER_SIZE;i++) {
buffer[i]=1/(i+1);
}
}
:
Inicializador esttico
public static void main(String[] args)
:
}
Escopo
Escopo
Escopo
Escopo
ou
Exemplo de Escopo
if(...)
{
inti=17;
...
}
System.out.println("Thevalueofi="+i);