質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.48%

  • Java

    14097questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Android

    6628questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Javaにおけるクラスとメソッドの違いを教えて頂きたいです。

解決済

回答 6

投稿

  • 評価
  • クリップ 0
  • VIEW 1,657

moupai

score 16

閲覧ありがとうございます。ドットインストールを参考にAndroidアプリ制作に取り組んでいるプログラミング初心者です。

ぐぐったりしてもクラスとメソッドの違いが分からず困っています。

どちらもプログラミングにおける部品のようなものとの認識をしているのですが違いが分からないので教えて頂きたく思い投稿させて頂きました。

よろしくお願いします。
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 6

checkベストアンサー

+4

オブジェクト指向、難しいですよね。
おそらくそれらの存在意義を本当に理解するには、大規模開発を実際にしてみる必要があるかもしれません。

わかりやすく簡単に説明するために、一部簡略化して説明します。

クラスは、一機能のまとまりを表します。
一機能のまとまりとして、例えば以下のKeijibanクラスという、掲示板機能のクラスを宣言したとします。
public class Keijiban{  // これがクラス

}
クラスはデータ(プロパティと呼びます)と、動作(メソッドと呼びます)で成り立ちます。

プロパティは以下のように、クラスのなかに存在する変数です。
public class Keijiban{  // これがクラス
    public String data;  // これがプロパティ
}
メソッドは、以下のように、クラスの中に存在する関数(動作)です。
public class Keijiban{  // これがクラス
    public String data;  // これがプロパティ

    public void kakikomu(String str){  // これがメソッド
        data = data + str;  // dataに書き込みを追加(動作)
    }
}
こうすることで、外部から以下のように掲示板クラスを使うことができます。
Keijiban myKeijiban = new Keijiban();
myKeijiban.kakikomu("かきこむぜ!!");

このようにして、掲示板の機能をひとまとまりにしていきます。
書き込みだけではなく、読み込みや削除などの動作も必要になっていくでしょう。
そうした動作を、クラス内にメソッドとして複数羅列していきます。

実際には、プロパティの隠ぺいなど、もっと考えて設計しなくてはなりませんが・・・

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/07/15 22:48

    とても分かりやすかったです!
    回答ありがとうございました!

    キャンセル

+1

クラスは設計図で,メソッドはクラスの中に組み込まれています.
これにより,クラスから作られたオブジェクトがメソッドという機能を持ちます.
例えば
public class A{
    public int a(int x, int y){
        return x + y;
    }
}
というクラスがあったとします.どこかで
A obj = new A();
と書くと,Aという設計図(クラス)を元にobjという新たな「物」が作られます.
この「物」はaという機能(メソッド)を持っており,
int number = obj.a(1, 2);
このように整数2つ渡すことで足し算をします.
このようにメソッドはクラスに紐付いており,そのクラスから作られた「物」にも紐付きます.
また,1つのクラスにメソッドはいくつあっても構いません.

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/07/15 22:49

    とても分かりやすかったです!
    回答ありがとうございました!

    キャンセル

0

クラスは「データ」と「データに対する操作」をまとめたものです
メソッドはその「データに対する操作」のことです。

あるデータを操作する方法をメソッドという形に限定することで、
使う側が余計なことを考えずに済みます。

こんな仕組みになった経緯は
新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡
が参考になります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/07/15 22:49

    とても分かりやすかったです!
    回答ありがとうございました!

    キャンセル

0

クラスは、
public class ●●{
}
などと、ここからはクラスですよ、と宣言しているところてす。●●のかっこのなか全て、全体を指すと考えていただければいいと思います。
一方、メソッドは、クラスのなかにあるものです。もちろん、クラスのかっこのなかにあります。moupaiさんはこんなコード見たことありませんか?
public class●●{
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
}
}
ここでいうクラスは、●●のあとのかっこから一番最後のかっこまでです。●●クラス なんね呼びます。またメソッドはonCreate(Bundle savedInstanceState)のあとのかっこから一番最後から二番めにあるかっこまでです。onCreateメソッド なんて呼びます。メソッドは、public,private,protectedなどのアクセス修飾子が付けられるもののなかで、クラスではないもの、といっていいでしょう。わかりにくい説明ですみません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/07/15 22:48

    とても分かりやすかったです!
    回答ありがとうございました!

    キャンセル

-1

クラスがメソッドをまとめたもので、メソッドは関数を指します。
Yahoo!知恵袋からなのですが、こちらを参考になさってはいかがでしょうか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/07/15 22:49

    とても分かりやすかったです!
    回答ありがとうございました!

    キャンセル

-1

私も初心者なので、あまりよく分からないのですが、クラスというのは、何かを実行する設計図だと思ってください。
設計図なので、具体的に何を実行するのか必要です。それを指定するのかが、メソッドというやつです。
勿論、クラスもメソッドもプログラムの部品ですが、クラスという設計図が何個かあって、ひとつのプログラムが完成します。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/07/15 22:49

    とても分かりやすかったです!
    回答ありがとうございました!

    キャンセル

関連した質問

  • 解決済

    クラスのフィールドとメソッド一覧を取得したい

    javaで開発を進めています。 あるクラスのフィールドとメソッドの一覧を抽出するプログラムを作成したいのですが、どういった方法があるでしょうか? また、継承関係にある親クラスのフィ

  • 解決済

    PHP オブジェクト指向で開発する理由について

    私は、PHPを勉強し始めてからまだ数ヶ月ほどの初心者です。 現在は手続き型で開発しており、オブジェクト指向を使って 開発も行おうと考えております。 しかし、別にオブジ

  • 解決済

    PHPで静的なメソッドとインスタンス生成の違いについて。

    PHPで、1秒ごとに何十もの並行しているユーザを見るウェブアプリケーションを生成しています。 同じページロードで何回もインスタンスが生成されるクラスがあります。そのクラスでは

  • 解決済

    メソッドがどうしてもわからない

    タイトルの通りです・・・ 参考書やサイトを読み漁ったのですが、「引数を渡してメソッドの中で処理をし、結果を返す」ということしか理解できませんでした。 どうか回答よろしくお願いいたし

  • 解決済

    クラスとメソッドの違いについて

    Railsにおいて、クラスを定義したり、メソッドを定義することを学んだのですが、この2つの違いがよくわかりません。 また、メソッドにはインスタンスメソッドとクラスメソッドがあり、さ

  • 解決済

    C#のエラーについて

    C#のプログラムを組んでいると プログラムは、エントリ ポイントに適切な静的 'Main' メソッドを含んでいません。    というエラーが出ることがあるのですが、原因がわかりま

  • 解決済

    javaの文字列を数値に変換したい

    javaにて TextFieldに文字列として 例えばmozi.setText(”1”);として打った場合 その数字を後で足したりかけたりするために数値にするにはどうすればよ

  • 解決済

    「抽象クラスの中の抽象クラス」とはどういう意味でしょうか?

    JAVAのオブジェクト指向を勉強・練習している者です。エンジニアとは関係ないような質問をしてすいませんが、 「スッキリわかるJava入門 第2版 (スッキリシリーズ)」の(P47

同じタグがついた質問を見る

  • Java

    14097questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Android

    6628questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。