0% acharam este documento útil (0 voto)
3 visualizações128 páginas

Ok Java 02

O documento aborda conceitos fundamentais de Java, incluindo classes do Core Java, herança e tratamento de exceções. Ele detalha a classe java.lang.Object e suas funcionalidades, além de explorar a classe java.lang.String e suas operações, como concatenação e manipulação. Também menciona a classe java.lang.StringBuilder para manipulação eficiente de strings e introduz wrappers para tipos primitivos, como Integer e Boolean.

Enviado por

paula
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
3 visualizações128 páginas

Ok Java 02

O documento aborda conceitos fundamentais de Java, incluindo classes do Core Java, herança e tratamento de exceções. Ele detalha a classe java.lang.Object e suas funcionalidades, além de explorar a classe java.lang.String e suas operações, como concatenação e manipulação. Também menciona a classe java.lang.StringBuilder para manipulação eficiente de strings e introduz wrappers para tipos primitivos, como Integer e Boolean.

Enviado por

paula
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Java para Concursos – Módulo 2

Vitor Almeida
[Link]
Agenda
● 1 Classes do Core Java

2 Herança

3 Tratamento de Exceção

[Link] 2
1 Classes do Core Java

[Link] 3
1.1 [Link]
● A Classe Object representa um
objeto em Java
● Todas as classes descendem
diretamente ou indiretamente
de Object

[Link] 4
1.1 [Link]
● Métodos de Object
protected Object clone()
– Cria e retorna uma cópia do objeto

1 MinhaClasse copy = (MinhaClasse)[Link]();

[Link] 5
1.1 [Link]
● Métodos de Object
public boolean equals(Object obj )
– Compara o objeto com o objeto passado como
argumento
1 String nome1 = "FCC";
2 String nome2 = "Wikipedia";
3 if ([Link](nome2)) {
4 //instrução
5 }

[Link] 6
1.1 [Link]
● Métodos de Object
protected void finalize()
– É chamado pelo Garbage Collector em um objeto
prestes a ir pro lixo

[Link] 7
1.1 [Link]
● Métodos de Object
public final Class getClass()
– Retorna um objeto da classe [Link]
referente ao objeto em questão

[Link] 8
1.1 [Link]
● Métodos de Object
public int hashCode()
– Retorna o hash code do objeto

[Link] 9
1.1 [Link]
● Métodos de Object
public String toString()
– Retorna uma descrição textual do objeto

1 public static void main(String[] args) {


2 Pessoa pessoa = new Pessoa("Vitor", 34);
3 [Link](pessoa);
4 //vai imprimir algo como "Pessoa@1b533b0"
5 }

[Link] 10
1.2 [Link]
● Uma String é uma sequência de caracteres
Unicode

[Link] 11
1.2 [Link]
● Strings são imutáveis

Um objeto da classe String não precisa do
new para ser criado
1 String s = "oi oi oi";
2 String t = new String("oi oi oi");

[Link] 12
1.2 [Link]
● Podemos comparar Strings com o método
equals
1 String s1 = "Java";
2 if ([Link]("Java"))
3 if ("Java".equals(s1))
4 if (s1 != null && [Link]("Java"))

[Link] 13
1.2 [Link]
● Não corte uma String no meio, concatene

1 String s2 = "provasdeti"
2 ".[Link]";

1 String s1 = "provasdeti" + ".[Link]";


2 String s2 = "Adoro estudar para concursos" +
3 "com as videoaulas do provasdeti";

[Link] 14
1.2 [Link]
● Você pode concatenar uma String com um
tipo primitivo ou outro objeto
1 String s3 = "String número " + 3;

[Link] 15
1.2 [Link]
● Você pode inserir sequências de escape no
meio da String
1 String s1 = "Tem um enter \n no meio";
2 String s2 = "Vitor, o \"Bonitão\u0022";

[Link] 16
1.2 [Link]
● A partir de Java 7, você pode usar String com
o switch
01 String input = ...;
02 switch (input) {
03 case "hum" :
04 [Link]("Você digitou 1");
05 break;
06 case "dois" :
07 [Link]("Você digitou 2");
08 break;
09 default:
10 [Link]("Valor inválido");}
[Link] 17
1.2 [Link]
● Alguns construtores da classe String
public String()
public String(String original)
public String(char[] value)
public String(byte[] bytes)
public String(byte[] bytes, String charset)

