Agenda
This presentation is the property of its rightful owner.
Sponsored Links
1 / 26

Agenda PowerPoint PPT Presentation


  • 76 Views
  • Uploaded on
  • Presentation posted in: General

About Homework for BPJ lesson 36 About practice of last class Review –superclass vs subclass Encapsulation Homework Quiz on 12/6. Agenda.

Download Presentation

Agenda

An Image/Link below is provided (as is) to download presentation

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


Agenda

  • About Homework for BPJ lesson 36

  • About practice of last class

  • Review –superclass vs subclass

  • Encapsulation

  • Homework

  • Quiz on 12/6

Agenda


Agenda 4673607

public class Red extends Green{public int blue(double x){...}public String s;private int i;}public class Green{public double peabody(double y){return mm;}private boolean crunch( ){...}private double mm;public long xx;}


Long data type

Long data type

long: The long data type is a 64-bit signed two's complement integer. It has a minimum value of -9,223,372,036,854,775,808 and a maximum value of 9,223,372,036,854,775,807 (inclusive). Use this data type when you need a range of values wider than those provided by int.

super.peabody(11);


Agenda 4673607

Is this legal?

Red myObj = new Red();boolean bb = myObj.Crunch();

Is this legal? the two above)Red myObj = new Red( );int bb = myObj.blue(105.2);


Write code for the blue method that will printout the mm state variable

Write code for the blue method that will printout the mm state variable.

public int blue(double x)

{double mmValue = super.peabody(x);

System.out.println(mmValue);

}


Write code for the blue method that will printout the xx state variable

Write code for the blue method that will printout the xx state variable.

public int blue(double x)

{double xxValue = super.xx;

System.out.println(xxValue);

return 0;

}


This keyword

this keyword

  • Within an instance method or a constructor, this is a reference to the current object.

    public class Point {

    public int x = 0;

    public int y = 0;

    public Point(int a, int b) { x = a; y = b; } }

    public class Point {

    public int x = 0;

    public int y = 0;

    public Point(int x, int y)

    { this.x = x; this.y = y; } }


Using this with a constructor

Using this with a Constructor

public class Rectangle {

private int x, y;

private int width, height;

public Rectangle() {

this(0, 0, 0, 0); }

public Rectangle(int width, int height) { this(0, 0, width, height); }

public Rectangle(int x, int y, int width, int height)

{ this.x = x;

this.y = y;

this.width = width;

this.height = height; } ... }


Encapsulation

Encapsulation

  • Protecting an object’s data from code outside the class.

  • Those instance variables marked as private.

  • They can only be seen or modified through the use of public accessor and mutator methods.

  • Encapsulation = information hiding


Agenda 4673607

Actor class

public class Actor

{

private Grid<Actor> grid;

private Location location;

private int direction;

private Color color;

public Actor()

{

color = Color.BLUE;

direction = Location.NORTH;

grid = null;

location = null;

}

public Color getColor(){

return color; }


Agenda 4673607

Flower class

public class Flower extends Actor

{

private static final Color DEFAULT_COLOR = Color.PINK;

private static final double DARKENING_FACTOR = 0.05;

public Flower()

{

setColor(DEFAULT_COLOR);

}

public Flower(Color initialColor)

{

setColor(initialColor);

}

public void act(){….}


Agenda 4673607

public class Cube{

private int length;

public int breadth;

private int height;

public Cube(int l, int b, int h) {

length = l;

breadth = b;

height = h; }

public int getVolume() {

return (length * breadth * height); }

public int getBreadth(){

return breadth; }

public int getHeight(){

return height; }

}


Golden nuggets of wisdom

Golden nuggets of wisdom

  • Private state variables and methods are not accessible from outside the class.

  • But private things can only be accessed from within the class itself.


How to compare objects

How to compare objects?

  • Circle cir1 = new Circle(3.0);

  • Circle cir2 = new Circle(3.0);

  • cir1 == cir2 ??????

  • Circle cir3;

  • cir3 = cir1;

  • cir1 == cir3 ??????


Agenda 4673607

  • String str1 = “Hello”;

  • String str2 = “Hello”;

  • str 1 == str2 ????

  • String str3 = new String(“Hello”);

  • str3 == str1?????


Inheritance

Inheritance

  • Inheritance enables you to define a new class based upon an existing class. The new class is similar to the existing class, but has additional member variables and methods.

  • This makes programming easier because you can build upon an existing class instead of starting out from scratch.


Is a relationship

Is-a relationship

In diagrams that show inheritance, an arrow points from the new class to the class it is based upon. The arrow is sometimes labeled "is a".


Agenda 4673607

superclass

subclass

The class that is used to define a new class is called a parent class (or superclass or base class.)

The class based on the parent class is called a child class (or subclass or derived class.)


Inheritance example

Inheritance example

BankAccount

Subclasses need all the methods and state variables of the superclass - BankAccount

checkingAccount

SavingsAccount


Bankaccount class

BankAccount class

public class BankAccount{

private double balance;

public BankAccount(double amt){

balance = amt;}

public void deposit(double amt){

balance += amt; }

private void withdraw(double amt){

balance -= amt;

}


Agenda 4673607

public class SavingsAccount extends BankAccount

{

private double interestRate;

public SavingsAccount(double amt, double rate){

super(amt);

interestRate = rate;}

Public void addInterest(){

double interest = getBalance()* interestRate/100;

deposit(interest);}

}


Agenda 4673607

remarks

1. Private members of the superclass are not inherited by the subclass and can only be indirectly accessed.2. Members that have default accessibility in the superclass are also not inherited by subclasses in other packages, as these members are only accessible by their simple names in subclasses within the same package as the superclass.3. Since constructors and initializer blocks are not members of a class, they are not inherited by a subclass.4. A subclass can extend only one superclass


Gridworld

GridWorld

Actor

Flower

Rock

Bug


Bug class

Bug class

  • If you don’t have the import statement for ex. Bug class, you have to write the whole path in order to use the class like

  • Bug oBug = new info.gridworld.actor.Bug();

    instead of

    Bug oBug = new Bug();


Abstract class

Abstract class

  • An abstract class models an abstract concept. For example, a musical instrument is an abstract concept.

  • An instrument is something that can be played, but there is no such thing an “instrument” instrument. There are however, flutes, drums, and cymbals.

  • Abstract classes cannot be instantiated because they should not represent objects. They instead describe the more general details and actions of an object.


Homework

Homework

Based on the BankAccount and SavingsAccount classes on this slide and answer all the questions in the word document homework-nov26 posted on the web


  • Login