Title: Just%20Enough%20Java
1Just Enough Java
2What is Java?
- Java is a programming language a language that
you can learn to write, and the computer can be
made to understand - Java is currently a very popular language
- Java is a large, powerful language
- but it is not simple!
- Compared to C, Java is elegant
3Structure of a Java program
- A program, or project, consists of one or more
packages - Package directory folder
- A package contains one or more classes
- A class contains one or more fields and methods
- A method contains declarations and statements
- Classes and methods may also contain comments
- Well begin by looking at the insides of methods
4Java structure and Eclipse
- A workspace is where Eclipse keeps projects
- When you use Eclipse to create a project (a
single program), it creates a directory with
that name in your workspace - Within the project, you next create a package
- It is possible to skip this step and use the
default package - Finally, you create a class in that package
- For the simplest program, you need only a single
package, and only one (or a very few) classes
5Simple program outline
class MyClass public static void
main(String args) new
MyClass().run() void run()
// some declarations and statements go here
// this is the part we will talk about today
- Notes
- The class name (MyClass) must begin with a
capital - main and run are methods
- This is the form we will use for now
- Once you understand all the parts, you can vary
things
6Syntax and semantics
- Syntax is the grammar of the language
- The syntax of Java is large, but finite
- Syntax must be absolutely correct
- The computer will point out every syntax error
- Error messages may be helpful or misleading
- Semantics is the meaning of your program
- Semantic errors cause your answers to be wrong
- You may or may not get error messages
7Two aspects of Java
- Java has syntax and semantics
- This is where you begin
- It is possible to learn everything about Javas
syntax and semantics - We will cover most of Javas syntax and semantics
- Java comes with many built-in packages
- Packages are sort of like vocabulary bundles
- To be good at Java, you need to learn many
packages - There are more Java packages than you can ever
learn
8What you need to know
- You need to be able to
- Read in data (for now, numbers)
- We will use a Scanner for this
- Save numbers in variables
- We will use declarations to create variables
- Do arithmetic on numbers to get new numbers
- We will use assignment statements
- Test whether or not to do something
- We will use if statements
- Do something repeatedly
- We will use while statements
- Print output
- We will use System.out.print and
System.out.println - Not absolutely necessary, but very helpful
- We will use methods
9Declarations, statements, comments
- A declaration gives some information to the
computer - A statement tells the computer to do something
- Statements should really be called commands
- Comments are ignored by the computerthey are
explanations of your program for human beings to
read - A method may contain declarations, statements,
and comments
10Variables
- A variable is a box that holds data
- Every variable has a name
- Examples name, age, address, isMarried
- Variables start with a lowercase letter
- In multiword variables, each new word is
capitalized - Every variable has a type of value that it can
hold - For example,
- name might be a variable that holds a String
(sequence of characters) - age might be a variable that holds an integer
value - isMarried might be a variable that holds a
boolean (true or false) value
11Some Java data types
- In Java, the four most important primitive
(simple) types are - int variables hold integer values
- double variables hold floating-point numbers,
that is, numbers containing a decimal point - boolean variables hold a true or false value
- char variables hold single characters
- Another important type is the String
- A String is an Object, not a primitive type
- A String is composed of zero or more chars
12Declaring variables
- Every variable that you use in a program must be
declared (in a declaration) - The declaration specifies the type of the
variable - The declaration may give the variable an initial
value - Examples
- int age
- int count 0
- double distance 37.95
- boolean isReadOnly true
- String greeting "Welcome to CIT 591"
- String outputLine
13Reading in numbers
- First, import the Scanner class import
java.util.Scanner - Create a scanner and assign it to a
variable Scanner scanner new
Scanner(System.in) - The name of our scanner is scanner
- new Scanner(...) says to make a new one
- System.in says the scanner is to take input from
the keyboard - Next, its polite to tell the user what is
expected System.out.print("Enter a number ") - Finally, read in the number myNumber
scanner.nextInt() - If you havent previously declared the variable
myNumber, you can do it when you read in the
number int myNumber scanner.nextInt()
14Printing
- There are two methods you can use for printing
- System.out.println(something)
- This prints something and ends the line
- System.out.print(something)
- This prints something and doesnt end the line
(so the next thing you print will go on the same
line) - These methods will print anything, but only one
thing at a time - You can concatenate (join) things with the
operator - ExampleSystem.out.println("There are "
appleCount "
apples and " orangeCount
" oranges.")
15Program to double a number
- package numberStuffimport java.util.Scannerp
ublic class Doubler public static void
main(String args) new
Doubler().run() private void run()
Scanner scanner int number
int doubledNumber scanner
new Scanner(System.in)
System.out.print("Enter a number ")
number scanner.nextInt() doubledNumber
2 number System.out.println("Twice "
number " is " doubledNumber)
16Assignment statements
- Values can be assigned to variables by assignment
statements - The syntax is variable expression
- The expression must be of the same type as the
variable - The expression may be a simple value or it may
involve computation - Examples
- name "Dave"
- count count 1
- area (4.0 / 3.0) 3.1416 radius radius
- isReadOnly false
- When a variable is assigned a value, the old
value is discarded and totally forgotten
17One-line comments
- A comment is a note to any human reading the
program comments are ignored by Java - A single-line comment starts with // and goes to
the end of the line - A comment may be put after a statement (on the
same line) to say something about that one
statement - A comment may be put on a line by itself, to say
something about the following statements - Example
- // Swap the values of x and ytemp x // save
old value of x in tempx y // replace
old value of x with yy temp // this many
comments is just silly
18Multiline comments
- A multiline comment starts with / and ends with
/ - Typically, these comments extend over several
lines - / Here is an example of a multiline comment. It
isnt a very inspired one, but I needed an
example of some sort. / - Single-line and multiline comments are used to
make notes to yourself about how a method does
what it does - Javadoc comments (next slide) are used to tell
other programmers what a class is for, or how to
use a method
19Javadoc comments
- Javadoc comments, also called documentation
comments or doc comments, are multiline comments
used to describe the purpose of classes and
methods - Javadoc comments start with / and end with /
- Each internal line typically begins with a
- Javadoc comments for a class should contain these
tags - _at_version number_or_date
- _at_author your_name (may have more than one of
these) - Javadoc comments for a method may contain these
tags - _at_param parameter_name description_of_this_param
eter - _at_return description_of_value_returned (omit if
void) - _at_throws exception description_of_when_problem_oc
curs
20Methods
- A method is a named group of declarations and
statements - void tellWhatYearItIs( ) int year 2009
System.out.println("Hello in " year "!") - The name of the above method is tellWhatYearItIs
- The word void says that this method does not
return a value - We call, or invoke a method by naming it in a
statement - tellWhatYearItIs( )
- This should print out Hello in 2009!
21Organization of a class
- A class may contain data declarations and methods
(and constructors, which are like methods), but
not statements - A method may contain (temporary) data
declarations and statements - A common error
- class Example
- int variable // simple
declaration is OK - int anotherVariable 5 // declaration with
initialization is OK - variable 5 // statement! This
is a syntax errorvoid someMethod( ) - int yetAnotherVariable //declaration is
OK - yetAnotherVariable 5 // statement
inside method is OK
22Arithmetic expressions
- Arithmetic expressions may contain
- to indicate addition
- - to indicate subtraction
- to indicate multiplication
- / to indicate division
- to indicate remainder of a division (integers
only) - parentheses ( ) to indicate the order in which
to do things - An operation involving two ints results in an int
- When dividing one int by another, the fractional
part of the result is thrown away 14 / 5 gives 2 - Any operation involving a double results in a
double3.7 1 gives 4.7
23Boolean expressions
- Arithmetic comparisons result in a boolean value
of true or false - There are six comparison operators
- lt less than
- lt less than or equals
- gt greater than
- gt greater than or equals
- equals
- ! not equals
- There are three boolean operators
- and--true only if both operands are true
- or--true if either operand is true
- ! not--reverses the truth value of its one
operand - Example (x gt 0) !(x gt 99)
- x is greater than zero and is not greater than
99
24String concatenation
- You can concatenate (join together) Strings with
the operator - Example fullName firstName " " lastName
- In fact, you can concatenate any value with a
String and that value will automatically be
turned into a String - ExampleSystem.out.println("There are " count
" apples.") - Be careful, because also still means addition
- int x 3int y 5System.out.println(x y
" ! " x y) - The above prints 8 ! 35
- Addition is done left to right--use parentheses
to change the order
25if statements
- An if statement lets you choose whether or not to
execute one statement, based on a boolean
condition - Syntax if (boolean_condition) statement
- Exampleif (x lt 100) x x 1 // adds 1 to x,
but only if x is less than 100 - C programmers take note The condition must be
boolean - An if statement may have an optional else part,
to be executed if the boolean condition is false - Syntax if (boolean_condition) statement else
statement - Exampleif (x gt 0 x lt limit) y x /
limitelse System.out.println("x is out of
range " x)
26Compound statements
- Multiple statements can be grouped into a single
statement by surrounding them with braces, - Example if (score gt 100) score 100
System.out.println("score has been
adjusted") - Unlike other statements, there is no semicolon
after a compound statement - Braces can also be used around a single
statement, or no statements at all (to form an
empty statement) - It is good style to always use braces in the if
part and else part of an if statement, even if
they enclose only a single statement - Indentation and spacing should be as shown in the
above example
27while loops
- A while loop will execute the enclosed statement
as long as a boolean condition remains true - Syntax while (boolean_condition) statement
- Example n 1 while (n lt 5)
System.out.println(n " squared is " (n
n)) n n 1 - Result 1 squared is 1 2 squared is 4
3 squared is 9 4 squared is 16 - C programmers take note The condition must be
boolean - Danger If the condition never becomes false, the
loop never exits, and the program never stops
28Method calls
- A method call is a request to an object to do
something, or to compute a value - System.out.print(expression) is a method call
you are asking the System.out object to evaluate
and display the expression - A method call may be used as a statement
- Example System.out.print(2 pi radius)
- Some method calls return a value, and those may
be used as part of an expression - Example h Math.sqrt(a a b b)
29A complete program
- public class SquareRoots // Prints the
square roots of numbers 1 to 10 public static
void main(String args) int n 1
while (n lt 10)
System.out.println(n " " Math.sqrt(n))
n n 1 - 1 1.02 1.41421356237309513
1.73205080756887724 2.05 2.23606797749979etc.
30Another complete program
public class LeapYear public static void
main(String args) int start 1990
int end 2015 int year start
boolean isLeapYear while
(year lt end) isLeapYear year 4
0 // a leap year is a year
divisible by 4... if (isLeapYear
year 100 0) // ...but not by
100... if (year 400 0)
isLeapYear true // ...unless its also
divisible by 400 else isLeapYear
false if
(isLeapYear) System.out.println(
year " is a leap year.")
year year 1
1992 is a leap year. 1996 is a leap year. 2000 is
a leap year. 2004 is a leap year. 2008 is a leap
year. 2012 is a leap year.
31The End
If you give someone a program, you will
frustrate them for a day if you teach them how
to program, you will frustrate them for a
lifetime.
--Anonymous