Download LECTURE1_REVIEW_PART1 - Illinois Institute of Technology

Document related concepts
no text concepts found
Transcript
CS 116
OBJECT ORIENTED PROGRAMMING II
LECTURE 1
GEORGE KOUTSOGIANNAKIS
Copyright: 2016 Illinois Institute of Technology/George Koutsogiannakis
1
Administrative Information
• Instructor’s name: George Koutsogiannakis
• Office : SB112B
• Office Hours: Mondays and Wednesdays
–
–
–
No appointment is needed
12:40 a.m. - 1:40 p.m. or
By appointment on another time frame.
• EMAIL: [email protected]
• Phone: 312- 567 -5288
2
COURSE ADMINISTRATION
• COURSE WEB SITE:
– http://www.cs.iit.edu/~cs116
– Use it to get :
• Instructor’ s office hours
• TAs office hours.
• Access to extra credit practice exercises description
files.
• Access to laboratories description files.
• Access to the lecture presentations.
3
COURSE ADMINISTRATION
•
•
•
•
•
•
Due dates for lab. assignments/exams.
Example code.
Solution to exercises, laboratories, quizzes, exams.
Information on grading policies.
Information on upcoming quizzes or exams.
Link available from Blackboard.
4
COURSE ADMINISTRATION
• BLACKBOARD
– View your grades.
– Submission of assignments:
• Go to your blackboard account then click on information
• Choose assignment that you are submitting.
• Only one submission is allowed per assignment. In case of errors
you have to email me so that I can approve a deletion and a
resubmission.
• Zip the files that you are submitting by:
Select files (or folders ) to be submitted
Right click the mouse and choose :
sent to->Compressed (zipped) folder.
5
COURSE ADMINISTRATION
• Be careful to submit under the assignment assignment.
• Most common error: submitting an extra credit exercise under a
lab assignment and vice versa.
• Note: If you accessing the course web site from the Blackboard
link , you need to refresh the browser every time.
6
COURSE INFORMATION
-TEXT
• JAVA ILLUMINATED- An Active Learning
Approach
By Julie Anderson and Herve Franceschi
Jones and Bartlett Publishers.
FOURTH Edition
• BRING THE TEXT TO CLASS !!
• SOMETIMES EXERCISES FROM THE TEXT ARE
ASSIGNED for practice in class.
7
COURSE ADMINISTRATION
•
•
•
•
Extra Credit Exercises- 8.
Laboratories – 8 labs
Tests- 2 quizzes a midterm and a final exam.
Project
8
COURSE ADMINISTRATION
course work
• Extra Credit Practice Exercises (8 assigned 5 needed to be
submitted)
– Shorter than labs. Single Task, emphasize a specific topic. Must be
done during class period on specified dates.
They carry no grade until the end of the Semester.
– Must be checked for correctness before submission by Instructor/TA
– Submitted on Blackboard at the end of class period. No late
submissions are allowed.
– Must be checked for correctness before submission by TA or myself.
– If at least 5 out of 8 have been submitted (correctly done) an extra
credit of 5 points will be issued at the end of the Semester.
– No credit will be issued if less than 5 are submitted.
– Credit will be issued at the end of the semester!!
9
COURSE ADMINISTRATION
course work
• Laboratories (8)
– Multiple Tasks. Could cover more than one topic.
– Start work on them in advance. Work on them in class on
the assigned date (as per the schedule). Finish outside of
class and submit on Blackboard by the specified deadline,
– Ask questions in class.
– Ask questions via emails to the instructor or the TA.
– Do not hesitate to visit me in my office to ask questions.
– Total points awarded : MAXIMUM 30 POINTS
ONLY IF ONE SCORES AT LEAST 70% OF THE TESTS POINTS (0.7x62=
43.5 POINTS MINIMUM). OTHERWISE NO LAB CREDITS.
10
COURSE ADMINISTRATION
course work
– Read laboratory document in advance. Due dates are posted
on the course’ s web site.
– Lab assignments can be done in groups of two. This is
effective after the first quiz starting with Lab assignment #
2. Pairs will be assigned by instructor at that time (same
pair as for extra credit exercises).
11
COURSE INFORMATION
-Course Work
• You must receive at least 43.4 cumulative
points in all tests/exams (70% of 62 points) in
order to have your lab grades and extra credit
added to your score.
12
COURSE ADMINISTRATION
Lab grades
Lab #
Points earned
Lab 1
2
Lab 2
2
Lab 3
3
Lab 4
3
Lab 5
3
Lab 6
4
Lab 7
6
Lab 8
7
13
COURSE ADMINISTRATION
• Project (1)
– To be done individually. No pairing is allowed for project.
– Description will be provided as per schedule.
– Must submit source code and compiled files on
Blackboard by deadline.
– 8 points
14
COURSE ADMINISTRATION
• SUBMISSION ON BLACKBOARD
– Zip (do not RAR) all files for the particular assignment.
– Name the zipped file as follows:
firstName_lastName_AssignmentName.zip
i.e John_Doe_InClassExercise1.zip
Mary_Smith_Lab1.zip
– Submit under the correct assignment folder in your Blackboard
account.
– Ask for help if needed.
• Erroneous submissions need to be deleted by me first before a
resubmission is allowed.
15
COURSE ADMINISTRATION
• Exams/Quizzes (2/2)
– Closed Book/Closed Notes. Programming questions.
– Must be done on a Text Editor, like Edit Plus, and submitted on
Blackboard.
– Must submit source code and Compiled files.
– Final Exam covers material from midterm to end of the Semester.
– Midterm exam.: 20 points.
– Final exam. : 30 points.
– Quiz 1: 4 points
– Quiz 2: 8 points.
16
COURSE ADMINISTRATION
• CAUTION: IN ORDER TO PASS THE COURSE YOU MUST GET
AT LEAST 70% OF THE CUMULATIVE POINTS ASSIGNED TO
TESTS/QUIZZES REGARDLESS IF YOUR SCORES IN LABS OR
EXTRA CREDIT EXERCISES OR PROJECT.!
I.E. 62 POINTS ALLOCATED TO EXAM S x 0.70 = 43.4
• THEREFORE, 43.4 IS THE MINIMUM CUMMULATIVE SCORE
THAT YOU CAN HAVE IN ALL EXAMS/QUIZZES IN ORDER TO
PASS THE COURSE WITH A GRADE OF C OR BETTER. ANY
SCORE BELOW THAT IN TESTS WILL RESULT IN EITHER A D OR
AN E IN THE COURSE .
17
Summary of Points
.
ASSIGNMENT
NUMBER OF
ASSIGNMNETS
POINTS FOR
EACH
TOTAL POINTS
Extra Credit
Practice
Exercises
8
No grade
until end of
Semester
5 extra points
if at least 5 are
submitted
correctly. (7
points if all 8
are submitted)
Labs
9
varies
Project
1
8
Quizzes
2
4/8
12
Exams
2
20/30
50
Total Points
30
8
100
18
COURSE ADMINISTRATION
• More on Submissions
– Submissions for labs and exercises are not accepted after
the solution is posted on the course’s web site.
– Quiz and Exams are also submitted on Blackboard at the
end of the allotted time on the day of the exam/quiz.
• Make sure that you submit the files in the proper folder
named after the exam or the quiz.
• Do not turn your station computer off until your
submission is verified by either the TA or the instructor.
19
COURSE ADMINISTRATION
• No laptops are allowed during exams or
quizzes. Only the lab ‘ s station computers can
be used.
• No flash drives are allowed in class during
exams.
• No access to Internet or Email os allowed
during exams.
20
COURSE ADMINISTRATION
• Teaching Assistants
– You will be working with the same teaching assistant through the
Semester. Make sure that you know his/her name, office hours and
email address (see the course web site for that information).
– For grading purposes you are assigned to a specific assistant.
– Grading of exercises and labs is done by the TAs.
– Grading of quizzes and exams is done by the instructor.
– Learn the name and the email address of your Teaching Assistant. The
list will be published and posted on the web site at the end o fteh first
week.
• You must participate in the course by asking questions either during the
lectures or by visiting the instructor or teaching assistant during office
hours.
21
ETHICS
• The following rules apply during a quiz or exam.
– Violation of the items below will result in you having to drop the
course or receive a E grade for the course:
•
•
•
•
•
•
Opening the email service during the exam.
Opening another student’s blackboard account during the exam.
Accessing the internet without permission.
Having hard copies of solutions on your desk.
Using a flash drive during the test.
If you are sitting in front of computer terminal that has been left logged in
by a previous user you must turn it off and login again before you start
the exam!
• If you get caught having access to files not created by you during the
exam. and having obtaining then by any other means besides the
aforementioned.
22
ETHICS
• Lab assignments are to be done individually.
– The first two copying accusations will result in zero grade
for each assignment.
– Any new attempt after that will result in getting an E grade
for the course.
– Copying includes having obtained previous solutions of lab
assignments from students who took the course and
resubmitting them!!!
NOTE: Most lab assignments have changes from Semester to Semester in key
parts of the assignment. The TAs will be aware of the changes. Most students
get caught by submitting the original solution thinking that it is the same!
23
CLASS ATTENDANCE
1.
2.
3.
4.
Mandatory for freshman classes. Must sign in attendance sheet
otherwise you will be reported absent.
During lectures material and solution could be distributed that will not
be posted on the web site. It is your responsibility to get a copy.
During lectures you are not allowed to surf the internet.
Class participation is encouraged in terms of questions, answers to
questions , working on impromptu exercises.
24
INFORMATION ON JAVA
• Web sites for Java material:
– To download Java Development Kit for your own
computer (optional)
• http://www.oracle.com/technetwork/java/javase/download
s/index.html
• SE (Standard Edition)
• Download JDK 7
– For online API AND TUTORIAL
• http://docs.oracle.com/javase/7/docs/api/
For the Java API (Application Programming Interface)
• http://docs.oracle.com/javase/tutorial/
25
INFORMATION ON JAVA
• See me if you need help with the tools needed
for the course installations on your laptop!!
26
INFORMATION ON JAVA
TOOLS
• JDK
– Java Development Kit- (Used when you write a
program)
– Provides:
• The compiler
• Other tools (not needed in this class)
• JRE
– Java Runtime Environment- Used when you are ready
to execute (interpret) a program.
– Provides:
• The runtime environment JVM (Java Virtual Machine)
• The interpreter
27
INFORMATION ON JAVA
TOOLS
• Edit Plus or Notepad++
– The text editor tool used by this class to write
(edit) java programs.
• (note that there are other editors besides edit plus but
this one is the approved for the class).
– You can use other text editors as long as they
don’t produce code.
– Notepad++ is free
– EditPlus is not free.
28
INFORMATION ON JAVA
TOOLS
•
Use text editor to write a program (i.e Notepad++)
– Use Java API as help.
– Use text and text examples for help.
– Use class lectures and exercises done in class as
help.
– The file with the code is referred to as the
“source code file”.
29
INFORMATION ON JAVA
TOOLS
– Note: There are text editors for MAC equivalent to Edit
Plus for windows:
• JEdit available at:
www.jedit.org/
– Review how to compile command line.
•
If you need help on using command lien download the help
document available on the course’s web site :
HELP DOCUMENT FOR COMPILING USING COMMAND LINE.
(practice following instructions).
30
Programming Styling
• When typing a Java program follow the
guidelines as described in :
http://www.cwu.edu/~gellenbe/javastyle/
(cwu: Central Washington University)
• Style refers to the way a Java program should be
typed in the source code file.
31
Style of a Java Program
• Naming Conventions
»Variable Names
»Constant Names
»Method Names
»Parameters Names
• Commenting
»File Header Comments
»Single-Line Comments
»Trailing Comments
• Formatting
»Indentation
»White Space
»Line Length
32
Topics in CS116
•
•
•
•
•
•
•
•
•
•
Enumerations.
Packaging .
Sorting Algorithms.
Abstract Classes.
Abstract methods.
Method Overloading and Overriding.
Interfaces.
Inheritance.
Polymorphism.
Exceptions and User Defined Exceptions.
33
Topics in CS116
• IO Streams
– Writing and reading text files.
– Writing and reading binary coded files.
– Writing and reading serializable objects into or from a file.
• Recursion.
– Recursion with a single base case
– Recursion with two base casses.
34
REVIEW OF OBJECT ORIENTED
PROGRAMMING CONCEPTS.
•
•
•
•
•
•
•
Service Class and Client Class.
Defining Instance Variables/static variables.
Writing Accessor/Mutator methods.
The toString and equals methods.
The Object Reference this.
static instance variables.
Static versus non static methods.
35
REVIEW OF OBJECT ORIENTED
PROGRAMMING CONCEPTS.
• Providing input into a program:
– Command Line input.
– Keyboard input (using Scanner object).
– Reading data from a file (Using Scanner object).
• Arrays of primitive data types.
• Arrays of Objects.
36
CLASS
• Class
– An abstract representation of a category or a
group.
i.e. We can represent Students by creating a class
called Student.
– Usually given a sentence , the nouns represent
classes:
i.e. The student earned a grade of A
Student will be a class. Grade can also be a class if
we wanted.
37
CLASS
• Classes that the programmer creates are called:
User Defined Classes.
• Classes that are part of the Java Library of classes are
called: Pre Defined Classes.
– Notice that a pre defined class is also a class that someone
has already created and made available for us to use.
– Pre Defined Library classes are described in the API
– The API is available online.
38
User-Defined Classes
• Combine data and the methods that operate
on the data.
• A service class defines the category of data
(i.e. Student class).
• A Client Classes can use one or more service
classes.
39
Service (Template classes)
• Advantages:
– The class methods are responsible for the validity of
the data
– Implementation details can be hidden
– The class can be reused.
– Does not need a main method.
40
Service (Template classes)
• Structure
Instance variables.
Default and non default constructors.
Accessor and mutator methods.
toString method.
Equals method.
Other help methods as required.
41
Client Classes
• Client of a Service class(classes) i.e ClientStudent
class). Needs a main method.
– A program that instantiates objects and calls (invokes) the
methods of the Service class (or classes) in its main
method.
– In the main method we can instantiate an object of the
Client class and use it to invoke not static methods of the
Client class.
– We can make direct calls to its static methods (without an
object).
42
Syntax for Defining a Class
accessModifier class ClassName
{
// class definition goes here
}
***Note that the curly braces are required.
i.e
public class Student
{
// class definition goes here
}
43
Client Class
• public class ClientStudent
{
//must have a main method (plus other methods also).
//we would instantiate Student service class
//objects in the method(s) of this class.
//Use objects to invoke methods or access fields
//of the Service class Student.
}
44
Class-Important Terminology
• Fields
– instance variables: the data for each object
– class data: static data that all objects share
– Visible by all methods of the class.
• Members
– fields and methods
• Access Modifier
– determines access rights for the class and its members
– defines where the class and its members can be used
45
Class Access Modifiers
Access Modifier
Class or member can be
referenced by…
public
methods of the same class and methods of
other classes
private
methods of the same class only
protected
methods of the same class, methods of
subclasses (this term will be explained later
on in the course), and methods of classes in
the same package
No access modifier
(package access)
methods in classes belonging to the same
package as the class we are trying to
reference only
46
Class-What is a Package?
• Classes can reside in packages
– Library (pre defined classes) reside in packages
i.e. import
java.util.Scanner;
Scanner class is in package: java.util
– Notice that a package is actually a directory path where the .class files
are located.
• We can create a package for our user defined classes also. We will
learn how to do that shortly in the course.
• Some editors, like Eclipse, can create packages for our programs.
We will learn how to incorporate the code manually in our
programs using the proper keywords in the code and compiling
command line.
(if you don’t know how to compile command line follow the tutorial
I have available on the course’s web site).
47
Defining Instance Variables
Syntax:
accessModifier dataType identifierList;
dataType can be primitive date type or a class type
identifierList can contain:
– one or more variable names of the same data type
– multiple variable names separated by commas
– initial values
• Instance variables can be declared as final
48
Examples of Instance
Variable Definitions
private String name = "";
private final int PERFECT_SCORE = 100,
PASSING_SCORE = 60;
private int startX, startY,width,height;
49
Primitive Data Types
primitive
integral
boolean
byte char short int long
floating point
float
double
Note: A String is not a primitive data type but rather a pre defined class object
50
SOFTWARE ENGINEERING TIP
Define instance variables for the data that all
objects will have in common.
Define instance variables as private so that
only the methods of the class will be able to
set or change their values.
Begin the instance variable identifier with a
lowercase letter and capitalize internal words.
51
The Auto Class
public class Auto
{
private String model;
private int milesDriven;
private double gallonsOfGas;
}
The Auto class has three instance variables: model,
milesDriven and gallonsOfGas.
52
Static Instance Variables
•
•
•
•
•
Also called class variables
One copy of a static variable is created per class
static variables are not associated with an object
static constants are often declared as public
To define a static variable, include the keyword
static in its definition:
Syntax:
accessSpecifier static dataType variableName…;
Example:
public static int countAutos = 0;
53
Static Instance Variables
• Every instance of the class (object) can see the
same value of the static variable (the latest
value assigned to that variable).
• If an object modifies the value of the static
variable then all objects of that class see the
new value.
54
Class Members
• A class has
– Instance variables (also called global variables
sometimes).
– Constructors
• Default- has no arguments. Initializes the instance
variables to pre determined value (i.e. zero, “ “, etc).
• Non default- has arguments. Initializes the instance
variables to values passed in the arguments.
– Methods
• One of the methods is a main method if the class is a
client class.
55
Accessor/Mutator methods
• Accessor methods
– return the value of an instance variable
i.e. public String getModel()
{
return model;
}
56
Accessor/Mutator methods
• Mutator methods
– Set the value of an instance variable
i.e. public void setModel (String mod)
{
model=mod;
}
57
To String method
• Often classes have a toString method that
outputs the values of its instance variables.
public String toString()
{
String output=“The value of model
is”+model+”\n”+”The miles
driven:”+milesDriven………..etc…..”);
return output;
}
58
Creating Objects of a class
• Classes are a template used to create specific
objects
• An object of a class is created by using the
new operator and calling one of the
constructors of the class:
i.e. Auto car1=new Auto();
or
Auto car2=new Auto(String bmw, int 1000, int
20);
59
Comparing Objects For Equality
• Objects of the same class can be compared for equality.
• The definition of the term equality is up to the programmer:
– i.e Suppose we have class Student with instance variables as shown
public class Student
{
String firstName=“ “;
String lastName=“ “;
int StudentID=0;
String address=“ “;
…………………………………………….
……………………………………………..
60
Comparing Objects For Equality
• We may decide that two Student objects are equal if
and only if the studentID instance variable has the
same value for both objects (regardless if the rest of
the instance variables have the same values or not).
• We create a method called equals to test for the
equality of two objects of the same class.
61
Comparing Objects For Equality
• Example code for equals method to be
included in Student class:
public boolean equals (Student st)
{
if(this.getStudentID()==st.getStudentID())
return true;
else
return false;
}
62
Comparing Objects For Equality
• In the client class that uses Student we can make comparisons
of Student objects:
public class StudentClient
{
public static void main(String [] args)
{
Student st=new Student(“George”, “Kay”, 1234, “654 somestreet”);
Student st1=new Student(“Nicholas”, “Jones”, 1234, “654 somestreet”);
boolean b= st.equals(st1);
if(b==true)
System.out.println(“They are equal”);
else
System.out.println(“They are NOT re equal”);
}
}
63
Comparing Objects For Equality
• Notice that in the equals method this refers to
object st that invokes the equals method.
64
Terminology
• Object reference: identifier of the object. The name we
used for the object.
• Object data: The data encaptulated by a specific object
(reference). The values of the instance variables as
pertained to that specific object.
i. e. If we create a Student template class then a specific
object reference called st may have such data as:
firstName=“John”
lastName=“Doe”
• Instantiating an object: creating an object of a class by
using the new operator.
• Instance of the class: the object we created.
• Methods: the code to manipulate the object data.
• Calling a method: invoking a service for an object.
65