Class Statis
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan C# di Coddy. Pelajaran 13 dari 70.
Jika sebuah class hanya berisi member static dan kamu tidak perlu membuat instance darinya, kamu dapat mendeklarasikan seluruh class sebagai static. Ini memberi tahu compiler bahwa class tersebut tidak dapat dibuat menjadi instance dan hanya dapat berisi member static.
public static class MathHelper
{
public static double Pi = 3.14159;
public static int Square(int number)
{
return number * number;
}
public static int Add(int a, int b)
{
return a + b;
}
}Kamu menggunakan static class dengan cara yang sama seperti menggunakan anggota static, yaitu dengan memanggilnya langsung melalui nama class:
int result = MathHelper.Square(5);
double pi = MathHelper.Pi;class statis memiliki batasan penting. Kamu tidak dapat membuat instance dengan new, class ini tidak dapat memiliki konstruktor instance, dan tidak dapat diwariskan. class ini hanya dapat berisi field, property, dan method statis.
class Console dan Math yang selama ini kamu gunakan adalah contoh sempurna dari class statis. Keduanya menyediakan fungsionalitas utilitas tanpa memerlukan state object. Class statis ideal untuk mengelompokkan method bantuan atau konstanta terkait yang tidak memerlukan data khusus untuk setiap instance.
Tantangan
MudahMari buat utilitas konversi suhu menggunakan class statis untuk mengelompokkan method pembantu terkait yang tidak memerlukan state object.
Kamu akan membuat dua file untuk mengatur kodemu:
TemperatureConverter.cs: Definisikan class statis bernamaTemperatureConverterdi namespaceUtilities. Class ini harus berisi:- Field statis
AbsoluteZeroCelsiusyang ditetapkan ke-273.15 - Method statis
CelsiusToFahrenheit(double celsius)yang mengonversi Celsius ke Fahrenheit menggunakan rumus:(celsius * 9 / 5) + 32 - Method statis
FahrenheitToCelsius(double fahrenheit)yang mengonversi Fahrenheit ke Celsius menggunakan rumus:(fahrenheit - 32) * 5 / 9 - Method statis
IsAboveAbsoluteZero(double celsius)yang mengembalikantruejika suhu berada di atas nol mutlak
- Field statis
Program.cs: Di file utamamu, gunakan class statis untuk melakukan konversi. Baca nilai suhu dalam Celsius dari input, lalu tampilkan hasil konversi dan validasinya.
Kamu akan menerima satu input: nilai suhu dalam Celsius.
Cetak hasilnya dengan format berikut:
{celsius}C = {fahrenheit}F
{fahrenheit}F = {convertedBack}C
Above Absolute Zero: {True/False}
Absolute Zero: {AbsoluteZeroCelsius}CMisalnya, jika inputnya adalah 25, outputnya akan seperti ini:
25C = 77F
77F = 25C
Above Absolute Zero: True
Absolute Zero: -273.15CIngat, class statis tidak dapat dibuat menjadi instance. Kamu akan memanggil semua method langsung pada nama class, seperti TemperatureConverter.CelsiusToFahrenheit(25).
Coba sendiri
using System;
using Utilities;
class Program
{
public static void Main(string[] args)
{
// Baca suhu dalam Celsius
double celsius = Convert.ToDouble(Console.ReadLine());
// TODO: Gunakan method statis TemperatureConverter untuk:
// 1. Konversi celsius ke fahrenheit
// 2. Konversi fahrenheit kembali ke celsius
// 3. Periksa apakah suhu di atas nol mutlak
// 4. Ambil konstanta nol mutlak
// TODO: Cetak hasilnya dalam format yang diminta:
// {celsius}C = {fahrenheit}F
// {fahrenheit}F = {convertedBack}C
// Above Absolute Zero: {True/False}
// Absolute Zero: {AbsoluteZeroCelsius}C
}
}
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