Java 5 - PowerPoint PPT Presentation

1 / 17
About This Presentation
Title:

Java 5

Description:

... Java 5, essentially no language feature changes just additions to the APIs ... Let's declare to the compiler upfront what we're going to put in if a student ... – PowerPoint PPT presentation

Number of Views:19
Avg rating:3.0/5.0
Slides: 18
Provided by: davew56
Category:
Tags: featurelet | java

less

Transcript and Presenter's Notes

Title: Java 5


1
Java 5 Tiger
  • Short history.
  • Where AP is headed likely features that will end
    up in the subset.
  • Other fun features to use if you choose

2
Short History
  • Java 1.1 to 1.2 had some language changes
  • From 1.2 until Java 5, essentially no language
    feature changes just additions to the APIs
  • Java 5 Tiger (originally called 1.5 during
    beta) now has many additional language features
  • AP will adopt a couple

3
Generics
  • Like templates in C
  • Pedagogically, this is more sound. Lets declare
    to the compiler upfront what were going to put
    in if a student doesnt, shell get a compiler
    error. The old way, the runtime environment would
    discover that someone didnt put the right thing
    in/out and throw a run-time exception less
    desirable harder for students. Also, this is
    now self-documenting.
  • ArrayListltFishgt list new ArrayListltFishgt()
  • list.add( new Fish() )
  • Fish f list.get(0)

Realize that one could put a Fish or any subclass
of Fish into this list. One could also choose to
put an interface or abstract class type within
the ltgt
4
Auto-Boxing/Unboxing
  • Automatically put primitives into Wrapper classes
    and go other way as well. Works for all 8
    primitive types and their respective Wrapper
    class.
  • Integer intObj 1
  • int x intObj
  • Yes! Nice!
  • int answer intObj x

5
More generic Generics examples(sorry)
  • Lets keep track of how many of each color crayon
    we have
  • MapltString, Integergt crayons
  • new TreeMapltString, Integergt()
  • crayons.put(red, 1)
  • crayons.put(blue, 2)
  • int count crayons.get("blue")
  • count
  • crayons.put("blue", count)

6
Your Turn!
  • Declare a structure that would allow you to keep
    a list of teacher names (wed eventually like to
    print them in alpha) who have a particular color
    crayon(wed like the crayon colors to also come
    out in alpha order)
  • Red crayon ? Don, Sharon, Joe, Mike
  • Blue crayon ? Kent, Doug, Dan, Carol
  • Green crayon ? Harlie, Jennifer, Gerard
  • Yellow crayon ? Mark, Sam, Kevin, Norm
  • Orange crayon ? Shirley, Regina, Dave, Jon
  • (you have 10 minutes go try get all the names
    in and then print)

7
Heres one way
  • MapltString, SetltStringgtgt crayons new
    TreeMapltString, SetltStringgtgt()
  • Set s new TreeSet()
  • s.add("Don")
  • s.add("Sharon")
  • s.add("Joe")
  • s.add("Mike")
  • crayons.put("red",s)
  • s new TreeSet()
  • s.add("Kent")
  • s.add("Doug")
  • s.add("Dan")
  • s.add("Carol")
  • crayons.put("blue",s)
  • System.out.println(crayons)

8
What will AP do?
  • So, AP will probably adopt Generics and
    Auto-boxing/unboxing for the 07 exam
  • No official word yet but its almost for sure
  • May or may not adopt the For each loop
  • Leads to cleaner questions so probably

9
For Each loop
  • Fish fishes
  • for (Fish f fishes)
  • f.act()
  • Pros no OBOBs cleaner
  • Cons cant skip 1st, last, increment some index,
    delete an element

10
more For Each
  • ArrayListltFishgt fishList
  • for (Fish f fishList)
  • f.act()

11
more For Each
  • int nums 1,2,3,4,5
  • for (int x nums)
  • System.out.println(x)

12
more For Each
  • public static void setsAreIterable()
  • SetltIntegergt s
  • new TreeSetltIntegergt()
  • s.add(1)
  • s.add(2)
  • s.add(3)
  • for (int x s)
  • System.out.println( x )

13
more For Each
  • In general, any class that implements Iterable
    will allow you to use the For Each loop

14
AP Probably Wont adopt
  • Scanner
  • Variable number of parameters

15
Scanner
  • // from console
  • Scanner in new Scanner(System.in)
  • System.out.print("How old are you?")
  • int age in.nextInt()
  • // from file
  • String fileName . . .
  • Scanner file new Scanner(new File(fileName))
  • Easy no more third-party packages necessary

16
Variable number of parameters
  • public static double average(double... values)
  • assert values.length gt 0
  • double sum 0
  • for (double v values)
  • sum v
  • return sum / values.length

17
For more
  • See apcentral.collegeboard.com
Write a Comment
User Comments (0)
About PowerShow.com