A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal

Apresentações semelhantes


Apresentação em tema: "Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal"— Transcrição da apresentação:

1 Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal
1

2 CONTEÚDO Unidade 2 – Conceitos de Orientação a Objetos Método estático
Classe Math, a constante PI e os métodos pow, sqrt, entre outros. Atributo estático Sobrecarga ou overload de construtores Objeto como parâmetro de método Construtor cópia Tema: Conceitos de Orientação a Objetos com aplicação na criação de programas em Java. 2

3 Objetivos Compreender os conceitos sobrecarga, métodos static e atributos static. Conhecer métodos e constante da classe Math Compreender um dos usos do this Aplicar os conceitos acima na criação e teste de programas em Java. Compreender construtor cópia 3

4 Método estático Em alguns casos precisamos implementar alguns métodos que independem dos objetos de uma classe. Nesse caso, chamamos esses métodos de métodos da classe. Tais métodos são implementados usando a palavra static. Todos os métodos da classe Math são estáticos 4

5 Método Estático A principal diferença entre os métodos estáticos e os métodos de instância está na sua chamada. Exemplos: double x = 12.2; double y = Math.sqrt(x); // calcula a raiz quadrada de x long z = Math.round(y); // arredonda o valor de y Constante estática PI: Math.PI 5

6 Método Estático Métodos da classe Math : abs, acos, asin, atan, ceil, cos, exp, floor, log, max, min, pow, random, round, sin, tan, sqrt. Destaque para abs, max, min, pow, round, sqr Regra para chamar um método estático : Classe.Método O operador ponto é usado. Atributos estáticos No caso de atributos estáticos só existe UMA cópia desse atributo na memória que é COMPARTILHADA por todos os objetos da classe. Assim como os métodos estáticos, os atributos estáticos são chamados atributos da classe e, por isso, podem ser acessados diretamente a partir da classe 6

7 Atributos Estáticos No caso de atributos estáticos só existe UMA cópia desse atributo na memória que é COMPARTILHADA por todos os objetos da classe. Assim como os métodos estáticos, os atributos estáticos são chamados atributos da classe e, por isso, podem ser acessados diretamente a partir da classe. 7

8 Diferenças importantes
Métodos de instância : 1) Só podem ser chamados a partir de objetos da classe. 2) Podem acessar (ler ou alterar) atributos da instância ou atributos da classe (estáticos). Métodos estáticos : 1) São chamados a partir da própria classe. 2) Só podem acessar (ler ou alterar) atributos da classe (estáticos). 8

9 Sobrecarga ou overload
De construtores : construtores na mesma classe e que se diferenciam pela passagem de parâmetros De métodos : dois ou mais métodos na mesma classe, com mesmo nome e que se diferenciam pela lista de parâmetros. O Java não confunde os dois métodos porque eles têm assinaturas diferentes ! Assinatura diferente significa que os métodos têm: quantidades de parâmetros diferentes, tipos dos parâmetros diferentes ou ordem dos parâmetros diferente 9

10 O parâmetro é um objeto Note que o parâmetro passado para um construtor ou método pode ser objeto de uma classe. Para manipulá-lo pode ser possível usar a referência this. this Nesta aula veremos que a referência this referencia o objeto que está sendo construído ou está usando o método. Assim, quando no construtor queremos diferenciar o atributo do parâmetro e ambos possuem o mesmo nome, usamos this. Regra : this.atributo = parâmetro_de_mesmo_nome_que_atributo 10

11 O parâmetro é um objeto Construtor cópia
Imagine o seguinte trecho de código: int a, b; a = 10; b = a; //b é uma cópia de a Com objetos, essa situação é diferente: Retangulo r1, r2; r1 = new Retangulo(10, 20, 100, 200); r2 = r1; 11

12 O parâmetro é um objeto Construtor cópia NOTE :
1) r2 vai referenciar o mesmo objeto que r1. 2) Um objeto só é criado quando usamos o operador new com o construtor da classe. 12

13 O parâmetro é um objeto Quando precisamos clonar um objeto, ou seja, criar um novo objeto idêntico a um outro que já existe, precisamos implementar um construtor cópia. Como o nome já diz, um construtor cópia tem a finalidade de criar um objeto como cópia de outro objeto. Para definir um construtor cópia devemos criar um construtor que recebe como parâmetro uma instância da própria classe. Dessa forma podemos copiar todos os atributos de uma instância para a nova instância. 13

