Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

36
Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure
  • date post

    19-Dec-2015
  • Category

    Documents

  • view

    255
  • download

    1

Transcript of Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

Page 1: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

Introduction to Programmingwith Java, for Beginners

Intro OOP with JavaJava Program Structure

Page 2: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

2

Object-Oriented Programming Model

Design problems/programs such that they correspond to real world entities

Entity a.k.a Object is something that has real existence Examples: person, dog, car, student, bank account

Objects: Model the parts of a problem. They have: Data/State: information about that object Behaviors: describe how the object behaves

Classes Describes common features to all objects Templates for creating objects

Page 3: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

3

Example 1: Student Object

• Data: name, address, major, courseList

• Behavior: change major, add/drop a course

Page 4: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

4

Example 3: Dog Objects

Page 5: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

5

OOP in Java A Java program is a collection of objects

A class is an abstract description of objects

Classes contain Data Fields that hold the data for each object

Data is stored in instance variables

Methods that describe the actions/behaviors the object can perform

Constructor(s) that tell how to create a new object of this class

Page 6: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

6

Class Structure

class Classname { //Data Fields

//Constructor

..

//Methods

..

}

Classname and Filename should be same

i.e. Classname.java

Start and end of class declaration is indicated by curly braces i.e. { }

Compiler complains if this is missing

Page 7: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

7

Classes contain Data Definitions

Classes describe the data held by each of its objects Also known as instance variables

class Dog {

String name; int age;

...rest of the class...}

Data usually goes first in a class

Page 8: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

8

Classes contain Data Definitions (contd..)

Data can also describe the relationship of the object to other objects

Example: a checkingAccount might have An accountNumber (used as an ID number) A balance (the internal state of the account) An owner (some object representing a person)

Page 9: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

9

Classes always contain Constructors

A constructor is a piece of code that “constructs,” or creates, a new object of that class

If you don’t write a constructor, Java defines one for you (behind the scenes) i.e. default constructor

Usually a constructor is written to initialize an object’s state i.e. data fields Default constructor initialize object’s state default value

for that type. E.g. for type int, the default value is zero

Page 10: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

10

Constructor: Initialize Data Example

