Son kullanma tarihi geçmiş, bayatlamış bir tarayıcı kullanıyorsanız, Mercedes kullanmak yerine tosbağaya binmek gibi... Web sitelerini düzgün görüntüleyemiyorsanız eh, bi' zahmet tarayıcınızı güncelleyiniz. Modern Web standartlarını karşılayan bir tarayıcı alternatifine göz atın.
ÇözüldüJava'da nesne değişkenlerinin varsayılan değeri neden constructor ile atanır?
Merhaba, Java öğreniyorum ve kafam takılan bir soru var. Bunları cevaplayabilirseniz çok mutlu olurum.
Nesne değişkenleri (nitelikler) tanımlanırken neden varsayılan değer tanımlanma anında atanmaz da constructor ile atanır?
Merhaba, Java öğreniyorum ve kafam takılan bir soru var. Bunları cevaplayabilirseniz çok mutlu olurum.
Nesne değişkenleri (nitelikler) tanımlanırken neden varsayılan değer tanımlanma anında atanmaz da constructor ile atanır?
Kullanıcıların bilgisini tutugun bir sınıfın olsun. Bu sınıfta ismi tutan 1 adet string degişkenimiz olsun. Sen bu değişkenleri bu şekilde atarsan her kullanıcı oluşturdugunda yani nesne oluşturdugunda adları aynı olur.
Java:
class User {
public string name= "Ahmet";
}
User emre = User();
//emre.name = Ahmet olmuş oldu!
Fakat constructor yardımı ile atama yaparsan nesne oluşturdugunda degişkenlere değerleri atabiliyorsun.
Java:
class User{
public string name;
public User(string name) {
this.name = name;
}
}
User emre = User("Emre");
//emre.name -> Emre olmuş oldu!
Sen şimdi dersin ki emre.name = "Emre" Yaparım. Fakat bu işler basit projelerde pek önemli olmasada karmaşık projelerde bu tip kullanımlar seni yavaşlatır. ve hataya sürükler.
Daha farklı kod yazalım. farkı iyi görürsün.
Java:
class User{
public int id;
public String firstname;
public String lastname;
public String age;
}
void main() {
List<User> users = new ArrayList<User>();
//1. yöntem
User user1 = new User();
user1.id = 1;
user1.firstname = "User1";
user1.lastname = "last";
user1.age = 20;
users.add(user1);
//2. yöntem
users.add(new User(1, "ad", "soyad", 22));
//Constructor kullanmazsan 1. yöntemle eklersn. Düşünsene onlarca nesne ekledigini :D
}
Constructor'da dışarıdan alacağınız değerlerin ilk atamaları için kullanılabilir. Varsayılan değerler için bu şekilde kullanma da bir sakınca görmüyorum. C#'da ben de bu şekilde kullanıyorum. (çok yakın diller)
Constructor'da dışarıdan alacağınız değerlerin ilk atamaları için kullanılabilir. Varsayılan değerler için bu şekilde kullanma da bir sakınca görmüyorum. C#'da ben de bu şekilde kullanıyorum. (çok yakın diller)
When I use Java based on my C++ knowledge, I love to initialize variable using the following way. public class ME { private int i; public ME() { this.i = 100; } } After some ...
stackoverflow.com
Burda da açıklanmış ama yine de constructor içerisinde deger vermek daha iyi geldi bana. Hem girişte basitlik sağlıyor sanki.
Merhaba, Java öğreniyorum ve kafam takılan bir soru var. Bunları cevaplayabilirseniz çok mutlu olurum.
Nesne değişkenleri (nitelikler) tanımlanırken neden varsayılan değer tanımlanma anında atanmaz da constructor ile atanır?
Kullanıcıların bilgisini tutugun bir sınıfın olsun. Bu sınıfta ismi tutan 1 adet string degişkenimiz olsun. Sen bu değişkenleri bu şekilde atarsan her kullanıcı oluşturdugunda yani nesne oluşturdugunda adları aynı olur.
Java:
class User {
public string name= "Ahmet";
}
User emre = User();
//emre.name = Ahmet olmuş oldu!
Fakat constructor yardımı ile atama yaparsan nesne oluşturdugunda degişkenlere değerleri atabiliyorsun.
Java:
class User{
public string name;
public User(string name) {
this.name = name;
}
}
User emre = User("Emre");
//emre.name -> Emre olmuş oldu!
Sen şimdi dersin ki emre.name = "Emre" Yaparım. Fakat bu işler basit projelerde pek önemli olmasada karmaşık projelerde bu tip kullanımlar seni yavaşlatır. ve hataya sürükler.
Daha farklı kod yazalım. farkı iyi görürsün.
Java:
class User{
public int id;
public String firstname;
public String lastname;
public String age;
}
void main() {
List<User> users = new ArrayList<User>();
//1. yöntem
User user1 = new User();
user1.id = 1;
user1.firstname = "User1";
user1.lastname = "last";
user1.age = 20;
users.add(user1);
//2. yöntem
users.add(new User(1, "ad", "soyad", 22));
//Constructor kullanmazsan 1. yöntemle eklersn. Düşünsene onlarca nesne ekledigini :D
}
Kullanıcıların bilgisini tutugun bir sınıfın olsun. Bu sınıfta ismi tutan 1 adet string degişkenimiz olsun. Sen bu değişkenleri bu şekilde atarsan her kullanıcı oluşturdugunda yani nesne oluşturdugunda adları aynı olur.
Java:
class User {
public string name= "Ahmet";
}
User emre = User();
//emre.name = Ahmet olmuş oldu!
Fakat constructor yardımı ile atama yaparsan nesne oluşturdugunda degişkenlere değerleri atabiliyorsun.
Java:
class User{
public string name;
public User(string name) {
this.name = name;
}
}
User emre = User("Emre");
//emre.name -> Emre olmuş oldu!
Sen şimdi dersin ki emre.name = "Emre" Yaparım. Fakat bu işler basit projelerde pek önemli olmasada karmaşık projelerde bu tip kullanımlar seni yavaşlatır. ve hataya sürükler.
Daha farklı kod yazalım. farkı iyi görürsün.
Java:
class User{
public int id;
public String firstname;
public String lastname;
public String age;
}
void main() {
List<User> users = new ArrayList<User>();
//1. yöntem
User user1 = new User();
user1.id = 1;
user1.firstname = "User1";
user1.lastname = "last";
user1.age = 20;
users.add(user1);
//2. yöntem
users.add(new User(1, "ad", "soyad", 22));
//Constructor kullanmazsan 1. yöntemle eklersn. Düşünsene onlarca nesne ekledigini :D
}
Sağ olun,☺ ben tek taraflı düşündüm. Ben parametreyi atamayı hesaba katmadim çünkü constructor içerisinde de varsayilan deger olarak this.hp = 177; yapılabilir. Ben bu şekilde düşününce arada bir fark yoktu. Fakat bir de sizin bahsettiğiniz isin diğer tarafı var: parametre ile veriyi almak.
Kullanıcıların bilgisini tutugun bir sınıfın olsun. Bu sınıfta ismi tutan 1 adet string degişkenimiz olsun. Sen bu değişkenleri bu şekilde atarsan her kullanıcı oluşturdugunda yani nesne oluşturdugunda adları aynı olur.
Java:
class User {
public string name= "Ahmet";
}
User emre = User();
//emre.name = Ahmet olmuş oldu!
Fakat constructor yardımı ile atama yaparsan nesne oluşturdugunda degişkenlere değerleri atabiliyorsun.
Java:
class User{
public string name;
public User(string name) {
this.name = name;
}
}
User emre = User("Emre");
//emre.name -> Emre olmuş oldu!
Sen şimdi dersin ki emre.name = "Emre" Yaparım. Fakat bu işler basit projelerde pek önemli olmasada karmaşık projelerde bu tip kullanımlar seni yavaşlatır. ve hataya sürükler.
Daha farklı kod yazalım. farkı iyi görürsün.
Java:
class User{
public int id;
public String firstname;
public String lastname;
public String age;
}
void main() {
List<User> users = new ArrayList<User>();
//1. yöntem
User user1 = new User();
user1.id = 1;
user1.firstname = "User1";
user1.lastname = "last";
user1.age = 20;
users.add(user1);
//2. yöntem
users.add(new User(1, "ad", "soyad", 22));
//Constructor kullanmazsan 1. yöntemle eklersn. Düşünsene onlarca nesne ekledigini :D
}