Tampilkan postingan dengan label java oop. Tampilkan semua postingan
Tampilkan postingan dengan label java oop. Tampilkan semua postingan

Selasa, 23 Desember 2008

Comparing Object-Oriented Language

Object-Oriented Languages

Apa yang benar-benar membuat sebuah bahasa pemrograman yang berorientasi objek? Dan, ketika kapan object oritented benar-benar mulai? Banyak orang menunjuk ke awal tahun 1960-an sebagaimana Simula-67 memperkenalkan konsep obyek.

Simula

Seperti namanya, Simula telah dibuat untuk membantu dalam simulasi. Ini bukan sebuah kebetulan bahwa biasanya model simulasi system dunia nyata. Banyak dari sistem dunia nyata yang terdapat ratusan, atau ribuan, bagian dari interaksi.

Awal versi bahasa, Simula-1, telah diperkenalkan pada tahun 1966. Modul program yang ditetapkan oleh Simula yang tidak didasarkan pada prosedur, tetapi benar-benar pada objek. Simula memiliki novel cara memasang objek, sehingga setiap objek memiliki perilaku dan data.

Smalltalk

Mempertimbangkan banyak hal yang pertama adalah benar-benar OO bahasa Smalltalk, dikembangkan di Kelompok Belajar Penelitian Xerox di Palo Alto's Research Center pada awal tahun 1970-an. Di luar, semuanya sudah benar-benar sebuah objek yang memaksa terjadinya paradigma yang OO. Ia adalah hampir mustahil untuk menulis sebuah program di luar yang tidak OO. Ini bukan untuk kasus lain yang mendukung bahasa objek, seperti C + + dan Visual Basic (dan Java, untuk yang lain).

C++

C + + ini berakar pada sebuah proyek untuk mensimulasikan perangkat lunak yang berjalan pada sistem didistribusikan. Simulator ini, sebenarnya ditulis dalam Simula, adalah dimana kepentingannya Bjarne Stroustrup dari ide menggabungkan beberapa fitur Simula dengan sintaks yang digunakan oleh C.

Ketika bekerja di Bell, Stroustrup melakukan  kontak pribadi dengan orang-orang seperti Brian Kernighan dan Dennis Ritchie, yang menulis buku tentang definitif C. Bila awal simulator ditulis dalam Simula gagal, Stroustrup memutuskan untuk menulis ulang dalam C disebut BCPL pendahulunya.

C + + pada awalnya dilaksanakan pada tahun 1982 dengan nama C dengan Kelas. Sebagai nama menyarankan, yang paling penting konsep dengan Kelas C adalah penambahan kelas. Kelas memberikan konsep encapsulation sekarang diperlukan dengan bahasa OO.

Java

Asal Java di elektronik konsumen. Pada 1991, Sun Microsystems mulai menyelidiki bagaimana mungkin memanfaatkan pertumbuhan pasar ini. Beberapa saat kemudian, James Gosling telah menyelidiki kemungkinan membuat hardware-platform perangkat lunak independen hanya untuk tujuan ini. Pada awalnya, ia berusaha untuk menggunakan C + +, tetapi segera ditinggalkan C + + dan memulai penciptaan yang baru dia alih bahasa Oak.

tahun 1995, Java beta 1 telah dirilis, dan browser Netscape Navigator 2,0 menghimpun Java. Java 1,0 secara resmi diluncurkan pada bulan Januari 1996. Selama beberapa tahun terakhir, Java telah berkembang ke dalam rilis Java 2 Platform Standard Edition 6,0 serta platform lainnya seperti Enterprise Edition (J2EE) untuk perusahaan / server pasar dan Micro Edition (J2ME) untuk mobile dan nirkabel.

.NET

Microsoft awalnya menanggapi popularitas Java dengan memproduksi versi Java disebut Visual J + +. Namun, Microsoft memutuskan respon yang lebih komprehensif. Menggunakan banyak dari groundbreaking konsep Java yang dilaksanakan, Microsoft mengembangkannya disebut bahasa C # yang menjadi dasar bagi perusahaan. NET platform. Seperti dengan Java, C # sangat tergantung pada keberhasilan dan kegagalan sebelumnya bahasa.

.NET development environment meliputi banyak yang benar-benar karakteristik dari beberapa platform lainnya.  .NET memperkenalkan banyak konsep yang oleh rilis awal Java. File. NET platform juga membangun atas banyak dari fitur-fitur canggih dari VB6 dan Visual C + + lingkungan.

Visual Basic 6 merupakan salah satu bahasa pemrograman paling populer. Environment program untuk VB6 telah memiliki dampak besar pada nvironment development. VB6 telah berkembang terus ke arah berorientasi objek model hingga akhirnya bergabung dalam daftar bahasa berorientasi objek dengan peluncuran Visual Basic. NET. VB6 tidak sepenuhnya berorientasi objek, tetapi tidak melaksanakan warisan sepenuhnya.

Perbandingan Code
 
Untuk sisa artikel, saya akan (kebanyakan) membiarkan kode itu sendiri untuk berbicara. Di masa mendatang artikel, Anda akan menjelajahi pemrograman struktur berbagai bahasa pemrograman namun; dalam konteks artikel ini, saya tujuannya adalah agar Anda mengambil contoh berikut dan mengembangkan dasar untuk masing-masing dari tiga bahasa: Jawa, C #, dan VB. NET.
Tiga contoh aplikasi adalah sebagai berikut:
·IntSquare: Satu kelas untuk menghitung kuadrat dari angka.
·Person: Satu kelas untuk mengatur dan mendapatkan nama dan alamat orang.
·Shape: Sebuah hirarki dari kelas yang menghitung luas berbagai bentuk.
Contoh ini adalah langkah pertama dalam membuat proyek-proyek di berbagai program bahasa disajikan.
Pada tahap ini, Anda dapat memeriksa kode hanya agar mendapatkan rasa untuk mengetahui sintaks yang digunakan oleh berbagai bahasa. Hal ini sangat membantu dalam pemrograman class. Seringkali, kelas akan fokus pada satu pelajaran bahasa agar pembangunan alat overhead, tidak menyebut tentang belajar petunjuk bahasa, untuk minimum. Meskipun Anda dapat fokus pada satu bahasa untuk memperkuat konstruksi berorientasi objek, sangat membantu untuk melihat contoh dalam bahasa lain untuk menambah dan memperkuat dasar bahasa yang digunakan dalam kelas.

Setelah Anda memiliki kode yg diperiksa, langkah berikutnya adalah untuk memuat berbagai platform pengembangan sehingga anda dapat mengkompilasi dan menjalankan kode. Pengembangan platform adalah topik yang akan Anda menjelajahi panjang di dalam artikel berikutnya.

Untuk setiap contoh ini, saya memberikan komentar singkat mengenai perintahd dalam kode. Dalam setiap kasus, contoh yang identik-setidaknya dalam fungsi. targetnya adalah untuk memecahkan masalah yang sama dengan masing-masing bahasa.
IntSquare
Dalam contoh IntSquare, fokus, sebagai contoh awal, adalah pada sintaks diperlukan untuk kompilasi dan menjalankan program yang sederhana dalam tiga bahasa. Target  di sini adalah cukup sederhana; membuat metode untuk menghitung kuadrat dari angk
Kelas ini memiliki atribut tunggal dan dua methode ( a public interface dan private implementation ).

public class IntSquare {
 
   // private attribute
   private int squareValue;
 
   // public interface
   public int getSquare (int value) {
 
      squareValue =calculateSquare(value);
 
      return squareValue;
 
   }
 
   // private implementation
   private int calculateSquare (int value) {
      return value*value;
 
   }
}
Listing 1a: Java Code for IntSquare Class
public class IntSquare {
 
   // private attribute
   private int squareValue;
 
   // public interface
   public int getSquare (int value) {
 
      squareValue =calculateSquare(value);
 
      return squareValue;
 
   }
 
   // private implementation
   private int calculateSquare (int value) {
 
      return value*value;
 
   }
}
Listing 1b: C# Code for IntSquare Class
Public Class IntSquare
 
   Dim squareValue As Integer
 
   Property accessSquareValue() As Integer
 
      Get
         Return squareValue
      End Get
 
      Set(ByVal Value As Integer)
         squareValue = Value
      End Set
 
   End Property
 
   Public Function calculateSquare(ByVal Value As Integer) _
      As Integer
 
      System.Console.WriteLine(Value)
 
      squareValue = Value * Value
 
      Return squareValue>
 
   End Function
 
End Class
Listing 1c: VB Code for IntSquare Class
Person
Contoh beirkutnya yaitu pembuatan class Person didalamnya disertakan contoh ilustrasi dari konsep encapsulation pada object oriented.
public class Person{
 
   //Attributes
   private String name;
   private String address;
 
   //Methods
   public String getName(){
      return name;
   }
   public void setName(String n){
      name = n;
   }
 
