SlideShare a Scribd company logo
Unit 1: Primitive Types
Variables and Datatypes
Adapted from:
1) Building Java Programs: A Back to Basics
Approach
by Stuart Reges and Marty Stepp
2) Runestone CSAwesome Curriculum
https://longbaonguyen.github.io
This work is licensed under the
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
2
Data Types
A type is a set of values (e.g. integers, floats, etc..) and a set
of operations (e.g. +, -, *, /, etc..) on them.
Data types can be categorized as either primitive or
reference.
The primitive data types used in this course define the set of
operations for numbers and Boolean(true or false) values.
Reference variables or object variables hold a reference(or
address) to an object of a class(more on this in a future
lecture).
3
Primitive types
The primitive types on the Advanced Placement Computer
Science A exam are:
•int - which store integers (whole numbers like 3, -76, 20393)
•double - which store floating point numbers (decimal
numbers like 6.3, -0.9, and 60293.93032)
•boolean - which store Boolean values (either true or false).
4
Receipt example
What's bad about the following code?
public class Receipt {
public static void main(String[] args) {
// Calculate total owed, assuming 8% tax / 15% tip
System.out.println("Subtotal:");
System.out.println(38 + 40 + 30);
System.out.println("Tax:");
System.out.println((38 + 40 + 30) * .08);
System.out.println("Tip:");
System.out.println((38 + 40 + 30) * .15);
System.out.println("Total:");
System.out.println(38 + 40 + 30 +
(38 + 40 + 30) * .08 +
(38 + 40 + 30) * .15);
}
}
– The subtotal expression (38 + 40 + 30) is repeated
– So many println statements
– We will use variables to solve the above problems.
5
Variables
• variable: A piece of the computer's memory that is given a name
and type, and can store a value.
– Like preset stations on a car stereo, or cell phone speed dial:
– Steps for using a variable:
• Declare it - state its name and type
• Initialize it - store a value into it
• Use it - print it or use it as part of an expression
6
Declaration
• variable declaration: Sets aside memory for storing a value.
– Variables must be declared before they can be used.
• Syntax:
type name;
• The name is an identifier.
– int x;
– double myGPA;
x
myGPA
7
Assignment
• assignment: Stores a value into a variable.
– The value can be an expression; the variable stores its result.
• Syntax:
name = expression;
– int x;
x = 3;
– double myGPA;
myGPA = 1.0 + 2.25;
x 3
myGPA 3.25
8
Using variables
• Once given a value, a variable can be used in expressions:
int x;
x = 3;
System.out.println("x is " + x); // x is 3
System.out.println(5 * x - 1); // 14
• You can assign a value more than once:
int x;
x = 3;
System.out.println(x + " here"); // 3 here
x = 4 + 7;
System.out.println("now x is " + x); // now x is 11
x 3
x 11
string concatenation:
string + number = concatenated string
(more on this later)
9
Declaration/initialization
• A variable can be declared/initialized in one statement.
• Syntax:
type name = value;
– double myGPA = 3.95;
– int x = (12 - 3) * 2;
x 18
myGPA 3.95
10
Assignment and algebra
• Assignment uses = , but it is not an algebraic equation.
= means, "store the value at right in variable at left"
• The right side expression is evaluated first,
and then its result is stored in the variable at left.
• What happens here?
int x = 3;
x = x + 2; // no solutions
// mathematically
// not an equation!
x 3
x 5
11
Multiple Variables
• Multiple variables of the same type can be declared and
initialized at the same time.
• Syntax:
type name1, name 2, name3;
int x, y, z; // declare three integers.
type name1 = value1, name2 = value2, name3 = value3;
int a = 1, b = 2, c = 3; // declare and initialize
// three integers.
12
Assignment and types
• A variable can only store a value of its own type.
– int x = 2.5; // ERROR: incompatible types
• An int value can be stored in a double variable.
– The value is converted into the equivalent real number.
– double myGPA = 4; myGPA 4.0
13
Compiler errors
• Order matters.
– int x;
7 = x; // ERROR: should be x = 7;
• A variable can't be used until it is assigned a value.
– int x;
System.out.println(x); // ERROR: x has no value
• You may not declare the same variable twice.
– int x;
int x; // ERROR: x already exists
– int x = 3;
int x = 5; // ERROR: x already exists
• How can this code be fixed?
14
Printing a variable's value
• Use + to print a string and a variable's value on one line.
– double grade = (95.1 + 71.9 + 82.6) / 3.0;
System.out.println("Your grade was " + grade);
int students = 11 + 17 + 4 + 19 + 14;
System.out.println("There are " + students +
" students in the course.");
• Output:
Your grade was 83.2
There are 65 students in the course.
15
Receipt question
Improve the receipt program using variables.
public class Receipt {
public static void main(String[] args) {
// Calculate total owed, assuming 8% tax / 15% tip
System.out.println("Subtotal:");
System.out.println(38 + 40 + 30);
System.out.println("Tax:");
System.out.println((38 + 40 + 30) * .08);
System.out.println("Tip:");
System.out.println((38 + 40 + 30) * .15);
System.out.println("Total:");
System.out.println(38 + 40 + 30 +
(38 + 40 + 30) * .15 +
(38 + 40 + 30) * .08);
}
}
16
Receipt answer
public class Receipt {
public static void main(String[] args) {
// Calculate total owed, assuming 8% tax / 15% tip
int subtotal = 38 + 40 + 30;
double tax = subtotal * .08;
double tip = subtotal * .15;
double total = subtotal + tax + tip;
System.out.println("Subtotal: " + subtotal);
System.out.println("Tax: " + tax);
System.out.println("Tip: " + tip);
System.out.println("Total: " + total);
}
}
17
Type boolean
• boolean: A logical type whose values are true and false.
int age = 22;
boolean minor = (age < 21);
boolean lovesAPCS = true;
System.out.println(minor); // false
System.out.println(lovesAPCS); // true
System.out.println(4 <= 5); // true
18
final
• The keyword final can be used in front of a variable
declaration to make it a constant that cannot be changed.
Constants are traditionally capitalized.
public class TestFinal
{
public static void main(String[] args)
{
final double PI = 3.14;
System.out.println(PI);
PI = 4.2; // This will cause a syntax error
}
}
19
Naming variables
The name of the variable should describe the data it holds. A name
like score helps make your code easier to read.
A name like x is not a good variable name in programming, because it
gives no clues as to what kind of data it holds.
Do not name your variables crazy things like thisIsAReallyLongName,
especially on the AP exam. You want to make your code easy to
understand, not harder.
20
Naming variables
The convention in Java and many programming languages is to always
start a variable name with a lower case letter and then uppercase the first
letter of each additional word.
Variable names can not include spaces so uppercasing the first letter of
each additional word makes it easier to read the name. Uppercasing the
first letter of each additional word is called camel case.
int numOfLives = 3; // camel case to highlight words
Another option is to use underscore symbol _ to separate words, but you
cannot have spaces in a variable name. Java is case sensitive
so playerScore and playerscore are not the same.
int num_of_lives = 3; // use _ to highlight words.
21
Keywords
• keyword: An identifier that you cannot use to name a
variable because it already has a reserved meaning in Java.
abstract default if private this
boolean do implements protected throw
break double import public throws
byte else instanceof return transient
case extends int short try
catch final interface static void
char finally long strictfp volatile
class float native super while
const for new switch
continue goto package synchronized
22
Input and System.in
(not on AP)
• interactive program: Reads input from the console.
– While the program runs, it asks the user to type input.
– The input typed by the user is stored in variables in the code.
– Can be tricky; users are unpredictable and misbehave.
– But interactive programs have more interesting behavior.
• Scanner: An object that can read input from many sources.
– Communicates with System.in (the opposite of System.out)
– Can also read from files, web sites, databases, ...
23
Scanner syntax
(not on AP)
• The Scanner class is found in the java.util package.
import java.util.*; // so you can use Scanner
• Constructing a Scanner object to read console input:
Scanner name = new Scanner(System.in);
– Example:
Scanner console = new Scanner(System.in);
24
Scanner methods
(not on AP)
– Each method waits until the user presses Enter.
– The value typed by the user is returned.
System.out.print("How old are you? "); // prompt
int age = console.nextInt();
System.out.println("You typed " + age);
• prompt: A message telling the user what input to type.
Method Description
nextInt() reads an int from the user and returns it
nextDouble() reads a double from the user
next() reads a one-word String from the user
nextLine() reads a one-line String from the user
25
Scanner example
(not on AP)
import java.util.*; // so that I can use Scanner
public class UserInputExample {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
System.out.print("How old are you? ");
int age = console.nextInt();
int years = 65 - age;
System.out.println(years + " years to retirement!");
}
}
• Console (user input underlined):
How old are you?
36 years until retirement!
29
age 29
years 36
26
Input tokens
(not on AP)
• token: A unit of user input, as read by the Scanner.
– Tokens are separated by whitespace (spaces, tabs, new lines).
– How many tokens appear on the following line of input?
23 John Smith 42.0 "Hello world" $2.50 " 19"
• When a token is not the type you ask for, it crashes.
System.out.print("What is your age? ");
int age = console.nextInt();
Output:
What is your age? Timmy
java.util.InputMismatchException
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
...
27
Scanner example 2
(not on AP)
import java.util.*; // so that I can use Scanner
public class ScannerMultiply {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
System.out.print("Please type two numbers: ");
int num1 = console.nextInt();
int num2 = console.nextInt();
int product = num1 * num2;
System.out.println("The product is " + product);
}
}
• Valid Outputs (user input underlined):
Please type two numbers: 8
6
The product is 48
// 2 tokens separated by new
// line
Please type two numbers: 8 6
The product is 48
// 2 tokens separated by space
28
Lab 1: String Concatenation
Create a new repl on replit.
Create two integer variables: pens and pencils. Initialize it to
some positive values. Use print statements and String
concatenation to have the following output:
Output: (Assuming that the initialized values for pens=18,
pencils = 10)
There are 18 pens.
There are 10 pencils.
Total is 28 pens and pencils.
29
Lab 2: String Concatenation
Use the SAME repl as from Lab 1 String Concatenation.
Modify your previous lab 1 to ask the user to enter the
number pens and pencils rather than hard coding the values.
Use print statements and String concatenation to have the
following output:
Output:
Enter the number of pens: 10
Enter the number of pencils: 18
Total is 28 pens and pencils.
30
References
For more tutorials/lecture notes in Java, Python, game
programming, artificial intelligence with neural networks:
https://longbaonguyen.github.io
1) Building Java Programs: A Back to Basics Approach by Stuart Reges and
Marty Stepp
2) Runestone CSAwesome Curriculum:
https://runestone.academy/runestone/books/published/csawesome/index.html
Ad

