カテゴリー
C言語

変数について知ろう

この章では変数について説明します。
変数とはデータを入れることができる入れ物に似ています。
例えば携帯電話やフロッピーディスクにデータを記憶すると持ち運びが出来ますが、この携帯電話やフロッピーディスクに相当するものが変数です。
変数にデータを入れながら、プログラムを書いていくのが基本です。
では例で詳しく説明します。11 「データ型名 変数名;」という構文を「変数の宣言」と言います。
データ型は「データ型について知ろう」で説明します。
この例では以下が変数の宣言です。1 変数を使用するためには必ず変数の宣言が必要です。
つまり、「これからこの変数を使用しますよ」と宣言するのが変数の宣言です。
変数には名前を付けなくてはいけないのですが、この例ではaが変数名です。
本に関係しているプログラムであればbookなどと変数名を付けます。
この例では変数名にaと付けましたが、名前を付ければ何でもいいというのではなく、一定のルールがあります。11111 予約語とはすでにC言語の言語仕様で機能が定義されている単語のことです。
次の表が予約語です。
以後、学習が進んでいくうちに予約語は自然と覚えますので、ここでは覚えなくても結構です。 11 次に「データ型名」について説明します。1 変数の前に「int」が付いていますが、これがデータ型です。
変数を使用するにはまず初めに『この変数は何型の変数です』と宣言しなければいけません。
データ型については「データ型について知ろう」で詳しく説明しますが、簡単に言いますとどのようなデータを変数に入れるのかにより型名は変わります。
この例では整数の2を変数aに入れているので、intを使用しています。1 これまで変数の宣言について説明してきましたが、次の例で変数の宣言の注意事項について説明します。1 変数の宣言は必ず関数の先頭で行ってください。
つまり、例のように宣言の前に余計なものがありますとエラーになります。
この例は「int a;」の前に1が書いてありますので、エラーです。

次は変数へのデータの入れ方について説明します。
変数の宣言が終わりますとデータを入れることが出来ますが、以下の構文でデータを入れます。1 変数を宣言してから、データを入れるというのが基本です。
データ型名は変数の宣言の箇所のみ付けてください。
例の「a=2;」の中に1と言う記号がありますが、これを代入演算子と言います。
数学の「=」とは関係ありません。
代入演算子は右辺のデータを左辺に入れる役割があります。
例で説明しますとaと言う変数に2と言うデータを入れるという意味です。
この入れる作業を「代入」といいます。
注意してほしいことは以下のように同じ変数に他のデータを代入してしまうと後から代入したデータで上書きされますので注意してください。1 つまり、結果は「変数の値は2です変数の値は20です」となりますが、整数のaに代入されていた2が1の箇所で20に上書きされます。
変数には1つしかデータを入れることができないことを覚えておいてください。
ここで変数に関しての補足をしておきます。11 他の入れ方としては以下の構文のように変数の宣言と同時にデータを入れることもできます1 これを変数の初期化と言います。
入れるデータのことを初期値と言います。
例えば先ほどの例は以下のように書き換えることができます。1 どちらの方法でデータを入れても結構です。1 次は先ほどの例の以下の箇所を説明します。1 printfについては以前、説明しましたが、その時には1のようにprintfの中の引数は文字列でした。
しかし、整数を出力させようと思って1と書いても出力することはできません(エラーになります)。
1の3の部分をダブルクォートで囲んで1と書けばエラーにならず出力はできますが、数値をダブルクォートで囲むと整数ではなくなって、文字列として出力されることになります。
では、整数型の数値を整数として出力させるにはどうしたらいいか。
それは例にあるように1という変換指定子を使います。
この例の変換指定子はaの値を1の箇所に置き換えます。1 このように数値などのデータを文字列に変換して表示させたい時に変換指定子を使います。
ここで大事なのは1と書いて出力されるのは変数の中に入っているデータであり、aという変数名が出力されるわけではありません。
つまり、この例ではaに入っている2というデータが出力されます。
つまり、結果は1になりますが、1と出力されるのではありません。

