chapter no 1

57
06/16/20 22 COMSATS Institute of Information Technology, Abbottabad OOPS 1 CSC 241: Object Oriented Programming Instructor Mr.Sharifullah Durrani ([email protected]) Text books and notes1. Java How to Program, by Deitel & Deitel, 9 th edition. 2.Class Slides Additional books Absolute Java fifth Edition by Walter Savitch Beginning Java 2 by Ivor Horton Thinking in Java, by Bruce Eckel Java The complete reference, by Herbert Schildt, 8 th edition Object Oriented Programming, by Ebalagurusammy

Upload: comsats-institute-of-information-technology

Post on 14-Apr-2017

82 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Chapter no 1

05/03/2023 COMSATS Institute of Information Technology, Abbottabad OOPS 1

CSC 241: Object Oriented Programming

Instructor Mr.Sharifullah Durrani ([email protected])

Text books and notes1. Java How to Program, by Deitel & Deitel, 9th edition.

2.Class Slides

Additional books Absolute Java fifth Edition by Walter Savitch

Beginning Java 2 by Ivor Horton

Thinking in Java, by Bruce Eckel

Java The complete reference, by Herbert Schildt, 8th edition

Object Oriented Programming, by Ebalagurusammy

Page 2: Chapter no 1

05/03/2023 COMSATS Institute of Information Technology, Abbottabad OOPS 2

Page 3: Chapter no 1

05/03/2023 COMSATS Institute of Information Technology, Abbottabad OOPS 3

Course objectives

The ultimate objective of this course is to make students familiar with the concepts of object-oriented programming, analysis, and software development. These concepts will be reinforced by their implementation in Java programming language.

Page 4: Chapter no 1

05/03/2023 COMSATS Institute of Information Technology, Abbottabad OOPS 4

Assignments/Lab Tasks Please check the CU Online subject page every day, for

notification of assignments, projects and updated information.

Assignments may be written assignments OR programming assignments.

There will be a total of around 6 assignments.

The deadline for the submission of assignment will be given with the assignment.

Assignments submitted after the deadline will not be accepted and will carry ZERO MARKS.

Cheated assignments will get ZERO MARKS.

Page 5: Chapter no 1

05/03/2023 COMSATS Institute of Information Technology, Abbottabad Digital Image Processing CSC650

5

Class Project Projects will have ~? % weight in the total marks ( later we can

discuss). Projects may be conducted in groups of two-three students. Project topics should be selected and approved within the first few

weeks of the course. Project presentation date will be announced and projects will not

be accepted after the presentation date. Projects consisting of Downloaded codes or presentations will not

be accepted and will carry ZERO MARKS.

Page 6: Chapter no 1

Introduction Language Components Object Modeling Object Oriented Programming Basics Methods Arrays and Strings Encapsulation Inheritance Polymorphism Abstract Classes, Interfaces , and Inner Classes Exception Handling File Handling Graphics and GUI Programming Database Programming (JDBC)

1-6

Focus of the Course

Page 7: Chapter no 1

 Introduction Java is the world’s most widely used computer

programming language. You’ll learn to write instructions commanding

computers to perform tasks. Software (i.e., the instructions you write) controls

hardware (i.e., computers). You’ll learn object-oriented programming—today’s

key programming methodology.

Page 8: Chapter no 1

 Introduction (Cont.) Java Editions: SE, EE and ME

◦ Covers Java Standard Edition 8 ◦ Used for developing cross-platform, general-purpose

applications.◦ Java is used in such a broad spectrum of applications that it has

two other editions.◦ The Java Enterprise Edition (Java EE) ◦ Geared toward developing large-scale, distributed networking

applications and web-based applications.

Page 9: Chapter no 1

 Introduction (Cont.)◦ Java Micro Edition (Java ME) ◦ geared toward developing applications for small, memory-

constrained devices, such as BlackBerry smartphones.◦ Google’s Android operating system

