CMSC 341 Java Packages, Classes, Variables, Expressions, Flow Control, and Exceptions.

Slides:



Advertisements
Similar presentations
Basic Java Constructs and Data Types – Nuts and Bolts
Advertisements

COSC 2006 Data Structures I Instructor: S. Xu URL:
Core Java Lecture 4-5. What We Will Cover Today What Are Methods Scope and Life Time of Variables Command Line Arguments Use of static keyword in Java.
1 SSD3 - Unit 2 Java toString & Equals Presentation Class Website:
Written by: Dr. JJ Shepherd
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved Inheritance and Polymorphism.
Road Map Introduction to object oriented programming. Classes
CSM-Java Programming-I Spring,2005 Class Design Lesson - 4.
Exceptions Three categories of errors: Syntax errors Runtime errors Logic errors Syntax errors: rules of the language have not been followed. Runtime error:
C#.NET C# language. C# A modern, general-purpose object-oriented language Part of the.NET family of languages ECMA standard Based on C and C++
Terms and Rules Professor Evan Korth New York University (All rights reserved)
1 Inheritance and Polymorphism. 2 Motivations Suppose you will define classes to model circles, rectangles, and triangles. These classes have many common.
Fundamental Programming Structures in Java: Comments, Data Types, Variables, Assignments, Operators.
CMSC 341 Introduction to Java Based on tutorial by Rebecca Hasti at
Copyright © 2003 ProsoftTraining. All rights reserved. Sun Certified Java Programmer Exam Preparation Guide.
Principles of Computer Programming (using Java) Review Haidong Xue Summer 2011, at GSU.
CMSC 341 Java Review. 08/03/2007 CMSC 341 Java Review 2 Important Java Concepts and Terminology JRE is the Java Runtime Environment and it creates a virtual.
1 Inheritance and Polymorphism Chapter 9. 2 Polymorphism, Dynamic Binding and Generic Programming public class Test { public static void main(String[]
Liang, Introduction to Java Programming, Seventh Edition, (c) 2009 Pearson Education, Inc. All rights reserved Chapter 18 Exception Handling.
Chapter 12 Inheritance and Exceptions Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas,
Programming in Java Unit 2. Class and variable declaration A class is best thought of as a template from which objects are created. You can create many.
Lecture objectives  Differences between Java and C#  Understand and use abstract classes  Casting in Java: why is it important?  Master exceptions.
By Nicholas Policelli An Introduction to Java. Basic Program Structure public class ClassName { public static void main(String[] args) { program statements.
Geoff Holmes and Bernhard Pfahringer COMP206-08S General Programming 2.
Sun Certified Java Programmer, ©2004 Gary Lance, Chapter 5, page 1 Sun Certified Java 1.4 Programmer Chapter 5 Notes Gary Lance
Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.
Netprog: Java Intro1 Crash Course in Java. Netprog: Java Intro2 Why Java? Network Programming in Java is very different than in C/C++ –much more language.
July 2011CMSC 341 CVS/Ant 1 CMSC 341 Java Packages Ant CVS Project Submission.
Java Introduction 密碼學與應用 海洋大學資訊工程系 丁培毅.
Liang, Introduction to Java Programming, Fifth Edition, (c) 2005 Pearson Education, Inc. All rights reserved Chapter 15 Exceptions and.
RIT Computer Science Dept. Goals l Inheritance l Modifiers: private, public, protected l Polymorphism.
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 15 มิถุนายน 2552 Keyword & Data Type มหาวิทยาลัยเนชั่น.
10-Nov-15 Java Object Oriented Programming What is it?
Programming in Java CSCI-2220 Object Oriented Programming.
Java for C++ Programmers A Brief Tutorial. Overview Classes and Objects Simple Program Constructors Arrays Strings Inheritance and Interfaces Exceptions.
1 Basic Java Constructs and Data Types – Nuts and Bolts Looking into Specific Differences and Enhancements in Java compared to C.
Java Class Structure. Class Structure package declaration import statements class declaration class (static) variable declarations* instance variable.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 9 Inheritance and.
COP3502 Programming Fundamentals for CIS Majors 1 Instructor: Parisa Rashidi.
Exceptions and Assertions Chapter 15 – CSCI 1302.
Chapter 8 Class Inheritance and Interfaces F Superclasses and Subclasses  Keywords: super F Overriding methods  The Object Class  Modifiers: protected,
Application development with Java Lecture 21. Inheritance Subclasses Overriding Object class.
 In the java programming language, a keyword is one of 50 reserved words which have a predefined meaning in the language; because of this,
More on Objects Mehdi Einali Advanced Programming in Java 1.
Peyman Dodangeh Sharif University of Technology Spring 2014.
Duke CPS From C++ to Java l Java history: Oak, toaster-ovens, internet language, panacea l What it is ä O-O language, not a hybrid (cf. C++)
Exceptions Handling Prepared by: Ligemm Mae del Castillo.
Chapter 11: Advanced Inheritance Concepts. Objectives Create and use abstract classes Use dynamic method binding Create arrays of subclass objects Use.
Classes, Interfaces and Packages
Quick Review of OOP Constructs Classes:  Data types for structured data and behavior  fields and methods Objects:  Variables whose data type is a class.
Written by: Dr. JJ Shepherd
1 Chapter 15 Exceptions and Assertions. 2 Objectives F To know what is exception and what is exception handling (§15.2). F To distinguish exception types:
An Introduction to Java – Part 1 Erin Hamalainen CS 265 Sec 001 October 20, 2010.
SourceAnatomy1 Java Source Anatomy Barb Ericson Georgia Institute of Technology July 2008.
© 2006 Pearson Addison-Wesley. All rights reserved 1-1 Chapter 1 Review of Java Fundamentals.
1 Object-Oriented Programming Inheritance. 2 Superclasses and Subclasses Superclasses and Subclasses  Superclasses and subclasses Object of one class.
Terms and Rules II Professor Evan Korth New York University (All rights reserved)
Reference Types CSE301 University of Sunderland Harry R Erwin, PhD.
COMP Inheritance and Polymorphism Yi Hong June 09, 2015.
Throw, Throws & Try-Catch Statements Explanations and Pictures from: Reference:
UMass Lowell Computer Science Java and Distributed Computing Prof. Karen Daniels Fall, 2000 Lecture 10 Java Fundamentals Objects/ClassesMethods.
CompSci 100E JB1.1 Java Basics (ala Goodrich & Tamassia)  Everything is in a class  A minimal program: public class Hello { public static void main(String[]
Object Oriented Programming Lecture 2: BallWorld.
Classes CS 162 (Summer 2009). Parts of a Class Instance Fields Methods.
 It is a pure oops language and a high level language.  It was developed at sun microsystems by James Gosling.
Java Primer 1: Types, Classes and Operators
Computer Science II Exam 1 Review.
Chapter 9 Inheritance and Polymorphism
Extending Classes.
Java Programming Language
Presentation transcript:

CMSC 341 Java Packages, Classes, Variables, Expressions, Flow Control, and Exceptions

8/3/2007 UMBC CMSC 341 Java 2 2 Sun’s Naming Conventions Classes and Interfaces StringBuffer, Integer, MyDate Identifiers for methods, fields, and variables _name, getName, setName, isName, birthDate Packages java.lang, java.util, proj1 Constants PI, MAX_NUMBER

8/3/2007 UMBC CMSC 341 Java 2 3 Comments Java supports three types of comments.  C style /* multi-liner comments */  C++ style // one liner comments  Javadoc /** This is an example of a javadoc comment. These comments can be converted to part of the pages you see in the API. */

8/3/2007 UMBC CMSC 341 Java 2 4 The final modifier Constants in Java are created using the final modifier. final int MAX = 9; Final may also be applied to methods in which case it means the method can not be overridden in subclasses. Final may also be applied to classes in which case it means the class can not be extended or subclassed as in the String class.

8/3/2007 UMBC CMSC 341 Java 2 5 Packages Only one package per file. Packages serve as a namespace in Java and create a directory hierarchy when compiled. Classes are placed in a package using the following syntax in the first line that is not a comment. package packagename; package packagename.subpackagename;

8/3/2007 UMBC CMSC 341 Java 2 6 Packages (cont.) Classes in a package are compiled using the –d option. On the following slide, you will find the command to compile the code from the Proj1/src directory to the Proj1/bin directory.

8/3/2007 UMBC CMSC 341 Java 2 7 Packages (cont.) It is common practice to duplicate the package directory hierarchy in a directory named src and to compile to a directory named bin. javac –d../bin proj1/gui/Example.java Proj1 proj1 src bin gui Example.java Example.class The following command is run from the src directory:

8/3/2007 UMBC CMSC 341 Java 2 8 Packages (cont.) By default, all classes that do not contain a package declaration are in the unnamed package. The fully qualified name of a class is the packageName.ClassName. java.lang.String To alleviate the burden of using the fully qualified name of a class, people use an import statement found before the class declaration. import java.util.StringBuffer; import java.util.*;

8/3/2007 UMBC CMSC 341 Java 2 9 Fields and Methods In Java you have fields and methods. A field is like a data member in C++. Method is like a member method in C++. Every field and method has an access level. The public, private, and protected keywords have the same functionality as those in C++.  public  protected  private  ( package)

8/3/2007 UMBC CMSC 341 Java 2 10 Access Control private default protected public Modifier Same class Same package Subclass Universe

8/3/2007 UMBC CMSC 341 Java 2 11 Access Control for Classes Classes may have either public or package accessibility. Only one public class per file. Omitting the access modifier prior to class keyword gives the class package accessibility.

8/3/2007 UMBC CMSC 341 Java 2 12 Classes In Java, all classes at some point in their inheritance hierarchy are subclasses of java.lang.Object, therefore all objects have some inherited, default implementation before you begin to code them.  String toString()  boolean equals(Object o)

8/3/2007 UMBC CMSC 341 Java 2 13 Classes (cont.) Unlike C++ you must define the accessibility for every field and every method. In the following code, the x is public but the y gets the default accessibility of package since it doesn’t have a modifier. public int x; int y;

8/3/2007 UMBC CMSC 341 Java 2 14 Instance and Local Variables Unlike C++ you must define everything within a class. Like C++,  variables declared outside of method are instance variables and store instance or object data. The lifetime of the variable is the lifetime of the instance.  variables declared within a method, including the parameter variables, are local variables. The lifetime of the variable is the lifetime of the method.

8/3/2007 UMBC CMSC 341 Java 2 15 Static Variables A class may also contain static variables and methods. Similar to C++…  Static variables store static or class data, meaning only one copy of the data is shared by all objects of the class.  Static methods do not have access to instance variables, but they do have access to static variables.  Instance methods also have access to static variables.

8/3/2007 UMBC CMSC 341 Java 2 16 Instance vs. Static Methods Static methods  have static as a modifier,  can access static data,  can be invoked by a host object or simply by using the class name as a qualifier. Instance methods  can access static data,  can access instance data of the host object,  must be invoked by a host object,  contain a this reference that stores the address of host object.

8/3/2007 UMBC CMSC 341 Java 2 17 Pass By Value or By Reference? All arguments are passed by value to a method. However, since references are addresses, in reality, they are passed by reference, meaning…  Arguments that contain primitive data are passed by value. Changes to parameters in method do not effect arguments.  Arguments that contain reference data are passed by reference. Changes to parameter in method may effect arguments.

8/3/2007 UMBC CMSC 341 Java 2 18 Constructors Similar to C++, Java will provide a default (no argument) constructor if one is not defined in the class. Java, however, will initialize all fields (object or instance data) to their zero values as in the array objects. Like C++, once any constructor is defined, the default constructor is lost unless explicitly defined in the class.

8/3/2007 UMBC CMSC 341 Java 2 19 Constructors (cont.) Similar to C++, constructors in Java  have no return value,  have the same name as the class,  initialize the data,  and are typically overloaded. Unlike C++, a Java constructor can call another constructor using a call to a this method as the first line of code in the constructor.

8/3/2007 UMBC CMSC 341 Java 2 20 Expressions and Control Flow Java uses the same operators as C++. Only differences are  + sign can be used for String concatenation,  logical and relative operators return a boolean. Same control flow constructs as C++, but expression must return a boolean.  Conditional if ( ){…} else if ( ){…} else {…} switch (variable){ case 1: … break ; default :…}  Variable must be an integral primitive type of size int or smaller, or a char

8/3/2007 UMBC CMSC 341 Java 2 21 Control Flow Constructs (cont.) Iterative  while ( ) { … }  do { … } while ( );  for ( ; ; ) { … }  break and continue work in the same way as in C++.  May use labels with break and continue as in C++.

8/3/2007 UMBC CMSC 341 Java 2 22 Control Flow Constructs (cont.) Enhanced for loop since Java 5 for iterating over arrays and collections. public class EnhancedLoop { public static void main(String []a ) { Integer [] array = {new Integer(5),6,7,8,9}; for (int element: array){ element+= 10; System.out.println(element); } for (int element: array){ System.out.println(element); } element is a local variable

8/3/2007 UMBC CMSC 341 Java 2 23 Example Class public class Person { // instance data private String name; private int age = 21; private static int drivingAge = 16; private static int num = 0; //constructors public Person(String name) { this.name = name; num++; } public Person(String name, int age){ this(name); this.age = age; } static num tracks the number of Person objects Call to previous constructor C++ style comments

8/3/2007 UMBC CMSC 341 Java 2 24 Example Class (cont.) //accessor and mutators public String getName(){ return name; } public void setName(int name){ this.name = name; } public int getAge(){ return age; } public void setAge(int age){ this.age = age; } The this reference is used to differentiate between local and instance data

8/3/2007 UMBC CMSC 341 Java 2 25 Example Class (cont.) /* static accessor methods The this reference does not exist in static methods */ public static int getDrivingAge(){ return drivingAge; } public static int getNum(){ return num; } C style comments

8/3/2007 UMBC CMSC 341 Java 2 26 Example Class (cont.) //overridden methods inherited from Object public String toString(){ return “Person “ + name; } public boolean equals(Object o){ if( o == null) return false; if( getClass() != o.getClass()) return false; Person p = (Person)o; return this.age == p.age; } Testing if Object is a Person Casting Object to a Person End of class… no semicolon

8/3/2007 UMBC CMSC 341 Java 2 27 Example Driver Program public class PersonTest { public static void main(String args[]) { Person p = new Person(“Sally”); Person p2 = new Person(“Jane”); Person p3 = new Person(“Mike”); p3.setAge(25); PersonTest.compare(p, p2); compare(p2,p3); } public static void compare(Person p1, Person p2) { System.out.println(p1 + “ is “ + (p1.equals(p2)? “”: “not”) + “ the same age as “ + p2); } } p p2 Sally 21 Mike 21 Jane 21 Mike XX 25 p1 p2

8/3/2007 UMBC CMSC 341 Java 2 28 Exceptions Java handles exceptions like C++.  Place try block around problem code and a catch block immediately following try block to handle exceptions. Different from C++…  Java uses a finally block for code that is to be executed whether or not an exception is thrown.  Java has a built-in inheritance hierarchy for its exception classes which determines whether an exception is a checked or an unchecked exception.  You may declare that a method throws an exception to handle it. The exception is then passed up the call stack.  Java forces the programmer to handle a checked exception at compile time.

8/3/2007 UMBC CMSC 341 Java 2 29 Exception Hierarchy Unchecked exceptions are derived from RuntimeException. Checked exceptions are derived from Exception. Error are also unchecked exceptions, but may not derive from it. Throwable ExceptionError IOExceptionRuntimeException unchecked checked

8/3/2007 UMBC CMSC 341 Java 2 30 Handling the Exception Example public class HandleExample { public static void main(String args[]) { try { String name = args[0]; System.out.println(args[0]); } catch (IndexOutOfBoundsException e){ System.out.println(“Please enter name ” + “after java HandleExample”); } finally { System.out.println(“Prints no matter what”); }

8/3/2007 UMBC CMSC 341 Java 2 31 Passing up the Exception In Java you may pass the handling of the exception up the calling stack by declaring that the method throws the exception using the keyword throws. This is necessary for compilation if you call a method that throws a checked exception such as the Thread.sleep method. The Java API lists the exceptions that a method may throw. You may see the inheritance hierarchy of an exception in the API to determine if it is checked or unchecked.

8/3/2007 UMBC CMSC 341 Java 2 32 Passing up the Exception Example public class PassUpExample { public static void main(String [] args){ System.out.println(“Hello”); try { passback(); }catch(InterruptedException e) { System.out.println(“Caught InterruptedException”); } System.out.println(“Goodbye”); } public static void passback() throws InterruptedException { Thread.sleep(3000); } This method throws a checked exception This method passes exception up call stack main is obligated to handle the exception since it is a checked exception