では変換指定子の基本構文について説明します。1 「テンプレート」はダブルクォートで囲んでください。
そして、このテンプレートの中に文字列と変換指定子を自由に組み合わせて記述します。
テンプレートとは「型」と言う意味なので1という型で出力しますという意味です。
変換指定子はたくさんありますが、1int型の数値である整数を出力するときに使います。
基本構文の「変数」の箇所は変数ではなくても、直接数値などを指定してもいいです。1 では他の例をみてみましょう。
これまでの例ではprintfの中の変換指定子は1つでしたが、以下の通り複数の変換指定子を設定できます。1 変数と「変換指定子」の対応関係は以下の通りです(スペースの都合でprintfの引数を2行で書いていますが、1行で書いていただいても結構です)。1 テンプレートの一番左側の変換指定子と変数側の一番左の変数は対応関係にあります。
テンプレートの真ん中の変換指定子と変数側の真ん中の変数は対応関係にあります。
テンプレートの一番右の変換指定子と変数側の一番右の変数は対応関係にあります。
変数と変換指定子の数は合わせて書いてください。

カテゴリー
C言語

エスケープシーケンスについて知ろう

この章ではエスケープシーケンスについて説明します。
エスケープシーケンスとは、ダブルクォートやシングルクォートなどC言語において文字列として入力することができない特殊な文字を1を使って表現します。
「C言語の基礎を知ろう2」で説明した1もエスケープシーケンスの1つです。
エスケープシーケンスは以下の通りです。1 では例をみてみましょう。
11タブを入れますので、結果は1です。
次の例をみてみましょう。1 ダブルクォートの中にダブルクォートは入れられないのでエスケープシーケンスを使います。
C言語のダブルクォートは文字列を囲むという機能がありますので、これを1として表示させるのが1の役割です。
1を入れないと、以下のように解釈されてしまうのでエラーになります。1 結果は1です。
次の例をみてみましょう。1 文字として1を入れたい場合には1を使用します。
結果は1です。

カテゴリー
C言語

C言語の基礎を知ろう2

この章ではputs関数について説明します。
puts関数は文字列を出力させる関数ですが、基本構文は以下の通りです。1 〇出力させたい文字列は1で囲んでください。
また、このカッコの中のデータを引数と言います。
ダブルクォート自体は出力されません。
puts関数はカッコの中の文字列を出力させる関数と言いましたが、もっと詳しく言いますと改行を入れながら文字列を表示させる関数です。
例えば以下のようにputsを2つ並べたプログラムがあるとします。1 1もし、改行しないで出力したい場合にはprintf関数を使います。1 〇 printf関数は文字列を出力する関数ですが、puts関数と違うのは改行を入れないで文字列を出力させることです。
〇出力させたい文字列をputs関数と同じようにダブルクォートで囲んで記述してください。1 1printf関数で出力する時に改行を入れたい場合には1と言う特殊な文字を使います。
HTMLの1と同じ機能を持ちます。
では例をみてみましょう。1 1次の例をみてみましょう。1 1つのprintfの中に2か所、改行文字がありますが、このように複数の箇所に1を使用することが出来ます。1

カテゴリー
C言語

C言語の基礎を知ろう1

