1. Integersınıf
Integerbir sınıf olması bakımından da iyidir, yani alanları ve yöntemleri olabilir. Ve elbette, onlara sahip. Birçoğu - düzinelerce. Burada en temel olanları ele alacağız.
Sınıfın, Integertürün olası maksimum ve minimum değerlerini içeren iki alanı vardır int:
| Alan | Tanım |
|---|---|
|
intTürün mümkün olan maksimum değeri |
|
intTürün mümkün olan minimum değeri |
intBazen bir değişkene mümkün olan en küçük veya en büyük değeri atamak istersiniz . Kodunuzu anlaşılmaz sabitlerle karıştırmamak için bunu aşağıdaki gibi çok net bir şekilde yazabilirsiniz:
| kod | Tanım |
|---|---|
|
|
Sınıfın Integerayrıca bazı ilginç yöntemleri var. İşte buradalar:
| Yöntemler | Tanım |
|---|---|
|
Sayının onaltılık gösterimi olan bir dize döndürür |
|
Sayının ikili temsili olan bir dize döndürür |
|
Sayının sekizlik gösterimi olan bir dize döndürür |
|
Geçileni intbir Integernesneye sarar |
|
Geçirilen dizeden elde edilen sayıyı döndürür |
Daha önce statik yöntemle karşılaştınız Integer.parseInt(). Nasıl çalıştığını hatırlayalım:
int name = Integer.parseInt(string);
Yönteme bir sayı (yalnızca rakam) içeren bir dize iletilirse parseInt(), dizeyi ayrıştırır ve içerdiği sayıyı döndürür.
Yöntemlerin geri kalanı da yararlıdır. Örneğin, bazıları iletilen bir sayıyı, sayının ikili, sekizli veya onaltılı gösterimini içeren bir dizgeye dönüştürebilir.
2. Doublesınıf
Genel olarak, Doublesınıf sınıfa benzer , yalnızca a yerine Integera'yı sarar . Bizi de ilgilendirecek alanlar ve metotlar var. Bunlardan birkaçını düşünün:doubleint
Sınıfın Doublealtı ilginç alanı vardır:
| Alan | Tanım |
|---|---|
|
negatif sonsuzluk |
|
pozitif sonsuzluk |
|
Mümkün olan minimum üs (2 x ) |
|
Mümkün olan maksimum üs (2 x ) |
|
doubleTürün mümkün olan minimum değeri |
|
doubleTürün mümkün olan maksimum değeri |
Sonsuzluk
-1.0ile bölerseniz 0.0, negatif sonsuz elde edersiniz. 1.0ile bölerseniz 0.0, pozitif sonsuz elde edersiniz. a'yı yalnızca sıfıra bölmekle kalmaz double, aynı zamanda bu işlemlerin sonuçlarını depolamak için de kullanabilirsiniz.
a'nın üssüdouble
Üssü anlamak kolaydır. Dahili olarak, bir çift bir mantis ve bir üsten oluşur. Ama burada üssün değeri değil ama . Böylece, üs artarsa , sayının toplam değeri iki katına çıkar.10x2x1
MIN_EXPONENT == -1024, yani yaklaşık olarak eşittir2-102410-308
Ve tabii ki, Doublesınıfın ilginç yöntemleri var:
| Yöntemler | Tanım |
|---|---|
|
Sayının onaltılık gösterimi olan bir dize döndürür |
|
Geçen sayının sonsuz olup olmadığını kontrol eder. |
|
Geçilen sayının olup olmadığını kontrol ederNaN |
|
Geçileni doublebir Doublenesneye sarar |
|
Geçirilen dizeden elde edilen sayıyı döndürür |
İlginç bir şekilde, geçen sayının pozitif veya negatif sonsuz olması durumunda isInfinite()dönen bir yöntem var .true
Yöntem isNaN()benzerdir - iletilen sayının NaN( Not-a-Number , tanımsız bir değeri gösteren özel bir sabit) olup olmadığını kontrol eder.
3. Charactersınıf
Sınıf Character, öncelikle, karakterlerin çeşitli kategorilere ait olup olmadığını kontrol etmenizi sağlayan çok sayıda statik yardımcı program yöntemiyle ilgi çekicidir.
örnekler
| Yöntemler | Tanım |
|---|---|
|
Bir karakterin alfabetik bir karakter olup olmadığını kontrol eder |
|
Karakterin bir harf olup olmadığını kontrol eder |
|
Karakterin rakam olup olmadığını kontrol eder |
|
Karakterin boşluk mu, satır sonu mu yoksa sayfa sonu mu olduğunu kontrol eder (kodlar: 12, 13, 14) |
|
Karakterin boşluk olup olmadığını kontrol eder: boşluk, sekme vb. |
|
Karakterin küçük harf olup olmadığını kontrol eder |
|
Karakterin büyük harf olup olmadığını kontrol eder |
|
Karakteri küçük harfe dönüştürür |
|
Karakteri büyük harfe dönüştürür |
Bu yöntemlerin bir özelliği, bilinen tüm alfabelerle çalışmalarıdır: Arap rakamları rakam olarak sınıflandırılır, vb.
4. Booleansınıf
Tip , tip Booleanile hemen hemen aynıdır boolean. Farklılıklar minimumdur.
Aşağıda sınıfın basitleştirilmiş bir versiyonunu gösteriyoruz Boolean:
| kod | Tanım |
|---|---|
|
Sabitler: TRUEи FALSE Değişken Booleansınıf oluşturucu Yöntem, dahili değişkenin değerini döndürür Bu statik yöntem, ve ' ye truedönüştürür . TRUEfalseFALSE |
Türün Booleaniki sabiti vardır (iki alan):
| Sınıfın sabitleri | Boole türünün karşılığı | Tanım |
|---|---|---|
|
|
doğru |
|
|
YANLIŞ |
Onlarla, türle çalıştığınız şekilde çalışabilirsiniz boolean:
| kod | Not |
|---|---|
|
Sınıf Boolean, bir koşul içinde yazılabilen tek sınıftır. |
|
trueÜç değişkenin tümü /' ye eşittirTRUE |
|
Sabitler her ikisi kullanılarak karşılaştırılabilir equalsve == Bu da işe yarayacaktır. |
Otomatik kutulama burada harika çalışıyor. Bu, bu türü, türle aynı şekilde kullanabileceğiniz anlamına gelir boolean- dikkat edilmesi gereken hiçbir tuzak yoktur.
| nasıl yazılır | Nasıl çalışır |
|---|---|
|
|
booleanVe burada ve türlerinin bir karşılaştırması Boolean:
boolean a = true;
Boolean b = true; // b will be equal to Boolean.TRUE
Boolean c = true; // c will be equal to Boolean.TRUE
a == b; // true (compared by value)
a == c; // true (compared by value)
b == c; // true (compared by reference, but they point to the same object)
Gerçekten bağımsız bir nesneye ihtiyacınız varsa Boolean, onu açıkça oluşturmanız gerekir:
boolean a = true;
Boolean b = new Boolean(true); // New Boolean object
Boolean c = true; // c will be equal to Boolean.TRUE
a == b; // true (compared by value)
a == c; // true (compared by value)
b == c; // false (compared by reference, and they point to different objects)
Booleana inside of an kullanacağımız bir örnek daha if:
| kod | Not |
|---|---|
|
Bu derlenecek ve çalışacak |
Bu derlenecek, ancak işe yaramayacak!
| kod | Not |
|---|---|
|
hata _ Bu satır bir istisna atar |
5. Otomatik kutulama sırasında değerleri önbelleğe alma
Tamsayı sarmalayıcı türleri ile ilgili bazı tuzaklar vardır.
intBildiğiniz gibi, an ve an'ı karşılaştırırsak Integer, Integeran'a dönüştürülür int:
| nasıl yazılır | Nasıl çalışır |
|---|---|
|
|
İki nesneyi birbiriyle karşılaştırırsanız Integer, s'ye dönüştürülmezler int:
| kod | Konsol çıkışı |
|---|---|
|
|
a == cve , ancak , çünkü karşılaştırdığımızda ve referansları karşılaştırdığımızda. Esasen beklediğimiz şey buydu.b == ca != bab
Sürpriz
500Ancak ile değiştirirsek 100, tamamen farklı bir sonuç elde ederiz:
| kod | Konsol çıkışı |
|---|---|
|
|
Buradaki sorun, otomatik kutulama sırasında her zaman yeni bir Integernesnenin gerçekten yaratılmamasıdır . -128Nesneler, kapsayıcı aracılığıyla değerler için önbelleğe alınır 127.
Sınıfın Integernesneleri depolayan gizli bir dizisi vardır: Integer(-128), Integer(-127), ... Integer(126),Integer(127)
yazarsanız Integer x = 128, otomatik kutulama işlemi yeni bir nesne oluşturur, ancak yazarsanız Integer x = 127, otomatik kutulama işlemi mevcut nesneyi önbellekten (diziden) alır.
IntegerNesnenin önbellekten gelmesini istemiyorsanız , şunu yazarak açıkça oluşturmanız gerekir:Integer x = new Integer(127);
Tüm sarıcı türlerinin böyle bir önbelleği vardır: Integer, Long, Byte, Short, Boolean. Tür için Boolean, onun TRUEve FALSEdeğerlerinin her ikisi de sabittir, dolayısıyla bunlar da temelde önbelleğe alınır.
GO TO FULL VERSION