SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Construção de novas Classes em Java
            Carlos Melo
Classes
Atributos
Métodos
Herança
Exemplo UML
Declaração de classes
Declaração
  [modificadores]classNomeClasse
                                        [extendsSuperClasse]
                                        [implementsInterface]
      {
      atributos
      métodos
      }
Modificadores
   Classe pública (public): a classe pode ser utilizada por objetos
     de fora do pacote. Por default, a classe só pode ser acessada
     no próprio pacote.
   Classe Abstrata (abstract): não pode ter objetos instanciados
   Classe final (final): a classe não pode ter subclasses
Atributos da Classe
Declaração de Atributos
[acesso] [chaves] tiponomeAtributo[= expressão];
Moderador de Acesso
     public: o mundo inteiro pode acessar
     protected: somente os métodos da classe e de suas subclasses
      podem acessar, ou ainda, estando na mesma package
     private: somente os métodos da classe podem acessar o atributo
Chaves
     static: o atributo é da classe, não do objeto, logo, todos os objetos
      daclasse compartilham o mesmo valor deste atributo
     final: o valor do atributo não pode ser alterado (constante)
     transient: o atributo não é serializado (não é persistente)
Métodos da classe
Declaração de Métodos
[acesso] [chaves] tipoRetorno nomeMétodo( [parâmetros formais] )
[throws exceptions]
{corpo }
      chaves:
          static: método da classe e não das instâncias
          abstract: utilizado somente em classes abstratas, o método não
          tem corpo
          final: o método não pode ser sobre-escrito
          synchronized: declara o método como zona de exclusão mútua
          no caso de programas concorrentes
      a passagem de parâmetros em Java sempre é por valor.
      Um método é identificado pelo seu nome e pelos parâmetros
•void x(int a) ≠void x(float a)
Inicialização e finalização de objetos
Construtor da Classe
   Se um método da classe tem o mesmo nome que a classe
    este método é um construtor da classe, ou seja, um método
    que é chamado na criação do objeto (new).
class Teste {
        publicTeste() { .... }
        public Teste(int i) { .....}
.....
}
Destrutor da Classe (Finalizador)
   Se a classe possuir um método como o nome finalize, este
    será chamado antes do objeto ser destruído.
protected voidfinalize() throws Throwable { ... }
Exemplo criação de classe (1)
classCachorroextendsMamífero {
// Atributosdos objetos da classe
privateString nome;
privateString cor;
private int peso;
private float energia;
// Construtores(formas da classe)
Cachorro(String s) { nome = s; }
Cachorro() { nome = "Sem nome"; }
// Métodos(comportamentos dos objetos da classe)
void setPeso(intv) { peso = v; }
intgetPeso() {returnpeso; }
voidcorre() { ... }
voidlate() { ... }
}
Exemplo criação de classe (2)
class Agent {
private String nome;
private int valor;
// Constructors
Agent(String s) { nome = s; valor = 10; }
Agent() { nome="Sem nome"; valor = 10; }
// Servicos
void setValor(int v) { valor = v; }
void run(int inicial) {
System.out.println("Agente " + nome + " rodando....");
for (int i=inicial; i <= valor; i++)
System.out.println(i);
}
void run() {
run(1);
}}
class teste {
public static void main(String[] args) {
Agent t1 = new Agent("Exemplo Construção de classe");
t1.setValor(3);
t1.run();
Agent t2 = new Agent();
t2.run(5);
}}
Exemplo de sobre-escrita, sobre-
carga,upcaste polimorfismo
Cliente a = new Cliente();
a.lê(); // qual método é chamado?
a.lê(“Digite:”);
Pessoa p;
p = a; // upcast
p.lê(); // qual método é chamado?
p.lê(“Digite:”);
Interfaces
 São classes com algumas                Exemplo
  restrições                              ArrayListe Vector
  são publicas e abstratas (não           implementam a
  contém implementação dos                interfaceListque tem
  métodos)
                                          métodosadd,get, ...
  não tem atributos
  são utilizadas para implementar         Valem as atribuições:
  herança múltipla.                   ArrayListal = new...
  podem ser utilizadas na definição   Vector vt = new ...
  de referências para objetos, ou     ...
  seja, é uma referência para um
                                      Listl;
  objeto que implementa tal
  interface.                          l = al;
                                      l.add(“X”)
                                      ...
                                      l = vt;
                                      l.add(“Y”)