この章ではC言語の基礎を説明していきます。11つまり、「stdio.h」がないと puts関数、printf関数、scanf関数などは使用することができません。
「stdio.h」はヘッダーファイルと呼ばれていますが、ヘッダーファイルには1という拡張子が付いています。
1#include」はプログラムに他のファイルを入れたい時に使います。1 「#include」はプログラムの先頭で使用してください。
この例では「stdio.h」と「stdlib.h」の2つのファイルを取り込んでいます。1 注意点としては1は以下のように途中で改行するとエラーになりますので気を付けてください。1 以下が代表的なヘッダーファイルです。11111エクセルをご存知の方はわかると思いますが、例えばエクセル関数にSUMと言う関数が有りますが、この関数は指定した範囲のデータに基づいて足し算を行う関数です。
例えば指定した範囲のデータが1であるならば結果(戻り値)は「15」です。
このように決められた機能を実行して結果を返すのが関数の役割です。
では以下の例について説明します。1 この例の関数名はmainですが、C言語で最初に実行されるのはmain関数です。
このmain関数は必ずプログラムに1つは必要です。
そして、実行内容はブロックの中に書いていきます。
ブロックは以下の図をみていただくと分かりますが1から1までです。
基本的にはそのブロック内ではプログラムは上から下へ実行されていきます。1 戻り値の型やvoidの説明は「関数について知ろう」で詳しく説明します。
今はmain関数の形だけを覚えておいてください。
ここで何点か注意していただきたいことがあります。
ここではputsの意味などは分からなくても結構ですので、C言語での最低限のルールを説明します。11 上の赤枠の箇所にスペースがありますが、これはプログラムを読みやすくするためにあります。このスペースのことをインデントと言います。
インデントは入れなくてもいいですが、入れるとプログラムが読みやすくなります。
そして、インデントは必ず半角で開けてください。1 intやmainなどプログラムの骨格に書く文字は全て半角で入力して下さい。
上の例は「int」「main」が全角になっていますのでエラーになります。
しかし、1など出力する文字は全角でも半角でもエラーにはなりません。1 このように関数名の途中で改行してはいけません。
また1のように関数名に空白を入れるのもエラーになります。
11このコメントの部分はプログラムには影響しません。
つまり、コメント部分は出力されません。
1行でコメントする場合は1がコメントになります。
複数行の場合は1から1までの間にコメントを書いてください。
しかし、以下のように1行のコメントのために使用してもいいです。1 以下にコメントの例を載せましたので、参考にしてください。11 puts関数はカッコの中の文字列を表示させる関数です。
「文字列」とはダブルクォートで囲まれたデータを指します。
関数については以下のように説明しました。
「エクセルをご存知の方はわかると思いますが、例えばエクセル関数にSUMと言う関数が有りますが、この関数は指定した範囲のデータに基づいて足し算を行う関数です。
例えば指定した範囲のデータが1であるならば結果(戻り値)は「15」です。」
この例の場合にはputsに1という引数を与えるとその引数を出力する機能を持ちます。
この関数に与えるデータのことを引数と言います。
puts関数の具体的な説明は次の章でします。1 文の終わりには必ず1を付けてください。
日本語でも文の終わりには「。」を付けますが、これと同じ意味です。1 この記述はmain関数の終わりには必ず付けてください。
main関数は問題なく処理を終えた場合に1を返します。
これは文字通り「処理が成功しました」と言う意味です。
もしくは1の代わりに以下のように0を入れても同じ意味になります。11

カテゴリー
C言語

Microsoft Visual C++2010 Expressの使い方

この章ではMicrosoft Visual C++2010 Expressの使い方について説明します。
1
初めに以下の「ファイル」をクリックします。1 11カーソルを合わせますと以下のメニューが表示されますので、「プロジェクト」をクリックします。11111 1111右クリックしますと以下のメニューが表示されますので「追加」にカーソルを合わせます。1 「追加」にカーソルを合わせますと以下のメニューが表示されるので、「新しい項目」をクリックします。1 「新しい項目」をクリックしますと以下の画面が表示されるので「C++ファイル」をクリックし、「名前」にファイル名を入力します。
ファイル名にはC言語の場合は1と書きます。

すべて入力しましたら「追加」をクリックします。1 1111出力に成功すると以下の赤枠の箇所に1と表示されます。1

カテゴリー
C言語

Visual Studioをインストールしよう

これから「Microsoft Visual C++2010」をインストールしますので以下の手順に従って進んでください。
このVisual Studioはテキストエディタ、コンパイル、リンクの機能を持つソフトウェアです。
初めに以下のURLのサイトに入ります。1 サイトに入りましたら、以下の箇所をクリックしてください。1 クリックしますと次の画面が表示されますので、1をクリックします。1111111 11 「インストール」をクリックしますと以下の通り、インストールが始まります。111「Microsoft Visual C++2010」を実行するためにはwindowsの場合、初めに「すべてのプログラム」をクリックします。111

カテゴリー
C言語

C言語とは何か?

これからC言語の学習を始めます。
C言語はAT&Tベル研究所のデニス・リッチー氏により開発されたプログラミング言語です。
C言語は主に電子機器や自動車の内部プログラム言語として使われています。
Cプログラムの作成手順から説明します。
[step1]
初めにテキストエディタでプログラムを書きます。
そのプログラムが書かれたファイルをソースファイルと言います。
そのソースファイルの拡張子は1です。
例えば1と名前を付けます。
しかし、このままではプログラムは動きません。
次のstep2で説明するコンパイルと言う作業が必要になります。

