Presentation is loading. Please wait.

Presentation is loading. Please wait.

Java’s Central Casting

Similar presentations


Presentation on theme: "Java’s Central Casting"— Presentation transcript:

1 Java’s Central Casting
Data Types in Java Java’s Central Casting CS Lecture 1-2 1

2 Are You Java’s Type? Type: a set of values that are semantically similar Java is a strongly typed language Every variable and every expression has a type that is known at compile time. Strong typing helps detect errors at compile time.

3 What’s the Role of Types?
Types limit the: Values that a variable can hold or that an expression can produce Limit the operations supported on those values Determine the meaning of the operations.

4 Java Types Primitive types
boolean numeric Integral: byte, short, int, long, and char Floating-point: float and double Variables of primitive types hold the actual value

5 Inside a Primitive Type
Actual values for integral types: byte: to 127 short: to 32767 int: to long: to char: from '\u0000' to '\uffff’ (from 0 to 65535) Why use int instead of long?

6 Boolean Type boolean type represents a logical quantity with two possible values, indicated by the literals true and false

7 Building a Boolean from a Number
Can’t say (why not?): if (x) System.out.println(“Congratulations, it’s a Boole!”); Convert an integer x (following the C language convention that any nonzero value is true): if (x != 0) System.out.println(“Congratulations, it’s a Boole!”);

8 Building a Boolean from an Object
Object reference obj can be converted (any reference other than null is true): obj! = null

9 The Other Kind of Type Reference types
Variables of reference types don’t hold values, but references to values Classes, interfaces and arrays are all reference types

10 A Graphical View 0010010 1110010 The data of the midway object
int counter Airport midway The data of the midway object

11 Array Types If T is a primitive type, then a variable of type "array of T"can hold: Null reference Reference to any array of type "array of T" If T is a reference type, then a variable of type "array of T" can hold: Reference to any array of type "array of S" such that type S is assignable to type T

12 Object is the Root of All Java
Variable of type Object can hold: Null reference Reference to any object, whether class instance or array.

13 Class  Type Variables have types
Objects (and arrays) don’t have a type, but belong to a class Usually we’ll consider them the same

14 Casting Against Type A value could be two different types
Is 12 an int or a float? Compiler isn’t smart, so it’s conservative (signals an error) Override the compiler with a cast Cast says: Treat this variable as the type I say To cast in Java, write: (newType) variable

15 Examples of casting average = (double) total / counter;

16 Can’t Always Cast Can’t do this:
if ((boolean) x) System.out.println(“Congratulations, it’s a Boole!”); Sometimes casts are automatic, and are called conversions

17 One of Two Ways Create an expression in a context where the type of the expression is not appropriate and either: Error at compile time (if statement has any type other than boolean) May be able to accept a type that is related to the type of the expression

18 Automatic Conversion For convenience, Java performs an implicit conversion From the type of the expression to a type acceptable for its surrounding context Kinds of conversions: Identity, Widening primitive, Narrowing primitive, Widening reference, Narrowing reference, String

19 Funky Conversions What does this print? class Test {
public static void main(String[] args) { int big = ; float approx = big; System.out.println(big -(int)approx); }

20 Coming Attractions Arrays: Grouping related values together


Download ppt "Java’s Central Casting"

Similar presentations


Ads by Google