TAB2053 Course Text Book Introduction to Java Programming (7th Edition) Brief Version Available at the NYU Bookstore Book includes a CD-ROM with Java programs and other supplemental materials. Lecture notes will follow the book. Please keep up with the reading! 2
Software For the course, you may use any IDE you are comfortable using. I will use one or more of the following in the classroom: Eclipse JCreator (Note: this IDE has no debugger) Netbeans All these products can be downloaded from the web for free. If you do not have your own computer, the computer labs on campus have the software. 3 WHY PROGRAMMING? Why you choose IT? What is your target in future? What is your motivation?
UTP2007 Slide 5 R&D developing prototypes to investigating novel maths and algorithms Core Technology implementing industrial-strength solution or developing tools using languages such as Java or C++ or C#. Applied Computing using high-level solution to support organization. Uses very high-level language such as VB or SAP. Technical support, System administration, Help Desk Sales, Marketing, HR, other non-related areas. Low-tech High-tech University Why the need to be able to do programming? HOW OOP IS DIFFERENT FROM STRUCTURED PROGRAMMING?
Structured Programming OO Programming REAL-WORLD PROBLEMS and INDUSTRY-STRENGTH SOLUTIONS Assembly Programming OOP VS STRUCTURED PROGRAMMING Structured programming Action-oriented. Programming unit is function. We make the application runs by means of function calls. We can reuse the functions. Very long main() method.
OO Programming Object-oriented. Programming unit is class, an entity containing variables and functions. We use class to create objects. We make the application runs by means of object interactions. We can reuse and modify the classes easily. Usually shorter main() method. EXAMPLE int appl_id[100]; int job_id[100]; int appl_nyears[100]; int job_nyears [100];
void readApplicant() {
} void readJob() {
} void matchJobApply() {
} void printResult() {
}
int main() { readApplicant(); readJob(); matchJobApply(); printResult(); } Structured programming Object-oriented programming class Applicant{ int appl_id[100]; int appl_nyears[100]; void readApplicant() {} }
class Job{ int job_id[100]; int job_nyears [100]; void readJob() {} }
class AppClass{ void matchJobApply() {} void printResult() { } int main() { Applicant a = new Applicant(); Job j = new Job(); AppClass test = new AppClass(); test.matchJobApply(); test.printResult();
} } DOES OO SIMPLIFY OR MAGNIFY PROGRAMMING EFFORT? 1. By using OO style (paradigm) instead of structured, we can make development of large system simpler. 2. For a small program, we may not see the benefits. In fact, we have noticed that there are more lines written to do the same program in OO style but taking less lines in structured. 3. The reason is because there are more overhead for OO compared to structured but the amount of effort will lessen as the program becomes bigger. For structured, the effort will increase as the program becomes bigger. 4. The overhead in OO comes from creating the class needed for the programming. 5. By creating class, we remove great portion of codes from the main method and place them in the classes. You will notice that the main method in OO usually has far less lines that the main method in structured programming. It less the complexity of code.
What is Object Oriented Programming?
Object-oriented programming is a method of implementation in which programs are organized as cooperative collections of objects, each of which represents an instance of some class, and whose classes are all members of one or more hierarchy of classes united via inheritance relationships
BENEFIT OF OOP OOP has better modularization. Better modularization gives the following benefits: Organized code. Easier maintainence and extensibility. Highly reusable.
In structured programming, modularization is done using functions and structs. We group related commands in the same function; and related variables in the same struct.
OOP does a better job by grouping related functions and variables in a single construct, called CLASS.
OOP CONCEPT Object-oriented programming (OOP) involves programming using objects.
An object represents an entity in the real world that can be distinctly identified. For example, a student, a desk, a circle, a button, and even a loan can all be viewed as objects. OBJECT An object has a unique identity, state, and behaviors. The identity represent the unique name of an object. The state of an object consists of a set of data fields (also known as properties) with their current values. The behavior of an object is defined by a set of methods.
data field 1 method n data field m method 1 (A) A generic object ... ... State (Properties)
Behavior
radius = 5 findArea() Data field, State Properties
Method, Behavior (B) An example of circle object OBJECT public class Student { private String name; private String studentID; private String surname; private Course[] takenCourses; private int state; public void takeCourse(Course course) { . } public void payTuition() { . } } CLASSES Classes are constructs that define objects of the same type. (Building plan of similar objects) A Java class uses variables to define data fields and methods to define behaviors. A class provides a special type of methods, known as constructors, which are invoked to construct objects from the class.
CLASSES
class Circle { /** The radius of this circle */ double radius = 1.0;
/** Construct a circle object */ Circle() { }
/** Construct a circle object */ Circle(double newRadius) { radius = newRadius; }
/** Return the area of this circle */ double getArea() { return radius * radius * 3.14159; } }
Data field
Method
Constructors
OBJECT AND CLASSES Classes reflect concepts, objects reflect instances that embody those concepts. A class captures the common properties of the objects instantiated from it A class characterizes the common behavior of all the objects that are its instances
Daria Jane Brittany Jodie girl class object OBJECT AND CLASSES
Class Name: Student
Data Fields: name is _______
Methods: takeCourse
Student Object 1
Data Fields: name is Kerem
Student Object 2
Data Fields: name is Onur
Student Object 3
Data Fields: name is Meltem
A class template
Three objects of the Student class OBJECT AND CLASSES Class Visible in source code The code is not duplicated
Object Own copy of data Active in running program Occupies memory Has the set of operations given in the class