[step2]
ソースファイルをコンピュータで実行可能な形式に変換します。
その作業をコンパイルと言います。
そして、ソースファイルをコンパイルした結果出来るのが、オブジェクトコードです。
つまりソースコードをコンピュータが実行できるように変換したコードのことです。

[step3]
次にリンクと言う作業を行います。
実際にプログラムを実行させるためにはstep2のオブジェクトコードに「標準ライブラリなどを自動的に結合して作られたファイル」が必要になります。
この結合する作業をリンクと言います。
標準ライブラリとは画面に出力させるprintf関数やscanf関数などの機能を提供するファイルです(標準ライブラリについては後ほど説明します)。1

カテゴリー
PHP

ユーザー認証について知ろう

この章ではユーザー認証について説明します。
ユーザー認証はユーザー名とパスワードを入力しないとwebサイトの中に入ることが出来ない仕組みのことを言います。
限定された人にだけwebサイトを公開したい場合に有効です。
以下のファイルはLesson56.phpです。11
Lesson56.phpをLesson53.phpで取り込んでいます。1111 では初めから説明していきます。1 =>1とありますが、$_SERVERとはサーバから渡された情報を持った連想配列です。
サーバの情報とは今ページを見ているユーザの IP アドレス、実行中のスクリプトのファイル名、ユーザのブラウザ情報、どのリンクをたどって来たかの情報などのことを言います。
$_SERVERは連想配列と言いましたが、キーはPHPによりあらかじめ決められています。
例えばユーザのブラウザ情報を得たいのであれば1を使い、実行中のスクリプトのファイル名を得たいのであれば1を使います。
では戻りまして、ユーザー認証の例を説明します。
以下の箇所ではユーザー認証が必要なwebページにユーザーからのアクセスがあった時、$_SERVERに値が入っているかどうかを確認します。1 初めのアクセスではユーザー名もパスワードも入力していないので($_SERVERには値が入っていないので)上のif文の箇所に入ります。
isset関数は値がセットされているかどうかを確認する関数ですが、issetの前には「!」が付いていますので、「値がセットされていないのであれば」と言う意味です。1 =>header関数はHTTPヘッダを送る関数です。
以前、クッキーの箇所でリクエストとレスポンスの仕組みを説明しましたが、ユーザーがサーバにこのページに接続したいとリクエストする行為がHTTPリクエストで、そのHTTPリクエストに対してサーバ側がユーザーにレスポンスする行為がHTTPレスポンスです。
HTTPリクエスト、HTTPレスポンスの中で送られているのがHTTPヘッダです。1 HTTPリクエストのヘッダは先ほど説明しました$_SERVERによって取得できます。$_SERVERでリクエストヘッダを取得するには以下のようにヘッダ名の前に1を付けてください。1 111=>この中に1と言う記述がありますが 、ユーザー側に認証を要求したのに未認証の場合に次のようなダイアログボックスの認証画面を表示させる機能を持ちます。1 次に以下の説明をします。1 =>これは上の認証画面のキャンセルボタンを押したときに1を表示させます。
die関数はメッセージを出力し、プログラムを終了する関数です。
次に上の画面が出ましたら、ユーザー名、パスワードを入力します。
ここでユーザー名、パスワードを入力したのならば下のelse以下の処理に移ります。
ここで入力したユーザー名が1 に入り、パスワードが1に自動的に入ります。

11

そして、その入力したものと決められているユーザー名、パスワードを照合して、正しければwebページに入ることが出来ます。
間違えたユーザー名やパスワードを入力したのならばもう一度先ほどの認証画面が現れます。

カテゴリー
PHP

クラスの継承について知ろう

