Download presentation
Presentation is loading. Please wait.
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.