PowerPoint Sunusu
Download
Report
Transcript PowerPoint Sunusu
Advanced Java Programming
Java SE 8 for Programmers, Third Edition
Contents I
Multidimensional Arrays
Introduction to Collections and Class ArrayList
Object-Oriented Programming(cont’d)
Interfaces
final Methods and Classes
Creating and Using Interfaces
Interface Enhancements
Exception Handling
Contents II
Swing GUI Components
Simple GUI-Based Input/Output with JOptionPane
Overview of Swing Components
Displaying Text and Images in a Window
Text Fields and an Introduction to Event Handling
with Nested Classes
Buttons That Maintain State
JComboBox; Using an Anonymous Inner Class for
Event Handling
Mouse Event Handling
Adapter Classes
JPanel Subclass for Drawing with the Mouse
Introduction to Layout Managers
Contents III
Graphics and Java 2D
Strings, Characters and Regular Expressions
Class String
Files, Streams and Object Serialization
Two-Dimensional Arrays with Rows of
Different Lengths
Arrays of One-Dimensional Arrays
int[][] b = {{1, 2}, {3, 4}}
Multidimensional arrays are maintained as arrays of one-dimensional
arrays.
The initial values are grouped by row in braces.
1 and 2 initialize b[0][0] and b[0][1],
3 and 4 initialize b[1][0] and b[1][1],
The compiler counts the number of nested array initializers to
determine the number of rows in array b.
The compiler counts the initializer values in the nested array initializer
for a row to determine the number of columns in that row.
array b is actually composed of two separate one-dimensional arrays
one containing the value first nested initializer list {1, 2}
one containing the values in the second nested initializer list {3, 4}.
array b itself is anof two elements, each a one-dimensional array of
int values.
Two-Dimensional Arrays with Rows of
Different Lengths
int[][] b = {{1, 2}, {3, 4, 5}};
creates integer array b with two elements
Representing the rows of the two-dimensional array.
Each element of b is a reference to a onedimensional array of int variables.
The int array for row 0 is a one-dimensional
array with two elements (1 and 2),
the int array for row 1 is a one-dimensional
array with three elements (3, 4 and 5).
Creating Two-Dimensional Arrays with
Array-Creation Expressions
int[][] b = new int[3][4];
we use the values 3 and 4 to specify the
number of rows and number of columns,
but this is not required.
Programs can use variables to specify array
dimensions
new creates arrays at execution time—not at
compile time.
The elements of a multidimensional array are
initialized when the array object is created.
Creating Two-Dimensional Arrays with
Array-Creation Expressions
A multidimensional array in which each row has a
different number of columns can be created
int[][] b = new int[2][]; // create 2 rows
b[0] = new int[5]; // create 5 columns for row 0
b[1] = new int[3]; // create 3 columns for row 1
This statements create a two-dimensional array
with two rows.
Row 0 has five columns
Row 1 has three columns
Two-Dimensional Array Example:
Displaying
Element
Values
public class InitArray
{
// create and output 2D arrays
public static void main(String[] args)
{
int[][] array1 = {{1, 2, 3}, {4, 5, 6}};
int[][] array2 = {{1, 2}, {3}, {4, 5, 6}};
System.out.println
("Values in array1 by row are");
outputArray(array1);
// displays array1 by row
System.out.printf
("%nValues in array2 by row are%n");
outputArray(array2);
// displays array2 by row
}
// output rows and columns of a 2D array
public static void outputArray(int[][] array)
{ // loop through array's rows
for (int row = 0; row < array.length; row++)
{ // loop through columns of current row
for (int column = 0;
column < array[row].length; column++)
System.out.printf("%d ",
array[row][column]);
System.out.println();
}
}
} // end class InitArray
Values in array1 by row are
1 2 3
4 5 6
Values in array2 by row are
1 2
3
4 5 6
Common Multidimensional-Array Manipulations
Performed with for Statements
Many common array manipulations use for statements.
The following for statement sets all the elements in row 2 of array a to
zero:
for (int column = 0; column <a[2].length; column++)
a[2][column] = 0;
We specified row 2
we know that the first index is always 2 (0 is the first row, and 1 is the second
row).
This for loop varies only the second index (i.e., the column index).
If row 2 of array a contains four elements, then the preceding for statement is
equivalent to the assignment statements
a[2][0] = 0;
a[2][1] = 0;
a[2][2] = 0;
a[2][3] = 0;
Common Multidimensional-Array Manipulations
Performed with for Statements
The nested for statement totals the values of all the elements in array a:
int total = 0;
for (int row = 0; row < a.length; row++)
{
for (int column = 0; column < a[row].length; column++)
total += a[row][column];
}
These nested for statements total the array elements one row at a time.
The outer for statement begins by setting the row index to 0 so that the
first row’s elements can be totaled by the inner for statement.
The outer for increments row to 1 so that the second row can be totaled.
The outer for increments row to 2 so that the third row can be totaled.
The variable total can be displayed when the outer for statement
terminates.
// an example of two-dimensional array
int[][] grades = {{87, 96, 70}, {68, 87, 90},
{94, 100, 90}, {100, 81, 82},
{83, 65, 85}, {78, 87, 65},
{85, 75, 83}, {91, 94, 100},
{76, 72, 84}, {87, 93, 73}};
Introduction to Collections and Class
ArrayList
The Java API provides several predefined data
structures, called collections, used to store
groups of related objects in memory.
These classes provide efficient methods that
organize, store and retrieve your data without
requiring knowledge of how the data is being
stored.
This can reduce application-development time
and help you produce higher-quality, betterperforming software.
Introduction to Collections and Class
ArrayList
Arrays are used to store sequences of objects.
Arrays do not automatically change their size at
execution time to add additional elements.
The collection class ArrayList<T> (package java.util)
provides a convenient solution to this problem
it can dynamically change its size to accommodate more
elements.
The T (by convention) is a placeholder
when declaring a new ArrayList, replace it with the type
of elements that you want the ArrayList to hold.
Class ArrayList<T>
java.lang.Object
java.util.AbstractCollection<T>
java.util.AbstractList<T>
java.util.ArrayList<T>
Introduction to Collections and Class
ArrayList
ArrayList<String> list;
declares list as an ArrayList collection that can store
only Strings.
Classes with this kind of placeholder that can be
used with any type are called generic classes.
Only nonprimitive types can be used to declare
variables and create objects of generic classes.
Boxing mechanism allows primitive values to be
wrapped as objects for use with generic classes.
Boxing Mechanism
ArrayList<Integer> integers;
declares integers as an ArrayList that can store only
Integers.
When you place an int value into an
ArrayList<Integer>, the int value is boxed
(wrapped) as an Integer object,
When you get an Integer object from an
ArrayList<Integer>, then assign the object to an
int variable, the int value inside the object is
unboxed (unwrapped).
Some methods and properties of class
ArrayList<T>.
an ArrayList<String> Example
import java.util.ArrayList;
public class ArrayListCollection
{
public static void main(String[] args)
{
// create a new ArrayList of Strings with an initial capacity of 10
ArrayList<String> items = new ArrayList<String> ();
items.add("red"); // append an item to the list
items.add(0, "yellow"); // insert "yellow" at index 0
//header
System.out.print( "Display list contents with countercontrolled loop:");
for (int i = 0; i < items.size(); i++)
System.out.printf(" %s", items.get(i));
an ArrayList<String> Example
// display colors using enhanced for in the display method
display(items, "%nDisplay list contents with enhanced for statement:");
items.add("green"); // add "green" to the end of the list
items.add("yellow"); // add "yellow" to the end of the list
display(items, "List with two new elements:");
items.remove("yellow"); // remove the first "yellow"
display(items, "Remove first instance of yellow:");
items.remove(1); // remove item at index 1
display(items, "Remove second list element (green):");
// check if a value is in the List
System.out.printf("\red \" is %s in the list%n",
items.contains("red") ? "": "not ");
// display number of elements in the List
System.out.printf("Size: %s%n", items.size());
}
an ArrayList<String> Example
// display the ArrayList's elements on the console
public static void display(ArrayList<String> items, String header)
{
System.out.printf(header); // display header
// display each element in items
for (String item : items)
System.out.printf(" %s", item);
System.out.println();
}
} // end class ArrayListCollection
Output
Display list contents with counter-controlled loop: yellow red
Display list contents with enhanced for statement: yellow red
List with two new elements: yellow red green yellow
Remove first instance of yellow: red green yellow
Remove second list element (green): red yellow
"red" is in the list
Size: 2