为什么同一个变量可用于3种不同的东西?

时间:2016-09-05 20:06:59

标签: java android class properties

我正在关注Udacity的教程以及我不理解的东西。下面是一个自定义类适配器:

public class WordAdapter extends ArrayAdapter<Word> {

    private static final String LOG_TAG = WordAdapter.class.getSimpleName();

    public WordAdapter(Activity context, ArrayList<Word> Word) {
        super(context, 0, Word);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // Check if the existing view is being reused, otherwise inflate the view
        View listItemView = convertView;
        if (listItemView == null) {
            listItemView = LayoutInflater.from(getContext()).inflate(
                    R.layout.list_item, parent, false);
        }

        // Get the {@link AndroidFlavor} object located at this position in the list
        Word currentWord = getItem(position);

        // Find the TextView in the list_item.xml layout with the ID version_name
        TextView defaultTextView = (TextView) listItemView.findViewById(R.id.text_view_one);
        // Get the version name from the current AndroidFlavor object and
        // set this text on the name TextView
        defaultTextView.setText(currentWord.getDefaultTranslation());

        // Find the TextView in the list_item.xml layout with the ID version_number
        TextView miwokTextView = (TextView) listItemView.findViewById(R.id.text_view_lutti);
        // Get the version number from the current AndroidFlavor object and
        // set this text on the number TextView
        miwokTextView.setText(currentWord.getMiwokTranslation());

        ImageView numberImageView = (ImageView) listItemView.findViewById(R.id.image_view_id);
        numberImageView.setImageResource(currentWord.getImageResourceID());


        // Return the whole list item layout (containing 2 TextViews)
        // so that it can be shown in the ListView
        return listItemView;
    }
}

我们声明了一个名为currentWord的变量,其数据类型为Word(自定义类),然后我们在2 TextView s和1 ImageView中使用了此变量,其中我们用它来获取文字。我不明白的部分是我们如何在3种方式中使用单个变量等于单个值(getitem(position)),而不是一个?

1 个答案:

答案 0 :(得分:0)

currentWord引用对象,这意味着它可以拥有用户可以访问的各种public方法和属性(如果是&#,请查看类的源代码) 39;可供你使用)。

不是那个&#34;相同的变量&#34;用于不同的事物,因为以下各项可能具有不同的值:

  • currentWord.getDefaultTranslation()(例如,这可能会返回"Dog")。
  • currentWord.getMiwokTranslation()(例如,这可能会返回"Chuku")。
  • currentWord.getImageResourceID()(例如,这可能会返回327984579294)。

这意味着一个不同的&#34;变量&#34;每次访问,currentWord用于存储此变量集合。

您可能想了解 Encapsulation