[Link] 18
1.2 [Link]
● Métodos da classe String
public char charAt(int index)
– Retorna o char posicionado na posição indicada
pelo index
1 "Java Java".charAt(0); //'J'

[Link] 19
1.2 [Link]
● Métodos da classe String
public String concat(String s)
– Concatena a String s ao fim da String original

1 "J J".concat(" Java"); //"J J Java"

[Link] 20
1.2 [Link]
● Métodos da classe String
public boolean endsWith(String sufixo)
public boolean startsWith(String prefixo)

– endsWith(): Retorna true se a String sufixo for o


sufixo da String original
– startswith(): Retorna true se a String prefixo for o
prefixo da String original
1 "Java Java".endsWith("ava"); //true

[Link] 21
1.2 [Link]
● Métodos da classe String
public int indexOf(String substring)
public int lastIndexOf(String substring)

– Retorna o índice onde ocorre a primeira (ou


última) aparição de substring ou -1, caso não
encontre
1 "Java Java".indexOf(" Java"); //4
2 "Java Java".lastIndexOf("Java"); //5

[Link] 22
1.2 [Link]
● Métodos da classe String
public String substring(int init)
public String substring(int init, int fim)

– Retorna a substring delimitada pelo índice e o fim


da String ou pelos índices

1 "Java Java".substring(5); //"Java"


2 "Java Java".substring(0, 1); //"Ja"

[Link] 23
1.2 [Link]
● Métodos da classe String
public String replace(char old, char new)
– Substitui um char pelo outro

1 "Java Java".replace('a', 'e'); //"Jeve Jeve"

[Link] 24
1.2 [Link]
● Métodos da classe String
public int length()
public boolean isEmpty()

– length(): Retorna o número de caracteres da


String original
isEmpty(): Retorna true se a String original não

tiver nenhum caractere
1 "Java Java".length(); //9

[Link] 25
1.2 [Link]
● Métodos da classe String
public String[] split(String s)
public char[] toCharArray()

– split(): Retorna um array com as Strings


decorrentes da separação da String original no(s)
ponto(s) onde a String s existe
toCharArray(): retorna um array com os

caracteres da String original
1 "Java Java".split(" "); //["Java", "Java"]
2 "Java".toCharArray(); //['J', 'a', 'v', 'a']
[Link] 26
1.2 [Link]
● Métodos da classe String
public String toLowerCase()
public String toUpperCase()

– Retorna uma String com todos os caracteres da


String original minúsculos ou maiúsculos

1 "Java Java".toLowerCase(); //"java java"


2 "Java Java".toUpperCase(); //"JAVA JAVA"

[Link] 27
1.2 [Link]
● Métodos da classe String
public String trim()
– Retorna uma String que será igual a String original
menos eventuais espaços no início ou no fim da
String original

1 " Java ".trim(); //"Java"

[Link] 28
1.2 [Link]
● Métodos da classe String
public static String valueOf(*)
– Retorna uma String com a representação do valor
armazenado no parâmetro
– Podem ser passados como parâmetros tipos
primitivos, arrays e objetos
1 [Link](23); //"23"

[Link] 29
1.3 [Link]
● Strings são imutáveis

Cada operação em uma String significa um
novo objeto como resultado

Se você vai manipular Strings use as classes
[Link] ou
[Link]

StringBuffer é sincronizada

[Link] 30
1.3 [Link]
● StringBuilder não cria novos objetos a cada
manipulação

[Link] 31
1.3 [Link]
● Construtores da classe StringBuilder
public StringBuilder()
public StringBuilder(CharSequence seq)
public StringBuilder(int capacidade)
public StringBuilder(String s)

[Link] 32
1.3 [Link]

Alguns métodos da classe StringBuilder
public int capacity()
public int length()
– capacity(): Retorna a capacidade, ou a
quantidade máxima de caracteres antes que uma
nova alocação de memória precise ocorrer
– length(): Retorna a quantidade de caracteres
armazenados
1 StringBuilder sb = new StringBuilder(40)
2 [Link](); //40
3 [Link](); //0
[Link] 33
1.3 [Link]
● Métodos da classe StringBuilder
public StringBuilder append(String s)
– Adiciona uma String ao término do StringBuilder

1 StringBuilder sb = new StringBuilder(100);


2 [Link]("Matrix ");
3 [Link](2); //"Matrix 2"

4 [Link]("Matrix ").append(2);

