Kata Kunci 'this'
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan C# di Coddy. Pelajaran 4 dari 70.
Kata kunci this merujuk pada instance class saat ini. Kata kunci ini digunakan untuk mengakses anggota instance dan membedakan parameter dengan field yang memiliki nama sama.
Gunakan this untuk membedakan field dan parameter
public class Person
{
private string name;
private int age;
public Person(string name, int age)
{
this.name = name;
this.age = age;
}
}Tanpa this, parameter akan membayangi field
// Ini tidak akan berfungsi seperti yang diharapkan
public Person(string name, int age)
{
name = name; // Memberikan nilai parameter ke parameter itu sendiri!
age = age; // Memberikan nilai parameter ke parameter itu sendiri!
}Gunakan this dengan property
public class Product
{
public string Name { get; set; }
public decimal Price { get; set; }
public Product(string name, decimal price)
{
this.Name = name;
this.Price = price;
}
public void DisplayInfo()
{
Console.WriteLine($"{this.Name}: ${this.Price}");
}
}Gunakan this untuk memanggil konstruktor lain di class yang sama
public class Rectangle
{
public int Width { get; set; }
public int Height { get; set; }
public Rectangle(int width, int height)
{
this.Width = width;
this.Height = height;
}
// Konstruktor untuk persegi
public Rectangle(int size) : this(size, size)
{
}
}Contoh penggunaan:
Rectangle rect = new Rectangle(5, 10);
Rectangle square = new Rectangle(5); // Membuat 5x5Kata kunci this selalu merujuk pada instance object saat ini. Kata kunci ini sangat berguna saat nama parameter sama dengan nama field atau property, sehingga kodemu lebih jelas dan mencegah error.
Tantangan
SedangLengkapi class Product dengan menambahkan konstruktor yang menggunakan kata kunci this untuk menetapkan nilai parameter ke property. Implementasikan juga method GetDescription() menggunakan this untuk mengakses property.
Method GetDescription() harus mengembalikan: "{Name} costs ${Price}"
Coba sendiri
using System;
class Program
{
static void Main()
{
string name = Console.ReadLine();
decimal price = decimal.Parse(Console.ReadLine());
Product product = new Product(name, price);
Console.WriteLine($"Product: {product.Name}");
Console.WriteLine($"Price: ${product.Price}");
Console.WriteLine(product.GetDescription());
}
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pemrograman Berorientasi Objek
1Dasar-Dasar OOP
File EksternalNamespace & DirektifPengantar class & objectKata Kunci 'this'Method dan ParameterField vs PropertyKonstruktorInisialisasi objectRingkasan: Kalkulator Sederhana4Pewarisan
Sintaks Dasar Pewarisan (:)Kata Kunci 'base'Kata Kunci Virtual & OverrideClass SealedBase Class 'object'Rangkuman: Hierarki Karyawan7Fitur Lanjutan
Overloading OperatorIndexer (this[])Penimpaan ToString()Extension methodRingkasan: Custom list2Property & Anggota Statis
Property yang Diimplementasikan OtomatisProperty Hanya Baca dan Hanya TulisField dan method StatisClass StatisAnggota Berbentuk Ekspresi5Polimorfisme & Antarmuka
Polimorfisme saat kompilasi vs runtimeAntarmuka vs kelas abstrakBeberapa antarmukaAntarmuka eksplisitUpcasting & DowncastingRingkasan, Kalkulator Bentuk8Konsep OOP Lanjutan
Komposisi daripada PewarisanGenerics (class dan method)Delegate dan EventAtribut dan ReflectionIDisposable dan Pernyataan usingDasar-Dasar Dependency Injection11Pola Desain Bagian 2
Pola PerintahPola AdapterPola DecoratorPola Template MethodPola StatePola CompositeLatihan sendiri: Compiler C# online