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

Tidak ada komentar: