Soru & Cevap

float tipi değişken tanımlaması ...

07.11.2014 - 08:12

Merhaba.

Android 101 Eğitimi dersinde float ve double tipi değişkenlerin tanımlanmasını anlatmışlar. Fakat aklıma takılan bir soru var.


int sinav1=50;

int sinav2=55;

float ortalama_tam =(float) (sinav1+sinav2)/2; şeklinde bir tanımlama yapılmış.

(sinav1+sinav2)/2; ifadesinın sonucu zaten bir ondalıklı sayı ki bundan dolayı float tipinde tanımlanmış.

Neden ayriyetten ifadenin başına bir de "(float)" ifadesini eklemişler ?

 

40 Görüntülenme

2 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-1372-1408467635.jpg
ahmtbrk
08.11.2014 - 01:32

int türünde işlemi yapıp sonucu atsaydı sonuç 5,15 ise mesela direk 5 e yuvarlardı onu.

Nesne yönelimli programlamada da android içerisinde özellikle cok fazla casting yapıyoruz özellikle nesneleri.

Android ihtiva ettiği methodların dönüş tipi hep Object.

Javada diğer oop dillerin cogunda bütün nesnelerin babası Object'tir her şey ondan türer.

Object dönüş tipinde gelen veriyi ilgili nesneye kast etmek lazım hep işte.

findViewById methodu mesela Object dönüş yapar sen onu ilgili nesneye benzetirsin.

 

Caner Güral
08.11.2014 - 03:37
küçük bir düzeltme: findViewByID(int) Object değil, View döner. Gördüğüm kadarıyla Anroid'de çoğu sınıf, metot context-aware çalışıyor.
Ahmet Burak Demirkoparan
08.11.2014 - 03:55
Caner çok haklısın bi an kafam listview adapterdeki dönüş tipi aklımda kalmış :) En azından arkadaşın kafasının karışmaması için şöyle izah edip noktalıyım.Bütün componentler(TextView,Button vb) View sınıfından extends oluyor ve findViewById View dönünce sende asıl haline benzetiyorsun nesneyi.Tıpkı c# deki Control sınıfı gibi tüm textbox,label,picturebox'ta ondan türüyor.
picture-7494-1397646387.jpg
baranbuyuk
07.11.2014 - 08:38

Biz bu işleme casting diyoruz. Java'nın en önemli özelliği, type safety oluşu. Siz bir tipten başka bir tipe dönüş yaparrsanız, Java bunu kontrol eder, eğer ki, kendisi bu dönüşümü yapamaz ise, dönüşüm sorumluluğunu bize bırakır. Biz de cast ederek, bu sorumluluğun bize ait olduğunu bildiriyoruz, java da bunu kabul ederek yaptığın işleme izin veriyor. Umarım açıklayıcı olmuştur..

noname
08.11.2014 - 12:01
Vakit ayırıp cevap yazdığınız için çok teşekkür ederim. Sanırım anladım. Oldu ki işlem sonucu geri dönen değer istediğim tipe dönüştürülmedi, sonucu ikinci bir seferde tekrar istediğim değişken tipine dönüştürülmesi komutunu veriyorum.