スレ立てるまでもない質問はここで 153匹目

■ このスレッドは過去ログ倉庫に格納されています
2020/04/06(月) 12:04:45.73ID:xHCNmW/7
質問する前にGoogleで検索しましょう。 http://www.google.com/
プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。
Javascript は Web 制作板、CGI は Web プログラミング板へ。
業界談義、愚痴はプログラマ板へどうぞ。
ゲーム関係の話題はゲーム製作板へどうぞ。
ネタ、板とは関係の無い話題はご遠慮ください。

前スレ
スレ立てるまでもない質問はここで 152匹目
https://mevius.5ch.net/test/read.cgi/tech/1573214616/
前々スレ
スレ立てるまでもない質問はここで 151匹目
https://mevius.5ch.net/test/read.cgi/tech/1541239698/

注意「〜と〜はどっちの方が○いですか?」みたいなのは
このスレの粘着荒らしですので無視してください
2020/04/11(土) 07:34:18.72ID:IIwenwUg
クラスと構造体の違いは歴史も踏まえて区別しないと説明しにくい

クラスはオブジェクト指向プログラミングと共に現れた概念で、プログラマーが自由に変数とメソッドをまとめてカプセル化する目的のもの
構造体はそれより昔からある概念で、変数のみを自由にまとめるもの
ただし同じ型の変数を任意長さで並べたものは配列と呼び構造体とは呼ばない
2020/04/11(土) 07:34:59.19ID:IIwenwUg
クラスという新しい概念の出現によって構造体との区別は曖昧になった
クラスは構造体の概念を内包できるので、現時点のJava等、言語によってはクラスだけで賄い、構造体という言語仕様を持たない
また言語によっては、単純なデータ型であることが明確化できる、記法が簡略化できる、メモリ特性が違うなどの理由で構造体をクラスと使い分けている
2020/04/11(土) 07:39:13.20ID:IIwenwUg
オブジェクト指向言語における構造体や配列は、利便性のためにクラスの一種として扱えるようにデザインされている
データの器であるという用途を逸脱しない範囲で、組み込みのメソッドが用意されている
言語によっては構造体や配列に好き勝手なメソッドを追加できるけど普通はやらない
2020/04/11(土) 07:49:37.48ID:IIwenwUg
オブジェクト指向言語における列挙体は定数を表すクラスと考えて差し支えない
intとは限らず最近はシングルトンを使う
特定ドメインの有限個の選択肢を定義して、型安全やswitchにおける記述漏れの検出のような恩恵を得るもの
無限個の場合はsealedクラスを使う
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況