次はクラスの継承について説明します。
「クラスの継承」とは親クラス(元のクラス)の他に「もう1つの関連したクラス」を作ろうとした時に親クラス(元のクラス)のプロパティやメソッドを引き継ぐことを言います。
「もう1つの関連したクラス」のことを子クラスもしくはサブクラスといいます。
親クラスと同じプロパティやメソッドを子クラスで使わなくてはいけない時、同じプロパティやメソッドを子クラスで再度記述する必要はありません。
また、子クラスには子クラス独自のプロパティやメソッドも追加することもできます。
このように「親クラスに使いたいメソッドとプロパティがあって、さらに子クラスに新たなメソッドやプロパティを加えたい」時にクラスの継承を使います。
では例を見てみましょう。
下のファイルはLesson49.phpです。これが親クラスです。1111 Lesson49.phpのプロパティにはprotectedという修飾子が付いていますが、これは同じクラスか継承クラスからのみアクセスが可能と言う意味です。
仮にこの箇所をprivateに変更しますと子クラスでは使うことが出来ません。
ではLesson49.phpの中のBanksystemクラスをLesson50.phpの中のSecuritiesクラスで継承します。Securitiesの意味は証券という意味です。
設定は銀行口座から株式を買い付け、証券を買ったのなら、その代金を銀行口座から引いて、株式を売ったのならばその代金を銀行口座に入れると言うプログラムです。
以下の例はLesson50.phpです。11111 require_onceでLesson49.phpを読み込んでいますが、この記述がないとエラーになります。
では子クラスの作成方法について説明します。1 子クラス名と親クラス名の間にextendsを付けます。
注意してほしいことは全く違うクラス同士を継承してはいけないことです。
例えば銀行クラスと自動車クラスは関連のないクラスなので、継承関係を作っても意味ありません。
継承関係が正しいかどうか悩む場合には「子クラスは親クラスの子供である」という箇所の子クラス、親クラスに自身で作ったクラス名を当てはめてみて、違和感がないようでしたらそれは正しい継承関係です
「銀行クラスは自動車クラスの子供である」と聞いてもおかしいと思いませんか?違和感があるようでしたらそれは間違っています(もちろん、意味があれば問題ありません)。
「親クラスは以前違うプロジェクトで作ったけど、今回のプロジェクトで作るクラスと似ているので、親クラスを継承して、足らない部分だけメソッドやプロパティを新たに加えて子クラスを作ろう」という思想でクラスの継承を作る場合が多いです(継承を使えば初めから開発し直す手間が省けますので)。

次はプロパティ、メソッド、コンストラクタの継承について説明します。
1など Banksystemクラスのメソッドであるのに、Securitiesクラスで使用できていますが、これは親クラスのBanksystemクラスを継承しているからです。
この他の親クラスのプロパティやメソッドも同じように子クラスで使用することが出来ますが、親クラスのプロパティやメソッドでprivateで指定してあるものは使用することが出来ないので気を付けてください。
親クラスのプロパティやメソッドの他にコンストラクタも継承することが出来ます。
これは親クラスのプロパティを初期化したい場合にはコンストラクタを継承すると便利です。
親クラスのコンストラクタを子クラスで使いたい場合には1という記述が必要です。
「parent::」は親クラスを指しています。
以下のように子クラスのコンストラクタの中に親クラスのコンストラクタを書いてください。1次にオーバーライドとは何かについて説明します。
BanksystemクラスとSecuritiesクラスにresultという同じ名前のメソッドがありますが、このように親クラスと子クラスは同じ名前のメソッドを作ることが出来ます。
これをオーバーライドと言いまして、同じ名前のメソッドを作ることによって、親クラスのメソッドより子クラスのメソッドを優先して使うことが出来ます。
子クラスでは親クラスのメソッドと名前が同じでも新たなものを付け加えることができます。
例えばこの例では「株式売却後の」を子クラスのresultメソッドに加えました。1
次は子クラス独自のプロパティやメソッドについて説明します。
子クラスには子クラス独自のプロパティやメソッドを書くことが出来ます。
この例で言いますと$companyプロパティ、stockbuy メソッド、stocksellメソッドです。
では最後に出力までの流れを見てみましょう。1 =>この部分は継承したプロパティに以下のようにデータを代入しています。
1継承したdepositメソッドに10000000を渡します。1 子クラスの独自メソッドに購入金額と購入する株式名を渡します。
この時点で「河野自動車株を1000000円購入しました」が出力されます。1 最後にresultメソッドで出力します。1 結果は「株式売買後の山田銀行の近藤次郎様の残高は9150000」になります。

