Java intro
1 / 47

Java intro - PowerPoint PPT Presentation

  • Updated On :

Java intro. Part 2. Access control in Java classes. Public members: accessible to any code that can access the class Private members: accessible only within the class (no friend functions!) Protected members: accessible by code in: Same package Subclass as inherited member

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Java intro' - Philip

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Java intro l.jpg

Java intro

Part 2

Access control in java classes l.jpg
Access control in Java classes

  • Public members: accessible to any code that can access the class

  • Private members: accessible only within the class (no friend functions!)

  • Protected members: accessible by code in:

    • Same package

    • Subclass as inherited member

    • Used more often than private because it allows extensibility

Object creation l.jpg
Object creation

  • A variable of a class type is simply a reference to an object

  • A declaration is just a declaration, NOT a call to the object’s constructor

  • To call the constructor, invoke operator new

    • Allocates dynamic memory for objects

    • All objects are dynamic objects

Constructors in java l.jpg
Constructors in Java

  • Method with same name as class

  • Performs initializations of object members

  • Has no return type

  • May be overloaded

    • Can have multiple constructors

    • But no such thing as default arguments

Assignment in java l.jpg
Assignment in Java

  • For primitive data types, works in familiar manner:

    • variable represents memory location sized to hold specific data type

    • value is stored in memory location via assignment operator

    • example:

      int x; // allocates 4 bytes of memory

      x = 5; // stores value 0000 0000 0000 0101

Assignment in java6 l.jpg
Assignment in Java

  • For objects, variables represent locations that can hold references; Java’s oh-so-gentle way of saying “pointers”

  • An object reference is created when a constructor is called using the new operator

  • A variable of the object type stores the reference

Objects assignment l.jpg
Objects & assignment

  • Because variables hold references to objects, and not actual objects, two variables can refer to the same object, as in the example below:

    Greeter worldGreeter = new Greeter (“world”);

    Greeter anotherGreeter = worldGreeter;

Example continued l.jpg
Example continued

// worldGreeter and anotherGreeter both store references to

// the same object


// changes the String variable as referenced by both worldGreeter

// and anotherGreeter; thus:

String s = worldGreeter.sayHello();


// prints Hello Cate! instead of Hello world!

Copying an object l.jpg
Copying an object

  • If it is not your intention to have two variables referencing the same object (it rarely is), can create a copy of an object to store in a second variable using the clone() method

  • Method is available for all library classes; we will see later how to define it for our own classes

Clone method l.jpg
clone() method

  • Returns generic data type Object

  • Use explicit casting to create reference to desired type

  • Example:

    Date aDate = new Date();

    // stores reference to current date & time

    Date anotherDate = (Date)aDate.clone();

    // creates new Object, casts as Date & assigns

Null references l.jpg
Null references

  • Because all object variables contain object references, can assign value null to any object variable

  • This is useful because null is a value that can be tested; should assign null to any variable that doesn’t immediately have an object reference assigned to it

Pointers java l.jpg
Pointers & Java

  • You may have heard that Java doesn’t use pointers; this is only true in the sense that Java doesn’t use pointers you have to deal with directly

    • all object variables contain references - they are, in fact, pointers

    • you can’t create invalid pointers

    • Java uses automatic garbage collection - you don’t have to worry about reclaiming memory

Parameter passing in java l.jpg
Parameter passing in Java

  • We can describe two types of parameters in a Java method:

    • implicit parameter: calling object

    • explicit parameter: argument passed to method; explicitly defined in method’s parameter list

  • When necessary, can refer to the implicit parameter using the keyword this

Parameter passing in java14 l.jpg
Parameter passing in Java

  • Primitive type arguments (int, double, char, etc.) are passed by value

  • Objects are passed by reference (since all object variables hold references), but methods can’t change parameter values - basically, it’s pass by const reference

  • Method can change the state of the calling object (implicit parameter) but not the received object (explicit parameter)

Basic error handling l.jpg
Basic Error Handling

  • Error messages can be sent to System.err (analogous to cerr) instead of System.out

    example: System.err.println (“Invalid input”);

  • Still prints to screen, in most cases - can be useful in situations where errors go somewhere else, like a printing terminal