More Related Content

Similar to Unit 1: Primitive Types - Variables and Datatypes (20)

Unit-1 Data Types and Operators.pptx to computers
Unit-1 Data Types and Operators.pptx to computersUnit-1 Data Types and Operators.pptx to computers
Unit-1 Data Types and Operators.pptx to computers
csangani1
 
JAVA programming language made easy.pptx
JAVA programming language made easy.pptxJAVA programming language made easy.pptx
JAVA programming language made easy.pptx
Sunila31
 
Introduction to Java Programming Part 2
Introduction to Java Programming Part 2Introduction to Java Programming Part 2
Introduction to Java Programming Part 2
university of education,Lahore
 
03 and 04 .Operators, Expressions, working with the console and conditional s...
03 and 04 .Operators, Expressions, working with the console and conditional s...03 and 04 .Operators, Expressions, working with the console and conditional s...
03 and 04 .Operators, Expressions, working with the console and conditional s...
Intro C# Book
 
Identifiers, keywords and types
Identifiers, keywords and typesIdentifiers, keywords and types
Identifiers, keywords and types
Daman Toor
 
Introduction to C ++.pptx
Introduction to C ++.pptxIntroduction to C ++.pptx
Introduction to C ++.pptx
VAIBHAVKADAGANCHI
 
