OBJECT ORIENTED PROGRAMMING
description
Transcript of OBJECT ORIENTED PROGRAMMING
OBJECT ORIENTED PROGRAMMING
2nd MeetingArief Setyanto
TOPIC COVERED
CLASS CONCEPT TURUNAN PEWARISAN KELAS ABSTRAK POLIMORPHISM INTERFACE PACKAGES
MEMBUAT CLASS sampel 1
Sampel 2 kelas biasapublic class TigaDimensi {private int pusat;protected int posx, posy,posz;protected static double phi = 3.14; public TigaDimensi(int x, int y, int z) { this.pusat = 0; this.posx=x; this.posy=y; this.posz=z; } public TigaDimensi( ) { //overloading fungsi konstruktor this.pusat = 0; this.posx=0; this.posy=10; this.posz=10; } public void lihatposisi(){ System.out.print("x : ");System.out.println(posx); System.out.print("y : ");System.out.println(posy); System.out.print("z : ");System.out.println(posz); } public void geser(int jx,int jy,int jz){ this.posx = posx+jx; this.posy = posy+jy; this.posz = posz+jz; } public void geser(int jx){ //overloading fungsi geser this.posx = posx+jx; } public double volume(){ return 10.1; } }
Kelas abstrak
public abstract class TigaDimensi_A {private int pusat;protected int posx, posy,posz;protected static double phi = 3.14; public TigaDimensi(int x, int y, int z) { this.pusat = 0; this.posx=x; this.posy=y; this.posz=z; } public void lihatposisi(){ System.out.print("x : ");System.out.println(posx); System.out.print("y : ");System.out.println(posy); System.out.print("z : ");System.out.println(posz); } public void geser(int jx,int jy,int jz){ this.posx = posx+jx; this.posy = posy+jy; this.posz = posz+jz; } public abstract luas(); public double volume(){ return 10.1; } }
Sekurang kurangnya punya 1 fungsi abstract
Deklarasi kelas final
public final class TigaDimensi _F{private int pusat;protected int posx, posy,posz;protected static double phi = 3.14; public TigaDimensi(int x, int y, int z) { this.pusat = 0; this.posx=x; this.posy=y; this.posz=z; } public void lihatposisi(){ System.out.print("x : ");System.out.println(posx); System.out.print("y : ");System.out.println(posy); System.out.print("z : ");System.out.println(posz); } public void geser(int jx,int jy,int jz){ this.posx = posx+jx; this.posy = posy+jy; this.posz = posz+jz; } public double volume(){ return 10.1; } }
Penjelasan tentang opsi class
Kelas abstract, final vs biasa
Sebut saja kelas yang bukan abstrak atau final sebagai kelas biasa
Kelas abstrak adalah kelas yang tidak pernah bisa di wujudkan menjadi objek/instan – kelas ini wajib di turunkan.
Kelas final adalah kelas yang tidak boleh di turunkan
Kelas biasa adalah kelas yang bisa di deklarasikan menjadi obyek sekaligus boleh diturunkan
Kapan kelas di bikin abstract
Pada saat ditemukan sebuah konsep yang tidak bisa ditemukan anggotanya sebagai sebuah obyek nyata.
Misal manusia, pada kenyataannya kita tidak mungkin menemukan sebuah obyek adalah manusia – keculai obyek tersebut adalah angota dari kelas pria atau kelas wanita.
Dalam kasus ini manusia adalah abstrak, pria dan wanita adalah kelas nyata yang merupakan turunan (himpunan bagian) dari manusia.
Kapan kelas di buat final
Jika di temukan sebuah konsep tentang himpunan benda(obyek) yang tidak mungkin di dapatkan himpunan bagian darinya (sub class/turunan) .
Misalnya terdapat himpunan wanita, tidak ada satupun anggotanya yang punya atribut atau fungsi tambahan lagi maka wanita adalah kelas final
Prakteknya teknik ini digunakan untuk menghindarkan programmer menurunkan sebuah kelas yang tidak ingin/diperbolehkan mereka menurunkannya lagi
Brief Detail
public By default, a class can be used only by other classes in the same package. The public modifier declares that
the class can be used by any class regardless of its package. Look in Creating and Using Packages for information about how to use modifiers to limit access to your classes and how it affects your access to other classes.
abstract Declares that the class cannot be instantiated. For a discussion about when abstract classes are appropriate
and how to write them, see Writing Abstract Classes and Methods . final
Declares that the class cannot be subclassed. Writing Final Classes and Methods shows you how to use final and discusses the reasons for using it.
class NameOfClass The class keyword indicates to the compiler that this is a class declaration and that the name of the class is
NameOfClass. extends Super
The extends clause identifies Super as the superclass of the class, thereby inserting the class within the class hierarchy.
How Do These Concepts Translate into Code? in the Object-Oriented Programming Concepts lesson, showed you a subclass of Applet and talked briefly about the responsibilities and benefits of subclasses. Managing Inheritance goes into further detail on this subject.
implements Interfaces To declare that your class implements one or more interfaces, use the keyword implements followed by a
comma-separated list of the names of the interfaces implemented by the class. How Do These Concepts Translate into Code? explained how the ClickMe applet implements an interface. Details about writing your own interfaces and how to use them can be found in Creating Interfaces .
The Class Body
The class body contains all of the code that provides for the life cycle of the objects created from it: constructors for initializing new objects, declarations
for the variables that provide the state of the class its objects, methods to implement the behavior of the
class and its objects in rare cases, a finalize method to provide for
cleaning up an object after it has done its job. Variables and methods collectively are called
members.
Deklarasi Method Sampel 1
Deklarasi Method Sampel 2
public double volume(){ double v; v= (phi * jari2* jari2 * jari2 )/3 ;
return v; }
iIustrasi turunan
PEWARISAN
What Members Does a Subclass Inherit? Rule: A subclass inherits all of the members in its superclass that are
accessible to that subclass unless the subclass explicitly hides a member variable or overrides a method. Note that constructors are not members and are not inherited by subclasses. The following list itemizes the members that are inherited by a subclass:
Subclasses inherit those superclass members declared as public or protected.
Subclasses inherit those superclass members declared with no access specifier as long as the subclass is in the same package as the superclass.
Subclasses don't inherit a superclass's member if the subclass declares a member with the same name. In the case of member variables, the member variable in the subclass hides the one in the superclass. In the case of methods, the method in the subclass overrides the one in the superclass.
Creating a subclass can be as simple as including the extends clause in your class declaration. However, you usually have to make other provisions in your code when subclassing a class, such as overriding methods or providing implementations for abstract methods.
CLASS TURUNAN
class Super { Number aNumber; }
class Subbie extends Super { Float aNumber; }
Kelas Turunan
public class Bola extends TigaDimensi{ public int jari2; public Bola(int x,int y,int z, int r){ super(x,y,z); posx=6; jari2=r; } public double volume(){ double v; v= (phi * jari2* jari2 * jari2 )/3 ; return v; }}
Interface
In English, an interface is a device or a system that unrelated entities use to interact. According to this definition, a remote control is an interface between you and a television set, the English language is an interface between two people, and the protocol of behavior enforced in the military is the interface between people of different ranks. Within the Java programming language, an interface is a device that unrelated objects use to interact with each other. An interface is probably most analogous to a protocol (an agreed on behavior). In fact, other object-oriented languages have the functionality of interfaces, but they call their interfaces protocols.
The bicycle class and its class hierarchy defines what a bicycle can and cannot do in terms of its "bicycleness." But bicycles interact with the world on other terms. For example, a bicycle in a store could be managed by an inventory program. An inventory program doesn't care what class of items it manages as long as each item provides certain information, such as price and tracking number. Instead of forcing class relationships on otherwise unrelated items, the inventory program sets up a protocol of communication. This protocol comes in the form of a set of constant and method definitions contained within an interface. The inventory interface would define, but not implement, methods that set and get the retail price, assign a tracking number, and so on.
To work in the inventory program, the bicycle class must agree to this protocol by implementing the interface. When a class implements an interface, the class agrees to implement all the methods defined in the interface. Thus, the bicycle class would provide the implementations for the methods that set and get retail price, assign a tracking number, and so on.
You use an interface to define a protocol of behavior that can be implemented by any class anywhere in the class hierarchy. Interfaces are useful for the following:
Capturing similarities among unrelated classes without artificially forcing a class relationship. Declaring methods that one or more classes are expected to implement. Revealing an object's programming interface without revealing its class.
Interface
interface A Java(TM) programming language
keyword used to define a collection of method definitions and constant values. It can later be implemented by classes that define this interface with the "implements" keyword.
WHAT’S INTERFACE
An interface is a named collection of method definitions (without implementations). An interface can also declare constants.
Perbedaan Interface dengan kelas abstract An interface cannot implement any
methods, whereas an abstract class can.
A class can implement many interfaces but can have only one superclass.
An interface is not part of the class hierarchy. Unrelated classes can implement the same interface.
Deklarasi
Example
lets look at blueJ
implements
lets look to example
Packages
A package is a collection of related classes and interfaces providing access protection and namespace management.
Kenapa Bikin Packages
You and other programmers can easily determine that these classes and interfaces are related.
You and other programmers know where to find classes and interfaces that provide graphics-related functions.
The names of your classes wont conflict with class names in other packages, because the package creates a new namespace.
You can allow classes within the package to have unrestricted access to one another yet still restrict access for classes outside the package.
Deklarasi
package graphics; public class Circle extends Graphic
implements Draggable { . . . }
The Circle class is a public member of the graphics package.
menggunakan packages
Referring to a Package Member by Namegraphics.Rectangle
To create an instance of graphics.Rectangle: graphics.Rectangle myRect = new graphics.Rectangle();
Importing a Package Member• import graphics.Circle;
Refer to the Circle class by its simple name: • Circle myCircle = new Circle();
Importing an Entire Package import graphics.*; Circle myCircle = new Circle();
overloading