Lecture 1
Introduction to Java
What is a Computer Program?
• For a computer to be able to do anything
(multiply, play a song, run a word processor),
it must be given the instructions to do so.
• A program is a set of instructions written by
humans for computers to perform tasks.
• The instructions are written in programming
languages such as C, C++, Java, etc.
Recipe Analogy
Comparing a computer program to a food recipe
Food Recipe Computer Program
• a chef writes a set of • a programmer writes a set of
instructions called a recipe instructions called a program
• the recipe requires • the program requires
specific ingredients specific inputs
• the cook follows the • the computer follows the
instruction step-by-step instructions step-by-step
• the food will vary • the output will vary
depending on the amount depending on the values of
of ingredients and the cook the inputs and the computer
Compiling Programs
• Computers do not understand the languages
(C++, Java, etc) that programs are written in.
• Programs must first be compiled (converted)
into machine code that the computer can run.
• A compiler is a program that translates a
programming language into machine code.
Running Programs
• All programs follow a simple format:
Input Execution Output
• Inputs can be from users, files, or
other computer programs
• Outputs can take on many forms:
numbers, text, graphics, sound, or
commands to other programs
Multiple Compilers
• Because different operating systems (Windows, Macs,
Unix) require different machine code, you must compile
most programming languages separately for each platform.
program
compiler compiler
compiler
Unix
Win
MAC
Java Interpreter
• Java is a little different.
• Java compiler produces bytecode not
machine code.
• Bytecode can be run on any computer
Win
with the Java interpreter installed.
Java Program Java Bytecode
MAC
compiler Interpreter
Unix
Advantages and Disadvantages of Java
Advantages:
• Java is platform independent. Once it's compiled, you can run
the bytecode on any machine with a Java interpreter. You do not
have to recompile for each platform.
• Java is safe. Certain common programming bugs and dangerous
operations are prevented by the language and compiler.
• Java standardizes many useful operations like managing
network connections and providing graphical user interfaces.
Disadvantages:
• Running bytecode through the interpreter is not as fast as
running machine code, which is specific to that platform.
• Because it is platform independent, it is difficult to use platform
specific features (e.g., Windows taskbar, quick launch) in Java.
• Java interpreter must be installed on the computer in order to run
Java programs.
Object-Oriented Programming
• Java is an object-oriented
programming language
• For the rest of this lecture, we’ll
introduce you to the basic principles
of object-oriented programming.
• We won’t be using these principles
immediately, but they will become
important over the next lectures.
OOP Concepts
• In object-oriented programming (OOP),
programs are organized into objects
• The properties of objects are
determined by their class
• Objects act on each other by passing
messages
Object
• Definition: An object is a software
bundle that has State and Behavior.
• Software Objects are often used to
model real-world objects.
• Example: dogs have states (name,
color) and behaviors (bark and wag
tail).
Object Examples
• Example 1: Dogs
– States: name, color and “is hungry?”
– Behaviors: bark, run, and wag tail
• Example 2: Cars
– States: color, model…
– Behaviors: accelerate, turn, change gears
Class
• Definition: A class is a blueprint that defines the
states and the behaviors common to all objects of
a certain kind.
• In the real world, you often have many objects of
the same kind. For example, a guard dog, snoop
dog . . .
• Even though all dogs have four legs, and bark,
each dog’s behavior is independent of other dogs.
Message
• Definition: Software objects interact and
communicate with each other by sending
messages to each other.
• Example: when you want your dog to
gather a herd of goats, you whistle and
send him out.
Summary of OOP
• When writing an object-oriented program, we
define classes, which describe categories of
objects, and the states and behaviors that they
have in common.
• We then create objects which belong to classes,
and share the common features of their class.
• Objects interact with each other by passing
messages.