01 Slide
01 Slide
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
1
Course Introduction & Plan
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd. 2
All rights reserved.
Textbook
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd. 3
All rights reserved.
Course Contents
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd. 4
All rights reserved.
Agenda
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd. 5
All rights reserved.
Grades Distribution
➢ Grades Distribution:
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd. 6
All rights reserved.
How Data is Stored?
Data of various kinds, such as numbers,
characters, and strings, are encoded as a
series of bits (zeros and ones). Computers
use zeros and ones because digital devices Memory address Memory content
have two stable states, which are referred to
as zero and one by convention. The . .
programmers need not to be concerned about . .
. .
the encoding and decoding of data, which is
2000 01001010 Encoding for character ‘J’
performed automatically by the system based
2001 01100001 Encoding for character ‘a’
on the encoding scheme. The encoding 2002 01110110 Encoding for character ‘v’
scheme varies. For example, character ‘J’ is 2003 01100001 Encoding for character ‘a’
represented by 01001010 in one byte. A 2004 00000011 Encoding for number 3
small number such as three can be stored in a
single byte. If computer needs to store a
large number that cannot fit into a single
byte, it uses a number of adjacent bytes. No
two data can share or split a same byte. A
byte is the minimum storage unit.
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
7
Programming Languages
Machine Language Assembly Language High-Level Language
1101101010011010
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
8
Programming Languages
Machine Language Assembly Language High-Level Language
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
9
Programming Languages
Machine Language Assembly Language High-Level Language
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
10
Popular High-Level Languages
Language Description
Ada Named for Ada Lovelace, who worked on mechanical general-purpose computers. The Ada
language was developed for the Department of Defense and is used mainly in defense projects.
BASIC Beginner’s All-purpose Symbolic Instruction Code. It was designed to be learned and used easily
by beginners.
C Developed at Bell Laboratories. C combines the power of an assembly language with the ease of
use and portability of a high-level language.
C++ C++ is an object-oriented language, based on C.
C# Pronounced “C Sharp.” It is a hybrid of Java and C++ and was developed by Microsoft.
COBOL COmmon Business Oriented Language. Used for business applications.
FORTRAN FORmula TRANslation. Popular for scientific and mathematical applications.
Java Developed by Sun Microsystems, now part of Oracle. It is widely used for developing platform-
independent Internet applications.
Pascal Named for Blaise Pascal, who pioneered calculating machines in the seventeenth century. It is a
simple, structured, general-purpose language primarily for teaching programming.
Python A simple general-purpose scripting language good for writing short programs.
Visual Visual Basic was developed by Microsoft and it enables the programmers to rapidly develop
Basic graphical user interfaces.
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
11
Compiling Source Code in C
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
13
Interpreting Source Code
Although the bytecode is similar to machine level codes,
it is not directly executable.
The Java Virtual Machine (JVM) is used to load .class
files into the memory and interpret the code. The
Execution Engine or Just-In-Time compiler (JIT)
(executable name: java) reads one statement from the
bytecode in memory, translates it to the machine code of
the target platform, and then executes it right away.
JVM helps to avoid the need to recompile the source
code for every specific platform.
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
14
Major Differences Between Java and C
No goto statement in Java
No pointers in Java
No unsigned data type
No call-by-reference
16 bit characters
OOP rather than procedural
long integers use 8 bytes
Additional primitive types such as “byte”
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
15
Why Java?
The answer is that Java enables users to develop and
deploy applications on the Internet for servers, desktop
computers, and small hand-held devices. The future of
computing is being profoundly influenced by the Internet,
and Java promises to remain a big part of that future.
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
16
Java, Web, and Beyond
Java can be used to develop standalone
applications.
Java can be used to develop applications
running from a browser.
Java can also be used to develop applications
for hand-held devices.
Java can be used to develop applications for
Web servers.
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
17
Companion
Website Characteristics of Java
Java Is Simple Java is partially modeled on C++, but greatly
simplified and improved. Some people refer to
Java Is Object-Oriented Java as "C++--" because it is like C++ but
Java Is Distributed with more functionality and fewer negative
aspects.
Java Is Interpreted
Java Is Robust
Java Is Secure
Java Is Architecture-Neutral
Java Is Portable
Java's Performance
Java Is Multithreaded
Java Is Dynamic
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
18
Companion
Website Characteristics of Java
Java Is Simple Java is inherently object-oriented.
Although many object-oriented languages
Java Is Object-Oriented began strictly as procedural languages,
Java Is Distributed Java was designed from the start to be
object-oriented. Object-oriented
Java Is Interpreted
programming (OOP) is a popular
Java Is Robust programming approach that is replacing
Java Is Secure traditional procedural programming
techniques.
Java Is Architecture-Neutral
Java Is Portable One of the central issues in software
development is how to reuse code. Object-
Java's Performance oriented programming provides great
Java Is Multithreaded flexibility, modularity, clarity, and
reusability through encapsulation,
Java Is Dynamic inheritance, and polymorphism.
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
19
Companion
Website Characteristics of Java
Java Is Simple Distributed computing involves several
computers working together on a network.
Java Is Object-Oriented Java is designed to make distributed
Java Is Distributed computing easy. Since networking
capability is inherently integrated into
Java Is Interpreted
Java, writing network programs is like
Java Is Robust sending and receiving data to and from a
Java Is Secure file.
Java Is Architecture-Neutral
Java Is Portable
Java's Performance
Java Is Multithreaded
Java Is Dynamic
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
20
Companion
Website Characteristics of Java
Java Is Simple You need an interpreter to run Java
programs. The programs are compiled into
Java Is Object-Oriented the Java Virtual Machine code called
Java Is Distributed bytecode. The bytecode is machine-
independent and can run on any machine
Java Is Interpreted
that has a Java interpreter, which is part of
Java Is Robust the Java Virtual Machine (JVM).
Java Is Secure
Java Is Architecture-Neutral
Java Is Portable
Java's Performance
Java Is Multithreaded
Java Is Dynamic
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
21
Companion
Website Characteristics of Java
Java Is Simple Java compilers can detect many problems
that would first show up at execution time
Java Is Object-Oriented in other languages.
Java Is Distributed
Java has eliminated certain types of error-
Java Is Interpreted
prone programming constructs found in
Java Is Robust other languages.
Java Is Secure
Java has a runtime exception-handling
Java Is Architecture-Neutral feature to provide programming support
Java Is Portable for robustness.
Java's Performance
Java Is Multithreaded
Java Is Dynamic
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
22
Companion
Website Characteristics of Java
Java Is Simple
Java Is Object-Oriented
Java Is Distributed
Java Is Interpreted
Java implements several security
Java Is Robust mechanisms to protect your system against
Java Is Secure harm caused by stray programs.
Java Is Architecture-Neutral
Java Is Portable
Java's Performance
Java Is Multithreaded
Java Is Dynamic
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
23
Companion
Website Characteristics of Java
Java Is Simple
Java Is Object-Oriented
Java Is Distributed
Java Is Interpreted
Java Is Robust
Java Is Secure
Java Is Architecture-Neutral Write once, run anywhere
Java Is Portable With a Java Virtual Machine (JVM),
Java's Performance you can write one program that will
Java Is Multithreaded run on any platform.
Java Is Dynamic
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
24
Companion
Website Characteristics of Java
Java Is Simple
Java Is Object-Oriented
Java Is Distributed
Java Is Interpreted
Java Is Robust
Java Is Secure
Java Is Architecture-Neutral
Java Is Portable Because Java is architecture neutral,
Java programs are portable. They can
Java's Performance
be run on any platform without being
Java Is Multithreaded recompiled.
Java Is Dynamic
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
25
Companion
Website Characteristics of Java
Java Is Simple
Java Is Object-Oriented
Java Is Distributed
Java Is Interpreted
Java Is Robust
Java Is Secure
Java Is Architecture-Neutral
Java Is Portable
Java's Performance
Multithread programming is smoothly
Java Is Multithreaded integrated in Java, whereas in other
Java Is Dynamic languages you have to call procedures
specific to the operating system to enable
multithreading.
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
26
Companion
Website Characteristics of Java
Java Is Simple
Java Is Object-Oriented
Java Is Distributed
Java Is Interpreted
Java Is Robust
Java Is Secure
Java Is Architecture-Neutral
Java Is Portable
Java's Performance Java was designed to adapt to an evolving
environment. New code can be loaded on the
Java Is Multithreaded fly without recompilation. There is no need for
developers to create, and for users to install,
Java Is Dynamic major new software versions. New features can
be incorporated transparently as needed.
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
27
Application Interface
The application program interface (API), also known
as library, contains predefined classes and interfaces
for developing Java programs
The Java Development Toolkit (JDK) consists of a set
of separate programs, each invoked from a command
line, for developing and testing Java programs.
Instead of using the JDK, you can use a Java
development tool (e.g., NetBeans, Eclipse, and
TextPad)—software that provides an integrated
development environment (IDE) for developing Java
programs quickly
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
28
JDK Versions
JDK 1.02 (1995)
JDK 1.1 (1996)
JDK 1.2 (1998)
JDK 1.3 (2000)
JDK 1.4 (2002)
JDK 1.5 (2004) a. k. a. JDK 5 or Java 5
JDK 1.6 (2006) a. k. a. JDK 6 or Java 6
JDK 1.7 (2011) a. k. a. JDK 7 or Java 7
JDK 1.8 (2014) a. k. a. JDK 8 or Java 8
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
29
JDK Editions
Java Standard Edition (J2SE)
– J2SE can be used to develop client-side standalone
applications or applets.
Java Enterprise Edition (J2EE)
– J2EE can be used to develop server-side applications
such as Java servlets, Java ServerPages, and Java
ServerFaces.
Java Micro Edition (J2ME).
– J2ME can be used to develop applications for mobile
devices such as cell phones.
This book uses J2SE to introduce Java programming.
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
30
Popular Java IDEs
NetBeans
Eclipse
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
31
A Simple Java Program
Every Java program must have at least one class. Each class
has a name. By convention, class names start with an uppercase
letter.
In a program, multiple classes may cooperate with each other.
Each program needs an entry point to start execution.
The program is executed from the main method that is defined
in one of the classes. A class may contain several methods. The
main method is the entry point where the program begins
execution.
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
32
Creating, Compiling, and
Running Programs
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
33
Compiling Java Source Code
The Java language is a high-level language, but Java bytecode is a
low-level language. The bytecode is similar to machine instructions
but is architecture neutral and can run on any platform that has a
Java Virtual Machine (JVM).
The virtual machine is a program that interprets Java bytecode. This
is one of Java’s primary advantages: Java bytecode can run on a
variety of hardware platforms and operating systems.
Java source code is compiled into Java bytecode (.class file) and
Java bytecode is interpreted by the JVM. Your Java code may use
the code in the Java library. To execute a Java program is to run the
program’s bytecode.
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
34
Compiling Java Source Code
You can execute the bytecode on any platform with a JVM, which is
an interpreter and resides in RAM. It translates the individual
instructions in the bytecode into the target machine (i.e. the machine
on which it is working at) language code one at a time rather than
the whole program as a single unit.
The bytecode can then run on any computer with a Java Virtual
Machine, as shown below. In fact, Java Virtual Machine is a
software that interprets Java bytecode.
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
35
Compiling Java Source Code
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
36
Procedural versus Object-Oriented
Programming
The procedural programming aims at solving problems using a
collection of variables and functions. This approach is not
manageable as the size of the code gets large.
Object-oriented programming (OOP) is an alternative approach
where variables and functions are combined to form classes.
The procedural paradigm focuses on designing methods. The
object-oriented paradigm couples data and methods together
into objects. Software design using the object-oriented
paradigm focuses on objects and operations on objects.
Classes provide more flexibility and modularity for building
reusable software.
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
37
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
38
Procedural versus Object-Oriented
Programming
In procedural programming, data and operations on the data are
separate, and this methodology requires passing data to
methods.
Object-oriented programming places data and the operations
that pertain to them in an object. This approach solves many of
the problems inherent in procedural programming. The object-
oriented programming approach organizes programs in a way
that mirrors the real world, in which all objects are associated
with both attributes and activities.
Using objects improves software reusability and makes
programs easier to develop and easier to maintain. A Java
program can be viewed as a collection of cooperating objects.
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
39
Object-Oriented Programming Paradigm
There are many different types of objects like trees, cars,
animals etc. around us
These objects have different characteristics even if they belong
to the same type. For instance, different animals may have
different numbers of legs, height, size, color etc. Similarly,
different cars may have different sizes, colors, brand names etc.
In object oriented programming, objects of the same type are
said to belong to the same class. In technical terms, a class is a
blueprint or template or structure that can be used to create
objects.
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
40
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
41
Object-Oriented Programming Paradigm
All objects have two basic characteristics:
– Properties OR states
– Behavior
Example:
– Each car has a state or a set of properties such as model, color, year,
price etc. (i.e. what each object has)
– Each car has a set of behaviors such as start, move, stop, turn, accelerate,
park etc. (i.e. what each object does)
Conceptually, software objects are similar to the real world ones
A software object has a set of properties represented using data
fields/variables. The behaviors of the objects are represented in
terms of methods.
In OOP, objects are instances of a predefined class.
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
42
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
43
Trace a Program Execution
Enter main method
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
44
Trace a Program Execution
Execute statement
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
45
Trace a Program Execution
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
46
Anatomy of a Java Program
Class name
Main method
Statements
Statement terminator
Reserved words
Comments
Blocks
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
47
Class Name
Every Java program must have at least one class.
Each class has a name. By convention, class names
start with an uppercase letter. In this example, the
class name is Welcome.
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
48
Main Method
Line 2 defines the main method. In order to run a
class, the class must contain a method named main.
The program is executed from the main method.
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
49
Statement
A statement represents an action or a sequence of actions.
The statement System.out.println("Welcome to Java!") in
the program below is a statement to display the greeting
"Welcome to Java!”.
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
50
Statement Terminator
Every statement in Java ends with a semicolon (;).
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
51
Reserved words
Reserved words or keywords are words that have a
specific meaning to the compiler and cannot be used for
other purposes in the program. For example, when the
compiler sees the word class, it understands that the word
after class is the name for the class.
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
52
Blocks
A pair of braces in a program forms a block that groups
components of a program.
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
53
Special Symbols
" " Opening and closing Enclosing a string (i.e., sequence of characters).
quotation marks
; Semicolon Marks the end of a statement.
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
54
{ …}
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
60
Appropriate Comments
Include a summary at the beginning of the program to
explain what the program does, its key features, its
supporting data structures, and any unique techniques it
uses.
In addition to line comments (beginning with //) and
block comments (beginning with /*), Java supports
comments of a special type, referred to as javadoc
comment (begin with /** and end with */). They can be
extracted into an HTML file using the JDK’s javadoc
command. Use javadoc comments (/** ... */) for
commenting on an entire class or an entire method.
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
61
Naming Conventions
Choose meaningful and descriptive names.
Class names:
– Capitalize the first letter of each word in the
name. For example, the class name
ComputeExpression.
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
62
Proper Indentation and Spacing
A consistent indentation style makes
programs clear and easy to read, debug, and
maintain. Indentation is used to illustrate the
structural relationships between a program’s
components or statements.
Spacing
– Use blank line to separate segments of the code.
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
63
Block Styles
There are two popular styles, next-line style
and end-of-line style, as shown below.
Next-line public class Test
style {
public static void main(String[] args)
{
System.out.println("Block Styles");
}
}
End-of-line
style
public class Test {
public static void main(String[] args) {
System.out.println("Block Styles");
}
}
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
64
Programming Errors
Syntax Errors
– Detected by the compiler
Runtime Errors
– Causes the program to abort
Logic Errors
– Produces incorrect result
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
65
Syntax Errors
public class ShowSyntaxErrors {
public static main(String[] args) {
System.out.println("Welcome to Java);
}
}
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
66
Runtime Errors
public class ShowRuntimeErrors {
public static void main(String[] args) {
System.out.println(1 / 0);
}
}
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
67
Logic Errors
public class ShowLogicErrors {
public static void main(String[] args) {
System.out.println("Celsius 35 is Fahrenheit degree ");
System.out.println((9 / 5) * 35 + 32);
}
}
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd.
All rights reserved.
68
Thanks! .. Questions?
Liang, Introduction to Java Programming, Eleventh Edition, (c) 2018 Pearson Education, Ltd. 69
All rights reserved.