ここから本文です

Androidの勉強をしています。 分からない所があったので教えてください。 impo...

man********さん

2013/6/312:45:20

Androidの勉強をしています。
分からない所があったので教えてください。

import java.util.Random;
import android.content.*;
import android.graphics.*;
import android.view.*;

上記はとあるプログラムの一部分です。
この部分がどういう意味を持つのか、教えてください。
お願いします。

閲覧数:
191
回答数:
2
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

kei********さん

編集あり2013/6/320:47:14

これはAndroid特有の機能ではなく、Javaの基礎的な文法の話です。これがわからないようでは、おそらくこの先も全く進めませんよ。Android開発よりも先にまずJavaの基本を学ぶべきです。

(追記)
あんまりなので一応簡単に。

Javaでは、自分のパッケージに属するクラスしか参照することができません。他のパッケージに属するクラスを用いたい場合は、完全修飾クラス名で記述する必要があります。例えば、AndroidのButtonクラスの場合、完全修飾クラス名はandroid.widget.Buttonとなっているので、

android.widget.Button btn1 = (android.widget.Button) findViewById(R.id.button1);

などと記述する必要があります。毎回これでは面倒なので、

import android.widget.Button;

と冒頭で宣言することで、コードの中では単にButtonとだけ記述すれば使用できるようになるわけです。

アスタリスク(*)をつけるのは、そのパッケージに属するすべてのクラスをimportするということを意味します。一見便利なのですが、他のパッケージに同一名称のクラスが存在していて、そちらもアスタリスクを使ってimportしてしまうと、意図していない方のクラスが使用されてしまうケースがあります。そのため、importにアスタリスクを使用することは不適切であるとローカルルールを定めているところもあります。まあ、その辺は個人の自由で構わないと思いますが。

例外として、Java.langというパッケージについては、import宣言をせずともそれに属するクラスは使用できるようになっています。String、Integer、Systemなどの基本的なクラスが何も宣言しなくても使用できるのはそのような理由です。

質問した人からのコメント

2013/6/5 09:30:42

ありがとうございます!!
とりあえず基本から勉強します。

ベストアンサー以外の回答

1〜1件/1件中

uki********さん

2013/6/320:02:40

これは元々用意されていたクラスをインポートしているということです。インポート自体はandroidは関係ありません。
インポートすることによってそのクラスのパッケージ名を省略してインスタンス化を行なうことができます。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる