270 likes | 452 Views
Java Packages and Libraries. M Taimoor Khan taimoorkhan@ciit-attock.edu.pk. Content. What is a class library? What is a package? Java class libraries, what do they provide? The root class : java.lang.object. The Java class library. Thousands of classes Tens of thousands of methods
E N D
Java Packages and Libraries M Taimoor Khan taimoorkhan@ciit-attock.edu.pk
Content • What is a class library? • What is a package? • Java class libraries, what do they provide? • The root class : java.lang.object
The Java class library • Thousands of classes • Tens of thousands of methods • Many useful classes that make life much easier • A Java programmer must be able to work with the libraries • http://java.sun.com/javase/reference/api.jsp
Working with the library You should: • know some important classes by name • know how to find out about other classes • http://java.sun.com/javase/6/docs/api/ Remember: • We only need to know the interface, not the implementation The public face of the class
The exit condition String input = reader.getInput(); if(input.startsWith("bye")) { finished = true; } • Where does ‘startsWith’ come from? • What is it? What does it do? • How can we find out?
Reading class documentation • Documentation of the Java libraries in HTML format; • Readable in a web browser • Class API: Application Programmers’ Interface • Interface description for all library classes
Interface vs implementation The documentation includes • the name of the class;
Interface vs implementation The documentation includes • a general description of the class;
Interface vs implementation The documentation includes • a list of constructors
Interface vs implementation The documentation includes • a list of methods
Interface vs implementation The documentation includes • return values and parameters for constructors and methods
Interface vs implementation The documentation does not include • private fields (most fields are private) • private methods • the implementation (source code) for each method
Using library classes • Classes from the library must be imported using an import statement (except classes from java.lang). • They can then be used like classes from the current project. • http://java.sun.com/docs/books/tutorial/java/package/usepkgs.html • “The Java compiler automatically imports” • java.lang package • the package of the current file source code
Packages and import • Classes are organised in packages. • Single classes may be imported:import java.util.ArrayList; • Whole packages can be imported:import java.util.*; Some of the Packages listed in the API Packages are NOT hierarchical Using “import java.awt.*;” does not import java.awt.color.*;
Using Random • The library class Random can be used to generate random numbers import java.util.Random; ... Random randomGenerator = new Random(); ... int index1 = randomGenerator.nextInt(); int index2 = randomGenerator.nextInt(100);
Generating random responses public Responder() { randomGenerator = new Random(); responses = new ArrayList<String>(); fillResponses(); } public String generateResponse() { int index = randomGenerator.nextInt(responses.size()); return responses.get(index); } public void fillResponses() { ... }
Java Packages • An overview can be found at this link • http://java.sun.com/javase/6/docs/api/overview-summary.html
Java Packages • Inside each package you will find • Interfaces • Classes • Enumerations • Exceptions
java.lang • “Provides classes that are fundamental to the design of the Java programming language.” • Boolean, Byte, Double, Integer, Long, String • Math • System • Object
java.util • “Contains the collections framework…date and time facilities,… string tokenizer.. random-number generator..” • ArrayList<E>, LinkedList<E>, Stack<E> • Calendar, Date • Formatter • Scanner • StringTokenizer • Random • Iterator<E>
java.io • “Provides for system input and output through data streams, serialization and the file system.” • Console • File • FileReader • BufferedInputStream • StreamTokenizer
GUI libraries • java.awt • java.awt.Event • javax.imageio • javax.swing • http://java.sun.com/docs/books/tutorial/uiswing/
Reading & Exercises • P136 – p147 • Collections • http://java.sun.com/docs/books/tutorial/collections/index.html • Swing • http://java.sun.com/docs/books/tutorial/ui/index.html • Classes and Objects • http://java.sun.com/docs/books/tutorial/java/javaOO/index.html • Generics • http://java.sun.com/docs/books/tutorial/java/generics/index.htm
References • http://java.sun.com/javase/reference/api.jsp • http://java.sun.com/docs/books/tutorial/java/package/managingfiles.html • http://en.wikipedia.org/wiki/Classpath_(Java) • http://condor.depaul.edu/~glancast/224class/docs/lecJun16.html