3 classes and objects

Upload: ei-jey

Post on 05-Apr-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/2/2019 3 Classes and Objects

    1/51

    Classes and Objects

  • 8/2/2019 3 Classes and Objects

    2/51

  • 8/2/2019 3 Classes and Objects

    3/51

    Topics

    Object oriented programming

    Defining Classes

    Using Classes

    References vs Values Static types and methods

  • 8/2/2019 3 Classes and Objects

    4/51

    Object oriented programming

    Represent the real world

  • 8/2/2019 3 Classes and Objects

    5/51

    Object oriented programming

    Objects group together Primitives (int, double, char, etc..)

    Objects (String, etc)

  • 8/2/2019 3 Classes and Objects

    6/51

    Why use classes?

    Why not just primitives?

  • 8/2/2019 3 Classes and Objects

    7/51

    Why use classes?

  • 8/2/2019 3 Classes and Objects

    8/51

    Why use classes?

  • 8/2/2019 3 Classes and Objects

    9/51

    Why use classes?

  • 8/2/2019 3 Classes and Objects

    10/51

    Why use classes?

  • 8/2/2019 3 Classes and Objects

    11/51

    Why use classes?

  • 8/2/2019 3 Classes and Objects

    12/51

    Why use classes?

  • 8/2/2019 3 Classes and Objects

    13/51

    Defining classes

  • 8/2/2019 3 Classes and Objects

    14/51

    Class overview

  • 8/2/2019 3 Classes and Objects

    15/51

    Class -overview

  • 8/2/2019 3 Classes and Objects

    16/51

    Lets declare a baby!

  • 8/2/2019 3 Classes and Objects

    17/51

    Note

    Class names are Capitalized

    1 Class = 1 file

    Having a main method means the class can be run

  • 8/2/2019 3 Classes and Objects

    18/51

    Baby fields

  • 8/2/2019 3 Classes and Objects

    19/51

    Baby fields

  • 8/2/2019 3 Classes and Objects

    20/51

    Baby Siblings?

  • 8/2/2019 3 Classes and Objects

    21/51

    Ok, lets make this baby!

  • 8/2/2019 3 Classes and Objects

    22/51

    Constructors

  • 8/2/2019 3 Classes and Objects

    23/51

    Constructors

    Constructor name == the class name No return typenever returns anything

    Usually initialize fields

    All classes need at least one constructor If you dont write one, defaults to

    CLASSNAME () {

    }

  • 8/2/2019 3 Classes and Objects

    24/51

    Baby constructor

  • 8/2/2019 3 Classes and Objects

    25/51

    Baby methods

  • 8/2/2019 3 Classes and Objects

    26/51

    Baby methods

  • 8/2/2019 3 Classes and Objects

    27/51

    Baby class

  • 8/2/2019 3 Classes and Objects

    28/51

    Using classes

  • 8/2/2019 3 Classes and Objects

    29/51

    Classes and Instances

  • 8/2/2019 3 Classes and Objects

    30/51

    Accessing fields

    Object.FIELDNAME

  • 8/2/2019 3 Classes and Objects

    31/51

    Calling Methods

    Object.METHODNAME([ARGUMENTS])

  • 8/2/2019 3 Classes and Objects

    32/51

    References vs Values

  • 8/2/2019 3 Classes and Objects

    33/51

    Primitives vs References

    Primitive types are basic java types int, long, double, boolean, char, short, byte, float

    The actual values are stored in the variable

    Reference types are arrays and objects

    String, int[], Baby,

  • 8/2/2019 3 Classes and Objects

    34/51

    How java stores primitives

    Variables are like fixed size cups Primitives are small enough that they just fit into the cup

  • 8/2/2019 3 Classes and Objects

    35/51

    How java stores objects

    Objects are too big to fit in a variable Stored somewhere else

    Variable stores a number that locates the object

  • 8/2/2019 3 Classes and Objects

    36/51

    References

    The objects location is called a reference == compares the references

    Does shiloh1 == shiloh2?

  • 8/2/2019 3 Classes and Objects

    37/51

    References

  • 8/2/2019 3 Classes and Objects

    38/51

    References

  • 8/2/2019 3 Classes and Objects

    39/51

    References

  • 8/2/2019 3 Classes and Objects

    40/51

    References

    Using = updates the reference

  • 8/2/2019 3 Classes and Objects

    41/51

    References

  • 8/2/2019 3 Classes and Objects

    42/51

    References

    using [ ] or Follows the reference to the object

    May modify the object, but never the reference

    Imagine

    Following directions to a house

    Moving the furniture around

    Analogous to

    Following the reference to an object Changing fields in the object

  • 8/2/2019 3 Classes and Objects

    43/51

    static types and methods

  • 8/2/2019 3 Classes and Objects

    44/51

    static

    Applies to fields and methods

    Means the field/method

    Is defined for the class declaration,

    Is not unique for each instance

  • 8/2/2019 3 Classes and Objects

    45/51

    static

  • 8/2/2019 3 Classes and Objects

    46/51

    static example

    Keep track of the number of babies that have been made

  • 8/2/2019 3 Classes and Objects

    47/51

    static field

    Keep track of the number of babies that have been made

  • 8/2/2019 3 Classes and Objects

    48/51

    static method

  • 8/2/2019 3 Classes and Objects

    49/51

    static notes

    Non-static methods can reference static methods, but not theother way around. Why?

  • 8/2/2019 3 Classes and Objects

    50/51

    main

    Why is main static?

  • 8/2/2019 3 Classes and Objects

    51/51

    Reference/Source

    MIT OpenCourseWareIntroduction to Programming in Java

    January (IAP) 2010