300 likes | 566 Views
Pertemuan 6 Object Oriented Programming. Matakuliah : T0053/Web Programming Tahun : 2006 Versi : 2. Learning Outcomes. Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : Mengimplementasikan konsep OOP dalam bahasa pemrograman Java Membuat program Java dengan konsep OOP.
E N D
Pertemuan 6Object Oriented Programming Matakuliah : T0053/Web Programming Tahun : 2006 Versi : 2
Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : • Mengimplementasikan konsep OOP dalam bahasa pemrograman Java • Membuat program Java dengan konsep OOP
Outline Materi • Introduction • Encapsulation • Inheritance • Polymorphism • Interface • Package
Procedural versus OOP • Procedural programming language • C is an example • Action-oriented • Functions are units of programming • Object-oriented programming language • Java is an example • Object-oriented • Classes are units of programming • Functions, or methods, are encapsulated in classes
OOP In Java • Every java program implement all OOP Concept: • Encapsulation: all java program must reside in class, no class, no program • Inheritance: all class have a superclass, if not mentioned, it’s automatically subclassing from Object class • Polymorphism: all method are polymorphic in default
Encapsulation • “Packaging an object’s variables within protective custody of its methods” • Advantages: • Modularity • Information Hiding: object has a public interface for communicate to others, so it can maintain private information and method that can be changed any time without affecting the communication • Java Keyword: class
OOP Concept: Object • Real world objects share 2 characteristics: • State • Dogs have state: name, color, breed, hungry • Bicycles have state: current gear, current pedal cadence, two wheels, number of gears) • Behavior • Dogs have behavior: barking, fetching, wagging tail) • Bycyles have behavior: braking, accelarating, slowing down, changing gears
OOP Concept: Object (cont) • Software objects are modeled after real-world objects in that they too have state and behavior • Software object: • State variables • Behavior methods, that is a function (subroutine) • Methods and variables is associated with an object, that is reside in object
OOP Concept: Object (cont) A Software Object, that have state and behavior
OOP Concept: Object (cont) • Bicycle modeled as a software object: • 10 mph, 90 rpm, 5th known as instance variable because they contain the state for a particular object • changeGears, brake, changeCadence known as instance method, because they inspect or change the state of a particular bicycle instance (object)
OOP Concept: Message • The bicycle is useful only when another object (you) interacts with it (pedal) • Trough the interaction between objects, we can achieve higher-order functionality and more complex behavior • Software object interact and communicate by sending message to another object
OOP Concept: Message • Sometimes the receiver object need more information to do, this information called parameters • You the sender object • YourBicycle the receiver object • ChangeGears the message, the method to perform • lowerGearinformation from You to YourBicycle, the parameters needed by the method
A class is a blueprint, or prototype, that defines the variables and the methods common to all objects of a certain kind OOP Concept: Class Class = method+attribute The Bicycle class
Creating class //Filename: Point2D.java public class Point2D{ int x, y; // member variable public Point2D() { x=0; y = 0;} public Point2D(int nx, int ny) { setPoint(nx, ny); } // setter method public setPoint(int nx, int ny) { x = nx; y = ny; } // continue class Point declaration // getter method int getX() { return x; } int getY() { return y; } public static void main(String[] args) { // create object p Point2D p = new Point2D(); p.setPoint(1, 5); System.out.println(“x: “, p.getX()): System.out.println(“y: “,p.getY()): } } // end of class declaration
Some Guidance for Creating class • 1 file can contain >=1 class • 1 file only can contains 1 public class • Filename must be a public class name, beware of case sensitive, remember that Java is multiplatform • Tips: It would be better to have every file for every class you created
Methods • No Default argument • All parameter is passing by value • How can we passing by reference? • Support function name overloading, ie: same name different function signature (type of argument, number of argument, order of argument)
Reusability Top down: Being more specific Bottom Up: Find similarity Java Keyword: extends Inheritance
Inheritance- Example public class Point3D extends Point2D { int z; public Point3D(int nx, int ny, int nz) { super(nx, ny); // called super class constructor z = nz; } int getZ() { return z; } void setZ(int nz) { z = nz; } public static void main(String[] args) { Point3D p = new Point3d(10, 10, 3); System.out.println(“(x, y, z): “+ p.getX() + “,” p.getY() + “,” + p.getZ()); } }
Polymorphism • Many shapes, 1 function behave differently according to object instance • “Late binding”, bind to instance not type • In default all Java methods are “polymorphic” • Use “final” keyword to make “early binding”, non polymorphic
Polymorphism-Example //Filename: Point2D.java public class Point2D{ int x, y; // member variable public Point2D() { x=0; y = 0;} public Point2D(int nx, int ny) { setPoint(nx, ny); } // setter method public setPoint(int nx, int ny) { x = nx; y = ny; } // continue class Point deklaration // getter method int getX() { return x; } int getY() { return y; } // overide method from class Object public String toString() { return “x: “+x “, y: “+y; } } // end of class declaration
// Point3D.java public class Point3D extends Point2D { int z; public Point3D(int nx, int ny, int nz) { super(nx, ny); // called super class constructor z = nz; } int getZ() { return z; } void setZ(int nz) { z = nz; } // overide method from class Point2D public String toString() { return super.toString() + “, z: “+ z; }
public static void main(String[] args) { Point2D p1 = new Point2d(10, 10); Point2D p2 = new Point3d(10, 10, 3); printObject(p1); // x: 10, y: 10 printObject(p2); // x: 10, y: 10, z: 3 } static printObject(Object o) { System.out.println(“Object content: “+ o); // that is called o.toString() } }
Interface • As container of abstract method • Similar to class, except that all method are abstract, just contain declaration. • As the way of solved some problem that need Multiple Inheritance feature • As call back function
Interface - Example // IUpdate.java public interface IUpdate { public void UpdateProgress(int nPercent); } // Child.java, that called from Main class public class Child { IUpdate u; public void addEventListerner(IUpdate iu) { u = iu; } public void run() { for (int i=1; i<=100; i++) u.updateProgress(i); } }
// Main.java public class Main implementsIUpdate { Child child; public Main() // contructor { child = new Child(); // connect to child object child.addEventListener(this); // run child proses, and updating progress child.run(); } // implement method declared in Iupdate interface public void UpdateProgres(int nPercent) { System.out.println(“Progess: “ +nPercent); } public static void main(String[] args() { new Main();} }
Packages • “A package is a collection of related classes and interfaces providing access protection and namespace management. ” • 1 package is 1 subfolder in file system • To organize file in project or library • Keyword: package name;
Packages - Example package com.binus.oop; public class TestPackage { public static void main(String[] args) { System.out.println(“Contoh penggunaan package”); } } • Catatan: • Program diatas diberi nama TestPackage.java • Program OOP.java terletak pada directory x:\WebProg\OOP\com\binus\oop\TestPackage.java • Setting classpath SET CLASSPATH = %CLASSPATH%\; x:\WebProg\OOP • Compile : X:\webProg\OOP\com\binus\oop>javac TestPackage.java • Running: x:\>java com.binus.oop.TestPackage