CS201 - Spring 2014 - Class 2
Admin
- MBH 632 door code
review problems for the day
Java tutorials and reading
Quick review of Java basics
- declaring a variable
type variable_name = value;
e.g.
int x = 10;
- you can only declare a variable with a given scope
- you can also just declare a variable without assigning to it:
type variable_name;
e.g.
int x;
- Java will give it some default value depending on the type (0 for numbers)
- assigning to a variable
- once a variable has been declared you can assign to it using '='
x = 20
- to define a new method (aka functions):
return_type function_name(parameter1, parameter2, ...){
statement1;
statement2;
...
return some_value; // unless the return_type is void!
}
- for loop
primitive data types
- Java has 8 "primitive" types:
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
- These give us more control over how the data is stored
- the most common ones we'll use for now:
- int
- double
- boolean
- char
object oriented programming
- Java is an object oriented programming language (and so is Python, but not NetLogo)
- objects are the key component of the language
- What is an object?
- an object is a particular instance of a class of objects
- Two key components:
1) data
2) methods, that is, ways for accessing and manipulating that data
- A class defines a blueprint for a collection of related objects
- Classes of objects also define types
String class
- Strings are objects: they have data and methods
- What methods would you like to have for strings?
- Put another way, what types of questions do you want to ask about strings and how would you like to manipulate them?
- Look at the documentation for the String class:
http://docs.oracle.com/javase/7/docs/api/java/lang/String.html
- A constructor defines how we can construct (create) an object
- many, many methods:
- charAt (which we've seen)
- endsWith
- concat
- length
- split
- startsWith
- substring
- Calling methods
- To declare a new string:
String s = "this is some string";
- strings are special and we can create them using the "" notation
- The variable s is now a reference to a new string object
- To call methods on that string object, we use the "dot" notation
- s.endsWith("string")
- s.charAt(0)
- s.substring(0, 10)
- ...
- the dot notation says on the object that this variable references, call this method
- What is the data for the string class?
- the string itself, i.e. the sequence of characters
- How is it stored?
- We don't care!
- This is the power of object oriented programming
- When we define a class of objects, we describe the methods, which is how you can interact with the object
- The details of the underlying implementation are hidden from us
- Why is this beneficial?
- hides details we don't care about
- provides a very concrete way of interacting with the object
- prevents other programmers (i.e. people using the object) from messing with the data in ways we don't want
- allows us to change the underlying representation if we want (as long as we don't change the public interface)
the primitive data types are NOT objects
Look at the isPrime and isPalindrome functions in SimpleFunctions.java in
SimpleFunctions code
if/else statement
- Java supports:
- stand-alone if statements
- if/else statements
- "if/else if" statements
- like other constructs, the condition needs to be in parentheses and the code inside the block surrounded by {}
- else statement is optional
- the "else-if" statement is just an else followed by another if
recursion
- Java supports recursive functions
while loop
- works just like in python or other languages
- like other constructs, the condition needs to be in parentheses and the code inside the block surrounded by {}