Page 10: Chapter no 1

1-10

fundamentals of computer processing

Page 11: Chapter no 1

Hardware◦ the physical, tangible parts of a computer◦ keyboard, monitor, disks, wires, chips, etc.

Software◦ programs and data◦ a program is a series of instructions

A computer requires both hardware and software

Each is essentially useless without the other1-11

Hardware and Software

Page 12: Chapter no 1

1-12

CPU and Main Memory

CentralProcessing

Unit

MainMemory

Chip that executes program commands

Intel Pentium 4Sun ultraSPARC IIIPrimary storage

area for programs and

data that are in active use

Synonymous with RAM

Page 13: Chapter no 1

1-13

Secondary Memory Devices

CentralProcessing

Unit

MainMemory

Floppy Disk

Hard Disk

Secondary memorydevices providelong-term storage

Information is movedbetween main memoryand secondary memoryas needed

Hard disksFloppy disksZIP disksWritable CDsWritable DVDsTapes

Page 14: Chapter no 1

1-14

Input / Output Devices

CentralProcessing

Unit

MainMemory

Floppy Disk

Hard Disk

Monitor

Keyboard

I/O devices facilitateuser interaction

Monitor screenKeyboardMouseJoystickBar code scannerTouch screen

Page 15: Chapter no 1

Operating System◦ controls all machine activities◦ provides the user interface to the computer◦ manages resources such as the CPU and memory◦ Windows XP, Unix, Linux, Mac OS

Application program◦ generic term for any other kind of software◦ word processors, missile control systems, games

Most operating systems and application programs have a graphical user interface (GUI)

1-15

Software Categories

Page 16: Chapter no 1

 Machine Languages, Assembly Languages and High-Level Languages Programmers write instructions in various

programming languages, ◦ directly understandable◦ some requiring intermediate translation steps.

These may be divided into three general types:◦ Machine languages◦ Assembly languages◦ High-level languages

Page 17: Chapter no 1

Machine Languages, Assembly Languages and High-Level Languages (Cont.) Any computer can directly understand only its own machine

language, defined by its hardware design.◦ Generally consist of strings of numbers (ultimately reduced to 1s and

0s) that instruct computers to perform their most elementary operations one at a time.

◦ Machine dependent—a particular machine language can be used on only one type of computer.

English-like abbreviations that represent elementary operations formed the basis of assembly languages.

Translator programs called assemblers convert early assembly-language programs to machine language.

Page 18: Chapter no 1

 Machine Languages, Assembly Languages and High-Level Languages (Cont.)

High-level languages

Allow you to write instructions that look almost like everyday English and contain commonly used mathematical notations.◦ Compilers convert high-level language programs into machine language.◦ grossPay = basePay + overTimePay

Compiling a high-level language program into machine language can take a considerable amount of computer time.

Interpreter programs execute high-level language programs directly, although slower than compiled programs run.

Page 19: Chapter no 1

Object-oriented programming (OOP) is a way to organize and conceptualize a program as a set of interacting objects.

The programmer defines the types of objects that will exist.

The programmer creates object instances as they are needed.

The programmer specifies how these various object will communicate and interact with each other.

Object-Oriented Programming

Page 20: Chapter no 1

Real-world objects have attributes and behaviors.

Examples: Dog

◦ Attributes: breed, color, hungry, tired, etc.◦ Behaviors: eating, sleeping, etc.

Bank Account◦ Attributes: account number, owner, balance◦ Behaviors: withdraw, deposit

What is an Object?

Page 21: Chapter no 1

Writing software often involves creating a computational model of real-world objects and processes.

Object-oriented programming is a methodology that gives programmers tools to make this modeling process easier.

Software objects, like real-world objects, have attributes and behaviors.

Software Objects

Page 22: Chapter no 1

Software Objects - Cont’d

In object-oriented languages, they are defined together.◦ An object is a