Exemplo de Interface
publicinterfaceAnimalVoa{
voidvoa(int vel);
int envergadura();
}
classMamifero extends SerVivo {
StringcorPelo;
...
int nroFilhotes() {
...
}
}
classMorcego extendsMamifero
implementsAnimalVoa {
void voa(int vel) {
....
}
int envergadura() {
....
}
...
}
Resumo

  Classes = atributos + métodos
estados + comportamentos
classX extends Y {
static intx = 0;
String nome;
publicX(String n) {
x++;
nome = n;
}
final boolean imp() {}
final boolean imp(String x){
}
}

Weitere ähnliche Inhalte

Was ist angesagt?

Java 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesJava 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesRegis Magalhães
 
Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Andre Nascimento
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem IIIJuliano Weber
 
Java: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, InterfaceJava: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, InterfaceArthur Emanuel
 
POO - Aula 07 - Construtores e Atributos de Classe
POO - Aula 07 - Construtores e Atributos de ClassePOO - Aula 07 - Construtores e Atributos de Classe
POO - Aula 07 - Construtores e Atributos de ClasseFelipe J. R. Vieira
 
Java - Aula 4 - Sobrecarga de construtores, UML e Herança
Java - Aula 4 - Sobrecarga de construtores, UML e HerançaJava - Aula 4 - Sobrecarga de construtores, UML e Herança
Java - Aula 4 - Sobrecarga de construtores, UML e HerançaMoises Omena
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/Rodrigo Vieira
 
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...Professor Samuel Ribeiro
 
Java Básico - Módulo 07: Introdução à programação orientada à objetos
Java Básico - Módulo 07: Introdução à programação orientada à objetos Java Básico - Módulo 07: Introdução à programação orientada à objetos
Java Básico - Módulo 07: Introdução à programação orientada à objetos Professor Samuel Ribeiro
 
Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Natanael Fonseca
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetosCleyton Ferrari
 

Was ist angesagt? (20)

Java 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesJava 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas Interfaces
 
Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem III
 
Java: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, InterfaceJava: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, Interface
 
Classes Internas
Classes InternasClasses Internas
Classes Internas
 
POO - Aula 07 - Construtores e Atributos de Classe
POO - Aula 07 - Construtores e Atributos de ClassePOO - Aula 07 - Construtores e Atributos de Classe
POO - Aula 07 - Construtores e Atributos de Classe
 
Aula 1 5
Aula 1 5Aula 1 5
Aula 1 5
 
Guia Rápido Java
Guia Rápido JavaGuia Rápido Java
Guia Rápido Java
 
v
vv
v
 
Classes e Objectos JAVA
Classes e Objectos JAVAClasses e Objectos JAVA
Classes e Objectos JAVA
 
Java - Aula 4 - Sobrecarga de construtores, UML e Herança
Java - Aula 4 - Sobrecarga de construtores, UML e HerançaJava - Aula 4 - Sobrecarga de construtores, UML e Herança
Java - Aula 4 - Sobrecarga de construtores, UML e Herança
 
Aula 09 - introducao oo
Aula 09 - introducao ooAula 09 - introducao oo
Aula 09 - introducao oo
 
03 poo
03 poo03 poo
03 poo
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
 
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...
 
POO - 12 - A Classe Object
POO - 12 - A Classe ObjectPOO - 12 - A Classe Object
POO - 12 - A Classe Object
 
Java Básico - Módulo 07: Introdução à programação orientada à objetos
Java Básico - Módulo 07: Introdução à programação orientada à objetos Java Básico - Módulo 07: Introdução à programação orientada à objetos
Java Básico - Módulo 07: Introdução à programação orientada à objetos
 
Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Curso Java Básico - Aula 03
Curso Java Básico - Aula 03
 
Java básico - Módulo 06: Array
Java básico - Módulo 06: ArrayJava básico - Módulo 06: Array
Java básico - Módulo 06: Array
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 

Ähnlich wie Construção e conceitos básicos de classes em Java

Programação orientada a objetos – III
Programação orientada a objetos – IIIProgramação orientada a objetos – III
Programação orientada a objetos – IIIGabriel Faustino
 
Classes objetos
Classes objetosClasses objetos
Classes objetosnikson123
 