[Link] 34
1.3 [Link]
● Métodos da classe StringBuilder
public StringBuilder insert(int ind, String s)
– Adiciona uma String na posição indicada por ind

1 StringBuilder sb2 = new StringBuilder(100);


2 [Link]("rova");
3 [Link](0, 'p'); // "prova"

[Link] 35
1.4 Java Wrappers
● Existem classes para cada um dos tipos
primitivos em Java

[Link] 36
1.4 Java Wrappers
● A classe [Link] representa um
inteiro e possui duas constantes
– MIN_VALUE
– MAX_VALUE
● E dois construtores
public Integer(int valor)
public Integer(String valor)

[Link] 37
1.4 Java Wrappers

O código abaixo constroi dois objetos

Integer i1 = new Integer(12);


Integer i2 = new Integer("123");

Os métodos abaixo retornam os tipos primitivos
respectivos com o valor armazenado no Integer
– ByteValue(), doubleValue(), floatValue() etc.
– Todos são public static

[Link] 38
1.4 Java Wrappers
● A classe [Link] representa
primitivos boolean
● São dois construtores
public Boolean(boolean valor)
public Boolean(String valor)

1 Boolean b1 = new Boolean(false);


2 Boolean b2 = new Boolean("true");

[Link] 39
1.4 Java Wrappers
● O construtor criará um objeto true quando
for passada uma String “true” (com letras
minúsculas ou maiúsculas) e false em
qualquer outro caso
1 Boolean B = new Boolean("tRuE"); //true
2 Boolean C = new Boolean("TrUE"); //true
3 Boolean D = new Boolean("NotTrue"); //false
4 Boolean E = new Boolean("tru"); //false

[Link] 40
1.4 Java Wrappers
● Pode-se utilizar o método valueOf() para
criação de objetos Boolean
public static Boolean valueOf(boolean b)

1 Boolean B = [Link](true);

[Link] 41
1.4 Java Wrappers
● Você não fará testes com o ==, mas com o
método booleanValue()
● Você pode atribuir o valor armazenado no
objeto em um boolean com o método
booleanValue()

1 if ([Link]()){
2 //instruções;
3 }
4 boolean b = [Link]();

[Link] 42
1.4 Java Wrappers
● A classe Character é utilizada para criar
objetos análogos ao tipo primitivo char
● Veja abaixo o construtor e alguns métodos da
classe
public Character(char ch)

public char charValue()


public static boolean isDigit(char ch )
public static char toLowerCase(char ch )
public static char toUpperCase(char ch )

[Link] 43
1.4 Java Wrappers
● Encaixotar/desencaixotar (boxing/unboxing)
é converter um tipo primitivo para um
wrapper e vice-versa

1 Integer num = 3; //boxing


2 Integer num2 = new Integer(100);
3 int[] ints = new int[2];
4 ints[0] = num2; //unboxing

[Link] 44
1.5 Arrays
● Você utiliza arrays (ou listas) para agrupar
tipos primitivos ou objetos do mesmo tipo
● Um Array é um objeto que
– Possui o campo length, com o número de
elementos do array
– Possui um índice especificando cada elemento

[Link] 45
1.5 Arrays

[Link] 46
1.5 Arrays
● Você utiliza variáveis de referência que
apontam para arrays
● Não existe uma classe [Link] ou
qualquer coisa parecida

Para declarar um array
tipo[] nome;
tipo nome[];

1 long[] numeros;
[Link] 47
1.5 Arrays
● Para criar um objeto do tipo array
new tipo[tamanho]

1 new int[4]
● Pode fazer tudo na mesma linha
1 int[] ints = new int[4];
● Daí você inicializa cada elemento do array
1 ints[0] = 10;

[Link] 48
1.5 Arrays
● Você também pode declarar, criar o array e
inicializar seus elementos, tudo na mesma
linha
1 String[] nomes = {"João", "José", "Ana"};
2 int[] numeros = {1, 2, 3, 10};

[Link] 49
1.5 Arrays
● Para iterar por um array, a gente precisa de
um for
1 String[] nomes = {"João", "José", "Ana"};
2 for (int i = 0; i < 3; i++) {
3 [Link](nomes[i]);
4 } //João José Ana
5 //ou
6 for (String nome : nomes) {
7 [Link](nome);
8 }

[Link] 50
1.5 Arrays
● Uma vez criado, o array não pode ter seu
tamanho mudado
● A saída mais elegante para aumentar o
tamanho de um array é usar o copyOf

