Tem o objetivo de realizar a inicializacao de um objeto da classe.Modelo de Construtor[acesso] NomedaClasse ([argumentos...]) { //corpo do construtor}Exemplo de Sintaxe Construtorpublic class ContaBancaria { public ContaBancaria(){ // veja que o nome do construtor e o mesmo da classe saldo=0; }}Exemplo de Sintaxe de Multiplos Construtorespublic class ContaBancaria { public ContaBancaria(){ saldo=0; } public ContaBancaria(int saldoInicial){ saldo=saldoInicial; }}MetodosMetodos sao usados para realizar funcoes modificando o estado dos objetos. Podem ter varios parametros, e retornar um unico valor. Nos casos que nao retornam valor deve ser utilizado a parlavra chave void.Modelo de Metodo[acesso] tipoRetorno nomeDoMetodo ([argumentos...]) { //corpo do metodo}Exemplo de Metodopublic class ContaBancaria { public int getSaldo(){ return saldo; }}Sobrecarga de metodosUma classe pode possuir dois metodos com mesmo nome, desde que os seus argumentos sejam diferentes.Por exemplo: int getSaldo() {...} int getSaldo(String tipo) {...}Java reconhece qual metodo devera executar verificando quantos e que tipos de parametros sao apresentados na chamada.Exemplo:int x=minhaClasse.getSaldo(total); //chamara o segundo metodo.CamposUm campo e como uma variavel e armazena um estado do objeto. E sempre relacionado a um tipo de dado que determina o que ele pode armazenar.Modelo de Campo[acesso] tipoDeDado nomeCampo [= valor];Exemplos de Campospublic class ContaBancaria { public int saldo; // << campo public Date ultimaTransacao; // << campo public List transacoes; // << campo}Juntando tudopublic class ContaBancaria { private int saldo; // campo public ContaBancaria() { //construtor saldo= 0; } public void retirada(int valor) { //metodo saldo = saldo valor; } public void deposito (int valor) { //metodo saldo = saldo + valor; }}Controle de AcessoPara controlar o acesso aos dados membros temos 4 tipos de acesso direrentes que determinam que classes tem acesso:public qualquer outra classeprotected somente subclasses(default) somente classes no mesmo pacote (package)private somente acessivel por metodos da mesma classeEstes niveis de acesso sao usados para garantir a abstracao e encapsulamento dos objetos.HerancaE o mecanismo que permite uma classe herdar funcionalidades de outra classe, permitindo abstracao de dados e procedimentos e diminuindo a complexidade de grandes sistemas de dados.Usamos heranca quando duas ideias tem diferentes comportamentos mas com funcionalidades sobrepostas:ContaBancaria => ContaCorrenteContaBancaria => ContaPoupancaInterfacesUma interface e uma especificacao de uma classe. Declara-se metodos, mas nao os define. Nao tem contrutores. O objetivo e expecificar um padrao de uso (interface) de um conjunto de classes diferentes.Modelo de Interfaces[acesso] interface NomeDaInterface [extends ListaDeNomeDeInterface...] { //declaracao de metodos}Exemplo de Interfacepublic interface ContaBancaria { public void retirada (int valor); //nenhum metodo e definido na interface, somende declarado public void deposito (int valor); public int getSaldo ();}Como utilizar uma Interface?Uma vez definido uma interface, podemos escrever classes, ou mesmo outras interfaces que implementam (implement) ou extendam (extends) esta interface.Quando uma classe implementa uma interface, esta classe deve possuir em seu corpo cada um dos metodos declarados desta interface. Se uma classe implementa mais de uma interface, ela deve possuir cada uma dos metodos de cada uma das interfaces que implementa.Exemplo usando a Interfacepublic class ContaPoupanca implements ContaBancaria { private int saldo; public ContaPoupanca (int saldoinicial) { saldo= saldoinicial; } public void somaJuros(int juros){ //funcao particular de ContaPoupanca saldo=saldo+(saldo*(juros)/100); } //implementando metodos da interface ContaBancaria: public void retirada