Linguagens Poo
Linguagens PooLinguagens Poo
Linguagens PooInfogenius
 
introdução a linguagem java-2003
introdução a linguagem java-2003introdução a linguagem java-2003
introdução a linguagem java-2003elliando dias
 
Classes Anônimas, Internas e Coleções Java
Classes Anônimas, Internas e Coleções JavaClasses Anônimas, Internas e Coleções Java
Classes Anônimas, Internas e Coleções Javadanrleywillian1
 
Curso Básico de Java - Aula 9
Curso Básico de Java - Aula 9Curso Básico de Java - Aula 9
Curso Básico de Java - Aula 9PeslPinguim
 
Sistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de JavaSistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de JavaArthur Emanuel
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02Natanael Fonseca
 
Reuso com Herança e Composição
Reuso com Herança e ComposiçãoReuso com Herança e Composição
Reuso com Herança e ComposiçãoDenis L Presciliano
 
Reuso com Herança e Composição
Reuso com Herança e ComposiçãoReuso com Herança e Composição
Reuso com Herança e ComposiçãoDenis L Presciliano
 
Java aprendendo linguagem.ppt
Java aprendendo linguagem.pptJava aprendendo linguagem.ppt
Java aprendendo linguagem.pptEmerson Cardoso
 
Programação C - Aula 1
Programação C - Aula 1Programação C - Aula 1
Programação C - Aula 1Filipo Mór
 
Java 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De ClasseJava 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De ClasseRegis Magalhães
 

Ähnlich wie Construção e conceitos básicos de classes em Java (20)

Programação orientada a objetos – III
Programação orientada a objetos – IIIProgramação orientada a objetos – III
Programação orientada a objetos – III
 
Classes objetos
Classes objetosClasses objetos
Classes objetos
 
Linguagens Poo
Linguagens PooLinguagens Poo
Linguagens Poo
 
introdução a linguagem java-2003
introdução a linguagem java-2003introdução a linguagem java-2003
introdução a linguagem java-2003
 
Classes Anônimas, Internas e Coleções Java
Classes Anônimas, Internas e Coleções JavaClasses Anônimas, Internas e Coleções Java
Classes Anônimas, Internas e Coleções Java
 
Curso Básico de Java - Aula 9
Curso Básico de Java - Aula 9Curso Básico de Java - Aula 9
Curso Básico de Java - Aula 9
 
Sistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de JavaSistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de Java
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02
 
Reuso com Herança e Composição
Reuso com Herança e ComposiçãoReuso com Herança e Composição
Reuso com Herança e Composição
 
Reuso com Herança e Composição
Reuso com Herança e ComposiçãoReuso com Herança e Composição
Reuso com Herança e Composição
 
Java aprendendo linguagem.ppt
Java aprendendo linguagem.pptJava aprendendo linguagem.ppt
Java aprendendo linguagem.ppt
 
Java7
Java7Java7
Java7
 
Final e aastract
Final e aastractFinal e aastract
Final e aastract
 
Programação C - Aula 1
Programação C - Aula 1Programação C - Aula 1
Programação C - Aula 1
 
Java 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De ClasseJava 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De Classe
 
3- POO
3- POO3- POO
3- POO
 
Poo
PooPoo
Poo
 
Curso Java Basico
Curso Java BasicoCurso Java Basico
Curso Java Basico
 
java_avancado.pdf
java_avancado.pdfjava_avancado.pdf
java_avancado.pdf
 
Lambda Expressions
Lambda ExpressionsLambda Expressions
Lambda Expressions
 

Mehr von Carlos Melo

Gestão de projetos introduçao
Gestão de projetos introduçaoGestão de projetos introduçao
Gestão de projetos introduçaoCarlos Melo
 
Roteiro da aula prática de sexta à tarde
Roteiro da aula prática de sexta à tardeRoteiro da aula prática de sexta à tarde
Roteiro da aula prática de sexta à tardeCarlos Melo
 
5a.aulacapacitor
5a.aulacapacitor5a.aulacapacitor
5a.aulacapacitorCarlos Melo
 
Atividade final acionamentos
Atividade final   acionamentosAtividade final   acionamentos
Atividade final acionamentosCarlos Melo
 
Questões clp-automação
Questões clp-automaçãoQuestões clp-automação
Questões clp-automaçãoCarlos Melo
 