O copyOfRange é outro método parecido
1 int[] ints = { 1, 2, 3 };
2 int[] novoArray = [Link](ints, 4);
3 int[] int2 = [Link](ints, 1, 2);

[Link] 51
1.5 Arrays
● Relembrando a assinatura de main
public static void main(String[] args)

Você pode passar argumentos para o main via
linha de comando ao executar o programa, de
acordo com a sintaxe
java NomedaClasse arg1 arg2 arg3 argn

[Link] 52
1.5 Arrays
● O programa abaixo mostra na tela os
argumentos passados via linha de comando
para dentro do main
1 public class MainTeste {
2 public static void main(String[] args) {
3 for (String arg : args) {
4 [Link](arg);
5 }}}

[Link] 53
1.6 [Link]
● Para cada objeto criado pela JVM, ela cria um
objeto da classe Class, que descreve esse
objeto
● Todas as instâncias da mesma classe,
compartilham o mesmo objeto da classe Class
● O método getClass retorna esse objeto
1 String nome = "Java";
2 Class myClass = [Link]();
3 [Link]([Link]());

[Link] 54
1.7 [Link]
● Classe com uma série de métodos estáticos
úteis
● Ela possui três atributos
public static final [Link] out;
public static final [Link] in;
public static final [Link] err;

[Link] 55
1.7 [Link]
● Exemplo
01 [Link](12);
02 [Link]("Tela Azul");
03 StringBuilder sb = new StringBuilder();
04 try {
05 char c = (char) [Link]();
06 while (c != '\r') {
07 [Link](c);
08 c = (char) [Link]();}
09 }
10 catch (IOException e) {}

[Link] 56
1.7 [Link]
● Métodos de System
public static void exit(int status)
– Termina o programa e a JVM
– Um 0 no status significa um fim normal
– Outro valor pode implicar problema

[Link] 57
1.7 [Link]
● Métodos de System
public static long currentTimeMillis()
public static long nanoTime()

Retorna um long com o tempo atual em



milisegundos ou nanosegundos
1 long start = [Link]();
2 //instruções
3 long end = [Link]();
4 [Link]("Tempo:" + (end - start));

[Link] 58
1.7 [Link]
● Métodos de System
public static String getProperty(String key)
public static void setProperty(String p,
String n)
– Retorna ou altera um valor armazenado em
determinada propriedade do “sistema”

1 [Link]("[Link]");
2 [Link]("password", "tarzan");
3 [Link]("password")
[Link] 59
1.8 [Link]
● Usamos a classe Scanner para trazer textos
da entrada do usuário
● Para fazer isso é simples
1 Scanner scanner = new Scanner([Link]);
2 String s = [Link]();

[Link] 60
1.9 Varargs
● Varargs possibilita a existência de métodos
com número variável de argumentos
● Sem varargs, você precisa colocar os
argumentos dentro de um array

A sintaxe é um … do lado do tipo

[Link] 61
1.9 Varargs
● Exemplo:
1 public class MainTeste2 {
2 public static void main(String... args) {
3 for (String arg : args) {
4 [Link](arg);
5 }
6 }
7 }

[Link] 62
1.9 Varargs
● Uso do format, no lugar do println:
1 String nome = "Vitor";
2 String sn = "Almeida";
3 [Link]("Nome: %s %s",nome, sn);
4 [Link]("Nome: " + nome + " " +
sn);

[Link] 63
1.10 Questões de Concurso

1 Cesgranrio BR 2011 Analise o código de um programa Java a seguir.
public class TestaArgs {
public static void main(String[] args) {
[Link](args[5]);
}
}
Considere o seguinte comando:
java –hotspot TestaArgs um dois três quatro cinco seis sete
O que será impresso pelo programa ao executar esse comando?
(A) dois (B) três (C) quatro (D) cinco (E) seis

[Link] 64
1.10 Questões de Concurso

1 Cesgranrio BR 2011 Analise o código de um programa Java a seguir.
public class TestaArgs {
public static void main(String[] args) {
[Link](args[5]);
}
}
Considere o seguinte comando:
java –hotspot TestaArgs um dois três quatro cinco seis sete
O que será impresso pelo programa ao executar esse comando?
(A) dois (B) três (C) quatro (D) cinco (E) seis