collection of attributes and the behaviors that operate on them.

Variables in an object are called attributes.

Procedures associated with an object are called methods.

In traditional programming languages (Fortran, Cobol, C, etc) data structures and procedures are defined separately.

AccountAccount

Account

balance:number:

Bank

deposit()withdraw()

Page 23: Chapter no 1

The definitions of the attributes and methods of an object are organized into a class. Thus, a class is the generic definition for a set of similar objects (i.e. Person as a generic definition for Ali, Ahmed and Sulman)

A class can be thought of as a template used to create a set of objects.

A class is a static definition; a piece of code written in a programming language.

One or more objects described by the class are instantiated at runtime.

The objects are called instances of the class.

Classes

Page 24: Chapter no 1

Each instance will have its own distinct set of attributes.

Every instance of the same class will have the same set of attributes; ◦ every object has the same attributes but, ◦ each instance will have its own distinct values for those

attributes.

Classes - Cont’d

Page 25: Chapter no 1

The "account" class describes the attributes and behaviors of bank accounts.

The “account” class defines two state variables (account number and balance) and two methods (deposit and withdraw).

Bank Example

class: Account

deposit()

withdraw()

balance:

number:

Page 26: Chapter no 1

When the program runs there will be many instances of the account class.

Each instance will have its own account number and balance (object state)

Methods can only be invoked .

Bank Example - Cont’d

balance: $240

number: 712

balance: $941

number: 036

balance: $19

number: 054

Instance #1

Instance #2

Instance #3

Page 27: Chapter no 1

Messages and Methods Calls

Messages and Methods Calls◦ When you drive a car, pressing its gas pedal sends a message

to the car to perform a task—that is, to go faster.◦ Similarly, you send messages to an object.◦ Each message is implemented as a method call that tells a

method of the object to perform its task. Reuse

◦ Reuse of existing classes when building new classes and programs saves time and effort.

◦ Reuse also helps you build more reliable and effective systems, because existing classes and components often have gone through extensive testing, debugging and performance tuning.

Page 28: Chapter no 1

Object-Oriented Analysis and Design (OOAD)

◦ How will you create the code (i.e., the program instructions) for your programs?

◦ Follow a detailed analysis process for determining your project’s requirements (i.e., defining what the system is supposed to do)

◦ Develop a design that satisfies them (i.e., deciding how the system should do it).

◦ Carefully review the design (and have your design reviewed by other software professionals) before writing any code.

Page 29: Chapter no 1

Object-Oriented Analysis and Design (OOAD)

◦ Analyzing and designing your system from an object-oriented point of view is called an object-oriented analysis and design (OOAD) process.

◦ Languages like Java are object oriented.◦ Object-oriented programming (OOP) allows you to implement

an object-oriented design as a working system. The UML (Unified Modeling Language)

◦ The Unified Modeling Language (UML) is the most widely used graphical scheme for modeling object-oriented systems.

Page 30: Chapter no 1

Typical Java Development Environment

1991 ◦ Sun Microsystems funded an internal corporate research

project led by James Gosling, which resulted in a C++-based object-oriented programming language Sun called Java.

◦ Key goal of Java is to be able to write programs that will run on a great variety of computer systems and computer-control devices.

◦ This is sometimes called “write once, run anywhere.”

Page 31: Chapter no 1

Typical Java Development Environment

Sun Microsystems was acquired by Oracle in 2009. As of 2010 97% of enterprise desktops, three billion

handsets, and 80 million television devices run Java. Java is the most widely used software development

language in the world.

Java Class Libraries◦ Rich collections of existing classes and methods ◦ Also known as the Java APIs (Application Programming

Interfaces).

Page 32: Chapter no 1

Typical Java Development Environment (Cont.) Java programs normally go through five

phases◦edit◦compile◦load◦verify◦Execute.

Page 33: Chapter no 1

