Inisialisasi object
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan C# di Coddy. Pelajaran 8 dari 70.
Inisialisator object menyediakan cara yang praktis untuk menetapkan nilai property saat membuat object, tanpa memanggil constructor dengan banyak parameter.
Cara tradisional menggunakan konstruktor
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public string City { get; set; }
}
Person person = new Person();
person.Name = "Alice";
person.Age = 25;
person.City = "New York";Menggunakan sintaks penginisialisasi object
Person person = new Person
{
Name = "Alice",
Age = 25,
City = "New York"
};Inisialisasi object dengan konstruktor
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public string City { get; set; }
public Person(string name)
{
Name = name;
}
}
// Konstruktor mengatur Name, inisialisator mengatur property lainnya
Person person = new Person("Bob")
{
Age = 30,
City = "London"
};Inisialisasi object bersarang
public class Address
{
public string Street { get; set; }
public string City { get; set; }
}
public class Person
{
public string Name { get; set; }
public Address Address { get; set; }
}
Person person = new Person
{
Name = "Charlie",
Address = new Address
{
Street = "123 Main St",
City = "Boston"
}
};Membuat beberapa object dengan initializer
Person person1 = new Person { Name = "Alice", Age = 25 };
Person person2 = new Person { Name = "Bob", Age = 30 };
Person person3 = new Person { Name = "Charlie", Age = 35 };Inisialisator object membuat kode lebih rapi dan mudah dibaca. Property diatur setelah constructor dijalankan. Kamu bisa menggunakan inisialisator dengan atau tanpa parameter constructor, sehingga pembuatan object menjadi fleksibel dan ringkas.
Tantangan
SedangBuat tiga object Student menggunakan pendekatan object initializer yang berbeda:
- student1: Gunakan constructor default dengan object initializer untuk menetapkan semua property (Name, StudentId, Major, GPA) dari input
- student2: Gunakan object initializer untuk menetapkan hanya Name = "Bob" dan Major = "Engineering"
- student3: Gunakan constructor dengan "Charlie" sebagai parameter, lalu gunakan object initializer untuk menetapkan StudentId = 54321, Major = "Mathematics", GPA = 3.5
Coba sendiri
using System;
class Program
{
static void Main()
{
string name = Console.ReadLine();
int studentId = int.Parse(Console.ReadLine());
string major = Console.ReadLine();
double gpa = double.Parse(Console.ReadLine());
// TODO: Buat student1 menggunakan inisialisasi object dengan semua property
// Gunakan konstruktor default dan isi Name, StudentId, Major, serta GPA
// TODO: Buat student2 menggunakan inisialisasi object hanya dengan Name dan Major
// Isi Name dengan "Bob" dan Major dengan "Engineering"
// TODO: Buat student3 menggunakan konstruktor dengan parameter nama "Charlie"
// Lalu gunakan inisialisasi object untuk mengisi StudentId = 54321, Major = "Mathematics", GPA = 3.5
Console.WriteLine($"Student 1: {student1.Name} (ID: {student1.StudentId}) - {student1.Major}, GPA: {student1.GPA}");
Console.WriteLine($"Student 2: {student2.Name} (ID: {student2.StudentId}) - {student2.Major}, GPA: {student2.GPA}");
Console.WriteLine($"Student 3: {student3.Name} (ID: {student3.StudentId}) - {student3.Major}, GPA: {student3.GPA}");
}
}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