Unit 2-data types,Variables,Operators,Conitionals,loops and arrays
Unit 2-data types,Variables,Operators,Conitionals,loops and arraysUnit 2-data types,Variables,Operators,Conitionals,loops and arrays
Unit 2-data types,Variables,Operators,Conitionals,loops and arrays
DevaKumari Vijay
 
Java Tut1
Java Tut1Java Tut1
Java Tut1
guest5c8bd1
 
Java Tutorial
Java TutorialJava Tutorial
Java Tutorial
Vijay A Raj
 
Java tut1
Java tut1Java tut1
Java tut1
Ajmal Khan
 
Tutorial java
Tutorial javaTutorial java
Tutorial java
Abdul Aziz
 
C++ tutorials
C++ tutorialsC++ tutorials
C++ tutorials
Divyanshu Dubey
 
Chapter 3.4
Chapter 3.4Chapter 3.4
Chapter 3.4
sotlsoc
 
Lecture - 3 Variables-data type_operators_oops concept
Lecture - 3 Variables-data type_operators_oops conceptLecture - 3 Variables-data type_operators_oops concept
Lecture - 3 Variables-data type_operators_oops concept
manish kumar
 
Java For Automation
Java   For AutomationJava   For Automation
Java For Automation
Abhijeet Dubey
 
Core java
Core javaCore java
Core java
Mallikarjuna G D
 
Data types, Variables, Expressions & Arithmetic Operators in java
Data types, Variables, Expressions & Arithmetic Operators in javaData types, Variables, Expressions & Arithmetic Operators in java
Data types, Variables, Expressions & Arithmetic Operators in java
Javed Rashid
 
Control structure repetition Tito Lacbayen
Control structure repetition Tito LacbayenControl structure repetition Tito Lacbayen
Control structure repetition Tito Lacbayen
LacbayenEchaviaTitoJ
 
Intro to programing with java-lecture 3
Intro to programing with java-lecture 3Intro to programing with java-lecture 3
Intro to programing with java-lecture 3
Mohamed Essam
 
Java Programming Tutorials Basic to Advanced 2
Java Programming Tutorials Basic to Advanced 2Java Programming Tutorials Basic to Advanced 2
Java Programming Tutorials Basic to Advanced 2
JALALUDHEENVK1
 