class Dog { String name; int age;

Dog(String Name, int Age) { name = Name; age = Age; } …

//rest of the class}

Important: Constructor name is same as ClassName

(This part is the constructor)

Page 11: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

11

Creating Objects Declare a variable of appropriate type to hold

the object E.g. For Dog object we a need a variable of type Dog

Use the constructor of Dog to create a Dog instance and store it in the variable Known as invoking the constructor

Dog d1;d1 = new Dog();

make a new object

Dog d2;d2 = new Dog(“Fido”, 5);

make a new object

Page 12: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

12

Classes contain Methods A class may contain methods that describe the

behavior of objects

Methods contain one or more statements that describe a particular behavior A block of code, which when used performs certain

instructions Different from control block structures like if, while

Can receive inputsCan return an output

Page 13: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

13

Examples of Object Behavior Query Methods: ask an object about its state

What’s your name? Age? Favorite band?

Command Methods: change an object’s state Withdraw $100 from my bank account my

bank balance changes

Page 14: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

14

Example of Method

class Dog { ... void bark() { //instructions for barking

System.out.println(“Woof”); }}

Methods usually go after the data & constructor

Statement

Page 15: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

15

Making object do something

To make a dog object bark, in Java we write d1.bark(); d1 is dog object and we ask a this

particular dog to bark, it says “Woof” Terminology:

Sending message to dog objectCommanding or Asking the dog to something

Page 16: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

16

General Method Declaration return_type methodName(0+ parameters){..}

Method Input receive 0 or more inputs. E.g. bark() has no inputs Inputs may be passed so that method can use these

values for some purpose A method specifies its expected inputs via a list of “formal

parameters” (type1 name1,type2 name2, …)

Input

void bark(String barkSound){ System.out.println(barkSound); }

Page 17: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

17

General Method Declaration (contd..)

return_type methodName(0+ parameters){..}

Method Output A method may output nothing or one thing If it outputs nothing, then its return_type is

void

void setDogAge(int dogAge){

age = dogAge;

}

Output

Page 18: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

18

General Method Declaration (contd..)

Method Output If it outputs one thing: Its return_type is non-

void i.e. must be of certain type

It then must have a return statement that returns a value

The value returned must match return type

int getDogAge(){ return age;}

age is of type “int” and hence return type is int

Page 19: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

19

Calling/Invoking a Method on an Object

Calling/Invoking a method on an Object Is a programming terminology for asking or

making an object to perform some behavior

In general objectName.methodName(0 + parameters) In a method call, the number, order, and type of

arguments must match the corresponding parameters

Examples: d1.bark(); d1.bark(“Woof grrr”);

Page 20: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

20

Methods can contain other methods

Example: class Dog {

... void bark() {

System.out.println("Woof"); }

}

E.g. System.out.println(String s) String s is the input to the method Other programmer's wrote printing program and called it

class System

Page 21: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

21

Reusing already written methods Java is famous for reusing already written

programs Benefits: Do not need to reinvent the wheel

Java provides a huge library of useful programs that can be reused Comes along with the JDK tool kit Some libraries are part of the language and can be

simply used Some libraries (utilities) need to specified with an

import statement More on this later lectures

Page 22: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

22

Methods may contain temporary data

Data described in a class exists in all objects of that class Example: Every Dog has its own name and age

A method may contain local temporary data that exists only until the method finishes E.g:

void wakeTheNeighbors( ) { int i = 50; // i is a temporary variable while (i > 0) { bark( ); //using its own class method i = i – 1; }

}

Page 23: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

23

Temporary /Local vs. Instance Variables

Temporary/local variables are known From the point of declaration until the end curly brace of

the block in which they are declared

In contrast, instance variables are Declared outside of any method Known to all methods in the class in which they are

declared

Page 24: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

24

Class Methods in General Methods consist of statements (or

instructions) causes the object to do something Combination of literals and, operators Control Structures - e.g. while, if Temporary variables Methods from other classes Methods from its own class

Page 25: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

25

Asking Object about its data directly

It may possible to ask a object about its data without querying the object i.e. calling the method ObjectName.DataField;

>Dog d1 = new Dog(“Fido”,5);>String dogName = d1.name;>System.out.println(dogName); Fido

But this depends on accessibility of the data More on this in slide 28

Page 26: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

26

Putting it all together When you want to create standalone Java

application program one of the classes should contain the main method

Method main is a special method, not part of any object, that is executed in order to get things started such as: Creating Objects Ask objects to do something or interact with another

object

Page 27: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

27

Main Method

public static void main(String[ ] args) { Dog fido = new Dog("Fido", 5); // creates a Dog

fido.bark(); fido.setAge(6); }

Method main is of return type void Will explain the keyword public (on slide 28) Learn about static and String [] args in later

lectures

Page 28: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

28

OOP Recap Class: a template for creating objects An object is an instance of a class Example:

One Dog class Multiple Dog objects Lord of the Rings Simulation

One Human class, multiple Human objectsOne Elf class, multiple Elf objectsOne Orc class, multiple Orc objects

Page 29: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

29

A Counter class example

Page 30: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

30

Complete Counter class

public class Counter { private int count;

public Counter () { count = 0; }

public int currentCount () { return count; }

public void incrementCount () { count = count + 1; }

public void reset () { count = 0; }}

Counter class declaration

constructor

methods

Data field (instance variable)

query

command

?

Page 31: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

31

Counter Object Behaviors Counter c= new Counter();

If you want to increment count value of object c c.incrementCount();

If you want see the count value of object c c.currentCount();

If you want to reset count value of object c c.reset();

Page 32: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

32

Accessibility Level Data fields/instance variables of class and class

itself can also have accessibility_level

Examples: public void incrementCount(){ .. }, private count ;

public: makes the method/data field accessible from outside the class

Private:not accessible outside the class

In default case: accessible if within same directory

Accessibility_level appears before the return type of method the type of variable

Page 33: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

33

Complete Counter Programpublic class Counter { private int count;

public Counter () { count = 0;

}

public int getCount () { return count; }

public void incrementCount () { count = count + 1; }

public void reset () { count = 0;

}

public static void main(String[ ] args) { Counter c = new Counter(); int whatIsCount = 0;

c.incrementCount(); c.incrementCount();

whatIsCount = c.currentCount();

System.out.println(whatIsCount); c.reset();

whatIsCount = c.currentCount(); System.out.println(whatIsCount);

}

} // ends the class

Page 34: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

34

General Java Program

A program consists of one or more classes

Typically, each class is in a separate java file

File

File

File

FileClas

sVariablesConstructors

Methods

Variables

Variables

Statements

Statements

Page 35: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

35

Writing and Running Programs in OOP

When you write a program You are writing classes and all the things that go into

classes Your program typically contains commands to create

objects and make them do something

When you run a program It creates objects, and those objects interact with one

another and do whatever they do to cause something to happen

Page 36: Introduction to Programming with Java, for Beginners Intro OOP with Java Java Program Structure.

36

Advantages of OOP OOP is conducive to good design and

efficient redesign

Most changes affect only a few classes