Typical Java Development Environment (Cont.) Phase 1 consists of editing a file

◦ Type a Java program (source code) using the editor.◦ Make any necessary corrections.◦ Save the program.◦ A file name ending with the .java extension indicates that the

file contains Java source code.

Page 34: Chapter no 1

Typical Java Development Environment (Cont.) Integrated development environments (IDEs)

Provide tools that support the software development process, including editors for writing and editing programs and debuggers for locating logic errors—errors that cause programs to execute incorrectly.

Popular IDEsEclipse (www.eclipse.org)NetBeans (www.netbeans.org).jGRASP™ IDE (www.jgrasp.org)DrJava IDE (www.drjava.org/download.shtml)BlueJ IDE (www.bluej.org/)TextPad® Text Editor for Windows®

(www.textpad.com/)

Page 35: Chapter no 1

Typical Java Development Environment (Cont.) Phase 2: Compiling a Java Program into Bytecodes

◦ Use the command javac (the Java compiler) to compile a program.

◦ For example, to compile a program called Welcome.java javac Welcome.java

◦ If the program compiles, the compiler produces a .class file called Welcome.class that contains the compiled version of the program.

Page 36: Chapter no 1

Typical Java Development Environment (Cont.) Java compiler translates Java source code into bytecodes

that represent the tasks to execute.

Bytecodes are executed by the Java Virtual Machine (JVM)◦ a part of the JDK and the foundation of the Java platform.

Virtual machine (VM)—a software application that simulates a computer

◦ Hides the underlying operating system and hardware from the programs that interact with it.

Page 37: Chapter no 1

Typical Java Development Environment (Cont.) Bytecodes are platform independent

◦ They do not depend on a particular hardware platform. Bytecodes are portable

◦ The same bytecodes can execute on any platform containing a JVM that understands the version of Java in which the bytecodes were compiled.

The JVM is invoked by the java command. For example, to execute a Java application called Welcome, you’d type the command

java Welcome

Page 38: Chapter no 1

Typical Java Development Environment (Cont.) Phase 3: Loading a Program into Memory

◦ The JVM places the program in memory to execute it—this is known as loading.

◦ Class loader takes the .class files containing the program’s bytecodes and transfers them to primary memory.

◦ Also loads any of the .class files provided by Java that your program uses.

Page 39: Chapter no 1

Typical Java Development Environment (Cont.)

Page 40: Chapter no 1

Typical Java Development Environment (Cont.) Phase 4: Bytecode Verification

◦ As the classes are loaded, the bytecode verifier examines their bytecodes

◦ Ensures that they’re valid and do not violate Java’s security restrictions.

Java enforces strong security to make sure that Java programs arriving over the network do not damage your files or your system (as computer viruses and worms might).

Page 41: Chapter no 1
Page 42: Chapter no 1

 Typical Java Development Environment (Cont.) Phase 5: Execution

◦ The JVM executes the program’s bytecodes.

◦ JVMs typically execute bytecodes using a combination of interpretation and so-called just-in-time (JIT) compilation.

◦ A just-in-time (JIT) compiler—known as the Java HotSpot compiler—translates the bytecodes into the underlying computer’s machine language.

Page 43: Chapter no 1

 Typical Java Development Environment (Cont.)

◦ When the JVM encounters these compiled parts again, the faster machine-language code executes.

Java programs go through two compilation phases

1- Source code is translated into bytecodes

2- during execution, the bytecodes are translated into machine language for the actual computer on which the program executes.

Page 44: Chapter no 1

In the Java programming language:◦ A program is made up of one or more classes◦ A class contains one or more methods◦ A method contains program statements

A Java application always contains a method called main

1-44

Java Program Structure

Page 45: Chapter no 1

1-45

Java Program Structurepublic class MyProgram{

}

// comments about the class

class header

class body

Comments can be placed almost anywhere

Page 46: Chapter no 1

1-46