Unit-1 Data Types and Operators.pptx to computers
Unit-1 Data Types and Operators.pptx to computersUnit-1 Data Types and Operators.pptx to computers
Unit-1 Data Types and Operators.pptx to computers
csangani1
 
JAVA programming language made easy.pptx
JAVA programming language made easy.pptxJAVA programming language made easy.pptx
JAVA programming language made easy.pptx
Sunila31
 
03 and 04 .Operators, Expressions, working with the console and conditional s...
03 and 04 .Operators, Expressions, working with the console and conditional s...03 and 04 .Operators, Expressions, working with the console and conditional s...
03 and 04 .Operators, Expressions, working with the console and conditional s...
Intro C# Book
 
Identifiers, keywords and types
Identifiers, keywords and typesIdentifiers, keywords and types
Identifiers, keywords and types
Daman Toor
 
Unit 2-data types,Variables,Operators,Conitionals,loops and arrays
Unit 2-data types,Variables,Operators,Conitionals,loops and arraysUnit 2-data types,Variables,Operators,Conitionals,loops and arrays
Unit 2-data types,Variables,Operators,Conitionals,loops and arrays
DevaKumari Vijay
 
Chapter 3.4
Chapter 3.4Chapter 3.4
Chapter 3.4
sotlsoc
 
Lecture - 3 Variables-data type_operators_oops concept
Lecture - 3 Variables-data type_operators_oops conceptLecture - 3 Variables-data type_operators_oops concept
Lecture - 3 Variables-data type_operators_oops concept
manish kumar
 
Data types, Variables, Expressions & Arithmetic Operators in java
Data types, Variables, Expressions & Arithmetic Operators in javaData types, Variables, Expressions & Arithmetic Operators in java
Data types, Variables, Expressions & Arithmetic Operators in java
Javed Rashid
 
Control structure repetition Tito Lacbayen
Control structure repetition Tito LacbayenControl structure repetition Tito Lacbayen
Control structure repetition Tito Lacbayen
LacbayenEchaviaTitoJ
 
Intro to programing with java-lecture 3
Intro to programing with java-lecture 3Intro to programing with java-lecture 3
Intro to programing with java-lecture 3
Mohamed Essam
 
Java Programming Tutorials Basic to Advanced 2
Java Programming Tutorials Basic to Advanced 2Java Programming Tutorials Basic to Advanced 2
Java Programming Tutorials Basic to Advanced 2
JALALUDHEENVK1
 

Recently uploaded (20)

Anti-Depressants pharmacology 1slide.pptx
Anti-Depressants pharmacology 1slide.pptxAnti-Depressants pharmacology 1slide.pptx
Anti-Depressants pharmacology 1slide.pptx
Mayuri Chavan
 
Biophysics Chapter 3 Methods of Studying Macromolecules.pdf
Biophysics Chapter 3 Methods of Studying Macromolecules.pdfBiophysics Chapter 3 Methods of Studying Macromolecules.pdf
Biophysics Chapter 3 Methods of Studying Macromolecules.pdf
PKLI-Institute of Nursing and Allied Health Sciences Lahore , Pakistan.
 
CBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - Worksheet
CBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - WorksheetCBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - Worksheet
CBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - Worksheet
Sritoma Majumder
 
Understanding P–N Junction Semiconductors: A Beginner’s Guide
Understanding P–N Junction Semiconductors: A Beginner’s GuideUnderstanding P–N Junction Semiconductors: A Beginner’s Guide
Understanding P–N Junction Semiconductors: A Beginner’s Guide
GS Virdi
 
pulse ppt.pptx Types of pulse , characteristics of pulse , Alteration of pulse
pulse  ppt.pptx Types of pulse , characteristics of pulse , Alteration of pulsepulse  ppt.pptx Types of pulse , characteristics of pulse , Alteration of pulse
pulse ppt.pptx Types of pulse , characteristics of pulse , Alteration of pulse
sushreesangita003
 
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Celine George
 
GDGLSPGCOER - Git and GitHub Workshop.pptx
GDGLSPGCOER - Git and GitHub Workshop.pptxGDGLSPGCOER - Git and GitHub Workshop.pptx
GDGLSPGCOER - Git and GitHub Workshop.pptx
azeenhodekar
 
Presentation on Tourism Product Development By Md Shaifullar Rabbi
Presentation on Tourism Product Development By Md Shaifullar RabbiPresentation on Tourism Product Development By Md Shaifullar Rabbi
Presentation on Tourism Product Development By Md Shaifullar Rabbi
Md Shaifullar Rabbi
 
Stein, Hunt, Green letter to Congress April 2025
Stein, Hunt, Green letter to Congress April 2025Stein, Hunt, Green letter to Congress April 2025
Stein, Hunt, Green letter to Congress April 2025
Mebane Rash
 
