1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

オブジェクト指向プログラミング

Posted at

オブジェクト指向プログラミングについて

はじめに

プログラミングにはいくつかの考え方があります。その中でも、現在のアプリ開発で最も多く使われているのが オブジェクト指向プログラミング(Object-Oriented Programming: OOP) です。

本記事では、専門用語をできるだけ使わず、初学者でも直感的に理解できるように、オブジェクト指向と手続き型の違いをやさしく解説します。


オブジェクト指向とは何か?

一言で言うと、

「もの(オブジェクト)を中心に考えるプログラミングのやり方」

です。
その“もの”の中に 性質(データ)動き(機能) をセットでまとめるのが特徴です。


ケーキ屋さんの例で理解するオブジェクト指向

クラス(Class)=設計図

「チョコケーキの作り方」のように、
“こういうケーキを作るための設計図” を表すのがクラスです。

オブジェクト(Object)=実体

その設計図を使って作られた、
“実際のケーキ1つ1つ” をオブジェクトと呼びます。

例えば、同じ「チョコケーキの設計図」から
・大きめのチョコケーキ
・小さめのチョコケーキ
を何個でも作れます。


犬の例で見るオブジェクト指向

クラス(設計図)

犬クラス → 名前、年齢、吠える機能

オブジェクト(実体)

ポチ(名前=ポチ、年齢=2歳)
ココ(名前=ココ、年齢=1歳)

同じ「犬クラス」から
ポチもココも作ることができ、それぞれ独立して存在します。


オブジェクト指向言語の代表例

現在のアプリ・サービス開発ではほぼ必須レベルで使われています。

  • Java
  • C++
  • Python
  • Swift
  • Kotlin
  • Dart(Flutter)
  • Ruby
  • PHP
  • C#

オブジェクト指向が便利な理由

整理しやすい

大きなアプリでも「部品ごと」に分けて考えられる。

再利用しやすい

同じ設計図(クラス)から何度でもオブジェクトを作れる。

ミスが減る

データと機能をセットにすることで管理が簡単になる。

チーム開発に向いている

担当を分けやすく、大規模開発でも破綻しにくい。


オブジェクト指向じゃない考え方:手続き型とは?

名前

手続き型プログラミング(Procedural Programming)

一言でいうと

「やることを順番に並べて書いていく方法」 です。

レシピのように

  1. 鍋に水を入れる
  2. 火にかける
  3. 麺をゆでる
  4. 味付けする

のように、手順を上から順番に書く のが特徴です。


手続き型の代表的な言語

  • C 言語
  • Fortran
  • COBOL
  • BASIC
    など。
    昔のプログラムや OS の内部では今でもよく使われています。

オブジェクト指向と手続き型の違い(まとめ)

項目 オブジェクト指向 手続き型
考え方 モノ中心 手順中心
例え ケーキの設計図 → 実際のケーキ レシピを順番に書く
向いている分野 アプリ・ゲーム・大規模開発 小さな処理・低レベル操作
主な言語 Java, Python, Swift C, BASIC など

まとめ

  • オブジェクト指向は“もの”を中心に考えるプログラミング。
  • 手続き型は“手順”を中心に考えるプログラミング。
  • Swift や Python、Dart(Flutter)など現代的な言語はほとんどオブジェクト指向。
  • 大規模開発やアプリ開発に強いのがオブジェクト指向。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?