   public String getAddress(){
      return address;
   }
   public void setAddress(String adr){
      address = adr;
   }
 
}
Listing 2a: Java Code for Person Class
public class Person{
 
   //Attributes
   private string name;
   private string address;
 
   //Methods
   public string getName(){
      return name;
   }
   public void setName(string n){
      name = n;
   }
 
   public string getAddress(){
      return address;
   }
   public void setAddress(string adr){
      address = adr;
   }
 
}
Listing 2b: C# Code for Person Class
Public Class Person
 
   Dim name As String
   Dim address As String
 
   Property accessName() As String
 
      Get
         Return name
      End Get
 
      Set(ByVal Value As String)
         name = Value
      End Set
 
   End Property
 
   Property accessAddress() As String
 
      Get
         Return address
      End Get
 
      Set(ByVal Value As String)
         address = Value
      End Set
 
   End Property
 
End Class
 
Shape
 
Contoh berikutnya yaitu Class Shape yang lebih kompleks yang mengilustrasikan inheritance dari konsep object oriented.
//Shape
public abstract class Shape{
 
   protected double area;
 
   public abstract double getArea();
 
}
 
//Rectangle
public class Rectangle extends Shape{
 
   private double length;
   private double width;
 
   public Rectangle(double l, double w){
      length = l;
      width = w;
   }
 
   public double getArea() {
      area = length*width;
      return (area);
   }
}
 
//Circle
public class Circle extends Shape{
 
   private double radius;
 
   public Circle(double r) {
 
      radius = r;
 
   }
 
   public double getArea() {
 
      area = 3.14*(radius*radius);
      return (area);
 
   }
}
 
//TestShape
public class testShape {
 
   public static void main(String args[]) {
 
      Circle circle = new Circle(5);
      Rectangle rectangle = new Rectangle(4,5);
 
   }
 
}
Listing 3a: Java Code for Shape
//Shape
public abstract class Shape{
 
   protected double area;
 
   public abstract double getArea();
 
}
 
//Rectangle
public class Rectangle : Shape{
 
   private double length;
   private double width;
 
   public Rectangle(double l, double w){
      length = l;
      width = w;
   }
 
   public override double getArea() {
      area = length*width;
      return (area);
   }
}
 
//Circle
public class Circle : Shape {
 
   private double radius;
 
   public Circle(double r) {
 
      radius = r;
 
   }
 
   public override double getArea() {
 
      area = 3.14*(radius*radius);
      return (area);
 
   }
}
 
//TestShape
public class TestShape {
 
   public static void Main() {
 
      Circle circle = new Circle(5);
      Rectangle rectangle = new Rectangle(4,5);
 
   }
 
}
Listing 3b: C# Code for Shape
 
Public MustInherit Class Shape
 
   Protected area As Double
 
   Public MustOverride Function getArea() As Double
 
End Class
 
Public Class Rectangle
 
   Inherits Shape
 
   Dim length As Double
   Dim width As Double
 
   Sub New(ByVal l As Double, ByVal w As Double)
 
      length = l
      width = w
 
  End Sub
 
   Public Overrides Function getArea() As Double
 
      area = length * width
      Return area
 
   End Function
 
End Class
 
Public Class Circle
 
   Inherits Shape
 
   Dim radius As Double
 
   Sub New(ByVal r As Double)
 
      radius = r
 
   End Sub
 
   Public Overrides Function getArea() As Double
 
      area = 3.14 * (radius * radius)
      Return area
 
   End Function
 
End Class
 
Module Module1
 
   Sub Main()
 
      Dim myCircle As New Circle(2.2)
      Dim myRectangle As New Rectangle(2.2, 3.3)
      Dim result As Double
 
      result = myCircle.getArea()
      System.Console.Write("Circle area =  ")
      System.Console.WriteLine(result)
 
      result = myRectangle.getArea()
      System.Console.Write("Rectangle area =  ")
      System.Console.WriteLine(result)
 
      System.Console.Read()
   End Sub
 
End Module
Listing 3c: VB Code for Shape
Referensi
http://www.developer.com

Rabu, 03 Desember 2008

Sejarah Pemrograman Berorientasi Objek

Dasar untuk OOP dimulai pada awal tahun 1960-an. Sebuah terobosan melibatkan contoh dan objek telah dicapai di MIT dengan PDP-1, dan pertama untuk menggunakan bahasa pemrograman objek adalah Simula 67. Ia dirancang untuk tujuan membuat simulasi, dan dikembangkan oleh Kristen Nygaard dan Ole-Johan Dahl di Norwegia.