The ever evoilving world of science /7th class science curiosity /samyans aca...
The ever evoilving world of science /7th class science curiosity /samyans aca...The ever evoilving world of science /7th class science curiosity /samyans aca...
The ever evoilving world of science /7th class science curiosity /samyans aca...
Sandeep Swamy
 
Ultimate VMware 2V0-11.25 Exam Dumps for Exam Success
Ultimate VMware 2V0-11.25 Exam Dumps for Exam SuccessUltimate VMware 2V0-11.25 Exam Dumps for Exam Success
Ultimate VMware 2V0-11.25 Exam Dumps for Exam Success
Mark Soia
 
Introduction to Vibe Coding and Vibe Engineering
Introduction to Vibe Coding and Vibe EngineeringIntroduction to Vibe Coding and Vibe Engineering
Introduction to Vibe Coding and Vibe Engineering
Damian T. Gordon
 
How to Customize Your Financial Reports & Tax Reports With Odoo 17 Accounting
How to Customize Your Financial Reports & Tax Reports With Odoo 17 AccountingHow to Customize Your Financial Reports & Tax Reports With Odoo 17 Accounting
How to Customize Your Financial Reports & Tax Reports With Odoo 17 Accounting
Celine George
 
LDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini UpdatesLDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini Updates
LDM Mia eStudios
 
P-glycoprotein pamphlet: iteration 4 of 4 final
P-glycoprotein pamphlet: iteration 4 of 4 finalP-glycoprotein pamphlet: iteration 4 of 4 final
P-glycoprotein pamphlet: iteration 4 of 4 final
bs22n2s
 
Operations Management (Dr. Abdulfatah Salem).pdf
Operations Management (Dr. Abdulfatah Salem).pdfOperations Management (Dr. Abdulfatah Salem).pdf
Operations Management (Dr. Abdulfatah Salem).pdf
Arab Academy for Science, Technology and Maritime Transport
 
Quality Contril Analysis of Containers.pdf
Quality Contril Analysis of Containers.pdfQuality Contril Analysis of Containers.pdf
Quality Contril Analysis of Containers.pdf
Dr. Bindiya Chauhan
 
Presentation of the MIPLM subject matter expert Erdem Kaya
Presentation of the MIPLM subject matter expert Erdem KayaPresentation of the MIPLM subject matter expert Erdem Kaya
Presentation of the MIPLM subject matter expert Erdem Kaya
MIPLM
 
How to Manage Opening & Closing Controls in Odoo 17 POS
How to Manage Opening & Closing Controls in Odoo 17 POSHow to Manage Opening & Closing Controls in Odoo 17 POS
How to Manage Opening & Closing Controls in Odoo 17 POS
Celine George
 
Handling Multiple Choice Responses: Fortune Effiong.pptx
Handling Multiple Choice Responses: Fortune Effiong.pptxHandling Multiple Choice Responses: Fortune Effiong.pptx
Handling Multiple Choice Responses: Fortune Effiong.pptx
AuthorAIDNationalRes
 
Anti-Depressants pharmacology 1slide.pptx
Anti-Depressants pharmacology 1slide.pptxAnti-Depressants pharmacology 1slide.pptx
Anti-Depressants pharmacology 1slide.pptx
Mayuri Chavan
 
CBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - Worksheet
CBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - WorksheetCBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - Worksheet
CBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - Worksheet
Sritoma Majumder
 
Understanding P–N Junction Semiconductors: A Beginner’s Guide
Understanding P–N Junction Semiconductors: A Beginner’s GuideUnderstanding P–N Junction Semiconductors: A Beginner’s Guide
Understanding P–N Junction Semiconductors: A Beginner’s Guide
GS Virdi
 
pulse ppt.pptx Types of pulse , characteristics of pulse , Alteration of pulse
pulse  ppt.pptx Types of pulse , characteristics of pulse , Alteration of pulsepulse  ppt.pptx Types of pulse , characteristics of pulse , Alteration of pulse
pulse ppt.pptx Types of pulse , characteristics of pulse , Alteration of pulse
sushreesangita003
 
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Celine George
 
GDGLSPGCOER - Git and GitHub Workshop.pptx
GDGLSPGCOER - Git and GitHub Workshop.pptxGDGLSPGCOER - Git and GitHub Workshop.pptx
GDGLSPGCOER - Git and GitHub Workshop.pptx
azeenhodekar
 
Presentation on Tourism Product Development By Md Shaifullar Rabbi
Presentation on Tourism Product Development By Md Shaifullar RabbiPresentation on Tourism Product Development By Md Shaifullar Rabbi
Presentation on Tourism Product Development By Md Shaifullar Rabbi
Md Shaifullar Rabbi
 