Apresentação12
Apresentação12Apresentação12
Apresentação12Carlos Melo
 
Gestão da manutenção os 2
Gestão da manutenção os 2Gestão da manutenção os 2
Gestão da manutenção os 2Carlos Melo
 
Gestão da manutenção os 1
Gestão da manutenção os 1Gestão da manutenção os 1
Gestão da manutenção os 1Carlos Melo
 
Desenho técnico cap1
Desenho técnico   cap1Desenho técnico   cap1
Desenho técnico cap1Carlos Melo
 
Eletrônica básica
Eletrônica básicaEletrônica básica
Eletrônica básicaCarlos Melo
 
Analise de circuito indutores
Analise de circuito   indutoresAnalise de circuito   indutores
Analise de circuito indutoresCarlos Melo
 
Notas ete jags - destec
Notas ete   jags - destecNotas ete   jags - destec
Notas ete jags - destecCarlos Melo
 
Ucr3 fundamentos mecanica_sa1_suporte dosador_1_22_mai12
Ucr3 fundamentos mecanica_sa1_suporte dosador_1_22_mai12Ucr3 fundamentos mecanica_sa1_suporte dosador_1_22_mai12
Ucr3 fundamentos mecanica_sa1_suporte dosador_1_22_mai12Carlos Melo
 
Recuperação descrição
Recuperação   descriçãoRecuperação   descrição
Recuperação descriçãoCarlos Melo
 
Ete projetos elétricos 2
Ete projetos elétricos 2Ete projetos elétricos 2
Ete projetos elétricos 2Carlos Melo
 

Mehr von Carlos Melo (20)

Treinamento 1
Treinamento 1Treinamento 1
Treinamento 1
 
Zener
ZenerZener
Zener
 
Gestão de projetos introduçao
Gestão de projetos introduçaoGestão de projetos introduçao
Gestão de projetos introduçao
 
Capacitancia
CapacitanciaCapacitancia
Capacitancia
 
Roteiro da aula prática de sexta à tarde
Roteiro da aula prática de sexta à tardeRoteiro da aula prática de sexta à tarde
Roteiro da aula prática de sexta à tarde
 
5a.aulacapacitor
5a.aulacapacitor5a.aulacapacitor
5a.aulacapacitor
 
Atividade final acionamentos
Atividade final   acionamentosAtividade final   acionamentos
Atividade final acionamentos
 
Questões clp-automação
Questões clp-automaçãoQuestões clp-automação
Questões clp-automação
 
Apresentação12
Apresentação12Apresentação12
Apresentação12
 
Pneumática
PneumáticaPneumática
Pneumática
 
Gestão da manutenção os 2
Gestão da manutenção os 2Gestão da manutenção os 2
Gestão da manutenção os 2
 
Gestão da manutenção os 1
Gestão da manutenção os 1Gestão da manutenção os 1
Gestão da manutenção os 1
 
Desenho técnico cap1
Desenho técnico   cap1Desenho técnico   cap1
Desenho técnico cap1
 
Eletrônica básica
Eletrônica básicaEletrônica básica
Eletrônica básica
 
Analise de circuito indutores
Analise de circuito   indutoresAnalise de circuito   indutores
Analise de circuito indutores
 
Notas ete jags - destec
Notas ete   jags - destecNotas ete   jags - destec
Notas ete jags - destec
 
Ucr3 fundamentos mecanica_sa1_suporte dosador_1_22_mai12
Ucr3 fundamentos mecanica_sa1_suporte dosador_1_22_mai12Ucr3 fundamentos mecanica_sa1_suporte dosador_1_22_mai12
Ucr3 fundamentos mecanica_sa1_suporte dosador_1_22_mai12
 
Recuperação descrição
Recuperação   descriçãoRecuperação   descrição
Recuperação descrição
 
Recuperação 1
Recuperação 1Recuperação 1
Recuperação 1
 
Ete projetos elétricos 2
Ete projetos elétricos 2Ete projetos elétricos 2
Ete projetos elétricos 2
 

