Re:ゼロから始める文系プログラマ

未経験がプログラミングを通して人生を変える

オブジェクト指向について徹底解説(1) ~そもそも「オブジェクト指向」とは?~


スポンサードリンク
 

f:id:ShotaNukumizu_1000:20210729065304p:plain

おはようございます。Shotaです。

プログラミングに興味がある人はオブジェクト指向プログラミングという言葉を聞いたことはありませんか?

ただ、聞いたことはあっても、なんとなくしか理解していない人も多いのではないかと思いいます。実際、様々な専門用語が登場しますし、難しい概念やプログラムで説明されていることが多いので、混乱するのも無理はないでしょう。

そこで今日の記事では、まずオブジェクト指向の概念をざっくり理解できるように、オブジェクト指向について解説していきます。



オブジェクト指向とは?

f:id:ShotaNukumizu_1000:20210723135818p:plain

オブジェクト指向プログラミングとは、プログラムを手順ではなく、モノの作成として見る考え方です。オブジェクトとは「モノ」を意味します。

例えば、「スマホ」というモノを操作する時、中でどのようなプログラムが動いているか知る必要はありません。ただ画面を触っていれば動きます。

「こんなモノを作りましょう」「そして、そのモノを実際に使ってみましょう」というのがオブジェクト指向という考え方だと思って構いません。


オブジェクト指向のメリット

f:id:ShotaNukumizu_1000:20210729070911p:plain

オブジェクト指向を使うメリットとして、以下のようなことが考えられます。

  • 大変な作業をなくす
  • 大人数で開発するときに便利
  • 同じようなものを作りやすい


それぞれ順番に解説していきます。


大変な作業をなくす

プログラムは上から順番に動作手順を書いていけば動きます。しかし、時と場合によって配置からプログラムを作るのは大変です。

例えば、スマホを生産することを考えましょう。


それぞれプログラミングしても構いませんが、スマホの機種が1万あった場合どうでしょうか?これらを一から書いていくのは相当苦痛でしょう。

なんとかプログラムを完成しても、途中でマネージャーが「やっぱりカメラの機能を追加しよう!」と言い出したらどうでしょうか?

もちろん1万ものプログラムをすべて書き換えることになってしまいます。これをやるのは至難の業です。そうならないように、「スマホ」というものを最初に定義して、それを使ったほうが楽です。


このように設計しておけば、「カメラ」という機能を追加する時「スマホ」プログラムだけを変更すればいいです。


大人数で開発するときに便利

スマホ」というものを予め用意しておけば、大人数で開発する時にも便利です。スマホ」というプログラムを作成者だけが知っていればよく、他の人はそれに備わっている機能だけ知っておけばいいです。

一から手順を書いたプログラムだと、他のプログラマーも中身を理解していないといけません。

オブジェクト指向で書けば、用意したものを他の人が触れないようにするだけでプログラムが壊れてしまう心配をなくすことができます。


同じようなものを作りやすい

タブレットを作ることを想定しましょう。「フリック入力の機能がある。横にあるボタンを押すとスクリーンショットができる」という昨日はほぼスマホと一緒ですね。

この機能を再利用するのもオブジェクト指向の考え方です。すでにあるものをうまく使って、加工したものを作れば効率は良くなります。


オブジェクト指向を理解していないデメリット

f:id:ShotaNukumizu_1000:20210720094229p:plain

プログラミングにおいて、オブジェクト指向を理解することは非常に重要です。概念を理解しないで、なんとなくわかったつもりではオブジェクト指向プログラミングをする際に苦労します。

自分で物を作ったり、機能を追加するときにオブジェクト指向を理解していないと曖昧なままプログラミングをすることになってしまい、うまくいかないです。


主なオブジェクト指向プログラミング言語

本章では、主にオブジェクト指向が利用されているプログラミング言語を紹介していきます。


Ruby

f:id:ShotaNukumizu_1000:20210620091620j:plain

Rubyは日本で開発されたプログラミング言語です。日本ではまだまだ求人数が多く人気のある言語です。

Ruby on Rails」というWebフレームワークを使うことで開発効率をアップすることができ、スタートアップ企業でよく使われることが多いスクリプト言語です。

【おすすめの記事】

shotanukumizu-1000.hatenablog.com


Java

f:id:ShotaNukumizu_1000:20210612070402p:plain

JavaPythonと同じくGoogleの三大言語の一つです。主に大規模な業務システムを導入している企業は、Javaで開発していることが多いです。

また、JavaではAndroidアプリの開発もできます。

学習のコストが高いので、初心者にはあまりおすすめできません。ただし、スキルが身に付けば求人も豊富なので転職しやすいでしょう。

【おすすめの記事】

shotanukumizu-1000.hatenablog.com


JavaScript

f:id:ShotaNukumizu_1000:20210612090942p:plain

JavaScriptはWebサイトやWebアプリケーションの開発の際によく使われるスクリプト言語です。

HTML/CSSと一緒にWebページ作成に必要不可欠な言語と言っても過言ではありませんので、案件数も多くあります。

【おすすめの記事】

shotanukumizu-1000.hatenablog.com

shotanukumizu-1000.hatenablog.com


Python

f:id:ShotaNukumizu_1000:20210617164511j:plain

PythonGoogleの三大言語の一つです。

機械学習やデータ分析によく使われていることがありますが、Web開発や業務自動化、ゲーム制作などあは広い用途にも使われています。

ライブラリが豊富で、かつ文法もシンプルなので初心者には学びやすい言語です。

本ブログでは、プログラミング初心者にはまず最初にPythonを勉強することを強くおすすめしています。

【おすすめの記事】

shotanukumizu-1000.hatenablog.com

shotanukumizu-1000.hatenablog.com


まとめ

f:id:ShotaNukumizu_1000:20210721163912p:plain

今日の記事では、以下のようなことを話しました。


今日の記事を通して、オブジェクト指向がどのようなものなのか、イメージだけでも掴んでもらえたら幸いです。

当然、今日の記事で紹介した内容がオブジェクト指向の全てではありません。それを理解するにはより一層知識を深めておく必要があります。

一番オススメな方法は、実際にプログラミングしながら理解することです。そうすることでオブジェクト指向への理解は深まるでしょう。

今日の記事はこれで終了です。長くなりましたが、最後まで読んでくださりありがとうございました.

【参考サイト】

www.sejuku.net

eng-entrance.com

tech-camp.in