Java Program Structurepublic class MyProgram{

}

// comments about the class

public static void main (String[] args)

{

}

// comments about the method

method headermethod body

Page 47: Chapter no 1

Comments in a program are called inline documentation

They should be included to explain the purpose of the program and describe processing steps

They do not affect how a program works Java comments can take three forms:

1-47

Comments

// this comment runs to the end of the line

/* this comment runs to the terminating symbol, even across line breaks */

/** this is a javadoc comment */

Page 48: Chapter no 1

Identifiers are the words a programmer uses in a program An identifier can be made up of letters, digits, the

underscore character ( _ ), and the dollar sign Identifiers cannot begin with a digit Java is case sensitive - Total, total, and TOTAL are

different identifiers By convention, programmers use different case styles for

different types of identifiers, such as◦ title case for class names - MyClass◦ upper case for constants - MAXIMUM

1-48

Identifiers

Page 49: Chapter no 1

Sometimes we choose identifiers ourselves when writing a program (such as MyClass)

Sometimes we are using another programmer's code, so we use the identifiers that he or she chose (such as println)

Often we use special identifiers called reserved words that already have a predefined meaning in the language

A reserved word cannot be used in any other way

1-49

Identifiers

Page 50: Chapter no 1

The Java reserved words:

1-50

Reserved Words

abstractbooleanbreakbytecasecatchcharclassconstcontinuedefaultdodouble

elseenumextendsfalsefinalfinallyfloatforgotoifimplementsimportinstanceof

intinterfacelongnativenewnullpackageprivateprotectedpublicreturnshortstatic

strictfpsuperswitchsynchronizedthisthrowthrowstransienttruetryvoidvolatilewhile

Page 51: Chapter no 1

Spaces, blank lines, and tabs are called white space

White space is used to separate words and symbols in a program

Extra white space is ignored A valid Java program can be formatted

many ways Programs should be formatted to enhance

readability, using consistent indentation

1-51

White Space

Page 52: Chapter no 1

The syntax rules of a language define how we can put together symbols, reserved words, and identifiers to make a valid program

The semantics of a program statement define what that statement means (its purpose or role in a program)

A program that is syntactically correct is not necessarily logically (semantically) correct

A program will always do what we tell it to do, not what we meant to tell it to do

1-52

Syntax and Semantics

Page 53: Chapter no 1

A program can have three types of errors The compiler will find syntax errors and other

basic problems (compile-time errors)◦ If compile-time errors exist, an executable version of the

program is not created A problem can occur during program execution,

such as trying to divide by zero, which causes a program to terminate abnormally (run-time errors)

A program may run, but produce incorrect results, perhaps using an incorrect formula (logical errors)

1-53

Errors

Page 54: Chapter no 1

import java.util.Scanner;/** * * @author jadoon */public class HelloWorldApp {public static void main(String[] args) { Scanner reader = new Scanner(System.in); //is used to take input

// TODO code application logic here System.out.println("Welcome to my first java program"); System.out.println("Please Enter In Your First Name: "); String firstName = reader.nextLine();

1-54

A program to read input from user

Page 55: Chapter no 1

System.out.println("Please Enter In The Year You Were Born: "); String bornYear = reader.nextLine();

System.out.println("Please Enter In The Current Year: "); String thisYear = reader.nextLine();

int bYear = Integer.parseInt(bornYear);//convert data type int tYear = Integer.parseInt(thisYear); int yold=tYear-bYear; System.out.println("Hello "+ firstName +" your age is " + yold);

}//main method

}//class

1-55

Page 56: Chapter no 1

Example program: public class HelloWorld { public static void main(String[] args) { // Display the string. System.out.println("Hello World!"); System.out.println("My first java program"); } } Save HelloWorld.java Open cmd SET PATH=%PATH%;C:\JDK1.2\BIN Javac HelloWorld.java Java HelloWorld

Page 57: Chapter no 1