0 امتیاز
قبل در برنامه نویسی توسط (467 امتیاز)
ویرایش شده قبل توسط

سلام. لطفا به کد زیر دقت کنید:

import java.util.HashMap;
import java.util.Map;

class Person {
    Map<Integer, String> map = new HashMap<>();
}

public class MainClass {

    public static void main(String[] args) {
        Person p = new Person();
        p.map.put(13951, "Java");
        p.map.put(13951, "Python");
        p.map.put(13951, "PHP");
    }
}

همانطور که مشاهده می‌کنید، من Map و در کلاسی با نام Person تعریف کردم و سپس مقدار دهی Map و در کلاس اصلی و در متد main انجام دادم. سوال من اینه که بهتره مقداردهی Map و در کدام کلاس بنویسیم؟ یعنی مثل الان خوبه یا اینکه در کلاس Person یک متد تعریف کنم و در داخل همون کلاس پیاده سازی کنم؟

1 پاسخ

+5 امتیاز
قبل توسط (693 امتیاز)
ویرایش شده قبل توسط
 
بهترین پاسخ

برای مثال شما کد زیر بهتره

 

public class Person 
{
    //use new HashMap cuz null is bad
    private final Map<Integer, String> map = new HashMap<>();

    public void addToMap(Integer key, String value)
    {
	map.put(key, value);
    }

    public Map<Integer, String> getMap()
    {
      //this should be immutable, don't change state of object externally
      return Collections.unmodifiableMap(map);
    }
}

public class MainClass {
    public static void main(String[] args) {
        Person p = new Person();
        p.addToMap(13951, "Java");
        p.addToMap(13951, "Python");
	//
        Map<Integer, String> map = new HashMap<>(p.getMap());
    }
}

 

سوالات مشابه

+2 امتیاز
2 پاسخ 3.6هزار بازدید
0 امتیاز
1 پاسخ 505 بازدید
0 امتیاز
3 پاسخ 3.2هزار بازدید
0 امتیاز
0 پاسخ 189 بازدید
...