Download Base Types Java

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Java: Base Types
ÿ
ÿ
Java: Operators for Base Types
All information has a type or class designation
Built-in Types
ÿ
þ
þ
Called : primitive types or base types
boolean, char, bye, short, int, long, float, double
þ Primarily use: int, double, boolean
ÿ
þ
þ
þ
ÿ
þ
ÿ
2.1
Java: Objects
þ
Most of these operators have no meaning for objects
CompSci 100E
ÿ
Use new operator to create
Invokes constructor which initializes object
þ
ÿ
(Class names start with capital letter)
þ
DLicense john;
þ
john = new DLicense(); // create
DLicense susan = new DLicense( ); //combine
DLicense bud = new License(”Ted Bud”,”6/4/1989”);
// declare
o (Object names (e.g. john) start with lower case letter)
2.3
Store in instance variables (fields)
o May be primitive types or
o May be objects
Methods
þ
þ
o Creation may allow or require arguments
o Depends on constructor(s)
CompSci 100E
ÿ
Use new operator to create
Invokes constructor which initializes object
Data
þ
þ
þ
2.2
Combine data and function in one package
þ
Assume we have class DLicense
þ
Most pretty intuitive – well designed language
However, when in doubt, use parenthethes
Java: Classes
Objects are instantiations of a class
þ
Do not use = (assignment) where you mean ==
Learn about operator precedence from text (p22)
þ
ÿ
For ints, / yields whole number quotient
% yields the remainder
What are
o 12/5 ?
o 13%5 ?
What is the meaning of (2*pancakes + capacity -1)/capacity*5?
Also have comparison operators: <, <=, ==, !=, >=, >
þ
int: whole numbers only, limited range
double: implements scientific notation: fractions and wider range
boolean: true or false values only
CompSci 100E
ÿ
þ
Each type has its limitations
þ
ÿ
þ
Need to declare before using; defined (created) when declared
int x, y;// declaration only
? Initialization
// some people group declarations at front
x = 39; // use
y = 3 + x;
int num = 10; // declaring when first used
ÿ
Familiar operators available: +, -, *, /, %
Often called functions, subroutines, or procedures
Usually do things to and with the instance variables
CompSci 100E
2.4
Java: Methods (Functions)
ÿ
Java: Sample Class
Classes usually define one or more methods
public class DLicense {
private String name;
private String dob;
private double height;
public DLicense() { // constructor
name = ””;
dob = ””;
height = 0.0;
}
public DLicense(String nm, String bd){
name = nm;
dob = bd;
height = 0.0;
}
// methods to follow
þ
Structure:
access return_type name(parameters) {
// method body
}
ÿ
Accessor methods return info
þ
þ
ÿ
Mutator methods change state
þ
þ
ÿ
Return_type indicates type of info returned
Often have empty parameter list
Usually parameters are involved in making the changes
Often no info returned, thus return_type is void
o (Object names (e.g. john) start with lower case letter)
Invoking methods
þ
þ
Use: object.method(params);
object is implicit parameter
CompSci 100E
2.5
Java: Sample Class (cont)
2.6
Java: Sample Class (cont)
public String getName(){
return name;
}
public String getDOB() {
return dob;
}
public double getHeight() {
return height;
}
public void setHeight(double ht) {
height = ht;
}
public String display() {
return name + ” ” + height + ”\” born: ” + dob;
}
CompSci 100E
CompSci 100E
public static void main(String[] args) {
DLicense john;
john = new DLicense();
john.setName(”John Smith”);
john.setHeight(72.0);
DLicense susan = new DLicense();
susan.setName(”Sue Peggy”);
susan.setHeight(66.5);
DLicense bud = new License(”Ted Bud”,”6/4/1989”);
bud.setHeight(68.0);
System.out.println(bud.display());
System.out.println(john.getName());
System.out.println(susan.getHeight());
}
}
2.7
CompSci 100E
2.8
Java Strings
ÿ
Java Control of Flow (by example)
ÿ
String is a class
Do not need new to create String
String msg = ”hello”;
þ
þ
ÿ
ÿ
if (a > b) {
msg = ”good”;
}
String s
constants
” + msg;
(literals) use ”, not ’
ÿ
Can join strings (concatenate) with +
þ
Most common String methods:
þ
int length(); // get number of chars in it
String substring(int start, int stop);
// substring gets part of string
þ int indexOf(String key); //finds loc of key
þ
2.9
Java Control of Flow (by example)
ÿ
2.10
while
ÿ
http://www.cs.duke.edu/csed/java/jdk1.4/docs/api/index.html
ÿ
toString()
þ
þ
for
þ
for (n = 10; n > 0; n--)
System.out.println(”down to ” + n);
ÿ
CompSci 100E
What can an Object do (to itself)?
n = 10;
while (n > 0){
System.out.println(”down to ” + n);
n = n – 1;
}
ÿ
if-else
if (w.hasMore()) {
System.out.println(w.next());
count = count + 1;
}
else
System.out.println(”All done”);
String mail = ”John say
CompSci 100E
if
ÿ
do-while
CompSci 100E
þ
ÿ
Determines if guts of two objects are the same, must override,
e.g., for using a.indexOf(o) in ArrayList a
Default is ==, pointer equality
hashCode()
þ
2.11
Used to print (System.out.println) an object, overriding toString()
can result in 'useful' information being printed, also used in
String concatenation: String s = x + y;
Default is basically a pointer-value
equals()
þ
n = 10;
do {
System.out.println(”down to ” + n);
n = n – 1;
} while (n > 0);
Look at java.lang.Object
Hashes object (guts) to value for efficient lookup
CompSci 100E
2.12
Objects and values
ÿ
ÿ
Primitive variables are boxes
þ
ÿ
Objects, values, classes
þ
think memory location with value
Object variables are labels that are put on boxes
String s = new String("genome");
String t = new String("genome");
if (s == t) {they label the same box}
if (s.equals(t)) {contents of boxes the
same}
þ
ÿ
Variables have names and are themselves boxes (metaphorically)
Two int variables assigned 17 are equal with ==
For object types: String, Sequence, others
þ
þ
þ
þ
ÿ
s
For primitive types: int, char, double, boolean
Variables have names and are labels for boxes
If no box assigned, created, then label applied to null
Can assign label to existing box (via another label)
Can create new box using new
Object types are references or pointers or labels to storage
t
What's in the boxes? "genome" is in the boxes
CompSci 100E
2.13
CompSci 100E
2.14