[Link] 65
1.10 Questões de Concurso
● 2 Cesgranrio PETROBRAS 2011 Entre outros métodos da
linguagem Java, o método pertencente à Classe String
que remove espaços em branco existentes no início ou no
final de uma string é o
(A) abs()
(B) trim()
(C) exit()
(D) load()
(E) random()

[Link] 66
1.10 Questões de Concurso
● 2 Cesgranrio PETROBRAS 2011 Entre outros métodos da
linguagem Java, o método pertencente à Classe String
que remove espaços em branco existentes no início ou no
final de uma string é o
(A) abs()
(B) trim()
(C) exit()
(D) load()
(E) random()

[Link] 67
1.10 Questões de Concurso
● 3 CESPE TRT-RN 2010 O Java oferece uma
biblioteca de classes predefinidas (APIs do
Java), entre elas o pacote [Link] que, por
sua utilidade, deve ser importado pelo
programador no código, antes de as classes
serem declaradas.

[Link] 68
1.10 Questões de Concurso
● 3 CESPE TRT-RN 2010 O Java oferece uma
biblioteca de classes predefinidas (APIs do
Java), entre elas o pacote [Link] que, por
sua utilidade, deve ser importado pelo
programador no código, antes de as classes
serem declaradas.

[Link] 69
1.10 Questões de Concurso

4 CESPE MPU 2010
1 public class MpuJava2 {
2 public static void main(String args[]){
3 Integer i = null;
4 int j = i;
5 [Link](j);}}
O código da linha 5 produzirá a impressão do conteúdo
da variável j, que terá o valor null.

[Link] 70
1.10 Questões de Concurso

4 CESPE MPU 2010
1 public class MpuJava2 {
2 public static void main(String args[]){
3 Integer i = null;
4 int j = i;
5 [Link](j);}}
O código da linha 5 produzirá a impressão do conteúdo
da variável j, que terá o valor null.

[Link] 71
1.10 Questões de Concurso
● 5 CESPE MPU 2010 Na linguagem Java, um
objeto do tipo Integer pode receber valor
nulo, porém uma variável primitiva int não
pode.

[Link] 72
1.10 Questões de Concurso
● 5 CESPE MPU 2010 Na linguagem Java, um
objeto do tipo Integer pode receber valor
nulo, porém uma variável primitiva int não
pode.

[Link] 73
1.10 Questões de Concurso
● Gabarito
– 1E
– 2B
– 3E
– 4E
– 5C

[Link] 74
2 Herança

[Link] 75
2.1 Introdução
● Você estende uma classe, criando uma nova
classe
● Cria-se, então, uma relação mãe-filha entre
as classes

Esse processo de estender classes é chamado
de herança

Quando você estende uma classe, cria-se um
relacionamento IS-A

[Link] 76
2.1 Introdução

[Link] 77
2.1 Introdução
● Você usa extend para criar subclasses
1 public class Mae {
2 }
3 public class Filha extends Mae {
4 }

[Link] 78
2.1 Introdução

Exemplo:
01 class Animal {
02 public float peso;
03 public void comer(){}}
04 class Passaro extends Animal {
05 public int asas = 2;
06 public void voar(){}}
07 class Peixe extends Animal {
08 public int barbatanas = 2;
09 public void nadar(){}}
10 class Cachorro extends Animal {
11 public int patas = 4;
12 public void andar(){}}
[Link] 79
2.1 Introdução

Exemplo2:
1 Cachorro cachorro = new Cachorro();
2 [Link]();
3 Animal animal = new Passaro();

[Link] 80
2.1 Introdução

Uma classe declarada com a palavra final vira
o final da hierarquia de classes, não pode ser
estendida
1 public final class Xpto{};
2 final public class Xpto{};

[Link] 81
2.2 Controle de Acesso

Nível de acesso Classes de Classes do Subclasses Mesma classe


outros pacotes mesmo pacote

public sim sim sim sim


protected não sim sim sim
default não sim não sim
private não não não sim

[Link] 82
2.2 Controle de Acesso
● Exemplo

01 package teste;
02 public class P {
03 public void metodoPublico(){}
04 protected void metodoProtegido(){}
05 void metodoDefaut(){}}
06 class C extends P {
07 public void testeMetodos(){
08 metodoPublico();
09 metodoProtegido();
10 metodoDefault();}}
[Link] 83
2.3 Sobrescrita de Métodos
● Quando você estende uma classe, os
comportamentos dos métodos da superclasse
podem ser mudados
● A assinatura do método da subclasse é
idêntica à assinatura da superclasse
● As regras de controle de acesso devem ser
levadas em consideração na sobrescrita de
métodos

