Download PPT - Regis University

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
CS-434: Object-Oriented
Programming Using Java
Week 2
Dr. Jesús Borrego
Adjunct Faculty
Regis University
1
scis.regis.edu ● [email protected]
Class Outline
• Review of Homework 1 and 2
• Key Terms
• Inheritance, overloading, visibility
polymorphism, constructors
• Classes, Interfaces, Packages
• Sample Program – in class
• Homework 3 - Individual
• Questions?
2
Review of Homework 1
• Create a use case diagram for a library
• Include actors, use cases, and relations between
users and use cases
• Prefer use of Visio
• More details in WorldClass (Case Study_Library
Application)
3
Review of Homework 2
• Create a Hello World program using NetBeans
• Capture screen where it shows the package and
results
• Submit to WorldClass before week 2
4
Key Terms
•
•
•
•
•
•
Constructor - Constructor
Inheritance - Herencia
Interface – Interfaz
Overloading – Sobrecargar
Package – Paquete
Polymorphism - Polimorfismo
5
Packages
• A package is a container for classes and other
code artifacts
• A package contains functionally related items
• A package is a namespace
▫ Collection of uniquely defined terms
• A main Java API package is called “java”
▫ It is empty but it is used to aggregate other
packages
6
Package java
• java.applet
• java.awt
• java.beans
• java.io
Example:
• java.util.concurrent.locks
• Package java has nested package java.util  that
has a java.util.concurrent  that one has
java.util.concurrent.locks
7
Visibility
• Data types and classes contained in a package
are visible to all items in the package
• Data types and classes contained in other
packages are not visible to others
• To access items in other packages, we have to
import them:
▫ packageb.ClassB b = new packageb.ClassB();
• To avoid this, import the package
▫ import packageb.ClassB;
8
Resolving Ambiguity
• If a class appears in two or more packages and we
import them, the compiler does not know which
packageX
packageY
one to access
classA
classA
import packageX;
import packageY;
We want class A, but which one?
package1.ClassA aaa = new packageX.classA();
Resolve ambiguity by using Fully Qualified Names (FQN)
9
Access Modifiers - Public
• Can be applied to class or data members and
methods within a class to denote the access is given
across package boundaries
package domain;
public class Book {
public void checkOut() {…}
…
}
10
Access Modifiers - Default
• Default – no modifier: Can be applied to class or
data members and methods within a class to denote
the access is NOT given across package boundaries
▫ Only accessible in the package in which they are
defined
package domain;
class Book {
public void checkOut() {…}
…
}
11
Access Modifiers - Private
• Can be applied to data members and methods (but
not to classes) within a class to denote the access is
restricted to members of the same class
▫ Only accessible in the package in which they are defined
package domain;
public class Book {
private String isbn;
public void getIsbn() {
return isbn;
}
…
}
12
Access Modifiers - Protected
• Can be applied to data members and methods (but not to
classes) within a class to denote the access is restricted to
members of the same class and derived classes
package domain;
public class LibraryItem{
protected void setHashCode () {…}
… }
package domain;
public class Book extends LibraryItem{
public LibraryItem() {
…
setHashCode();
}
… }
13
Method Overloading
• Sometimes we want to use the same name for a
method
• To differentiate, the methods must have at least
one of:
▫ Different number of parameters
▫ Type of parameters
▫ Order of parameters
• Return type is a differentiator, so it cannot be
used to overload methods
14
Static Fields and Methods
• Data members and methods are instance
members and therefore ‘non-static’
• They are created every time a class is
instantiated
• Sometimes it is desirable not to instantiate data
members (such as constants)
• In this case, we use ‘static’
public static final double PI = 3.14159
15
Inheritance
• A class extends another class and acquires
properties and behavior of class being extended
16
Inheritance
• A class extends another class and acquires
properties and behavior of class being extended
package domain;
public class Book extends LibraryItem {
// properties and behavior of Book go here
}
package domain;
public class Audio extends LibraryItem {
// properties and behavior of Audio go here
}
package domain;
public class Periodical extends LibraryItem {
// properties and behavior of Periodical go here
}
17
Class Constructors
• A constructor is a method that gets invoked
when a class is created
• The constructors must have the same name as
the enclosing class, and are declared with no
return value
• Constructors can be overloaded by providing
different argument profiles
• The constructor with no arguments is the default
constructor
18
Default Constructor Characteristics
• If no constructor is provided, Java provides a
default
• If you define at least one constructor, Java does
not provide the default
• Constructors are useful to initialize newly
created object’s data members
▫ Using default parameters, or arguments in the
constructor call
• Can call other constructors of the same or base
class
19
Overriding Methods
• Overriding occurs when a method in a base class
is redefined in a derived class
• To override a method, the signature of both
must match identically
20
Abstract Classes
• An abstract class is never intended to be
instantiated as an object
• It is intended to be a base class that provides
methods and together form an API
• Classes that inherit the abstract class can
override its base behavior and these can also be
instantiated as objects
• These are called templates
21
Inner classes and Anonymous classes
• Every Java class should be defined as a public
class, in its own file, where the file matches the
name of the class, and has a suffix .java
• Java also supports Inner Classes
• Anonymous classes are also inner classes
defined within the context of another class, but
do not have a name
22
Inner classes
23
Live Chat 3
Activity 1 – YouTube Videos
• YouTube contains videos on creating
applications and test cases
• Some examples:
▫ http://www.youtube.com/watch?v=oEqv2AJW-m4
▫ http://www.youtube.com/watch?v=OqYXpipGyJY
24
Activity 2 – Java Program
•
•
•
•
•
•
25
Demonstrate input and output
Demonstrate use of array manipulation
Demonstrate use of loops
Demonstrate use of random numbers
Create a class file
Create a main that invokes the class
Program details
•
•
•
•
26
The program reads values into an array
It will find the longest word in the array
Demonstrates passing of parameters
Displays the longest word
Homework 3
• This individual task is to be performed on the
Library application
• Create and test (using JUnit) a Book class for the
Library application project
▫ In addition to properties of author and isbn, with
setters/getters, the Book should override Object’s
base method “boolean equals(Object)” and have a
“boolean validate()” method
• Zip up your NetBeans project, and submit to
WorldClass before Week 3
27
JUnit Tutorial
• Working with JUnit in NetBeans tutorial:
http://www.youtube.com/watch?v=Q0ueT0Z6Zs
• Many more in both English and Spanish
28
Questions?
29