こんばんにちは、ユウです。
これからはC#について紹介していくシリーズをやっていこうと思うよ!
今回はそのスタートとして、C#の基礎知識について紹介していこうと思うからぜひ読んでみてね!
本記事でのまとめ
✅C#はオブジェクト指向プログラミング言語
✅コンピュータには5つの機能が備わっている
✅CPUでプログラムは実行される
はじめに
C#を始めていくうえで、一部の人はUnityのゲーム製作のために身に着けるといった理由があるかと思います。ちなみに私がC#を始めたきっかけはゲーム制作です。
あなたはどのようなきっかけでこの記事を見つけましたか?
プログラミングを始めていくうえで、必要なものは好奇心です。
まずは、あなたがプログラミングで何がしたいのかを漠然にでもいいので考えてみてください。
それを想像しながら勉強するとしないとじゃ大きな差が生まれます。
ぜひ、何をしたいのか考えてからこの記事を読むことをお勧めします。
C#についてよくわからないという方は、こちらの記事を参考にして下さい。
https://cupuasu.club/unity-c-sharp/
コンピュータやプログラムの仕組み
プログラムがコンピュータ上でどのように動作するのか、原理を知っておくことで理解が容易となります。
ここでは大まかに知っておくだけでいいので、難しそうに感じてもそこまで気負わ無くても大丈夫です。
C#何ができる?
プログラミングを始める時、疑問に思うのがその言語で何ができるのかだと思います。
それでは、C#は何ができるのでしょうか。その答えは「あらゆるものを作ることができる」です。
漠然としすぎて、具体的な答えになっていないかと思いますがC#は様々なものができてしまう言語だという認識で大丈夫です。
従来のプログラミング言語同様、スタンダートな事務処理、数値処理プログラム、高度なスマートフォンアプリケーション、Web上のユーザー入力欄やボタンを作ってしまうことができます。
そのほかにも、Unityを使ったゲーム開発にも使用できます。
また、データベース(SQL言語)との親和性にも富んでいます。
C#始めたいけど使う環境を用意するのがめんどくさそうと思っている人がいるかもしれませんね。
ですが、安心してください。「Visual Studio」という開発環境が無料で配布されているので、パソコンさえあれば大抵の人はすぐに始めることができます。
オブジェクト指向のメリット
C#はオブジェクト指向プログラミングをサポートしています。
オブジェクト指向プログラミングは現在の現在のプログラミング手法の主流となっています。
データとそれに対する動作をオブジェクトというひとまとまりの単位としてとらえ、この組み合わせによりプログラミングを開発していきます。
なぜ、オブジェクト指向が使われるようになっているのかというと、最近はプログラムに対する要求が複雑かつ高度になってきているからです。
従来は、インターネットに接続するプログラムやデータベースを利用するプログラム等がそれぞれの専用のアプリケーションとして開発されてきました。
しかし、現在ではどのような種類のアプリケーションでもインターネットやデータベースへの接続が不可欠になってきています。例として、アップデートをメニューの中から選択するアプリケーションもそこまで珍し物ではありません。
このように、プログラミングに要求されるものが複雑化するにつれて、従来の開発手法では対応しきれなくなっています。
そこで、登場したものがオブジェクト指向プログラミングです。
先ほども述べたように、オブジェクト指向プログラミングでは、データとそれに対する操作をオブジェクトというひとかたまりの単位の組み合わせがプログラムを構成しています。
オブジェクトの鋳型がクラスと呼ばれています。プログラマは、過去の既存のクラスから自分のアプリケーションに必要なクラスを探しだしてきて、そのままあるいは独自の機能を付け加えて利用します。
このようにすることで、プログラムを1から作ることなく、作業効率が飛躍的に向上し、バグも少なくなります。
オブジェクト指向の特性
オブジェクト指向プログラミングをサポートする言語は以下の3つの特性を備えています。
・カプセル化(データの隠蔽)
・継承
・多様性(ポリモーフィズム)
カプセル化
カプセル化とは、データとそれに対する操作をワンセットとし、他の不用意な操作によってデータが破壊されないようにする仕組みのことを言います。(外部からデータを隠蔽することが可能)
継承
継承とは、文字通り引き継ぎです。プログラムを改良するとき、最初から作り直すのではなく、すでにある機能に新機能を付け足していきます。これが継承の概念です。
C#では親クラスから子クラスを派生させることで、機能を拡張することができます。
多様性
多様性とは、子クラスと親クラスの複数の形態を持つ性質のことです。
他の言語との違いとは
C#と聞くと、ほかの言語ですぐの思いつくのがC言語かと思います。
C言語は現在も幅広く使用されている言語ですが、オブジェクト指向に対応していません。
他にもC++がありますが、これにはオブジェクト指向が付与されています。
この3つには似ている共通点がありますが、様々なところで異なっているのでぜひ気になる方は過去に記事を書いているのでそちらのほうを参考にしてみてください。
コンピュータの仕組み
コンピュータの5大機能
1,制御機能
2,演算機能
3,記憶機能
4,入力機能
5,出力機能
これらをコンピュータの5大機能といいます。
制御機能とはコンピュータの各装置を制御する働きです。これにより、各装置は正常に動作することができます。
演算機能とはその名の通り演算(計算)する機能です。
この2つの機能が特に重要となり、これは主としてCPUにより実現されています。
記憶機能とは演算の結果やデータを記憶する装置です。プログラムも、実行時には必ず記憶装置に記憶され、それから実行が行われます。
入力機能とはコンピュータに情報を伝える機能で、出力機能とは演算の結果などをユーザーに伝える機能です。
CPU(Central Processing Unit)の仕組み
CPUは制御装置、演算装置のほかにレジスタ、クロック等からなります。
ほとんどすべてのコンピュータでは、プログラムでは必ずメモリに読み込まれてから実行されます。これを、フォン・ノイマン型コンピュータと言います。
すこし、踏み込んだ話をします。プログラムがメモリのX番地以降におかれたとします。するとOSはレジスタの一種であるプログラムカウンタをXに設定します。そして、CPUがX番地の命令を実行します。すると、カウンタはX+1に設定されます。すると、今度は同じようにCPUがX+1番目の命令を実行していきます。
これを繰り返すことにより、プログラムが実行されていくわけです。
最後に
今回はC#をやっていくうえで必要な基礎知識を紹介してきました。
今後は、ソースコードの書き方などを紹介していきたいと思いますので気になった方は、見てください。
今回はこれで以上となります。
最後まで読んでいただきありがとうございました!