Ending a program prematurely l.jpg
Ending a program prematurely

  • If a program must be aborted because of an input error, can use System.exit(#) (where # represents an integer)

  • exit is analogous to C++ return statement

  • System.exit(0) means everything was OK, any other number represents error status

Exception handling l.jpg
Exception Handling

  • Exception: a run-time event that disrupts program execution

  • Examples:

    • file that can’t be opened

    • input data inappropriate to variable type

  • Java forces programmer to deal with many such situations ahead of time

Exception handling18 l.jpg
Exception Handling

  • Many standard methods, particularly those that perform I/O, are declared to “throw exceptions”

  • Compiler won’t recognize client methods that don’t handle such exceptions

Examples of exceptions l.jpg
Examples of Exceptions

  • NullPointerException: attempting to call a method on a null reference

  • IllegalArgumentException: indicates that data value passed to a method is outside the bounds of its domain; can be used to enforce preconditions

  • IOException: may occur when attempting to read or write data; for example, attempt to read data of wrong type into a variable

Unchecked exceptions l.jpg
Unchecked exceptions

  • An unchecked exception is one that the compiler doesn’t force the programmer to handle; a NullPointerException is this type of exception

    • an unchecked exception can cause your program to halt with a runtime error

    • generally, unchecked exceptions are caused by conditions under the programmer’s control; in other words, errors you could have prevented

Checked exceptions l.jpg
Checked exceptions

  • Checked exceptions are caused by external conditions beyond the programmer’s control; for example, I/O exceptions

  • The compiler insists that the programmer acknowledge such exceptions by providing exception-handling code

Exception handling22 l.jpg
Exception Handling

  • Any method that might throw an exception must be invoked in one of two ways:

    • within a method that announces its propensity to throw the same type of exception:

      public static void main(String [] args) throws IOException

      public void read (String filename) throws IOException, ClassNotFoundException

    • within a method containing a try/catch block - described later

Exception handling23 l.jpg
Exception handling

  • The method just described lets the exception pass through to a method higher on the chain of method calls

  • The second method traps the (potential) exception object in your method and treats the error appropriately

  • Catching exceptions means surrounding the error-prone code with a try block followed by one or more catch clauses

General form of try catch block l.jpg
General form of try/catch block



// code that might throw an exception


catch (ExceptionType e)


// code that handles specific exception - can have as many

// catch blocks as needed to catch all pertinent exceptions




// optional clause: executes regardless of whether or not

// an exception was thrown in try block


Notes on exception handling syntax l.jpg
Notes on exception handling syntax

  • The exception mechanism deals with an object, which is an instance of class Throwable (defined in java.lang.*) or one of its subclasses

  • So catch block looks like a method declaration with a single parameter, the Throwable object

Throwable objects l.jpg
Throwable objects

  • Often contains useful information about exceptions - examples:

    • name of file that couldn’t be opened

    • value of illegal array index

  • Several methods are defined in Throwable class, including .getMessage(), which returns generic message associated with type of exception caught

Strings in java l.jpg
Strings in Java

  • String is a built-in class (not a simple type)

  • Sequence of Unicode characters

  • String methods include:

    • length: returns number of character in String

      String name = “Cate Sheller”;

      int letters = name.length();

    • charAt():returns character at specific index value

      char first = name.charAt(0);

Strings in java28 l.jpg
Strings in Java

  • A String variable can hold reference to any String object – so can assign a different reference to same variable:

    name = “George W. Bush”;

    • But String object itself is read-only; can’t change first letter of George’s name to Q, for example – it’s NOT an array of char

    • String buffer class exists which does allow for this kind of manipulation

Strings assignment l.jpg
Strings & Assignment

  • Can assign reference to String to any String variable (as previously noted)

  • To copy String object use:

    String name = “Donald Duck”;

    String name2 = new String(name);

Strings logical comparison l.jpg
Strings & Logical Comparison

  • Operator == works as it does with pointers in C++: tests to see if 2 variables reference same object

  • Member method .equals can be used to test contents of 2 strings:

    if (name2.equals(name))

Strings logical comparison31 l.jpg
Strings & Logical Comparison

  • Member method .compareTo is more general comparison operator:

    • Returns positive value if calling object is greater than argument

    • Returns 0 if caller equals argument

    • Returns negative value if caller is less than argument

    • Example: if (name2.compareTo(name) > 0)

Substrings l.jpg

  • The substring method of the String class returns the string described by two arguments:

    • first argument is position of the first character in the substring

    • second argument is position of the first character NOT to include in the substring

    • difference is the length of the substring

Substrings33 l.jpg

  • The java.util package includes the StringTokenizer class, which can be used to extract substrings separated by delimiters

  • A StringTokenizer object is created using two arguments: the string to be broken down, and the delimiting character (space if not specified):

    String colors = “Red&White&Blue”;

    StringTokenizer breakup = new StringTokenizer(colors, “&”);

Stringtokenizer l.jpg

  • Once a StringTokenizer is created, can be used to access individual substrings in a sequential fashion

  • Example:

    while (breakup.hasMoreTokens())


    String theColor = breakup.nextToken();


String concatenation displaying objects l.jpg
String Concatenation & Displaying Objects

  • The + operator concatenates strings with objects of other simple types

  • For implicit type conversion, can concatenate with an empty string

  • Since print() and println() work on Strings, the concatenation operation makes output of other types possible

String concatenation displaying objects36 l.jpg
String Concatenation & Displaying Objects

  • For newly-defined data type, can create a toString method which allows output using print or println

  • For example, the method on the following slide could be used for a Fraction class, with numerator and denominator represented by integer variables n and d

Tostring example l.jpg
toString example

public String toString()


return (“” + n + ‘/’ + d);


Converting from string to numeric type l.jpg
Converting from String to numeric type

  • To convert from a String to a primitive numeric type, use the wrapper classes Integer and Double and their parsing methods, parseInt() and parseDouble()

  • For example:

    int n;

    String number = “52402”;

    n = Integer.parseInt(number);

  • The parsing methods will throw the unchecked NumberFormatException if the String argument doesn’t contain a number

I o in java l.jpg
I/O in Java

  • Java I/O stream library provides, System.out and System.err

  • To do file I/O, need to declare

    • FileInputStream object for input

    • FileOutputStream object for output

  • No “open” command - use new instead:

    FileInputStream infile = new FileInputStream(“source.txt”);

  • No need for “close” - another example of automatic garbage collection

Character i o l.jpg
Character I/O

  • Like C++, Java uses streamed I/O

  • Standard input is represented by (analogous to cin)

  • ) returns byte as an int: closest analog is cin.get(c) - ASCII input, in other words

