GoConqr has a new look! Let us know what you think.

Notes

7.3 - Determinar quando casting é necessário

Luis Felipe Guariento Desenvolvimento de Software Concursos Públicos Portuguese 5 pages

Content of the notes (5)

Page 1

Introdução a Casting de tipo

"Type Casting" uma operação que converte o tipo da referência de um objeto para outro tipo. Essa operação é permitida somente se ambos os lados do casting estiverem na mesma hierarquia de tipo. Caso contrário, resultará em erro de compilação.

Há dois tipos de casting: up-casting e down-casting. Up casting pode ser feito de forma implícita enquanto que o down-casting necessita ser feito explicitamente usando-se um operador de casting.

Up-casting é a situação em que um subtipo sofre casting para seu supertipo, enquanto o down-casting é quando um supertipo sofre casting para um subtipo.

Page 2

Exemplos de type casting

Up-casting

String myString = // a String expression

Object myObject = ( Object ) myString;

No exemplo acima, uma referência do tipo String sofre casting para uma referência do tipo Object. Aqui temos um exemplo de up-casting, pois Object é supertipo de String e o operador de casting pode ser removido devido a se tratar de up-casting:

Object myObject = myString;

Down-casting:

Object myObject = // an Object expression

String myString = ( String ) myObject;

Acima temos um exemplo de down-casting, onde uma referência do tipo object sofre casting para o tipo String. Como aqui se trata de down-casting, o operador de casting ( String ) será obrigatório.

Page 3

Exercícios

7.3 - Determinar quando casting é necessário

Na situação acima, Double não é nem subtipo e nem supertipo de Float. Então o casting no código acima será inválido.

Correta: A. Compilation fails

Page 4

7.3 - Determinar quando casting é necessário

Para que o casting seja válido os dois lados do casting devem estar na mesma hierarquia, ou seja, devem ter uma relação de subtipo - supertipo ou vice-versa.

Integer = Object -> Object supertipo de Integer.

Number = Integer -> Integer é subtipo de Number.

Long = Number -> Number é supertipo de Long.

Resposta: D

Notar que, embora o fragmento de código acima seja compilado com sucesso, irá lançar uma exceção ClassCastException em tempo de execução pois o objeto referenciado pela variável myObject não é uma instância do tipo Integer.

Page 5

Resumo

Type Casting é uma operação que converte um tipo de referência de objeto em outro tipo. Essa operação somente será válida se ambos os lados do casting estiverem na mesma hierarquia de tipo.

Há dois tipos de casting. Up-casting pode ser feito implicitamente, enquanto down-casting precisa usar um operador de casting de modo explícito.

Information

Description
Concursos Públicos Desenvolvimento de Software (OCAJP 8 Online Course) Note on 7.3 - Determinar quando casting é necessário, created by Luis Felipe Guariento on 23/08/2019.
Created by
Luis Felipe Guariento · Aug 2019
Updated
Aug 23, 2019
Views
0
Rating

Feedback

What is it about?

What do you think of the new look?

How do you like it?