Stein, Hunt, Green letter to Congress April 2025
Stein, Hunt, Green letter to Congress April 2025Stein, Hunt, Green letter to Congress April 2025
Stein, Hunt, Green letter to Congress April 2025
Mebane Rash
 
The ever evoilving world of science /7th class science curiosity /samyans aca...
The ever evoilving world of science /7th class science curiosity /samyans aca...The ever evoilving world of science /7th class science curiosity /samyans aca...
The ever evoilving world of science /7th class science curiosity /samyans aca...
Sandeep Swamy
 
Ultimate VMware 2V0-11.25 Exam Dumps for Exam Success
Ultimate VMware 2V0-11.25 Exam Dumps for Exam SuccessUltimate VMware 2V0-11.25 Exam Dumps for Exam Success
Ultimate VMware 2V0-11.25 Exam Dumps for Exam Success
Mark Soia
 
Introduction to Vibe Coding and Vibe Engineering
Introduction to Vibe Coding and Vibe EngineeringIntroduction to Vibe Coding and Vibe Engineering
Introduction to Vibe Coding and Vibe Engineering
Damian T. Gordon
 
How to Customize Your Financial Reports & Tax Reports With Odoo 17 Accounting
How to Customize Your Financial Reports & Tax Reports With Odoo 17 AccountingHow to Customize Your Financial Reports & Tax Reports With Odoo 17 Accounting
How to Customize Your Financial Reports & Tax Reports With Odoo 17 Accounting
Celine George
 
LDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini UpdatesLDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini Updates
LDM Mia eStudios
 
P-glycoprotein pamphlet: iteration 4 of 4 final
P-glycoprotein pamphlet: iteration 4 of 4 finalP-glycoprotein pamphlet: iteration 4 of 4 final
P-glycoprotein pamphlet: iteration 4 of 4 final
bs22n2s
 
Quality Contril Analysis of Containers.pdf
Quality Contril Analysis of Containers.pdfQuality Contril Analysis of Containers.pdf
Quality Contril Analysis of Containers.pdf
Dr. Bindiya Chauhan
 
Presentation of the MIPLM subject matter expert Erdem Kaya
Presentation of the MIPLM subject matter expert Erdem KayaPresentation of the MIPLM subject matter expert Erdem Kaya
Presentation of the MIPLM subject matter expert Erdem Kaya
MIPLM
 
How to Manage Opening & Closing Controls in Odoo 17 POS
How to Manage Opening & Closing Controls in Odoo 17 POSHow to Manage Opening & Closing Controls in Odoo 17 POS
How to Manage Opening & Closing Controls in Odoo 17 POS
Celine George
 
Handling Multiple Choice Responses: Fortune Effiong.pptx
Handling Multiple Choice Responses: Fortune Effiong.pptxHandling Multiple Choice Responses: Fortune Effiong.pptx
Handling Multiple Choice Responses: Fortune Effiong.pptx
AuthorAIDNationalRes
 
Ad

