// class , yapı, fıtrat, plan
// Bir kişi bilgisi tutacağız diyelim
// bilgiler ne olacak ise, yani özellikleri ne olacak ise onlar kullanılır
// class ClassAdi{
// }
// Klavyeden 3 notu girilen öğrencinin ortalamasını ekrana yazan program
// yazmıştık.
// 3 öğrenci için okulno, ad, soyad, not1,not2, not3 bilgilerini girilmesini
// bu bilgilerin tutulmasını
// son olarak, aşağıdaki gibi görüntülemesini sağlayan programı yazalım
/*
Recep ÖZEN - ort: 45
Canan ÖZEN - ort: 17
Mehmet BİLİR - ort: 90
*/
import 'dart:io';
class Ogrenci {
String? okulNo;
String? ad;
String? soyad;
int? not1;
int? not2;
int? not3;
}
void main(List<String> args) {
List<Ogrenci> ogrenciler = [];
// listeye öğrencileri bilgileri ile ekliyoruz.
for (var i = 0; i < 3; i++) {
Ogrenci ogr = Ogrenci(); // new Ogrenci(); ile aynı
stdout.write("${i + 1}. öğrenci için Okul No:");
ogr.okulNo = stdin.readLineSync();
stdout.write("${i + 1}. öğrenci için Ad:");
ogr.ad = stdin.readLineSync();
stdout.write("${i + 1}. öğrenci için Soyad:");
ogr.soyad = stdin.readLineSync();
stdout.write("${i + 1}. öğrenci için Not1:");
ogr.not1 = int.parse(stdin.readLineSync()!);
stdout.write("${i + 1}. öğrenci için Not2:");
ogr.not2 =int.parse(stdin.readLineSync()!);
stdout.write("${i + 1}. öğrenci için Not3:");
ogr.not3 = int.parse(stdin.readLineSync()!);
ogrenciler.add(ogr);
}
for (var i = 0; i < ogrenciler.length; i++) {
var o = ogrenciler[i];
double ort = (o.not1!+o.not2!+o.not3!)/3;
print("${o.ad} ${o.soyad} - ort: $ort");
}
}
// Klavyeden 4 kişi için Ad, Soyad, doğum yılı bilgileri giriliyor
// bu kişileri alt alta
// ad soyad yaş
// şeklinde listelen program
import 'dart:io';
class Kisi{
String? ad;
String? soyad;
int? dogumYili;
int yasVer(){
int yas = 2024 - this.dogumYili!;
return yas;
}
}
void main(List<String> args) {
List<Kisi> kisiler = [];
for (var i = 0; i < 4; i++) {
Kisi yenikisi = Kisi();
stdout.write("Ad Girin: ");
yenikisi.ad = stdin.readLineSync();
stdout.write("Soyad Girin: ");
yenikisi.soyad = stdin.readLineSync();
stdout.write("Doğum yılı girin: ");
yenikisi.dogumYili = int.parse(stdin.readLineSync()!);
kisiler.add(yenikisi);
}
// for (var i = 0; i < kisiler.length; i++) {
// Kisi a = kisiler[i];
// int yas = 2024 - a.dogumYili!;
// print("${a.ad} ${a.soyad} $yas");
// }
for (var a in kisiler) {
int yas = 2024 - a.dogumYili!;
print("${a.ad} ${a.soyad} ${a.yasVer()}");
}
}
// class larda metodlar
// classlardaki metotlar, onların yetenekleri gibiydi
// öncelikle metod ne idi, onu hatırlayalım
// çağrıldığında iş yapan kodlar, geriye birşey döndürür veya döndürmez
import 'dart:io';
class Kisi{
String? ad;
String? soyad;
int? dogumYili;
int yasVer(){
int yas = 2024 - this.dogumYili!;
return yas;
}
void bilgileriYaz(){
stdout.write("$ad $soyad ${yasVer()}");
}
}
// constructor metodu, yapıcı metodlar
// classlarda kullanılan özel bir metoddur.
// normalde metodların dönüş tipi olur idi
// constructor da ise dönüştipi yoktur.
// constructor metodun adı class ile aynı isimdedir.
// bir classtan nesne yaratıldığında çalışır. yaratılırken
class Personel{
String? name;
String? surname;
int? maas;
// constructor
// Personel(){
// print("Yeni bir kişi oluşturuldu");
// }
// yukarıdaki kullanımda, parametre almadı, oluşturulurken bunun bilgisine verecek
// parametrelerin isimlerini ayrı ayrı yazmak yerine classtan çekebiliriz.
// Personel(this.name, this.surname, this.maas);
// bu kullanımda farketti iseniz küme bloğu açmanıza gerek yok
// zaten atama yapmıyoruz.
// aşağıdaki constructorda parametreler zorunludur.
// Personel(String ad, String soyad, int maas){
// this.name = ad; //ad.toUpperCase();
// surname = soyad;
// this.maas = maas;
// // bu kullanım niye gerekebilir.
// // değer ataması yapılırken belirli kriterlerini var ise
// // mesela ad küçükte büyükte girilse, atama yapılırken büyük yapılabilir.
// }
Personel({this.name, this.surname, this.maas});
}
void main(List<String> args) {
// normalde bir classtan nesne türettikten sonra
// o nesnenin özelliklerini değiştirebiliyoruz.
// Personel yeni = new Personel();
// yeni.name = "Recep";
// yeni.surname = "ÖZEN";
// yeni.maas = 53500;
// yeni üretilen bir nesnenin özelliklerini bu şekilde girmek biraz zahmetlidir.
// Personel yeni = new Personel("Recep","ÖZEN",3000);
// Personel a = Personel("Ali", "Tunç", 45000);
// print(yeni.surname);
Personel a = Personel();
Personel b = Personel(name: "Recep", maas: 58000);
}
// Ad, Soyad, doğum yılı bilgilerini tutan
// 4 kişi kaydı oluşturarak bir listeye ekleyin.
// ad soyad yaş
// şeklinde listeleyen program
class Kisi{
String? ad;
String? soyad;
int? dogumYili;
Kisi(this.ad, this.soyad, this.dogumYili);
int yasver(){
return 2024-this.dogumYili!;
}
}
void main(List<String> args) {
List<Kisi> liste = [
Kisi("Recep", "ÖZEN", 1980),
Kisi("Ali", "Tuna", 1987),
Kisi("Arda", "TURAN", 2005),
Kisi("Yasemin", "ABLA", 2009)
];
for (var k in liste) {
print("${k.ad} ${k.soyad} ${k.yasver()}");
}
// for (var i = 0; i < liste.length; i++) {
// var k = liste[i];
// print("${k.ad} ${k.soyad} ${k.yasver()}");
// }
}
// Şu ana kadar ne yaptık
// classın değişkenlerini hep null olabilen yaptık
// çünkü nesne üretildiğinde değer atanmış olmasını istiyordu
// artık biz constructor biliyoruz, yani
// nesne üretilirken değer atabilirim.
class Kisi{
String ad;
String soyad;
Kisi(this.ad, this.soyad);
}
// yukarıdaki kullanımda
// constructorda üretildiği anda değerler zorunlu olarak
// atandığı için null olmayan değişken hata vermeyecektir.
void main(List<String> args) {
Kisi a = Kisi("Recep", "ÖZEN");
}
class Kisi{
String ad;
String soyad;
// eğer null olmayan özelliğimizi zorunlu olmayan parametre olarak alırsak
//hata verecektir.
Kisi(this.ad, {this.soyad = ""});
// bunun çözümü maalesef sadece varsayılan bir değer atmak olur.
}
// yukarıdaki kullanımda
// constructorda üretildiği anda değerler zorunlu olarak
// atandığı için null olmayan değişken hata vermeyecektir.
void main(List<String> args) {
Kisi a = Kisi("Recep", soyad: "ÖZEN");
Kisi b = Kisi("Ahmet");
}
class Kisi{
String ad;
late String soyad;
Kisi(this.ad);
// eğer null olamayan bir değişkeni constructorda da değer atamaz isek
// late diyebiliriz.
// kardeşim biliyorum, bu null olmayacak, daha sonra ben değer atayacam
}
// yukarıdaki kullanımda
// constructorda üretildiği anda değerler zorunlu olarak
// atandığı için null olmayan değişken hata vermeyecektir.
void main(List<String> args) {
Kisi a = Kisi("Recep");
a.soyad = "ÖZEN";
Kisi b = Kisi("Ahmet");
print(b.soyad); // late ten ötürü hata vermez
// değer atamadan kullanmaya kalkarsam çalışma sırasında hata oluşur
}
// Kitap bilgileri
// adı, yazarı, türü, Fiyatı
// classın değişkenleri null olamaz.
// 5 adet kitap sahip bir dukkanımız var.
// program çalıştırıldığında kitapların bilgilerini alta alta listeliyor
/*
1. KitapAdı YazarAdı Türü Fiyatı
2. KitapAdı YazarAdı Türü Fiyatı
3. Prens YazarAdı Türü 200
4. KitapAdı YazarAdı Türü Fiyatı
5. KitapAdı YazarAdı Türü Fiyatı
Hangi kitabı almak istiyorsunuz?: _3
Kaç tane almak istiyorsunuz?: 2
Satın alınan Prens kitabı, ödenecek tutar 400 TL
*/
import 'dart:io';
class Kitap{
String adi;
String yazar;
String tur;
double fiyat;
Kitap(this.adi, this.yazar, this.tur, this.fiyat);
String yaziHali(){
return "$adi $yazar $tur $fiyat";
}
}
void main(List<String> args) {
List<Kitap> dukkan =[
Kitap("Küçük Prens", "Ali", "macera", 450),
Kitap("Maymun", "Cehennem", "roman", 100),
Kitap("Ayşe suçu ne", "recep", "roman", 4500),
Kitap("Aylin", "george orwell", "bilimsel", 5000)
];
for (var i = 0; i < dukkan.length; i++) {
var kitap = dukkan[i];
print("${i+1}. ${kitap.yaziHali()}");
}
stdout.write("Hangi kitabı almak istiyorsunuz?:");
int index = int.parse(stdin.readLineSync()!)-1;
stdout.write("Kaç tane almak istiyorsunuz?:");
int adet = int.parse(stdin.readLineSync()!);
var kitap = dukkan[index];
print("Satın alınan ${kitap.adi} kitabı, ödenecek tutar ${kitap.fiyat*adet} TL");
}
No comments:
Post a Comment