14 O parâmetro é um objeto Exemplo : public class Retangulo{
private int largura; private int altura; private int x; private int y; public Retangulo(Retangulo outro) { largura = outro.getLargura(); altura = outro.getAltura(); x = outro.getX(); y = outro.getY(); } 14

15 O parâmetro é um objeto Considere que uma classe Circulo também possui um construtor cópia. public class Circulo { private int x; private int y; private int raio; public Circulo(Circulo outro) { x = outro.getX(); y = outro.getY(); raio = outro.getRaio(); } 15

16 O parâmetro é um objeto Para usar o construtor cópia, basta passar o objeto que será copiado: public class EditorGrafico { public static void main(String[] args) { Retangulo r1, r2; Circulo c1, c2; r1 = new Retangulo(10, 20, 30, 40); r2 = new Retangulo(r1); c1 = new Circulo(5, 15, 50); c2 = new Circulo(c1); } 16

17 Classes As classes são os elementos básicos para construção de programas OO em linguagens como C++, Java e C#. Assim, para construir um programa OO devemos, inicialmente, identificar as classes que fazem parte do problema que estamos tentando resolver Ao analisar um problema a ser resolvido, as classes normalmente são extraídas: 1. dos conceitos que compõem o domínio do problema; 2. dos conceitos adotados na solução do problema. 17

18 [visibilidade] [abstract | final] class identificador
Classes Explicar a ideia de pacote e lembrar do pacote da classe Scanner Sintaxe da definição de Classe: [visibilidade] [abstract | final] class identificador [extends identificador2] [implements identificador3*] { [Atributos] [Métodos] } Também posteriormente, serão estudadas extends e implements. 18

19 Visibilidade da classe:
public: pode ser livremente instanciada por qualquer outra classe private: só é visível no arquivo onde foi criada. package: só pode ser instanciada por classes do mesmo pacote. É a visibilidade default 19

20 Atributos Atributos são declarados da mesma forma que as variáveis locais, porém com uma sintaxe ligeiramente diferente: [visibilidade] [static] [final] tipo atributo [ = inicialização]; visibilidade: public, private, package ou protected. static: define que esse atributo é da classe (será visto posteriormente) final: atributo constante (valor inicial não pode ser alterado) 20

21 Atributos Atenção !! Em outras aulas veremos package, protected, static e final Nesta aula, portanto, nos interessa : public: pode ser livremente lido ou alterado por métodos de qualquer classe private: só pode ser lido ou alterado por métodos da própria classe, ou seja, esse atributo não é visível fora da class 21

22 Inicialização de atributos:
Um atributo pode ser explicitamente inicializado, da mesma forma que as variáveis locais. Quando não for inicializado explicitamente, a máquina virtual do Java (JVM) se encarregará de fazê-lo. Por exemplo, valores numéricos com zero, boolean com falso .... 22

23 Inicialização de atributos:
Uma vez definida uma classe, podemos criar objetos ou instâncias dessa classe Para a criação de objetos usamos o operador new. Teremos a partir daí, um objeto ou instância da classe. Note que, ao declararmos uma variável do tipo de uma classe não estamos criando o objeto em si, mas somente uma referência para o objeto. No momento da declaração da variável a referência está com valor null. Precisamos usar new para que seja alocado espaço na memória para o novo objeto 23

24 Inicialização de atributos:
Exemplo : Imagine uma classe Retangulo Retangulo r; r = new Retangulo(); Ou Retangulo r = new Retangulo(); Para definir como as instâncias de uma classe podem ser criadas usamos construtores. Assim, podemos dizer que construtores são métodos especiais usados para criar uma instância de uma classe (objeto). Podem existir várias formas diferentes de criarmos um objeto. Assim, podemos ter vários construtores diferentes para uma mesma classe. Isso se chama sobrecarga (ou overload) de construtores 24

25 Sintaxe básica de construtores:
public NomeDaClasse ([parâmetros]) [throws exceções] { [ corpo do construtor ] } Observe que: Construtores devem ter, obrigatoriamente, o mesmo nome da classe Construtores não têm nenhum tipo de retorno Construtores podem receber parâmetros que serão usados na inicialização do objeto Quando não definimos nenhum construtor para a classe, o Java gera automaticamente um construtor default ou padrão. 25

26 Métodos de acesso e métodos modificadores
Métodos de acesso são usados para obter os valores dos atributos privados e métodos modificadores são usados para alterar os valores dos atributos privados Regra : public tipo get<nome do atributo>() { return atributo; } 26

27 Métodos de acesso e métodos modificadores
public void set<nome do atributo>(tipo novoValor) { atributo = novoValor; } 27

28 Sintaxe de métodos da Classe:
visibilidade [static] [final] [abstract] tipo método ([parâmetros]) [throws exceções] { [ corpo do método ] } Visibilidade: public, private, package ou protected. static: método da classe (será visto posteriormente) final: método não pode ser sobrescrito (será visto posteriormente) abstract: método deve ser implementado nas subclasses (será visto posteriormente) 28

29 Exercícios 1) Imagine que desejamos implementar um editor gráfico que irá manipular figuras geométricas: Retângulo Triângulo Círculo Quais as classes candidatas para esse projeto ? 29

30 Exercícios 2) Sabendo que todo livro possui autor, editora e preço, crie uma classe pública com construtor padrão e métodos modificadores e de acesso. Depois, crie dois livros com dados obtidos via console 3) Adicione código ao exercício anterior e altere os dados do 2o. livro da seguinte forma: autor para Harlan Coben, editora Arqueiro e preço R$ 30,00 4) Adicione código ao ex. 2 e compare os preços dos dois livros, imprimindo o nome da editora do livro de menor preço. 30


Carregar ppt "Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal"

Apresentações semelhantes


Anúncios Google