Construção e conceitos básicos de classes em Java

  • 1. Construção de novas Classes em Java Carlos Melo
  • 4. Declaração de classes Declaração [modificadores]classNomeClasse [extendsSuperClasse] [implementsInterface] { atributos métodos } Modificadores Classe pública (public): a classe pode ser utilizada por objetos de fora do pacote. Por default, a classe só pode ser acessada no próprio pacote. Classe Abstrata (abstract): não pode ter objetos instanciados Classe final (final): a classe não pode ter subclasses
  • 5. Atributos da Classe Declaração de Atributos [acesso] [chaves] tiponomeAtributo[= expressão]; Moderador de Acesso public: o mundo inteiro pode acessar protected: somente os métodos da classe e de suas subclasses podem acessar, ou ainda, estando na mesma package private: somente os métodos da classe podem acessar o atributo Chaves static: o atributo é da classe, não do objeto, logo, todos os objetos daclasse compartilham o mesmo valor deste atributo final: o valor do atributo não pode ser alterado (constante) transient: o atributo não é serializado (não é persistente)
  • 6. Métodos da classe Declaração de Métodos [acesso] [chaves] tipoRetorno nomeMétodo( [parâmetros formais] ) [throws exceptions] {corpo } chaves: static: método da classe e não das instâncias abstract: utilizado somente em classes abstratas, o método não tem corpo final: o método não pode ser sobre-escrito synchronized: declara o método como zona de exclusão mútua no caso de programas concorrentes a passagem de parâmetros em Java sempre é por valor. Um método é identificado pelo seu nome e pelos parâmetros •void x(int a) ≠void x(float a)
  • 7. Inicialização e finalização de objetos Construtor da Classe Se um método da classe tem o mesmo nome que a classe este método é um construtor da classe, ou seja, um método que é chamado na criação do objeto (new). class Teste { publicTeste() { .... } public Teste(int i) { .....} ..... } Destrutor da Classe (Finalizador) Se a classe possuir um método como o nome finalize, este será chamado antes do objeto ser destruído. protected voidfinalize() throws Throwable { ... }
  • 8. Exemplo criação de classe (1) classCachorroextendsMamífero { // Atributosdos objetos da classe privateString nome; privateString cor; private int peso; private float energia; // Construtores(formas da classe) Cachorro(String s) { nome = s; } Cachorro() { nome = "Sem nome"; } // Métodos(comportamentos dos objetos da classe) void setPeso(intv) { peso = v; } intgetPeso() {returnpeso; } voidcorre() { ... } voidlate() { ... } }
  • 9. Exemplo criação de classe (2) class Agent { private String nome; private int valor; // Constructors Agent(String s) { nome = s; valor = 10; } Agent() { nome="Sem nome"; valor = 10; } // Servicos void setValor(int v) { valor = v; } void run(int inicial) { System.out.println("Agente " + nome + " rodando...."); for (int i=inicial; i <= valor; i++) System.out.println(i); } void run() { run(1); }} class teste { public static void main(String[] args) { Agent t1 = new Agent("Exemplo Construção de classe"); t1.setValor(3); t1.run(); Agent t2 = new Agent(); t2.run(5); }}
  • 10. Exemplo de sobre-escrita, sobre- carga,upcaste polimorfismo Cliente a = new Cliente(); a.lê(); // qual método é chamado? a.lê(“Digite:”); Pessoa p; p = a; // upcast p.lê(); // qual método é chamado? p.lê(“Digite:”);
  • 11. Interfaces São classes com algumas Exemplo restrições ArrayListe Vector são publicas e abstratas (não implementam a contém implementação dos interfaceListque tem métodos) métodosadd,get, ... não tem atributos são utilizadas para implementar Valem as atribuições: herança múltipla. ArrayListal = new... podem ser utilizadas na definição Vector vt = new ... de referências para objetos, ou ... seja, é uma referência para um Listl; objeto que implementa tal interface. l = al; l.add(“X”) ... l = vt; l.add(“Y”)
  • 12. Exemplo de Interface publicinterfaceAnimalVoa{ voidvoa(int vel); int envergadura(); } classMamifero extends SerVivo { StringcorPelo; ... int nroFilhotes() { ... } } classMorcego extendsMamifero implementsAnimalVoa { void voa(int vel) { .... } int envergadura() { .... } ... }
  • 13. Resumo Classes = atributos + métodos estados + comportamentos classX extends Y { static intx = 0; String nome; publicX(String n) { x++; nome = n; } final boolean imp() {} final boolean imp(String x){ } }