[Link] 84
2.3 Sobrescrita de Métodos

Exemplo
01 public class Caixa {
02 public int larg, alt, peso;
03 public Caixa(int larg, int alt, int peso){
04 [Link] = larg;
05 [Link] = alt;
06 [Link] = peso;}
07 public String toString() {
08 return "Eu sou uma caixa.";}
09 public Object clone() {
10 return new Caixa(1, 1, 1);}}

[Link] 85
2.4 super

Quando você instancia uma classe, todos os
construtores das superclasses, até chegar em
Object, são chamados
01 class Base {
02 public Base() {
03 [Link]("Base");}
04 public Base(String s) {
05 [Link]("Base." + s);}}
06 public class Sub extends Base {
07 public Sub(String s) {
08 [Link](s);}
09 public static void main(String[] args){
10 Sub sub = new Sub("Start");}}
[Link] 86
2.4 super
● O que aconteceu foi que Java mudou
silenciosamente o construtor da subclasse
01 public Sub(String s) {
02 super();
03 [Link](s);
04 }

super é uma instância da superclasse

[Link] 87
2.4 super

Você pode chamar explicitamente o super no
seu construtor para escolher um construtor
específico da superclasse
01 public Sub(String s) {
02 super(s);
03 [Link](s);
04 }

super deve ser a primeira instrução do
construtor

[Link] 88
2.4 super
● super também pode ser utilizado para chamar
um método sobrescrito da superclasse
01 class MatDidatico {
02 public String toString() {
03 return "Material Didático";}}
04 public class Lapis extends MatDidatico {
05 public String toString() {
06 return "Eu sou um lápis";}
07 public void escrever() {
08 [Link]([Link]());
09 [Link](toString());}
10 public static void main(String[] args){
11 Lapis lapis = new Lapis();
12 [Link]();}}
[Link] 89
2.5 Casting de Objetos
● Você pode fazer casting de uma subclasse
para a superclasse (upcasting)
● E depois fazer o downcasting
1 Subc subc = new Subc();
2 Superc superc = subc;
3 Subc subc2 = (Subc) superc;

1 //erro de compilação
2 Superc superc = new Superc();
3 Subc subc = (Subc) superc;
[Link] 90
2.6 instanceof
● O operador instanceof verifica se uma
variável de referência aponta para um objeto
de determinada classe (ou superclasse)
● Quando a variável de referência é null, o
resultado é false
1 String s = "Hello";
2 if (s instanceof [Link]) //true

1 String s = null;
2 if (s instanceof [Link]) //false
[Link] 91
2.7 Questões de Concurso
● 1 CESPE 2012 BASA O operador instanceof só
pode ser usado para testar valores null.

[Link] 92
2.7 Questões de Concurso
● 1 CESPE 2012 BASA O operador instanceof só
pode ser usado para testar valores null.

[Link] 93
2.7 Questões de Concurso
● 2 CESPE 2009 Detran-DF A implementação de
herança múltipla em Java não é possível.

[Link] 94
2.7 Questões de Concurso
● 2 CESPE 2009 Detran-DF A implementação de
herança múltipla em Java não é possível.

[Link] 95
2.7 Questões de Concurso

3 CESPE 2009 TRT-ES O código a seguir, caso
fosse inserido entre as linhas 20 e 21,
permitiria criar uma classe que herdasse as
características da classe Bicycle.
class MountainBike inherit Bicycle {
// inserir nesse ponto novos campos e métodos
// relativos a uma mountain bike.
}

[Link] 96
2.7 Questões de Concurso

3 CESPE 2009 TRT-ES O código a seguir, caso
fosse inserido entre as linhas 20 e 21,
permitiria criar uma classe que herdasse as
características da classe Bicycle.
class MountainBike inherit Bicycle {
// inserir nesse ponto novos campos e métodos
// relativos a uma mountain bike.
}

[Link] 97
2.7 Questões de Concurso
● 4 CESPE 2009 TRT-ES A palavra super deve ser
a primeira do construtor, pois o início da
construção do objeto é a construção da parte
da superclasse. Caso não esteja presente,
está implícita uma invocação para o
construtor padrão, sem argumentos, da
superclasse, equivalente à forma super( ).

