چند ابهام در مورد سازنده ها
سلام
در قطعه کد زیر چند ابهام برای من وجود داره
چرا اول یه سازنده تعریف کرده که مقادیر filled و color رو به ترتیب false و "" میزاره بعد یه سازنده دیگه که ورودی میگیره و میزاره
چه نیازی به تابع setFilled و setColor هست؟ خوب اگه این دو تابع میان برای ما color و filled رو میگیرن چرا باید از سازنده استفاده کنیم؟؟؟
public class Shape {
private String color;
private boolean filled;
public Shape() {
this.color = "";
this.filled = false;
}
public Shape(String color, boolean filled) {
this.color = color;
this.filled = filled;
}
public String getColor() {
return this.color;
}
public void setColor(String color) {
this.color = color;
}
public boolean getFilled() {
return this.filled;
}
}
نقل قول: چند ابهام در مورد سازنده ها
یکی از دلایلش برای افزایش خوانایی و سادگی است. به جای اینکه بعد از ساخت یک شی مثلا 6 یا 7 بار setX,setY انجام دهید و... تو یک خط مقادیر اولیه رو تنظیم میکنید. بعدشم ممکنه بخواید مقادیر اولیه رو هر وقت بخواید تغییر بدید، پس به set ها نیاز دارید.
ضمنا برای فیلدهای final نمیتونید در set مقدار دهی کنید ولی در سازنده میشه. چون سازنده یکبار فقط با ایجاد شی اجرا میشه ولی set هر تعدادی ممکنه اجرا بشه برای همین final در سازنده فقط میشه مقدار دهی کرد.
نقل قول: چند ابهام در مورد سازنده ها
نقل قول:
نوشته شده توسط
vahid-p
یکی از دلایلش برای افزایش خوانایی و سادگی است. به جای اینکه بعد از ساخت یک شی مثلا 6 یا 7 بار setX,setY انجام دهید و... تو یک خط مقادیر اولیه رو تنظیم میکنید. بعدشم ممکنه بخواید مقادیر اولیه رو هر وقت بخواید تغییر بدید، پس به set ها نیاز دارید.
ضمنا برای فیلدهای final نمیتونید در set مقدار دهی کنید ولی در سازنده میشه. چون سازنده یکبار فقط با ایجاد شی اجرا میشه ولی set هر تعدادی ممکنه اجرا بشه برای همین final در سازنده فقط میشه مقدار دهی کرد.
اگه ابهامم 100 درصد بود الآن شد 80 درصد :لبخند:
چرا دو جا از سازنده استفاده کرده؟؟؟؟:متفکر:
درمورد فیلد فاینال یه توضیح کوتاه میدین؟:قلب:
نقل قول: چند ابهام در مورد سازنده ها
خب سازنده اول داره یکسری مقادیر اولیه رو ایجاد میکنه، دومی قابل تنظیم هست. ممکنه خیلی سازنده های بیشتری برای کاربری راحتتر تعریف بشه بسته به نوع کلاس. مثلا کلاس Scanner رو ببین انواع سازنده ها برای انواع ورودی های مختلف داره.
فیلد فاینال فیلدی هست که یکبار فقط میشه بهش مقدار داد و تا آخر برنامه اشاره گر یا مقدارش ثابت خواهد بود.
نقل قول: چند ابهام در مورد سازنده ها
نقل قول:
نوشته شده توسط
vahid-p
خب سازنده اول داره یکسری مقادیر اولیه رو ایجاد میکنه، دومی قابل تنظیم هست. ممکنه خیلی سازنده های بیشتری برای کاربری راحتتر تعریف بشه بسته به نوع کلاس. مثلا کلاس Scanner رو ببین انواع سازنده ها برای انواع ورودی های مختلف داره.
فیلد فاینال فیلدی هست که یکبار فقط میشه بهش مقدار داد و تا آخر برنامه اشاره گر یا مقدارش ثابت خواهد بود.
یواش یواش داره ابهامم از بین میره:لبخند:
چند تا سوال دیگه داشتم
چه زمانی باید از کلاس ها استفاده کرد؟؟؟
چون من قبلا با C++ کد میزدم بدون استفاده از شی گرایی و البته برای تمرین خیلی از سوالات سایت quera رو هم کدشو مینوشتم و الآن که دارم فکر میکنم اگه همونا رو بخوام به زبان جاوا بنویسم بازم از کلاس استفاده نمی کنم
جاوا رو من برای این که بعدا تو اندروید استودیو کد بزنم دارم یاد میگیرم به درد ویندوز هم میخوره؟؟؟
چون من یه پروژه آماده که بازی دوز بود رو روی netBeans باز کردم همون جا میشد ران کرد ولی جایی ندیدم بشه خروجی exe گرفت که توی سیستم های دیگه هم اجرا بشه
نقل قول: چند ابهام در مورد سازنده ها
به نظرم برای حل این مسائل لازمه ابتدا کتاب پایه ای در مورد جاوا بخونید.
نقل قول: چند ابهام در مورد سازنده ها
نقل قول:
نوشته شده توسط
vahid-p
به نظرم برای حل این مسائل لازمه ابتدا کتاب پایه ای در مورد جاوا بخونید.
کتاب های پایه و مرجع برای جاوا رو معرفی میکنید؟؟؟؟؟
نقل قول: چند ابهام در مورد سازنده ها
قبلا در همین انجمن و سایت های مختلف بارها معرفی شدند، جستجو کنید