System out l.jpg

  • Represents stdout

  • String data can be printed using System.out.print and System.out.println

    • can print most primitive types, as they can be converted to String

    • System.out.write prints byte (ASCII character) data

Code example l.jpg
Code example


class Uppercase


public static void main (String [] args) throws IOException


int x;

System.out.println(“Enter text to be converted”);

System.out.println (“to uppercase. Hit Ctrl-Z to end”);

while ((x = != -1)


x = Character.toUpperCase((char)x);





Notes on example l.jpg
Notes on example

  • The two lines inside the loop:

    x = Character.toUppercase((char)x);


  • Form the nucleus of the function:

    • Character is a class name, and toUppercase is a method defined in that class

    • the toUppercase method works on char (Unicode) data, so x, which is an int, is cast as char for function to work on it

    • the write method works on byte (ASCII) data

Console char input l.jpg
Console char input

  • As previously noted, reads byte data, not char

  • To read characters from the console, use to create an InputStreamReader object:

    InputStreamReader reader = new InputStreamReader(;

  • To read Strings, create a BufferedReader object from the InputStreamReader, then invoke the readLine() method:

    BufferedReader kbd = new BufferedReader(reader);

    String myString = kbd.readLine();

Gui input l.jpg
GUI input

  • A simpler way to read input is via an input dialog box; you can create one by invoking the showInputDialog method of JOptionPane class, which is found in the javax.swing package:

    String input = JOptionPane.showInputDialog(“Enter a number:”);

    if (input != null)

    num = Integer.parseInt(input);

    // reads a number by extracting it from returned String

Gui output l.jpg
GUI output

  • Can also create dialog box for output using showMessageDialog method:

    JOptionPane.showMessageDialog (null, “Hey!”);

    // first parameter indicates no parent window

    // second parameter is message displayed

Java intro47 l.jpg

Java intro

Part 2