[Link] 98
2.7 Questões de Concurso
● 4 CESPE 2009 TRT-ES A palavra super deve ser
a primeira do construtor, pois o início da
construção do objeto é a construção da parte
da superclasse. Caso não esteja presente,
está implícita uma invocação para o
construtor padrão, sem argumentos, da
superclasse, equivalente à forma super( ).

[Link] 99
2.7 Questões de Concurso
● 5 CESPE 2009 ANAC Na programação
orientada a objetos, o conceito de herança
pode ser utilizado mediante a criação de
subclasses a partir de classes anteriormente
criadas. Em Java, as subclasses herdam as
variáveis de instância e os métodos de
instância da superclasse, podendo ter acesso
a todos os membros private e protected da
referida superclasse.

[Link] 100
2.7 Questões de Concurso
● 5 CESPE 2009 ANAC Na programação
orientada a objetos, o conceito de herança
pode ser utilizado mediante a criação de
subclasses a partir de classes anteriormente
criadas. Em Java, as subclasses herdam as
variáveis de instância e os métodos de
instância da superclasse, podendo ter acesso
a todos os membros private e protected da
referida superclasse.

[Link] 101
2.7 Questões de Concurso
● Gabarito
– 1E
– 2C
– 3E
– 4C
– 5E

[Link] 102
3 Tratamento de Exceções

[Link] 103
3.1 Tratando Exceções
● Java oferece o tratamento de exceções por
meio da instrução try
● A estratégia é envolver um pedaço de código
com potencial para lançar uma exceção
dentro de um bloco
● As instruções catch e finally acompanham o
try

[Link] 104
3.1 Tratando Exceções
● Se uma exceção ocorre dentro do bloco try, a
JVM passa o processamento imediatamente
para o bloco catch adequado
● Dentro do bloco catch você trata o erro.

Caso esteja dentro de um método, é possível
lançar a exceção para quem chamou o
método

[Link] 105
3.1 Tratando Exceções
● Sintaxe
01 try {
02 //código “problemático”
03 }catch (exceçãotipo1 e) {
04 //código para tratar a exceção tipo 1
05 }catch (exceçãotipo2 e) {
06 //código para tratar exceção tipo 2
07 }
08 ...
09 finally {
10 //código que roda com ou sem exceção
11 }
[Link] 106
3.1 Tratando Exceções
● Exemplo
01 import [Link];
02 public class NumDouble {
03 public static void main(String[] args) {
04 Scanner scanner = new Scanner([Link]);
05 String input = [Link]();
06 try {
07 double num = [Link](input);
08 [Link]("Res: " + num);}
09 catch (NumberFormatException e) {
10 [Link]("Entrada Inválida");
11 }}}
[Link] 107
3.1 Tratando Exceções
● Exemplo 2
1 Connection connection = null;
2 try {
3 //abrir conexão
4 //trabalhar na conexão
5 }
6 finally {
7 if (connection != null){
8 //fechar conexão
9 }}

[Link] 108
3.1 Tratando Exceções
● Exemplo 3
1 try {
2 [Link]();
3 }
4 catch (SocketTimeoutException |
SecurityException |
IllegalBlockingModeException e){
5 //tratar exceções
6 }
7 catch (IOException e){
8 //tratar IOException
9 }
[Link] 109
3.1 Tratando Exceções
● Java 7 criou um try “com recursos”
1 Connection connection = null;
2 try (Connection connection =
openConnection();
//abrir outros recursos) {
3 //trabalhar com as conexões
4 }
5 catch (SQLException e) {
6 //Tratar exceção
7 }

[Link] 110
3.2 [Link]
● Todas as exceções, como
[Link] ou
[Link], são
subclasses de [Link]

[Link] 111
3.2 [Link]

[Link] 112
3.2 [Link]
● Métodos de Exception
public String toString()
public void printStackTrace()

Retorna, respectivamente, uma descrição da



exceção e a stack trace.
[Link]
at [Link]([Link])
at [Link]([Link]: 18)
at [Link]([Link]: 90)

[Link] 113
3.2 [Link]
● É normal ter um catch no final para Exception

1 try {
2 //instruções
3 }
4 catch (NumberFormatException e) {
5 //trata NumberFormatException
6 }
7 catch (Exception e) {
8 //trata outras exceções
9 }
[Link] 114
3.3 Exceções e Métodos
● Quando uma exceção é lançada dentro de um
método existem duas possibilidades
– Tratar a exceção dentro do método sem
incomodar quem chama o método
– Lançar a exceção para o chamador tratá-la