Unit 1: Primitive Types - Variables and Datatypes

  • 1. Unit 1: Primitive Types Variables and Datatypes Adapted from: 1) Building Java Programs: A Back to Basics Approach by Stuart Reges and Marty Stepp 2) Runestone CSAwesome Curriculum https://longbaonguyen.github.io This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
  • 2. 2 Data Types A type is a set of values (e.g. integers, floats, etc..) and a set of operations (e.g. +, -, *, /, etc..) on them. Data types can be categorized as either primitive or reference. The primitive data types used in this course define the set of operations for numbers and Boolean(true or false) values. Reference variables or object variables hold a reference(or address) to an object of a class(more on this in a future lecture).
  • 3. 3 Primitive types The primitive types on the Advanced Placement Computer Science A exam are: •int - which store integers (whole numbers like 3, -76, 20393) •double - which store floating point numbers (decimal numbers like 6.3, -0.9, and 60293.93032) •boolean - which store Boolean values (either true or false).
  • 4. 4 Receipt example What's bad about the following code? public class Receipt { public static void main(String[] args) { // Calculate total owed, assuming 8% tax / 15% tip System.out.println("Subtotal:"); System.out.println(38 + 40 + 30); System.out.println("Tax:"); System.out.println((38 + 40 + 30) * .08); System.out.println("Tip:"); System.out.println((38 + 40 + 30) * .15); System.out.println("Total:"); System.out.println(38 + 40 + 30 + (38 + 40 + 30) * .08 + (38 + 40 + 30) * .15); } } – The subtotal expression (38 + 40 + 30) is repeated – So many println statements – We will use variables to solve the above problems.
  • 5. 5 Variables • variable: A piece of the computer's memory that is given a name and type, and can store a value. – Like preset stations on a car stereo, or cell phone speed dial: – Steps for using a variable: • Declare it - state its name and type • Initialize it - store a value into it • Use it - print it or use it as part of an expression
  • 6. 6 Declaration • variable declaration: Sets aside memory for storing a value. – Variables must be declared before they can be used. • Syntax: type name; • The name is an identifier. – int x; – double myGPA; x myGPA
  • 7. 7 Assignment • assignment: Stores a value into a variable. – The value can be an expression; the variable stores its result. • Syntax: name = expression; – int x; x = 3; – double myGPA; myGPA = 1.0 + 2.25; x 3 myGPA 3.25
  • 8. 8 Using variables • Once given a value, a variable can be used in expressions: int x; x = 3; System.out.println("x is " + x); // x is 3 System.out.println(5 * x - 1); // 14 • You can assign a value more than once: int x; x = 3; System.out.println(x + " here"); // 3 here x = 4 + 7; System.out.println("now x is " + x); // now x is 11 x 3 x 11 string concatenation: string + number = concatenated string (more on this later)
  • 9. 9 Declaration/initialization • A variable can be declared/initialized in one statement. • Syntax: type name = value; – double myGPA = 3.95; – int x = (12 - 3) * 2; x 18 myGPA 3.95
  • 10. 10 Assignment and algebra • Assignment uses = , but it is not an algebraic equation. = means, "store the value at right in variable at left" • The right side expression is evaluated first, and then its result is stored in the variable at left. • What happens here? int x = 3; x = x + 2; // no solutions // mathematically // not an equation! x 3 x 5
  • 11. 11 Multiple Variables • Multiple variables of the same type can be declared and initialized at the same time. • Syntax: type name1, name 2, name3; int x, y, z; // declare three integers. type name1 = value1, name2 = value2, name3 = value3; int a = 1, b = 2, c = 3; // declare and initialize // three integers.
  • 12. 12 Assignment and types • A variable can only store a value of its own type. – int x = 2.5; // ERROR: incompatible types • An int value can be stored in a double variable. – The value is converted into the equivalent real number. – double myGPA = 4; myGPA 4.0
  • 13. 13 Compiler errors • Order matters. – int x; 7 = x; // ERROR: should be x = 7; • A variable can't be used until it is assigned a value. – int x; System.out.println(x); // ERROR: x has no value • You may not declare the same variable twice. – int x; int x; // ERROR: x already exists – int x = 3; int x = 5; // ERROR: x already exists • How can this code be fixed?
  • 14. 14 Printing a variable's value • Use + to print a string and a variable's value on one line. – double grade = (95.1 + 71.9 + 82.6) / 3.0; System.out.println("Your grade was " + grade); int students = 11 + 17 + 4 + 19 + 14; System.out.println("There are " + students + " students in the course."); • Output: Your grade was 83.2 There are 65 students in the course.
  • 15. 15 Receipt question Improve the receipt program using variables. public class Receipt { public static void main(String[] args) { // Calculate total owed, assuming 8% tax / 15% tip System.out.println("Subtotal:"); System.out.println(38 + 40 + 30); System.out.println("Tax:"); System.out.println((38 + 40 + 30) * .08); System.out.println("Tip:"); System.out.println((38 + 40 + 30) * .15); System.out.println("Total:"); System.out.println(38 + 40 + 30 + (38 + 40 + 30) * .15 + (38 + 40 + 30) * .08); } }
  • 16. 16 Receipt answer public class Receipt { public static void main(String[] args) { // Calculate total owed, assuming 8% tax / 15% tip int subtotal = 38 + 40 + 30; double tax = subtotal * .08; double tip = subtotal * .15; double total = subtotal + tax + tip; System.out.println("Subtotal: " + subtotal); System.out.println("Tax: " + tax); System.out.println("Tip: " + tip); System.out.println("Total: " + total); } }
  • 17. 17 Type boolean • boolean: A logical type whose values are true and false. int age = 22; boolean minor = (age < 21); boolean lovesAPCS = true; System.out.println(minor); // false System.out.println(lovesAPCS); // true System.out.println(4 <= 5); // true
  • 18. 18 final • The keyword final can be used in front of a variable declaration to make it a constant that cannot be changed. Constants are traditionally capitalized. public class TestFinal { public static void main(String[] args) { final double PI = 3.14; System.out.println(PI); PI = 4.2; // This will cause a syntax error } }
  • 19. 19 Naming variables The name of the variable should describe the data it holds. A name like score helps make your code easier to read. A name like x is not a good variable name in programming, because it gives no clues as to what kind of data it holds. Do not name your variables crazy things like thisIsAReallyLongName, especially on the AP exam. You want to make your code easy to understand, not harder.
  • 20. 20 Naming variables The convention in Java and many programming languages is to always start a variable name with a lower case letter and then uppercase the first letter of each additional word. Variable names can not include spaces so uppercasing the first letter of each additional word makes it easier to read the name. Uppercasing the first letter of each additional word is called camel case. int numOfLives = 3; // camel case to highlight words Another option is to use underscore symbol _ to separate words, but you cannot have spaces in a variable name. Java is case sensitive so playerScore and playerscore are not the same. int num_of_lives = 3; // use _ to highlight words.
  • 21. 21 Keywords • keyword: An identifier that you cannot use to name a variable because it already has a reserved meaning in Java. abstract default if private this boolean do implements protected throw break double import public throws byte else instanceof return transient case extends int short try catch final interface static void char finally long strictfp volatile class float native super while const for new switch continue goto package synchronized
  • 22. 22 Input and System.in (not on AP) • interactive program: Reads input from the console. – While the program runs, it asks the user to type input. – The input typed by the user is stored in variables in the code. – Can be tricky; users are unpredictable and misbehave. – But interactive programs have more interesting behavior. • Scanner: An object that can read input from many sources. – Communicates with System.in (the opposite of System.out) – Can also read from files, web sites, databases, ...
  • 23. 23 Scanner syntax (not on AP) • The Scanner class is found in the java.util package. import java.util.*; // so you can use Scanner • Constructing a Scanner object to read console input: Scanner name = new Scanner(System.in); – Example: Scanner console = new Scanner(System.in);
  • 24. 24 Scanner methods (not on AP) – Each method waits until the user presses Enter. – The value typed by the user is returned. System.out.print("How old are you? "); // prompt int age = console.nextInt(); System.out.println("You typed " + age); • prompt: A message telling the user what input to type. Method Description nextInt() reads an int from the user and returns it nextDouble() reads a double from the user next() reads a one-word String from the user nextLine() reads a one-line String from the user
  • 25. 25 Scanner example (not on AP) import java.util.*; // so that I can use Scanner public class UserInputExample { public static void main(String[] args) { Scanner console = new Scanner(System.in); System.out.print("How old are you? "); int age = console.nextInt(); int years = 65 - age; System.out.println(years + " years to retirement!"); } } • Console (user input underlined): How old are you? 36 years until retirement! 29 age 29 years 36
  • 26. 26 Input tokens (not on AP) • token: A unit of user input, as read by the Scanner. – Tokens are separated by whitespace (spaces, tabs, new lines). – How many tokens appear on the following line of input? 23 John Smith 42.0 "Hello world" $2.50 " 19" • When a token is not the type you ask for, it crashes. System.out.print("What is your age? "); int age = console.nextInt(); Output: What is your age? Timmy java.util.InputMismatchException at java.util.Scanner.next(Unknown Source) at java.util.Scanner.nextInt(Unknown Source) ...
  • 27. 27 Scanner example 2 (not on AP) import java.util.*; // so that I can use Scanner public class ScannerMultiply { public static void main(String[] args) { Scanner console = new Scanner(System.in); System.out.print("Please type two numbers: "); int num1 = console.nextInt(); int num2 = console.nextInt(); int product = num1 * num2; System.out.println("The product is " + product); } } • Valid Outputs (user input underlined): Please type two numbers: 8 6 The product is 48 // 2 tokens separated by new // line Please type two numbers: 8 6 The product is 48 // 2 tokens separated by space
  • 28. 28 Lab 1: String Concatenation Create a new repl on replit. Create two integer variables: pens and pencils. Initialize it to some positive values. Use print statements and String concatenation to have the following output: Output: (Assuming that the initialized values for pens=18, pencils = 10) There are 18 pens. There are 10 pencils. Total is 28 pens and pencils.
  • 29. 29 Lab 2: String Concatenation Use the SAME repl as from Lab 1 String Concatenation. Modify your previous lab 1 to ask the user to enter the number pens and pencils rather than hard coding the values. Use print statements and String concatenation to have the following output: Output: Enter the number of pens: 10 Enter the number of pencils: 18 Total is 28 pens and pencils.
  • 30. 30 References For more tutorials/lecture notes in Java, Python, game programming, artificial intelligence with neural networks: https://longbaonguyen.github.io 1) Building Java Programs: A Back to Basics Approach by Stuart Reges and Marty Stepp 2) Runestone CSAwesome Curriculum: https://runestone.academy/runestone/books/published/csawesome/index.html

Editor's Notes

  • #2: a variable is also like the MS / MR buttons on a calculator variables must be declared before they are used, just like methods
  • #3: a variable is also like the MS / MR buttons on a calculator variables must be declared before they are used, just like methods
  • #5: a variable is also like the MS / MR buttons on a calculator variables must be declared before they are used, just like methods
  • #10: x = x + 2; increases the value stored in variable x by two.
  • #25: It's also useful to write a program that prompts for multiple values, both on the same line or each on its own line.
  • #27: It's also useful to write a program that prompts for multiple values, both on the same line or each on its own line.