カテゴリー
PHP

クラスについて知ろう

この章ではクラスについて説明します。
今までのプログラムでは変数と関数を扱ってきましたが、クラスと言う機能を使うことで、多くの変数と関数を1つの機能体として働かせてデータを処理することが出来ます。
クラスとは何かしらの物を作る設計図に例えられます。
設計図は車や家や鉛筆をつくる場合に必要ですが、この設計図に当たるものがクラスです。
車や家や鉛筆の中には色々な部品が含まれていますが、それらの部品には1があります。
例えば、鉛筆であれば、「状態」は鉛筆の形、芯、線の濃さなどで、「ふるまい」は線を引く、削るなどの動作です。
その「状態やふるまい」をクラスと言う設計図に書いていきます。
「状態」を変数で書き、「ふるまい」を関数で書くことになります。
その「状態やふるまい」に指示を出すのはオブジェクトです。
例えば線を消すなど具体的な指示をオブジェクトと言う司令塔から出します。
「状態」は変数で書くと言いましたが、クラスの中の変数のことをプロパティと言います。
「ふるまい」は関数で書くと言いましたが、クラスの中の関数のことをメソッドと言います。
では初めにクラスの基本から説明します。
クラスの中に「状態」や「ふるまい」を書いていきます。1 クラス名の付け方は基本的には変数名の付け方と同じですが、変数との違いは大文字と小文字を区別しないことです。
例えば11は同じクラスを意味します。
その他にクラス名の付け方で気を付けることは最初の文字を大文字にして後は小文字というのが慣例になっていることです。1 オブジェクトを作成するためにはクラス名の前に1を付けます。
これをオブジェクト変数に代入すればオブジェクトの完成です。
このオブジェクトを作る過程を「インスタンス化」と言います。
クラスはただの設計図なので、オブジェクトから指示を出さないと何も動きません。
先ほども説明しましたが、「線を消す」など具体的な指示をオブジェクトと言う司令塔から出します。
ではクラスとオブジェクトの関係をもう一度説明します。
例えば新築の家をつくるとします。
そこで、家にこんな機能を付けたい、あんな機能も付けたいと思い悩むことでしょう。
ある人はプールや床暖房を付けたり。
それを実現するには設計図にその「プールや床暖房」やプールや床暖房を操作する機能を付け加えないといけません
実際にはクラスの中にプール、床暖房という変数を設定し、プールや床暖房を実際に機能させるためにメソッドの中で水や床の温度を上げたり下げたりする機能を加える必要があります。
この設計図はそのままでは動きませんので、誰かの指揮のもとに動かさなくてはいけません。その指揮者の役割がオブジェクトです。
「オブジェクト」は例えば冬になったらプールの水の温度を40度にするなど細かな指示をします。1
ではクラスの例を見てみましょう。1111 このクラスにはBanksystemという名前が付いています。
以下の変数がプロパティです。
プロパティの前にpublicが付いていますが、これはプロパティに対してクラスの外からでも、どこからでもアクセスが出来ることを意味します。
publicは修飾子と呼ばれています。
修飾子はこの他にもprivate、protectedなどがありますが、後ほど説明します。1 1以下のようにメソッドの前にpublicが付いていますが、これはメソッドに対してクラスの外からでも、どこからでもアクセスが出来ることを意味します。1
次はクラスを実行する方法について説明します。
クラスは設計図なのでこのままでは何も機能しません。
クラスを機能させるためには以下のようにオブジェクトを作成しなくてはいけません。
それが$Bankです。作り方は説明した通り、クラス名の前にnewを付け、それを変数に代入すればオブジェクトの完成です。1
次にプロパティにデータを入れていきます
以下のようにデータを入れます。1 $オブジェクトとプロパティの間にある「->」はアロー演算子と言います。
クラスのプロパティやメソッドにアクセスするときに使います。1
次はメソッドにデータを入れます1 メソッドの場合には「=」を使わないで、メソッドの引数に渡したいデータを入れます1

