LoginSignup
0
0

More than 5 years have passed since last update.

クラスと型の関係

Last updated at Posted at 2017-08-19

swift3.0を使って初めてプログラミングを勉強しているが、プログラミングの方法を勉強するのより、プログラミングで使われている概念を理解するのが難しいと感じる。

今日はクラスと型がごちゃごちゃになってきた。初めは全然違うものというふうに理解できていたが、だんだんごちゃごちゃになってきた。

型では

let message = ""

でmessageはstring型であることが宣言できる

let message:String
でも大丈夫

let message =String()でも宣言できるようだ。

クラスでは(クラスからインスタンス作る)

var senshi = Ninngenn()
でNinngennクラスからインスタンスを作成し、senshiに代入

これがそもそもなんか似てる。

それ以外にもなんかごっちゃになってくるのが
Timerを使うとき
var timer:Timer?と書いてTimerのインスタンスを作っている
このTimerはクラスなのか型なのか

上で書いたようなルールに沿って判定するとTimerは型だ 謎である。

なんか概念が理解できてないからわからない疑問のような気がする。
そもそも型やクラスってなんだったっけ?

クラスという考え方が出てきたのがオブジェクト指向ってのが出てきてかららしい。
オブジェクト指向の概念がわかっていないからなんかよくわからないのか?

ここまできて、色々本を漁っていると
「コーディングを支える技術 成り立ちから学ぶプログラミング作法」って本にそれらしいことが書いてありそう

p.189に「クラスとは」という部分がある。

クラスとはいろんな言語で異なる意味に使われるが、
少なくともC++では「「クラスはユーザが定義できる型のこと」」とのこと

クラスと型は同じか?

さらに調べたこと

Intをcommand+クリックで調べてみた

public struct Int : SignedInteger, Comparable, Equatable {

    /// Create an instance initialized to zero.
    public init()

    /// Creates an integer from its big-endian representation, changing the
    /// byte order if necessary.
    public init(bigEndian value: Int)

と書いてあった

struct とは構造体のこと
Intは構造体の一つということ

構造体とは

Swiftの構造体はクラスと同じような機能を持つため、書式もほとんど同じです。ただ、クラスと
違って継承はできません。

「詳細!Swift3 iPhoneアプリ開発入門ノート」より

やはりクラスと型は同じなのか

0
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
0
0