classes, objetos, atributos e métodos java faculdade mauricio de nassau linguagem de programação...
TRANSCRIPT
![Page 1: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/1.jpg)
Classes, Objetos, Atributos Classes, Objetos, Atributos e Métodose Métodos
JAVAJAVA
Faculdade Mauricio de NassauLinguagem de Programação II
Curso de Engenharia de Telecomunicações
![Page 2: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/2.jpg)
• Definição e Modificadores de acesso:– Classes;– Objetos;– Métodos;– Atributos.
SumárioSumário
![Page 3: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/3.jpg)
Definindo novos tiposDefinindo novos tipos
Ao invés de tipos pré-definidos como String e int, os tipos específicos da
aplicação, como Carro e Cliente precisam ser definidos pelo programador.
Os elementos dos tipos definidos pelo programador são
objetos!
![Page 4: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/4.jpg)
Definindo novos tiposDefinindo novos tipos
Quantos Objetos?Quantos Objetos?ee
Quantas Classes?Quantas Classes?
![Page 5: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/5.jpg)
Definindo novos tiposDefinindo novos tipos
class Carro { CorpoDaClasse}
class Moto{ CorpoDaClasse}
• Dois novos Tipos (Objetos do mundo real especificados na linguagem Java -> Classes).
![Page 6: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/6.jpg)
• Tipo definido pelo usuário que possui especificações (características ou estados, comportamentos e identidade) (MATTOS, 2007).
• Conjunto de objetos do mesmo tipo, com a mesmas características (métodos e atributos).
ClassesClasses
![Page 7: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/7.jpg)
• Estado - Reação quando um método e aplicado.
• Comportamento - execução dos métodos a ele relacionados.
• Identidade - forma como se distinguem dois objetos com o mesmo comportamento e estado.
ClassesClasses
![Page 8: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/8.jpg)
Definindo classes em JavaDefinindo classes em Java
class NomeDaClasse { CorpoDaClasse}
O corpo de uma classe pode conter:– Atributos;– Métodos;– Construtores;– Outras classes ...
![Page 9: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/9.jpg)
Modificadores de acesso Modificadores de acesso p/ Classesp/ Classes
• default (pacote): classes sem modificador de acesso explícito, só podem ser instanciadas dentro da própria classe ou por classes do mesmo pacote.
class NomeClasse
![Page 10: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/10.jpg)
Modificadores de acesso Modificadores de acesso p/ Classesp/ Classes
• public : classes public podem ser instanciadas por qualquer objeto livremente.
public class NomeClasse
• Os modificadores de acesso (final e abstract) serão abordados na segunda unidade.
![Page 11: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/11.jpg)
• Classe é uma descrição de algo existente no domínio do problema (aplicação);
• É usada na criação de múltiplos objetos;
• Descreve os dados (atributos) e o comportamento (métodos) de um objeto.
Classes X ObjetosClasses X Objetos
![Page 12: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/12.jpg)
• Um Objeto é uma instância particular de um tipo de dado específico (classe);
• É uma instância de uma classe;
• Instanciar um objeto é criar seu espaço de memória e repassar um ponteiro para ele.
Classes X ObjetosClasses X Objetos
TipoClasse nome = new ConstrutorTipoClasse ();Carro ferrari = new Carro();
![Page 13: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/13.jpg)
Objetos DVDObjetos DVD
Estado atual do DVD; o que ele está fazendo...
Operações que o DVD pode executar
![Page 14: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/14.jpg)
Objetos CarroObjetos Carro
velocidadevelocidade placaplaca
100 km/h100 km/h kkx 3111kkx 3111
Estado atual do carro
Operações que um carro pode
executar
aumentarVelocidadeaumentarVelocidade
diminuirVelocidadediminuirVelocidade
![Page 15: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/15.jpg)
Estado do 0bjetos CarroEstado do 0bjetos Carro
velocidadevelocidade placaplaca
100 km/h100 km/h kkx 3111kkx 3111
aumentarVelocidadeaumentarVelocidade
diminuirVelocidadediminuirVelocidade
velocidadevelocidade placaplaca
80 km/h80 km/h kkx 3111kkx 3111
aumentarVelocidadeaumentarVelocidade
diminuirVelocidadediminuirVelocidade
diminuirVelocidade (20)diminuirVelocidade (20)
![Page 16: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/16.jpg)
• Métodos: as operações que o objeto pode executar.
• Atributos: informações sobre o objeto, suas propriedades e seu estado atual.
ObjetosObjetos
O estado é encapsulado, só pode ser modificado pelos métodos do próprio
objeto.
![Page 17: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/17.jpg)
• Variáveis são usadas em linguagens em geral para armazenar valores;
• Valores são passados para variáveis através de operações de atribuição– atribuição de valores é feita através de
literais
Ex: int intQuantidadeAlunos = 14;
VariáveisVariáveis
![Page 18: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/18.jpg)
– atribuição de referências (endereços para valores) é feita através de operações de construção de objetos e, em dois casos, pode ser feita através de literais.
VariáveisVariáveis
Ex: Conta contaClientePreferencial = new Conta();
String s = "abcde"; int[] v = {1, 2, 3};
![Page 19: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/19.jpg)
• Atributos de dados (declarados no bloco da classe): podem ser usados em qualquer lugar (qualquer bloco) da classe– uso em outras classes depende de
modificadores de acesso (public, private, etc);– existem enquanto o objeto existir( ou
enquanto a classe existir, se declarados static).
Escopo VariáveisEscopo Variáveis
![Page 20: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/20.jpg)
• Variáveis locais (declaradas dentro de blocos de procedimentos)– existem enquanto o procedimento
(método, bloco de controle de execução) estiver sendo executado;
– não pode ser usado fora do bloco;– não pode ter modificadores de acesso
(private, public, etc).
Escopo VariáveisEscopo Variáveis
![Page 21: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/21.jpg)
![Page 22: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/22.jpg)
Definindo atributos em Definindo atributos em JavaJava
• Um atributo de uma classe tem a seguinte estrutura genérica:
<visibilidade> <tipo><nomeVariavel>
![Page 23: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/23.jpg)
Modificadores de acesso Modificadores de acesso p/ Atributosp/ Atributos
• <visibilidade> - é o modificador de acesso para o atributo, podendo ser:– public : poderá ser acessado por
qualquer classe.– private : só poderá ser acessado dentro
da mesma classe.– default (package) : só poderá ser
acessado dentro da própria classe ou por classes do mesmo pacote.
![Page 24: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/24.jpg)
Modificadores de acesso Modificadores de acesso p/ Atributosp/ Atributos
– protected : só poderá ser acessado por classes do mesmo pacote ou por subclasses (veremos isto em herança).
![Page 25: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/25.jpg)
Definindo atributos em Definindo atributos em JavaJava
class Carro { private String fabricante; private String placa; private int numeroPortas; private ...}
Palavras reservadas<visibilidade>
Tipo doAtributo<tipo>
Nome doAtributo
<nomeVariavel>
![Page 26: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/26.jpg)
• Vários atributos de um mesmo tipo podem ser declarados conjuntamente.
• Podemos especificar que um atributo deve ser inicializado com um valor específico.
Definindo atributos em Definindo atributos em JavaJava
![Page 27: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/27.jpg)
Definindo atributos em Definindo atributos em JavaJava
class Carro { private String fabricante, modelo; private String placa, chassi; private int numeroPortas, anoFabricacao; private String paisFabricacao = “Brasil”; private ...}
IndicaMudança de valor
Valor para inicialização
![Page 28: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/28.jpg)
• Os atributos a serem definidos em classe devem ser necessários para implementar um dos serviços do sistema.
Que atributos definir?Que atributos definir?
Por exemplo, lembre que informações são
necessárias para cadastrar um cliente
![Page 29: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/29.jpg)
Definindo atributos em Definindo atributos em JavaJava
class Cliente { private String nome, cpf; private String rua, cep, cidade; private String pais = “Brasil”; private ...}
![Page 30: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/30.jpg)
MétodosMétodos
• Um método descreve o comportamento de uma classe;
• Um método de uma classe tem a seguinte estrutura genérica:
<visibilidade> <static> <tipo_retorno> <nome_método> (<parâmetros>){
// corpo ou escopo do método}
![Page 31: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/31.jpg)
Modificadores de acesso Modificadores de acesso p/ Métodosp/ Métodos
• <visibilidade> - é o modificador de acesso para o método, podendo ser:– public : o método poderá ser acessado
por qualquer classe.– private : o método só poderá ser
acessado dentro da mesma classe.– default (package) : o método só poderá
ser acessado dentro da própria classe ou por classes do mesmo pacote.
![Page 32: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/32.jpg)
Modificadores de acesso Modificadores de acesso p/ Métodosp/ Métodos
– protected : o método só poderá ser acessado por classes do mesmo pacote ou por subclasses (veremos isto em herança).
![Page 33: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/33.jpg)
Modificadores de acesso Modificadores de acesso p/ Métodosp/ Métodos
• <static> - modificador que define se o método é de classe (com static) ou de instância (sem static). Métodos de classe podem ser chamado sem a especificação de um objeto.
![Page 34: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/34.jpg)
Declarando MétodosDeclarando Métodos
• <tipo_retorno> - declaração do tipo de retorno do método, que pode ser qualquer um dos tipos primitivos, qualquer objeto.
Atenção!!!
Tipo void, que significa que o método não retorna valor algum.
![Page 35: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/35.jpg)
Declarando MétodosDeclarando Métodos
• (<parâmetros>) :– um método pode ter zero ou mais
argumentos, também chamados parâmetros;
– cada argumento indicará um pedaço da informação que deve ser passada ao método no momento de sua chamada;
![Page 36: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/36.jpg)
Declarando MétodosDeclarando Métodos
• (<parâmetros>) :– quando houver mais de um argumento,
eles devem ser separados por vírgulas;– caso o método não receba argumentos,
os parênteses devem ser deixados vazios.
![Page 37: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/37.jpg)
Algumas regras aplicadas Algumas regras aplicadas aos métodosaos métodos
• Métodos retornam, no máximo, um valor, podendo ser uma variável ou um objeto;
• Se o tipo de retorno do método não for void, o corpo do método tem de ter um comando return;
![Page 38: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/38.jpg)
Algumas regras aplicadas Algumas regras aplicadas aos métodosaos métodos
• Passagem de parâmetros com tipo diferente dos parâmetros recebidos (assinatura do método) gera erro de sintaxe;
• Um método não pode ser definido dentro de outro método;
![Page 39: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/39.jpg)
Definindo Métodos em JavaDefinindo Métodos em Java
Um método pode executar várias instruções, mas a mais simples é a instrução (comando) de atribuição:
atributo = expressão
![Page 40: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/40.jpg)
Definindo Métodos em JavaDefinindo Métodos em Java
• Para executar a instrução de atribuição o computador– avalia expressão, obtendo um valor;– Faz com que o novo valor de atributo seja
o valor gerado pela experessão.
![Page 41: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/41.jpg)
Métodos construtoresMétodos construtores
• Métodos construtores são métodos especiais definidos com o mesmo nome da classe;
• Construtores são chamados automaticamente toda vez que um objeto da classe é criado;
![Page 42: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/42.jpg)
Métodos construtoresMétodos construtores
• Os métodos construtores servem para inicializar as variáveis de instância de seus objetos e não possuem nenhum valor de retorno.
class Cliente { private String nome, cpf;
// Construtor para classe Cliente Cliente (String nomeCliente, String cpfCliente) { nome = nomeCliente; cpf = cpfCliente; }}
![Page 43: Classes, Objetos, Atributos e Métodos JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações](https://reader036.vdocuments.site/reader036/viewer/2022062512/552fc142497959413d8df6d6/html5/thumbnails/43.jpg)
Métodos construtoresMétodos construtores
• Toda e qualquer classe do Java possui um construtor padrão, que não faz nada nem recebe parâmetros, e que só será chamado se nenhum construtor for definido.