[Link] 115
3.3 Exceções e Métodos
● Para dizer que um método pode lançar uma
exceção, usamos o throws
1 public String capitalizar(String s) throws
NullPointerException {
3 if (s == null) {
4 throw new NullPointerException(
"Você passou uma String null");
5 }
6 Character prim = [Link](0);
7 String resto = [Link](1);
8 return [Link]().toUpperCase() +
resto;
9 } [Link] 116
3.3 Exceções e Métodos
● O exemplo abaixo mostra o uso de
capitalizar()
1 String input = null;
2 try {
3 String cap = [Link](input);
4 [Link](cap);
5 }
6 catch (NullPointerException e) {
7 [Link]([Link]());
8 }

[Link] 117
3.4 Criando Exceções
● Você pode ter suas próprias exceções criando
subclasses de Exception
1 public class JaMaiusculaException
extends Exception {
2 public String toString() {
3 return "Já tá maiúsculo!";
4 }
5 }

[Link] 118
3.4 Criando Exceções
● Nosso método com a nossa exceção
1 public String capitalizar(String s)
throws NullPointerException,
JaMaiusculaException {
2 if (s == null) {
3 throw new NullPointerException(
"String null não pode");}
4 Character prim = [Link](0);
5 if ([Link](prim)) {
6 throw new JaMaiusculaException();}
7 String resto = [Link](1);
8 return [Link]().toUpperCase() +
resto;} [Link] 119
3.5 Questões de Concurso

1 CESPE TRE-MA 2010 Para definição e manipulação
de uma exceção em Java, devem constar no
programa, obrigatoriamente, os termos
a) try e catch.
b) try e finally.
c) finally e catch.
d) finally e retry.
e) try e retry.

[Link] 120
3.5 Questões de Concurso

1 CESPE TRE-MA 2010 Para definição e manipulação
de uma exceção em Java, devem constar no
programa, obrigatoriamente, os termos
a) try e catch.
b) try e finally.
c) finally e catch.
d) finally e retry.
e) try e retry.

[Link] 121
3.5 Questões de Concurso

2 CESPE Embasa 2010 O trecho de código a
seguir está sintaticamente incorreto.
If ([Link](getName()) != null {
throw new IllegalArgumentException(“invalid
username”);
} else {
[Link](this);}

[Link] 122
3.5 Questões de Concurso

2 CESPE Embasa 2010 O trecho de código a
seguir está sintaticamente incorreto.
If ([Link](getName()) != null {
throw new IllegalArgumentException(“invalid
username”);
} else {
[Link](this);}

[Link] 123
3.5 Questões de Concurso

3 Cesgranrio CMB 2012 A exceção comum StackOverflowException, em
uma applet, é causada quando a(o)

a) applet tenta executar uma ação não permitida pela configuração do


browser.
b) applet tenta armazenar um tipo de dado incorreto em um array.
c) conversão entre strings e números gera uma falha.
d) espaço de pilha do sistema se esgota.
e) espaço de memória para alocar um novo objeto se esgota

[Link] 124
3.5 Questões de Concurso

3 Cesgranrio CMB 2012 A exceção comum StackOverflowException, em
uma applet, é causada quando a(o)

a) applet tenta executar uma ação não permitida pela configuração do


browser.
b) applet tenta armazenar um tipo de dado incorreto em um array.
c) conversão entre strings e números gera uma falha.
d) espaço de pilha do sistema se esgota.
e) espaço de memória para alocar um novo objeto se esgota

[Link] 125
3.5 Questões de Concurso
● 4 FCC PGE-RJ 2009 Um exemplo de exceção incluída na
linguagem Java, que indica quando uma aplicação tentou
usar uma referência a um objeto que não foi identificado,
é
a) ClassNotFoundException.
b) NullPointerException.
c) ArithmeticException.
d) NumberFormatException.
e) IndexOutOfBound.

[Link] 126
3.5 Questões de Concurso
● 4 FCC PGE-RJ 2009 Um exemplo de exceção incluída na
linguagem Java, que indica quando uma aplicação tentou
usar uma referência a um objeto que não foi identificado,
é
a) ClassNotFoundException.
b) NullPointerException.
c) ArithmeticException.
d) NumberFormatException.
e) IndexOutOfBound.

[Link] 127
3.5 Questões de Concurso
● Gabarito
– 1A
– 2E
– 3D
– 4B

[Link] 128

Você também pode gostar