Introduction to Objects

1 / 32

# Introduction to Objects - PowerPoint PPT Presentation

Introduction to Objects. A way to create our own types. Type and Variables. Until this point we were only able to create simple types, actually call “primitive” types integer double float char String (actually not primitive). We want to do better. Bank Account Math Calculator Stock

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'Introduction to Objects' - karan

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### Introduction to Objects

A way to create our own types

Type and Variables
• Until this point we were only able to create simple types, actually call “primitive” types
• integer
• double
• float
• char
• String (actually not primitive)
We want to do better
• Bank Account
• Math Calculator
• Stock
• Car
• Vending machine
• Telephone
• Model “whatever” as software
• Make a computer act like one
Use type to create a variable

intx;

Use class to create an object

Circlemycircle=newCircle();

Consider methods
• Take a known process
• Package it for reuse

if ((a >= b) && (a>=c))

max = a

else if ((b >= a) && (b>=c))

max = b

else

max = c;

int maxof3(int a, int b, int c){

int max;

if ((a >= b) && (a>=c))

max = a

else if ((b >= a) && (b>=c))

max = b

else

max = c;

return max;

}

How are object like this?
• Take a group of methods and data and package those for reuse.

class Testclass

int i

int i

int k

a( )

int k

a( )

b( )

b( )

c( )

c( )

int i;

int j;

class TestClass{

int i;

int j;

void a()

{…}

void b()

{…}

void c()

{…}

}

void a()

{…}

void b()

{…}

void c()

{…}

How do we decide what goes inside?
• The problem will guide us.
• The things we put inside will define
• What the object will do
• How we can interact with it
• These things will be the “Bank Account”s, “Student”s, etc

### Let’s start simple

A circle

What are some of the attributes of a circle?
• Color
• Border
• Position
How do we interact with a circle?
• Change its size
• Move it
• Ask it for its area
• … depending on the problem’s needs
• No borders or colors
• A means of asking it for its area.
• This will serve as the basis (a type or class) for creating lots of circles
Circle()

class Circle {

Circle(double r)

}

double Area()

{ double thisarea =

return thisarea;

}

}

Circle()

class Circle {

Circle(double r)

}

double Area()

{ double this area =

}

}

Circle()

class Circle {

Circle(double r)

}

double Area()

{ double thisarea =

return thisarea;

}

}

A property of

each circle

Circle()

class Circle {

Circle(double r)

}

double Area()

{ double thisarea =

return thisarea;

}

}

A method named Area

that will calculate the

area of that specific circle

Circle()

class Circle {

Circle(double r)

}

double Area()

{ double thisarea =

return thisarea;

}

}

A constructor

Used to initialize the circle

Let’s see how in the next slide

Creating circles

Circle circle1 = new Circle(10);

circle1

Creating circles

Circle circle1 = new Circle(10);

circle1

Circle circle2 = new Circle(15);

circle2

Circle circle1 = new Circle(10);

System.out.println(circle1.Area());

circle1

Each circle will return

it’s own area

Circle circle2 = new Circle(15);

System.out.println(circle2.Area());

circle2

What’s the difference?
• Circle circle1 = new Circle(10);
• Circle circle1;

Creates a REFERENCE

Like having a telephone

number for a friend.. a

means to find them. But

this one is a contact

without a number.

What’s the difference?
• Circle circle1 = new Circle(10);
• Circle circle1;

Creates the object

and defines the

reference to the object

In this case, circle1

actually refers to a real

Circle.

Only a reference.. No circle

Circle circle1;

circle1

A reference with a circle

Circle circle1 = new Circle(10);

circle1

public class Circle {

Circle(double r)

}

double Area()

{ double thisarea =

return thisarea;

}

public static void main(String[ ] args)

{

Circle circle1 = new Circle(10);

System.out.println(circle1.Area());

Circle circle2 = new Circle(15);

System.out.println(circle2.Area());

}

}

Put it Together!

314.1562..

706.8583..

Do I need new()?Can I define a variable and just reference from the main?How about this?… TRY IT…

public class Circle() {

public static void main(String args[])

{

}

}

be referenced from a static context

You never “new()”ed one. No radius exists.

Only a reference.. No circle

Circle circle1;

circle1

public class Circle() {

double Area()

{ double this area =

}

public static void main(String args[])

{

System.out.println(Area());

}

}

Do I need new()?Here there is no Area() or radius defined.Because NO new() has occurred!

Error : nonstatic method can not

be referenced from static method

public class Circle {

Circle(double r)

}

double Area()

{ double thisarea =

return thisarea;

}

public static void main(String args[])

{

Circle circle1 = new Circle(10);

System.out.println(circle1.Area());

Circle circle2 = new Circle(15);

System.out.println(circle2.Area());

}

}

This one creates the object.Then a radius and Area() exists to use… no errors.

These are created

when you new()

public class Circle {

Circle(double r)

}

double Area()

{ double thisarea =

return thisarea;

}

public static void main(String args[])

{

int i = 5;

System.out.println(i);

Circle circle1 = new Circle(10);

System.out.println(circle1.Area());

}

}

Why can I declare “i”

like this in the main,

previous example?

This is legal!

public class Circle {

Circle(double r)

}

double Area()

{ double thisarea =

return thisarea;

}

public static void main(String args[])

{

int i = 5;

System.out.println(i);

Circle circle1 = new Circle(10);

System.out.println(circle1.Area());

}

}

Because main is static.

Static needs more

explanation.