Intro to CS
–
Honors I
Programming Basics
GEORGI OS
PORTOKALI DI S
GPORTOKA@STEVENS.EDU
Overview
Object

oriented programming basics
Algorithms
Java fundamentals
◦
Variables
◦
Data types
◦
Arithmetic operators
◦
Operator precedence
Object

Oriented Programming
Objects
◦
They are all around us
◦
Cars, people, trees…
Each object can perform certain actions
◦
Independently or interacting with other objects
◦
These actions are called
methods
Each objects has characteristics or
attributes
◦
Example: a car has static attributes like its color and dynamic attributes like its speed
A class defines the type or kind of object
◦
Example: all car objects could belong to the automobile class
Objects belonging to a particular class have similar attributes, but are not the same!
Object

Oriented Languages
What other OOP languages do you know?
OOP Design Principles
Encapsulation
◦
Putting things into a capsule
◦
The capsule hides what’s inside
◦
AKA information hiding
◦
Part of the capsule is exposed
◦
Applies to all programming
◦
OOP languages help you enforce the separation
Polymorphism
◦
Means “many forms”
◦
For Java it means that the same method can cause
differently actions based on the object it is used with
◦
Example: the accelerate method of all objects in the automobile class,
will accelerate the vehicle, but may do so in a very different way
Inheritance
◦
A way of organizing classes
Capsule
Implementation
Attributes
Methods
Ferrari
Tesla
accelerate
accelerate
The user knows he just
wants to accelerate
Inheritance
Generic class
More specialized
classes
Even more
Specialized classes
Algorithms
An algorithm is a set of directions for solving a problem
How can you express an algorithm?
◦
In English
◦
In a programming language
◦
In
pseudocode
◦
A combination of the above
Come up with an algorithm for ordering N numbers from lowest to highest and write it in
pseudocode
Variables
public class
EggBasket
{
public
static void main(String[]
args
)
{
int
numberOfBaskets
,
eggsPerBasket
,
totalEggs
;
numberOfBaskets
= 10;
eggsPerBasket
= 6;
totalEggs
=
numberOfBaskets
*
eggsPerBasket
;
System.out.println
("If you have");
System.out.println
(
eggsPerBasket
+ " eggs per basket and");
System.out.println
(
numberOfBaskets
+ " baskets, then");
System.out.println
("the total number of eggs is " +
totalEggs
);
}
}
Variables are used to store data
Values can be assigned to
variables
Variables are of a
type
SYNTAX
Type
Variable_Name_1
,
Variable_Name_2
, ...;
Data Types
Determine how much memory will be required for the data and how the data are stored in
memory
Java has two main types
◦
Primitive types
◦
Classes
Identifiers
Identifier is the technical term for a name
In Java it can contain:
◦
Letters
◦
Digits
◦
The underscore character (_)
Cannot begin with a digit
Case sensitive
Cannot be keywords?
public
static void main(String[]
args
)
{
int
1st_number,
secondNumber
,
secondnumber
;
Example
An identifier cannot
begin with a digit
Naming Conventions
Avoid words frequently used with other meanings
◦
Example:
println
and
main
Multiple conventions
◦
Pick one and be consistent
◦
Example:
◦
Variables should begin with a lowercase letter,
◦
Names composed by multiple words should have the first letter of every word besides the first capitalized
◦
numberOfBaskets
,
eggsPerBasket
,
totalEggs
Constants
Constants or literals are data that, unlike variables, cannot change
numberOfBaskets
= 10;
p
i
=
3.14159;
firstInitial
= 'B
';
Constants also have a type.
What is the type of these?
Floating

Point Numbers
Scientific notation: number 865000000.0 can
be written as 8.65
×
10
8
Java’s
e notation
or
floating

point notation:
8.65e8
Example:
0.000483
4.83x10

4
3.83e

4
Is
5.0
the same as
5?
Floating point numbers are stored with limited precision
0.3333 …

> Is stored as exactly 0.3333333333
Includes decimal point
Single digit before decimal point
Exponent cannot
include decimal point
Named Constants
Variables with a constant value
public static final Type Variable = Constant
;
Examples:
◦
public
static
final double
PI
= 3.14159
;
◦
public static final
int
DAYS_PER_WEEK
=
7;
Assignments
SYNTAX
Variable_name
=
Expression
;
EXAMPLE
score = goals
–
errors;
interest = rate * balance;
number = number + 5;
An expression can be many things.
We will learn many different expressions as we go.
Arithmetic expressions.
Assignment Compatibilities
“You can’t put a square peg in a round
hole”
byte
→ short →
int
→ long → float →
double
Where is
char
?
Type Casting
What happens here?
double
distance =
9.56;
int
points = distance
;
How about now?
double distance = 9.56;
int
points =
(
int
)distance;
System.out.println
(points);
Numbers are not rounded!
Assignment is illegal
The typecast transforms the
value to the type: double

>
int
Arithmetic Operators
Five binary operators (between two operands)
◦
Addition +
◦
Can also be used as an unary operator to negate a
number
◦
Subtraction
–
◦
Can also be used as an unary operator to negate a number
◦
Multiplication *
◦
Division /
◦
Integer division does not produce a floating

point result
later being cast to an integer
◦
Remainder %
◦
When performing an integer division
The type of the result is the same as the
“largest” of the two operands
◦
byte → short →
int
→ long → float →
double
b
alance + deposit
balance
*
rate
11 / 3
11 % 3
Other Unary Operators
Increment/decrement operators: ++,

◦
Increase/decrease value of variable by one
Can be used as a prefix or suffix
◦
As prefix
to a variable it first applies the operator to it, and then returns its value
◦
As
suffix
to
a variable it
returns its value, and then operator on it
Can also be used independently:
++n
;
What is the value of
d
and
n
?
◦
n = 10; d = 5 + ++n;
What is the value of
n
,
b
, and
d
;
◦
n = 3; b = 5; d = ++b

n

;
Operator Precedence
From highest to lowest
◦
Unary operators ++,

, +,

◦
Binary operators *, /, %
◦
Binary operators + and
–
Parentheses can be used to change the priority of operations
Example: d = (n + 10) * 2
What is the result of this d = 5; d = ++d + (

d * 4); ?
Special
Operators II
You can precede the = assignment operator with arithmetic operators
Example:
d += 10; is the same as d = d + 10;
Are these the same?
d = 5;
◦
d
= d * 5 + 5;
◦
d *= 5 + 5
;
Operator precedence
from highest
to lowest
◦
Unary operators ++,

, +,

◦
Binary operators *, /, %
◦
Binary operators + and
–
◦
Special operators +=, *=, etc.
Bitwise Operators
Bitwise operators:
◦
AND
&
◦
OR

◦
XOR
^
Operator precedence from
highest to lowest
◦
Unary operators ++,

, +,

◦
Binary operators *, /, %
◦
Binary operators + and
–
◦
Bitwise &, ^, 
Shift Operations
Java has no unsigned numbers
Numerical shift
◦
Left <<
◦
Right >>
Logical shift is still possible
◦
Left <<<
◦
Right >>>
Operator precedence from highest to lowest
◦
Unary operators ++,

, +,

◦
Binary operators *, /, %
◦
Binary operators + and
–
◦
Shift operators
◦
Bitwise &, ^, 
Comments 0
Log in to post a comment