Mereka bekerja pada simulasi yang berurusan dengan exploding kapal, dan mereka dapat diwujudkan grup yang berbeda kapal ke kategori. Setiap jenis kapal akan memiliki class, dan class akan menghasilkan perilaku yang unik dan data. Simula tidak hanya bertanggung jawab untuk memperkenalkan konsep class, tetapi juga memperkenalkan instance dari class.

Istilah "object oriented programming" pertama kali digunakan oleh Xerox PARC mereka di luar program bahasa. Istilah ini digunakan untuk merujuk kepada proses menggunakan objek sebagai dasar untuk penghitungan. Tim Smalltalk yang telah terinspirasi oleh Simula 67 proyek, tetapi mereka telah merancang Smalltalk sehingga akan dinamis. Object dapat diubah, diciptakan, atau dihapus, dan ini berbeda dengan sistem statis yang digunakan secara umum. smalltalk juga merupakan bahasa pemrograman pertama kali yang memperkenalkan konsep inheeritance. Hal ini adalah fitur yang diperbolehkan untuk Smalltalk melebihi simula 67 dan pemrograman sistem analog. Meskipun sistem yang canggih pada saat itu belum bisa menggunakan konsep inheritance.

Simula 67 adalah sistem yang telah memberikan inspirasi banyak bahasa pemrograman lain, termasuk Pascal dan Lips. Pada tahun 1980-an, pemrograman berorientasi objek telah menjadi dominan, dan faktor utama dalam hal ini yakitu C++. object oriented programming juga penting untuk pengembangan grafik user interface. Cocoa dengan struktur yang ada dalam Mac OS X adalah contoh yang baik dari GUI yang dinamis yang bekerja dengan bahasa pemrograman berorientasi objek. Paradigma dari pemrograman ini juga telah memainkan peranan penting dalam pengembangan event-driven programming.

Niklaus Wirth dan asosiasinya yang mencari daerah seperti modular programming dan abstraction dan mereka mengembangkan sistem yang menghimpun dua unsur ini. Kedua sistem ini adalah Oberon dan Modula-2. Oberon menggunakan pendekatan yang unik untuk class dan objek orientasi yang jauh berbeda dibandingkan C++ atau smalltalk. Sejak diperkenalkannya OOP, sejumlah besar bahasa pemrograman modern sekarang menggunakan konsep ini. Beberapa diantaranya adalah Fortran, BASIC, dan Pascal. Ada beberapa masalah kompatibilitas, karena banyak bahasa pemrograman yang tidak dirancang dengan pendekatan OOP. Pemrograman bahasa berorientasi objek yang "murni" tidak memiliki banyak fungsi yang diperlukan oleh programmer.

Untuk memecahkan masalah tersebut, sejumlah peneliti telah mencoba membuat desain baru untuk bahasa pemrograman yang menggunakan kosep obejct oriented yang masih tetap memnggunakan fungsi yang diperlukan oleh programer. Satu contoh dari sebuah bahasa pemrograman yang telah dicapai adalah Eiffel. Bahasa pemrograman lain yang telah berusaha untuk memecahkan masalah ini adalah Java. Java menjadi populer karena menggunakan virtual Machine, dan sangat mirip dengan C++ dan C. mesin virtual penting karena memungkinkan kode untuk dijalankan pada berbagai platform tanpa perlu diubah. Sistem lain yang serupa adalah Microsoft .NET. Banyak pengembang sekarang memahami pentingnya OOP, dan sedang aktif menggunakan dalam programnya masing-masing. Banyak peneliti terus membuat pengembangan dengan menggunakan pendekatan object oriented.

Ada sejumlah bahasa lain yang telah berhasil mengkombinasikan pendekatan objek oriented dengan prosedur yang berguna untuk programmer. Python adalah salah satu contoh, dan Ruby menggunakan pendekatan yang serupa juga.


Penggunaan pendekatan yang berorientasi objek telah menyebabkan pengembangan dalam bahasa modeling, design patern, dan lain sebagainya.Kemungkinan OOP merupakan paradigma pemrograman yang akan terus berkembang seperti yang kita maju ke depan. Ini merupakan bahasa yang kuat untuk terus ditingkatkan selama bertahun-tahun. Ini adalah perdebatan dalam komunitas, sebagai kritikus menunjukkan sejumlah masalah dengan struktur. Namun, popularitas bahasa pemrograman seperti Java menunjukkan bahwa paradigma ini akan terus ada.

sumber : http://www.exforsys.com