次にプロパティをクラスの中で使用する方法について説明します。
クラスの中でプロパティやメソッドを使用するためには「$this->」を使用しなくてはいけません。
ですので、メソッドの中でプロパティを使用するためには次のように「$this->」を使用します。1 結果は「山田銀行の近藤次郎様の残高は240000」となります。
オブジェクトは何個でも作成することが出来るので、次の例をみてみましょう。
先ほどの例は$Bankオブジェクトだけでしたが、オブジェクトはいくつでも作成することが出来ます。
以下の例では$Bank1を付け加えました。11

次にプロパティに対してクラスの外からのアクセスを禁止する場合の対処法について説明します。
先ほどの例との違いは以下のsum関数と$moneysumの箇所です。11111 プロパティに対してクラスの外からのアクセスを禁止する場合にはプロパティの前にprivateを付けます。
privateにする理由はクラスの外から自由にプロパティの値を書き替えられては困る場合などに使われます。
privateを付けますと、クラスの外部から直接プロパティに対して1のようなアクセスはすることが出来なくなります。
では、このprivate指定のプロパティにどのようにデータを入れるのかと言いますとメソッドを通してデータを入れます。
それが以下のsumメソッドです。
このsumメソッドは入力したデータが0より小さい場合には0を$moneysumに代入するというチェック機能を付けました。
deposiメソッドやwithdrawalメソッドにはチェック機能を付けませんでしたが、sumメソッドのようにマイナスの値が入らないようにif文でチェックしています。1
次は「コンストラクタ」といわれる機能について説明します。
例をみてみましょう。11111ではコンストラクタの機能について説明します。1 functionの次のアンダーバーは2つあることに注意してください。
コンストラクタの修飾子は必ずpublicです。
また、引数は省略できます。
この機能はコンストラクタと言いまして、オブジェクトを作成するときに自動的に呼び出されるメソッドです。
つまり、newによってオブジェクトが作られるときに自動的に呼び出されるメソッドです。
これは変数を初期化したい時に使用します。
コンストラクタを呼び出すには以下の通り、オブジェクトの引数に渡すデータを1などと記述します。
引数がない場合には省略できます。1 以下のようにオブジェクトを作成するときに自動的にコンストラクタが呼び出され、引数の値がそれぞれコンストラクタの引数に代入されます。1

次は静的メソッド静的プロパティについて説明します。111111
静的メソッドや静的プロパティはオブジェクトを作成しなくてもアクセスすることができるメソッドやプロパティで、オブジェクトからデータを入れたりすることはできません。
静的メソッドや静的プロパティの作成方法はメソッドやプロパティの前にstaticを付けるだけです。
ここでいくつかの注意点を説明します。
〇「$this->」 はstaticメソッドの内部で使用することはできません。

〇静的メソッドや静的プロパティには前の例の1 のように1を使ってアクセスすることはできません。

静的メソッドや静的プロパティはクラスに属しているメソッドやプロパティです。
今まではクラスのオブジェクトを作成して、そのオブジェクトからメソッドやプロパティにデータを入れてきました。
なぜなら、それらのメソッドやプロパティはオブジェクトに属しているからです。
例えば以下の$Bankオブジェクトと$Bank1オブジェクトで使われるプロパティとメソッドは同じものを使っていますが、各データはそれぞれのオブジェクトの持ち物ですので、共通して使えるデータはありません。1 それに対して静的メソッドや静的プロパティは各オブジェクトが共通して使えるデータです。
では先ほどの例を見てみましょう。
1の箇所が静的プロパティですが、そのプロパティには0が代入されています。
この$totalプロパティは「クラスに属しています」
次に静的プロパティにアクセスしてみましょう。
今までは1を使っていましたが、1は静的メソッドや静的プロパティでは使えないので、代わりに1という形式を使います。
以下の箇所ではコンストラクタが呼び出されるごとに$totalに1が足されていきます。1 ですので、1回目のコンストラクタの呼び出しで$totalに「1」が足されるので1では「1人目山田銀行の近藤次郎様の残高は240000」と出力されます。
2回目のコンストラクタの呼び出しで「1」である$totalにさらに「1」が足されるので1では「2人目山田銀行の近藤次郎様の残高は240000」と出力されます。
$Bankオブジェクトと$Bank1オブジェクトが1つの$totalを共通して使っていることが分かります。
これは説明した通り、$totalがクラスに属しているからです。