Data Types – Reference Types
E N D
Presentation Transcript
Data Types – Reference Types Objective • To understand what reference types are • The need to study reference types • To understand Java standard packages • To differentiate between Java defined types and user defined types • To have a deeper understanding of the String class • To get acquainted with the Math class • To get acquainted with the Wrapper classes
Data Types – Reference Types • Reference types - any data type that is composed of primitive data types as its based type. • In other words, it is an aggregate of primitive types. • Reference types in Java are: • The array data structure, and • The class data type. • In this section we will briefly discuss the concept of array. • We will discuss the class type to the extent of the fundamental classes of Java.
Reference Types - Array • Array • An array is a set of storage locations set aside to hold one type of data. • It is simply a means where by we can store values of the same type by using one generic name. • The list of items are stored linearly • Hence the items can be accessed by their relative position in the list. • Arrays are real objects in Java. • Storage space is allocated for an array during execution time. • The concept will be discussed fully in future lesson
Reference Types - Array Data arr 10 20 30 40 50 60 70 80 2 0 1 3 4 5 6 7 indeces This is the most we will say about arrays for now
Reference Types - Class • The concept of class as you know is the fundamental construct upon which Java is built. • A class serves as a blueprint or a template for a certain type of object. • All data types other than the primitive type or the array must be addressed in terms of class. • This is evident in the way that we have been using class. • For instance, going back to the class Book. • In order to use this class we had to declare variables of the type: • That is, Book b1; for instance
Reference Types - Standard Packages • Java has a vast and rich collection of classes. • These classes are stored in respective directories and subdirectories. • Each directory or subdirectory is called, a package. • Programmers can use these classes in their specific applications. • There are several packages in Java. • Two of the most important packages in the language are java and javax.
Java Standard Packages java and javax packages, along with their sub-packages. Some of the sub-packages also contain sub-packages of their own • The sub-package lang is a special package is for general programming • The sub-package javax is designed for Graphical User Interface programming (GUI)
Java Standard Package- lang • The java.lang package contains classes that are fundamental to Java. • All of the classes in this package are available in your program automatically. • That is, as soon as the Java compiler is loaded, all of these classes are loaded into every Java source file.
Java Standard Package- lang • Chief among these fundamental classes are the following: • Object • String • Math • System • The wrapper classes - for each primitive type there is a corresponding class. • Byte • Short • Integer • Long • Character • Float • Double • Boolean • Void
The class Object • See the Application Programmers’ Interface (API) • Object • String • Math • Wrapper classes - Byte, Short, Integer, Long, Character, Float, Double, Boolean, and Void.
Using==with Reference Types • class Test • { • public static void main(String[] arg) • { • String s1 = new String("Hello"); • String s2 = new String("Hello"); • System.out.println(s1 == s2); • } • } Answer: __________________
Using==with Reference Types • class Test • { • public static void main(String[] arg) • { • String s1 = new String("Hello"); • String s2 = new String("Hello"); • System.out.println(s1.equals(s2)); • } • }
Input and Output Operations • There are three other important operations that are performed on data. • Input operations • Output operations, and • Formatting operations. • We have been generating outputs already but it was not dealt with formally. • Input Operations - There are several ways to input data into a program: • Java Input classes • The DOS prompt • The Scanner Class • JOptionPane Class
JOptionPane Input/Output Dialog Boxes Capabilities • Create input dialog boxes • Create output windows
JOptionPane Input Dialog Boxes There are four kinds of standard dialogs: • Message dialog shows a message and waits for the user to click OK. • Confirmation dialog shows a question and ask for confirmation such as OK or Cancel. • Option dialog shows a question and gets the user’s response from a set of options. • Input dialog shows a question and gets the user’s input from a text field, a combo box, or list.
JOptionPane – Input Dialog • You must import the class JOptionPane import javax.swing.JOptionPane; • The class contains: • Several constructors, and • Several class methods that deals with dialog boxes. • The general construct of these methods is as follows: showXXXXDialog( parameter_list) • Where XXXXis any of the four dialog box types. We will only be concerned with the input dialog type.
Using JOptionPane for Input • import javax.swing.JOptionPane; • class optionPane • { • public static void main(String[] arg) • { • String str = JOptionPane.showInputDialog( "Read data” ); • } • }
Using JOptionPane for Input • Type the value 123.45 • This value is returned as a String String str = JOptionPane.showInputDialog( "Read data” ); That is,str = “123.45”
Using the Wrapper class - Double • Convert the string value to a double by using the parseDouble method • import javax.swing.JOptionPane; • class convert_string • { • public static void main(String[] arg) • { • String str = JOptionPane.showInputDialog("Read data"); • double x = Double.parseDouble(str); • } • }
Build a Single Class to be used for Input • import javax.swing.JOptionPane; • class GetData • { • static String str; • static double getDouble(String s) • { • str = JOptionPane.showInputDialog(s); • return Double.parseDouble(str); • } • static int getInt(String s) • { • str = JOptionPane.showInputDialog(s); • return Integer.parseInt(str); • } • static String getWord(String s) • { • return JOptionPane.showInputDialog(s); • } • }
Build a Single Class for Input (Another view) • import javax.swing.JOptionPane; • class GetData • { • static double getDouble(String s) • { • return Double.parseDouble( getWord(s) ); • } • static int getInt(String s) • { • return Integer.parseInt(getWord(s)); • } • static String getWord(String s) • { • return JOptionPane.showInputDialog(s); • } • }
Using the GetData Class • class TestGetData • { • public static void main(String[] arg) • { • int x = getData.getInt("Type an integer value"); • double y = getData.getDouble("Type a double value"); • String name = getData.getWord("Enter a Name"); • System.out.println("Your name is: " + name + "\nYour age is: " • + x + "\nYou have $" + y); • } • }
Three Dialog Boxes • Dialog box when Line 5 is executed. • Dialog box when Line 6 is executed. • Dialog box when Line 7 is executed.
Output Operation • We have seen output operations using System.out.println() • Now we will look at output operations using the JOPtionPane class. • We use the showMessageDialog method to out result. • The general for of the showMessageDialog is shown in Figure below
Output Operation • import javax.swing.JOptionPane; • class output_pane • { • public static void main(String[] arg) • { • JOptionPane.showMessageDialog(null, "Your \noutput string", • "Your title", JOptionPane.INFORMATION_MESSAGE); • } • } • Notice the keywords, constants and features: • null signifies that this dialog box stands alone. • Your \noutput string - The string to be displayed in the message dialog box. • Your title – The title you want to give to the output. • JOptionPane.INFORMATION_MESSAGE – This specifies the type of dialog box. Notice the letter cases. They must be written as shown here.
Output Operation – Only String can be Accommodated • import javax.swing.JOptionPane; • class OutputPane • { • public static void main(String[] arg) • { • int x = getData.getInt("Type an integer value"); • double y = getData.getDouble("Type a double value"); • String name = getData.getWord("Enter a Name"); • String s = "Your name is: " + name + "\nYour age is: " + x + • "\nYou have $" + y; • JOptionPane.showMessageDialog(null, s, "Personal Data", • JOptionPane.INFORMATION_MESSAGE); • } • }
Output Operation • In this situation the value to be outputed must be a string. • This means that you must first construct the string before calling the method. • This requires you to: • Know the format of the output ahead of time, and • Be able to use the string concatenation features along with tabs, new line, and space to make the entire string.
Using a Scrollable Pane • The above method has a major disadvantage • A very long string will create a long the dialog box. • Some data maybe lost. • To avid this from happening, do the following: • Place the string (text) in a JTextArea object • Place the JTextArea in a JScrollPane object • Finally, place the JScrollPane object in the showMessageDialog method of the JOptionPane class.
import javax.swing.JOptionPane; • import javax.swing.JTextArea; • import javax.swing.JScrollPane; • class OutputPane • { • public static void main(String[] arg) • { • int x = getData.getInt("Type an integer value"); • double y = getData.getDouble("Type a double value"); • String name = getData.getWord("Enter a Name"); • String s = "Your name is: " + name + "\nYour age is: " + x + • "\nYou have $" + y; • s = s + "\nThat other person does not remember his name\nnor his age"; • s = s + "\nlet alone how much money he has"; • JTextArea text = new JTextArea(s, 10, 20); • JScrollPane pane = new JScrollPane(text); • JOptionPane.showMessageDialog(null, pane, "Personal Data", • JOptionPane.INFORMATION_MESSAGE); • } • }