Jump to content
Sign in to follow this  
Lwkass

Java - Aula 7

Recommended Posts

Lwkass    1
Lwkass

# Funções e Criação de Classes

Aula 7

 

 

 

#Funções:

O que seria uma função ?

Função é um conjunto de instruções programadas que podem diminuir códigos com trechos repetitivos.

Em algumas linguagens de programação como Lua não é necessário você colocar o tipo de retorno da função, mas em java é diferente toda função tem que retornar algo a não ser funções que tenham tipo void (vazio).

 

Uma função simples com tipo de retorno inteiro (int)

public class Main {
public static void main(String[] args) {
	System.out.println(somar(1,3));
}

int somar(int valor1,int valor2) {
	int resultado = valor1 + valor2;
	return resultado;
}
}

 

Uma função simples de soma de 2 valores, veja que ela tem "int" antes do nome da função (somar) e os seus 2 parâmetros possuem tipo que no caso também é inteiro.

 

O return resultado seria a mesma coisa de dizer que oque vai ser "entregue" ou oque ele vai retornar sera a variavel resultado que tem que ser um inteiro.

 

Mas se você for executar esse algoritmo no seu compilador, vai ver que deu erro, mas porque ?

Tem uma regra muito simples em Java: Você não pode chamar uma função não-estática numa função estática...

 

Não entendeu ?

É assim que funciona: A função main possui modificar static como pode ver ali em cima, só que a função somar não possui esse modificar, portanto se você chamar a função somar no bloco do main, vai dar erro, isso porque static garante que só haverá uma e apenas uma cópia da função desde a iniciação do programa ao contrario dos não-estáticos, é um pouco dificil de entender mas eu vou tentar um outro exemplo só que apenas depois da explicação do que é classes e sua criação.[/size]

 

#Classes:

Bem, é bastante recomendado que se caso nessa explicação você não consiga entender, busque outras formas de conseguir entender, até porque classes é algo complicado de assimilar pra quem ta a pouco tempo na programação.

 

No mundo que vivemos, existe vários objetos, como: celular, carro, câmera digital, computador, mouse... Uma classe tem como objetivo reunir informação desse objeto, dizer tudo que queremos sobre ele, seria uma forma de programar próxima pensando na realidade mesmo, por exemplo o objeto carro tem vários atributos como velocidade, numero de portas, máximo de passageiros, se possui insulfilm, a placa dele entre outros... assim como também possui ações que são chamados de métodos, que seria: ligar, acelerar, usar o freio, ligar o radio... abaixo está a classe Carro com seus respectivos atributos e métodos:

 

	public class Carro {
	//atributos
	private int portas = 4;
	private int velocidade;
	private int passageirosMax = 5;
	private boolean insulfilm;
	private String placa;
	private double sintonia = 0.0;

	//construtor da classe
	public Carro(int velo, boolean insulf, String plac) {
		velocidade = velo;
		insulfilm = insulf;
		placa = plac;

		//inicializa a classe
		ligar(true);
		radio(103.5);
		acelerar();
		freio();
		ligar(false);
	}

	//metodos
	public boolean ligar(boolean acao) {
		// instruções
	}

	public void acelerar() {
		// instruções
	}

	public void freio() {
		// instruções
	}

	public void radio(double estacao) {
		this.sintonia = estacao;
	}
}

 

Bem, a função Carro realmente não possui modificador de tipo, ela é o construtor da classe Carro, ela vai dar instruções logo de inicio, por exemplo esse construtor vai receber 3 valores e coloca-los nos atributos da classe e assim que fizer isso vai: ligar o carro, colocar a radio na estação 103.5, acelerar, freiar e desligar o carro (ligar = false).

Programação Orientada a Objeto é isso, é você programar pensando na realidade.

Só que essa classe ainda não existe, porque ? porque você precisar chama-lá, e para chamar você faz assim:

 

	public static void main(String[] args) {
	Carro gol = new Carro(180,false,"NPX-2030");
}

 

É claro que para funcionar você precisa adicionar o modificar static na classe Carro.

 

Pronto ali eu chamei um novo objeto Carro que eu dei o nome de gol e coloquei velocidade = 180, insulfilm = false, placa = "NPX-2030".

Você também pode chamar os métodos da classe quando quiser fazendo isso:

 

gol.radio(73.5);

 

Vai mudar o atributo sintonia para 73.5 !

 

Outra coisa, você pode ver que no método radio eu usei this que significa isto em pt-br, o this vai instanciar para a própria classe, ou seja, eu vou chamar o atributo sintonia da própria classe e modifica-lo.

 

Ai que cai na questão anterior do static, a função que for estática ela não possui método this, por isso que se você chamar uma função não-estática num bloco estático vai dar erro, porque se caso esse bloco não-estático utilizar this, ele não vai existir.

 

#Exercício:

 

Faça uma classe do objeto computador e do objeto tv.

 

-----------------

Próxima Aula: Herança e Polimorfismo.

Aula feita por: Lwkass

Edited by Lwkass

Share this post


Link to post
Share on other sites
Dark Skyllen    7
Dark Skyllen

Bom, ótimas aulas. Vou fazer um índice para elas depois.

As classes, foram uma breve explicada, mas muito boa.

 

Obrigado pela contribuição,

Movido

Share this post


Link to post
Share on other sites
ushoriuma    0
ushoriuma

ótimos tutoriais, pena que quase ninguem tem vontade de aprender

continue com as aulas.

^^

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×