0% found this document useful (0 votes)
3 views

Introduction to computer

The document introduces the fundamentals of programming, focusing on object-oriented concepts such as classes, objects, methods, and encapsulation, using the analogy of a car to explain these principles. It also covers the Java programming language, its development environment, and the phases of executing a Java program, including editing, compiling, loading, verifying, and executing bytecodes. Additionally, it highlights the importance of reusability, inheritance, and the role of operating systems in facilitating software execution.

Uploaded by

olastudies1101
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Introduction to computer

The document introduces the fundamentals of programming, focusing on object-oriented concepts such as classes, objects, methods, and encapsulation, using the analogy of a car to explain these principles. It also covers the Java programming language, its development environment, and the phases of executing a Java program, including editing, compiling, loading, verifying, and executing bytecodes. Additionally, it highlights the importance of reusability, inheritance, and the role of operating systems in facilitating software execution.

Uploaded by

olastudies1101
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 26

‫أساسيات البرمجة‬

(2)
Introduction to Computers and Java
Introduction to Object Technology
 Objects, or more precisely, the classes objects are essentially
reusable software components.
 There are date objects, time objects, audio objects, video objects,
automobile objects, people objects, etc.
 Almost any noun can be reasonably represented as a software
object in terms of attributes (e.g., name, color and size) and
behaviors (e.g., calculating, moving and communicating).
➢ The Automobile as an Object
 Let’s begin with a simple analogy.
 Suppose you want to drive a car and make it go faster by pressing
its accelerator pedal.
 Before you can drive a car, someone has to design it.
 A car typically begins as engineering drawings, similar to the
blueprints that describe the design of a house.
 Drawings include the design for an accelerator pedal.
 Pedal hides from the driver the complex mechanisms that
actually make the car go faster, just as the brake pedal hides the
mechanisms that slow the car, and the steering wheel “hides” the
mechanisms that turn the car.
 Enables people with little or no knowledge of
how engines, braking and steering mechanisms
work to drive a car easily.
 Before you can drive a car, it must be built
from the engineering drawings that describe it.
 A completed car has an actual accelerator
pedal to make the car go faster, but even that’s
not enough—the car won’t accelerate on its
own (hopefully!), so the driver must press the
pedal to accelerate the car.
➢Methods and Classes
 Performing a task in a program requires a
method.
 The method houses the program statements that
actually perform its tasks.
 Hides these statements from its user, just as the
accelerator pedal of a car hides from the driver
the mechanisms of making the car go faster.
 In Java, we create a program unit called a class
to house the set of methods that perform the
class’s tasks.
Cont..
 For example, a class that represents a bank
account might contain one method to deposit
money to an account, another to withdraw money
from an account and a third to inquire what the
account’s current balance is. A
 class is similar in concept to a car’s engineering
drawings, which house the design of an
accelerator pedal, steering wheel, and so on.
➢Instantiation
 Just as someone has to build a car from its
engineering drawings before you can actually
drive a car, you must build an object of a class
before a program can perform the tasks that
the class’s methods define.
 An object is then referred to as an instance of
its class.
➢Reuse
 Just as a car’s engineering drawings can be reused many
times to build many cars, you can reuse a class many times
to build many objects.
 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.
➢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.
➢A ttributes
 A car has attributes
 Color, its number of doors, the amount of gas
in its tank, its current speed and its record of
total miles driven.
 The car’s attributes are represented as part of
its design in its engineering diagrams.
 Every car maintains its own attributes.
Cont..
 An object, similarly, has attributes that it carries along as it’s
used in a program. These attributes are specified as part of
the object’s class. For example, a bank account object has a
balance attribute that represents the amount of money in the
account.
 Each bank account object knows the balance in the account
it represents, but not the balances of the other accounts in the
bank. Attributes are specified by the class’s instance
variables.
➢Encapsulation
 Classes encapsulate (i.e., wrap) attributes and
methods into objects.
 Objects may communicate with one another, but
they’re normally not allowed to know how other
objects are implemented—implementation details
are hidden within the objects themselves.
 Information hiding, as we’ll see, is crucial to good
software engineering.
➢Inheritance
 A new class of objects can be created
quickly and conveniently by inheritance—
the new class absorbs the characteristics of
an existing class, possibly customizing
them and adding unique characteristics of
its own.
Operating Systems
 Software systems that make using computers more convenient.
 Provide services that allow each application to execute safely,
efficiently and concurrently (i.e., in parallel) with other
applications.
 The software that contains the core components of the operating
system is called the kernel.
 Popular desktop operating systems include Linux, Windows and
Mac OS X.
 Popular mobile operating systems used in smartphones and
tablets include Google’s Android, BlackBerry OS and Apple’s iOS
(for its iPhone, iPad and iPod Touch devices).
 Examples
 Windows—A Proprietary Operating System
 Linux—An Open-Source Operating System
 Android
Java and a Typical Java Development
Environment
 Sun Microsystems in 1991 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.”
➢ In 1993
 The web exploded in popularity
 Sun saw the potential of using Java to add dynamic content to
web pages.
 Java is used to develop large-scale enterprise applications, to
enhance the functionality of web servers, to provide applications
for consumer devices and for many other purposes.
➢ Java Class Libraries
 Rich collections of existing classes and methods
 Also known as the Java APIs (Application Programming
Interfaces).
➢ Java programs normally go through five phases
 edit
 compile
 load
 verify
 execute.
➢ Phase 1: Creating a Program
 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.
➢Phase 2: Compiling a Java Program into Bytecodes

 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


Cont..
To compile java code use the command:
javacWelcome.java.
 If the program compiles, the compiler
produces a .class file called Welcome.class that
contains the compiled version of the program
 If the same VM is implemented on many computer
platforms, applications that it executes can be used
on all those platforms
 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.
➢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 bytecode transfers them to
primary memory.
 Also loads any of the bytecodes provided by Java that
your program uses.
 The bytecodes can be loaded from a disk on your
system or over a network.
➢ Phase 4: BytecodeVerification
 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).
➢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.

You might also like