Professional Documents
Culture Documents
Review
Solutions 1
Solutions 2
return secondIdx;
}
What happens if values = {0}? values = {0, 0}? values = {0,1}?
Popular Issues 1
System.out.println(values[0] );
Values
Indexes
99 100 101
// 99
Popular Issues 2
Popular Issues 3
Variable initialization
int getMinValue(int[] vals) {
int min = 0;
min = vals[i]
Problem?
What if vals = {1,2,3}?
Set min = Integer.MAX_VALUE or vals[0]
Popular Issues 4
int secondIdx = 0;
if (i == minIdx) continue;
secondIdx = i;
Popular Issues 5
Debugging Notes 1
Debugging Notes 2
Formatting
Ctrl-shift-f is your friend
for (int i = 0; i < vals.length; i++) {
if (vals[i] < vals[minIdx]) {
minIdx=i;}
return minIdx;}
Todays Topics
Defining Classes
Using Classes
References vs Values
Todays Topics
Defining Classes
Using Classes
References vs Values
Baby
Baby
Name
Sex
Weight
Decibels
# poops so far
Baby
String name
boolean isMale
double weight
double decibels
int numPoops
double weightAlex;
double weightDavid;
double weightAlex;
double weightDavid;
double weightDavid2;
David2?
Terrible
double weightAlex;
double weightDavid;
double weightDavid2;
David2?
Terrible
Name
Weight
Sex
Baby1
Name
Weight
Sex
Name
Weight
Sex
Name
Weight
Sex
Name
Weight
Sex
Baby1
Baby2
Baby3
Baby4
496
more
Babies
Baby1
Baby2
Baby3
Nursery
Baby4
496 more
Babies
More nurses
Nurse1
Baby1
Nurse2
Baby2
Nurse3
Baby3
Nursery
Nurse4
Baby4
496 more
Babies
[]
Nurse
[]
Baby
Nursery
[]
Nurse
[]
Baby
Nursery
Hospital
ER
Defining classes
Class - overview
Class
Definition
void poop() {
numPoops += 1;
System.out.println(Dear mother, +
I have pooped. Ready the diaper.);
}
}
Class - overview
Class
Instance
fields
methods
}
Note
Baby fields
Baby fields
public class Baby {
String name;
double weight = 5.0;
boolean isMale;
int numPoops = 0;
Baby Siblings?
public class Baby {
String name;
double weight = 5.0;
boolean isMale;
int numPoops = 0;
XXXXX YYYYY;
}
Baby Siblings?
public class Baby {
String name;
double weight = 5.0;
boolean isMale;
int numPoops = 0;
Baby[] siblings;
}
Constructors
Constructors
Baby constructor
Baby methods
public class Baby {
String name = Slim Shady;
...
void sayHi() {
System.out.println(
Hi, my name is.. + name);
}
}
Baby methods
Baby class
Using classes
// class Definition
public class Baby {}
// class Instances
Baby knox
= new Baby(Knox Jolie-Pitt,
true);
Accessing fields
Object.FIELDNAME
Calling Methods
Object.METHODNAME([ARGUMENTS])
References vs Values
Primitives vs References
double
char
boolean
Object
Object
Object
Object
Object
Object
Object
References
Does shiloh1
== shiloh2?
References
Does shiloh1
== shiloh2?
no
References
reference
reference
Name=shiloh
Name=shiloh
shiloh1
shiloh2
References
mybabys
location
name = davy
ismale = true
References
mybabys
location
name = david
Ismale = true
References
baby1 = baby2
baby2
location
baby1
baby2
location
baby2
baby1
object
baby2
object
References
baby1 = baby2
baby2
location
baby1
baby2
baby1
object
baby2
object
References
using [ ] or
Imagine
Analogous to
...
int i = 0;
int[] j = {0};
doSomething(i, j, k);
static
static
What is
b1.numBabiesMade?
b2.numBabiesMade?
static example
int numBabiesMade = 0;
Baby() {
numBabiesMade += 1;
static field
Baby() {
numBabiesMade += 1;
static method
Or
public class Baby {
void cry() {
System.out.println(name + cries);
}
}
static notes
System.out.println(name);
}
}
main
Assignment 4
class Book {}
class Library{}
Books can be
Borrowed
Returned
Library
Keeps track of books
Hint: use Book[]
MIT OpenCourseWare
http://ocw.mit.edu
For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms.