のにっき

【C#】フォルダ選択ダイアログを推奨しない理由

Windowsフォームアプリ等でツールを作成する際、
フォルダのパスを取得したいとき、
なんとなく思いつくのが選択ダイアログだと思います。
このダイアログですが、個人的に推奨しません!
今回はその理由とフォルダパスを取得する時に推奨する方法をご紹介します。

ダイアログを推奨しない理由

使い手の工程数が多い!

ダイアログという手法は直感的で分かりやすいのですが、
いかんせん指定フォルダを選択するまでの手順が多すぎます!
ツール設計で大事な事は
ツールを使う時の作業工程が少ないことです。
業務で使うツールは特に、何度も使用することになります。
作業工程が少なければ少ないほど、作業時間が短縮される。
つまりは業務改善につながります。
パスを取得する作業時間は極限まで短縮するツールを作りましょう!

推奨しない使用例

こんなツールを作るときはダイアログを絶対使用してはいけません!
という例を挙げてみます。
・複数のパスを取得しないといけない
 →一つ一つダイアログを開く必要があるので、
 ものすごく手順がめんどくさいツールになります
・毎回使うたびに、違うフォルダ(ファイル)のパスを取得しないといけない
 →毎回同じパスでいいなら、前回の記入パスを記憶すればいいので
 ダイアログでも大丈夫だと思います。
 毎回新しくファイル選択が必要になるならダイアログは推奨できません

ダイアログに代わるパス設定仕様

フォルダをドラッグ&ドロップ

これにつきます!
作業対象のファイルをそのままドラッグ&ドロップ(D&D)できる仕様です。
ダイアログと違って、作業手順が一発で終了なので
とても簡単にパスの設定が可能です。

導入手順(Windowsフォームアプリ)

ドラッグ&ドロップの設定方法を、例を用いて説明します

フォームデザイン
f:id:apuridasuo:20200826191252p:plain
図:説明用フォーム内容

図のように、フォームの中にTextBoxを作って
そこにパスを記入させる仕様になります。
※フォームの中で、ドラッグできることを知らせるようにしましょう。

ソースコード

ドラッグイベント用の関数になります。

/**************************************************************************
   【EV】記入欄D&D時
**************************************************************************/
// ドロップ
private void Txt_Path_DragDrop(object sender, DragEventArgs e)
{
    // ドロップパス取得
    string[] files = (string[])e.Data.GetData(DataFormats.FileDrop, false);
    TextBox Txt_Set = (TextBox)sender;
    // 正常ならコントロールに反映
    Txt_Set.Text = files[0];
}
// ドラッグ
private void Txt_Path_DragEnter(object sender, DragEventArgs e)
{
    //マウスカーソルの表示更新
    if (e.Data.GetDataPresent(DataFormats.FileDrop))
    {
        e.Effect = DragDropEffects.All;
    }
    else
    {
        e.Effect = DragDropEffects.None;
    }
}

このソースで大事な部分は

// ドロップパス取得
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop, false);

この部分だと思います。
ドロップされたファイルが複数の場合を想定して、文字列の配列で取得しています。
そして記入するパスは一つなので、
配列の先頭パスをTextBoxに記入しています。
複数パスを一気に取得したい場合も、
配列でドロップされた全てのパスを取得しているので対応可能です。

プロパティ設定
f:id:apuridasuo:20200826192623p:plain
図:プロパティ、イベント設定

上図を参考に、記入したイベント関数の設定を行います。
以上で、ドラッグ&ドロップの仕様組み込みが完了です。

ぜひ、ドラッグ&ドロップの仕様を実際にツールに取り入れてみてください。
ダイアログとは比べ物にならないくらい使いやすくなると思います。
私も昔はダイアログを当たり前のように使っていましたが、
今回紹介したドラッグ仕様に気づけてから
業務用ツールの使いやすさが格段に上がりました!

お仕事のご依頼

作っているアプリのクレジットに乗せる

ページになります。

 

依頼できる内容

・業務改善(提案からやります) 

スマホアプリ作成(Androidのみ

VBAC#、Unity講座

(質問に答える形式から

 一から教わる形式まで何でも可)

 

料金

お見積りは無料!

最低1000円から行います

 

 連絡先

・メアド

apuridasuo1192@gmail.com

Twitter

やってますので、気軽にDMください

初めてのラノベ ~ ファンタジー編~

初めてラノベを読む方へ。

1冊目におすすめのラノベをジャンルごとにご紹介します。

今回はファンタジーものに絞ってご紹介!

この素晴らしい世界に祝福を【全17巻】

ジャンルと評価

異世界転生ほのぼの日常コメディー

・読みやすさ :★★★★★

・コメディ度 :★★★★★

・ガチ度   :★★☆☆☆

・熱盛度   :★★★★☆

・ストーリー性:★★★★☆

あらすじ

引きこもり気味の佐藤カズマが、

女の子を助けて車にひかれて死ぬ(仮)ところからストーリーが始まる。

死後の世界で、異世界に転生させる代わりにチート能力がもらえることに!

「引きニートのあんたに何の期待もしてないから~・・・」

案内役の女神の一言に切れたカズマはもらえるチート能力を口にする

「・・・・・じゃあ、あんた」

カズマはチート能力として女神アクアを手に入れた!

ゲスで人間臭いヘタレ引きニートのカズマとポンコツ駄女神のアクア。

さらにドMな美人騎士と中二病な魔法使いっ娘が仲間になり、

ダメダメだけど憎めないパーティのドタバタコメディ物語が始まる!

感想

 私が読んだラノベの中で、初めてのラノベとして

ダントツにお勧めしたい作品です

読みやすい!超完ぺきな形で完結している!超面白い

この3つが揃っているラノベは見たことないです。

まず読みやすさ!

このラノベは、登場するキャラ達すべてに強い個性があります。

なので、会話を聞いていると話し方や行動に強い個性がにじみ出ていて

説明文がなくても誰が何をしているのかすぐに想像できるのです。

ほかの作品では会話の間に、キャラの動きを説明する場面でも、

キャラの会話だけで動きも感情もびしびし伝わってくる。

キャラたちの描写力が圧倒的に上手いため、読みやすさは最強です。

そして完ぺきな形で完結!

このラノベは全17巻(スピンオフ作品は除く)で完結しています。

この17巻の中で、ダラダラしていた巻は一切ありません。

1巻から最高に面白いなぁと感じてから17巻まで、

ずっと最高に面白いまま終わってしまいました。

コメディ描写を描きながらも、しっかりしたストーリーは進んでいき、

最後も想像を超える形で物語の幕を閉じます

笑いあり、笑いあり、笑いあり、涙あり。。。。

ぐらいのペースでノンストップな冒険活劇でした。

始まりから終わりまでの完ぺきなストーリー展開っぷりは、

スラムダンク以来じゃないかと思います。ほんとに!

最後に面白い!

この作品は、コメディ+ファンタジーです。

いい意味で、万人受けするジャンルだと思いますので

誰もが第一歩として読むラノベとしてお勧めできると思います。

私が人生で一番読み返せたラノベの1つです。

※この読み返せるというのは非常にすごいことなんです!

キノの旅【全22巻】

キノの旅 the Beautiful World (電撃文庫)

キノの旅 the Beautiful World (電撃文庫)

 

ジャンルと評価

1話完結型、キノと旅するファンタジー旅日記

・読みやすさ :★★★★★

・コメディ度 :★★☆☆☆

・ガチ度   :★★★★☆

・熱盛度   :★★☆☆☆

・ストーリー性:★★★★☆

あらすじ

キノと名乗る少女が、喋るバイクのエルメスとのんびり旅行する話。

エルメスに乗って様々な国に旅するのだが、

旅先の国々が大クセにまみれた特色を持っている。

ほのぼの旅行とはかけ離れた、苦くてしょっぱい、、、

だけど何だかんだでジーンとくる。心にしみるキノの旅物語。

感想

このラノベを初めての方にお勧めする理由は、

文字に押しつぶされない、初心者向けのストーリー構成だからです。

1話完結物のため、途中のストーリーを忘れても問題なく楽しむことができます。

好きな時に好きなところから読める。

初めてラノベを読む方も安心して読んでいただける作品です。

また、短編なのにどのラノベよりも深く考えさせられる内容になっています。

人という物の良い所、悪い所の極地を国の特色として描写したうえで、

客観性を極めたキノがそれに向き合うお話です。

今度はどんな国が待ってるのか?キノはどう行動するのか?

本筋が繋がってない短編だからこそ、先の読めない展開が楽しめます。

細かな空き時間に読める作品ですので、ぜひ読んでみてください。

私が人生で一番読み返せたラノベのもう1つです。

※この読み返せるというのは非常にすごいことなんです!

とある魔術の禁書目録【続49巻】

とある魔術の禁書目録 (電撃文庫)

とある魔術の禁書目録 (電撃文庫)

  • 作者:鎌池 和馬
  • 発売日: 2004/04/08
  • メディア: 文庫
 

ジャンルと評価

不幸な無能力者が不幸な能力者を救う英雄譚

・読みやすさ :★★★★★

・コメディ度 :★★★★☆

・ガチ度   :★★★★★

・熱盛度   :★★★★★

・ストーリー性:★★★★★

あらすじ

ここは学園都市という科学の発達した場所で、

学生は科学パワーで超能力が使える能力者で溢れかえっていた。

その年で暮らす「不幸だぁ・・・」が口癖の高校生、上条当麻

当麻は学園都市の中でも能力が使えない「無能力者」だった。

口癖通り、不幸体質の当麻に新たな不幸が・・・

空から修道服をきた少女が降ってきた。

呼び込んだ不幸を見捨てることはできないお人好しな性格で、

少女を追ってきた炎を操る能力者や魔法剣士に立ち向かう当麻。

 「無能力者」の当麻の唯一生まれ持った力は

「右手に触れた異能を消す力」

少女を救うため、科学と魔法が交差する世界で当麻の冒険が始まる。

感想

このラノベは、1巻が最強に面白いです。

ラノベの面白さがこの1巻に詰まっているといっても過言じゃないです。

ラノベ特有の細かく作り込まれた世界観。

突拍子もないけどなんかしっくり来るキャラ設定やストーリー展開。

漫画じゃ描写できない、ラノベならではの面白さに引き込まれる1巻です。

だからこそ初めてのラノベにおすすめしたいです!

ただ、上記2作品と違ってこの作品には注意が必要です。

途中からめちゃくちゃダレます。。。

だからこそこの作品の読み方は、

1巻から飽きるまで読んで、飽きたら読むのをきっぱりやめる。

この気持で読みすすめることをおすすめします。

幸いこの作品は、

ちょうどいい辞め時がいくつも用意されています。

だからこそ、無理に全巻買わないで、楽しめるところまで読みましょう!

私は惰性で全部読んでますが、

40巻超えたあたりから面白いと思ってません。

ただ最後が気になるから読んでいるだけの作品に成り下がりました。

ただ1巻は最強ですので、

ラノベ特有の面白さを感じたいのであれば、ぜひ読んでみてください!

ティアムーン帝国物語【続4巻】

ジャンルと評価

わがまま姫がギロチンに処された後、過去に戻って過去を変える話

・読みやすさ :★★★★☆

・コメディ度 :★★★★☆

・ガチ度   :★★★★☆

・熱盛度   :★★★★☆

・ストーリー性:★★★★☆

あらすじ

「パンがなければケーキを食べればいいじゃない」

食糧難で崩壊した帝国の姫であったミーアはわがままが止まらなかった。

国民たちの革命で、ミーアはギロチンの刑に処される。

しかし首を斬られたと思ったら意識が戻ったところは自室のベットの上だった。

しかも、帝国が崩壊する前まで時が戻っており、ミーアも子供になっていた。

夢かと思ったミーアだが、その手には自分の血に染まった日記帳が。。。

中身は自分も国も崩壊する未来がミーアの字で書かれていた。

帝国の崩壊が未来に起こるものだと確信したミーア。

ギロチンを回避するため、愚かな自分と決別し、

国を変えるために動き出すわがまま姫の成長譚。

感想

このラノベは、キャラの心情描写がとても秀逸です。

大まかな話は、姫という国のトップに立ちながらも

わがままを捨てて、国のために行動する姫の成長物語ですが、

姫の行動に対して、周りの評価と姫自身の心情が大きくすれ違う。

だけど、だからこそ結果上手くいく、

まるでアンジャッシュのコントを見ているような作品です。

姫と周りのすれ違う心情を、うまく描写できているので、

読者としてすべてを理解できて、すごくほんわかできる面白さがあります。

巧みな描写で父性・母性をくすぐってくるので、

気づいたら主人公を応援してしまう引き込まれる作品です。

巻数は4巻と少ないですが、3巻で一区切りつくのでそこまで読んでみてください。

分かりづらい設定もなく、話に入っていきやすいです。

ぜひ、初めてのラノベに読んでみてください。

 

以上です。

ファンタジー物はまだまだおすすめのものがあるのですが、

気づいたら1時を過ぎていたのでこの辺でやめておきます。。。

文字を書くのって時間がかかりますね。

明日も仕事なのに、過去に読んだラノベ思い出してたら

目が冴えに冴えまくっちゃいました・・・・おやすみなさい。

 

 

初めてのラノベ ~ 漫画よりラノベをおすすめする理由 ~

今回は、ラノベを読んだことない人に

ラノベを読んでもらえるように、PRしようと思います。

次回以降でジャンルごとに作品紹介をしていこうと思うのですが、

今回は、ラノベ自体の良さをご紹介したいと思います。

 

漫画と比較したときのラノベの良さ

 コスパが抜群にいい

ラノベの値段は差がありますが、だいたい 漫画2冊ぐらいです。

しかし、読み終わるまでにかかる時間はだいたい漫画10冊ぐらい!

もちろん個人差がありますが、

漫画よりもお値段以上に楽しめるのは大きなメリットだと思います。

作者の書きたいものが詰まりに詰まってる

漫画よりもラノベのほうが、作者のエゴが詰まっている印象です。

訳のわからないこねくり回した設定や、突拍子もないストーリー展開。

 ラノベは漫画と違って細かい設定まで文字で説明できるので、

作者の頭の中の書きたいことを全部書いているような感じです。

漫画よりもとっつきにくいのは確かですが、

漫画よりも作者のエゴが詰まっている分、相性がいい作品は

どっぷりはまれる面白さラノベにはあります。

自分の脳内補完で自分好みの作品になる

ラノベは文字だけの描写な上に、小説よりも地の文が少ない印象です。

会話の描写が多いので背景描写・状況描写がとても少ないです。

しかも、ファンタジー要素が多いと今がどんな状況なのか、

なんとなくしか分からないことが多いです。

だからこそ、自分の脳内で勝手に状況描写を補完するのですが、

自然と自分が面白いと思う描写に補完するので自分好みの作品になっていきます。

作者の頭の中を予想・補完してその後の文章とぴったりハマった時は、

漫画では味わえないスッキリ爽快感を味わうことができます。

こんな人はラノベを読め

 漫画を読み直すのが好きな人

読み直すのが好きな人は、漫画の中の深い部分まで楽しみたい人だと思います。

だからこそ、文字だけのラノベでも

作者の深い部分まで楽しめる度量のある人が多いと思います。

小説を読むのが好きな人・または読もうとして断念した人

私は小説も好きで読みますが、

ラノベは小説とは全く違った読みやすさと面白さがあります。

ですが、ラノベの第一歩として「文字を読む事に抵抗がない」事が大事です。

小説に手を出せる人は文字抵抗は少ないと思いますので、

ラノベにも手を出せると思います。

初めてラノベを読む方へ

色々なラノベの1巻だけ読みまくろう

ラノベの1巻はパンフレットだと思え!!

ラノベは漫画よりも好き嫌いに個人差ができるものだと思います。

だからこそ、あなたが面白い!と思うラノベが見つかるまで

1巻だけ読んでみる。という読み方をおすすめします。

1巻あれば、その作品の設定やストーリーが大体わかります。

その上で、ピンときた作品だけ続きを読むようにしましょう。

ピンとこない作品を読み進めるほど苦痛なものはないですから。。。

完結済み、もしくは10巻以上出ているラノベを買おう

ラノベは漫画と違って「1巻出るのに1年ぐらい」かかります。

また、新刊が出たときに内容を確認しようとして

1から読み直すのがとてつもなくダルイ」です!

つまり、ラノベは一気に読めないとつらいものがあります。

理想は完結している作品を読むことですが、

2,3巻ぐらいの作品は読みごたえがないうえに、

完結まで何年かかるかわからないので

10巻ぐらい出ている作品を読むことをおすすめします。

AmazonPrime加入者は無料で読みまくろう

www.amazon.co.jp

Prime会員は、無料で有名なタイトルのラノベを読むことができます。

有名どころも結構無料で読めますので、評価が高めのやつを読んでみてください。

 

【VS】リストボックスの背景色をノードごとに変更する

Windowsフォームアプリのリストボックスです。
リストボックスの背景色を変更するのは意外とめんどくさかったので
手法をまとめようと思います。

フォームを作ってみた

f:id:apuridasuo:20200729131910p:plain
図:背景色を変更させたListBox

上図が、実際に作成したフォームの画像になります。
ノード背景を1つずつ変更させることで、見やすい背景色になってます。
背景色を変更させるためには、
プロパティ設定イベント組み込みを行う必要があります。

プロパティ設定

DrawMode切り替え
f:id:apuridasuo:20200729132246p:plain
図:切り替え後のプロパティ画面(プロパティ)

上図のように、背景色を変更したいListBoxのプロパティ設定の項目
「 DrawMode = OwnerDrawFixed 」
に変更します。
この設定を変更することで、後に記述します「 DrawItem
イベントを有効にすることが出来ます。

DrawItemイベント設定
f:id:apuridasuo:20200729132912p:plain
図:切り替え後のプロパティ画面(イベント)

上図のように、イベントを設定します。
※関数名は任意で構いません
※関数の内容は後に記述します

イベント関数組み込み

フォーム起動時にリストボックスにノードを入れる処理
/***********************************************************************
    【Ev】フォーム起動時イベント
***********************************************************************/
private void Form1_Load(object sender, EventArgs e)
{
    //リストにノード追加
    listBox1.Items.Clear();
    string[] setNd = new string[] 
        {"ノードA","ノードB","ノードC","ノードD","ノードE",
            "ノードF","ノードG","ノードH","ノードI","ノードJ" };
    listBox1.Items.AddRange(setNd);
}
リストボックス描画イベント内容
/***********************************************************************
    【Ev】リストボックスノード描写処理
***********************************************************************/
private void ListBox_Cmn_DrawItem(object sender, DrawItemEventArgs e)
{
    // 背景描画
    e.DrawBackground();
    // 描画許可判定
    if (e.Index < 0)
    {
        return;
    }
    // 描画用変数設定
    Brush NdClrWd = new SolidBrush(e.ForeColor);
    string NdWord = ((ListBox)sender).Items[e.Index].ToString();
    // 奇数行の場合は背景色を変更し、縞々に見えるようにする
    Color backcolor;
    if (e.Index % 2 == 0)
    {
        backcolor = Color.FromArgb(220, 220, 220);
    }
    else
    {
        backcolor = Color.FromArgb(255, 255, 255);
    }
    // ノード作成
    e = new DrawItemEventArgs(e.Graphics, e.Font, e.Bounds, e.Index, e.State, e.ForeColor, backcolor);
    e.DrawBackground();
    e.Graphics.DrawString(NdWord, e.Font, NdClrWd, e.Bounds, StringFormat.GenericDefault);
    NdClrWd.Dispose();
    e.DrawFocusRectangle();
}

このようにイベント内容を組み込むと、
画像のように背景色が縞々になります。
// 奇数行の場合は背景色を変更し、縞々に見えるようにする
この部分を自由に変更することで、自分好みの形式を設定することが出来ます。
DrawItem」イベントはListBoxのノードが変更されるたびに呼ばれるイベントなので、
常に最新のノードに対する描画が行われます。
描画処理を忘れることが無いのでぜひ、ご活用ください。

最近同じ夢ばかり見る。。。

ブログに書くことでもないのですが、

とても不思議で誰かに言いたい!

だけど知り合いに報告すると正気を疑われそうなので書かせてください。

 怖い現象

ここ半年で覚えているだけでも10回以上、同じ内容の夢を見ます。

いつもは見た夢なんて忘れるし、

今までの人生で

また同じ夢だ・・・っ!」ってなったことがなかったので少し怖いです。

 

 夢の内容

・大学生として生活している

・周りの環境は学生の頃だけど、何故か今働いている会社員でもある

・時期は、大学卒業する1年前(就活が始まるぐらい)

・場面は、友達に授業の代返を頼みながら

 (あれ?この授業結構休んでるけど、単位に必要な出席数って大丈夫かな?)

   と自問自答しているところから始まってる

・その後、就活について思いを馳せて、

 (今働いてるけど俺の身分は会社員なの?学生なの?)

 (プログラマとして経験積んでるから頑張れば結構いいとこいけるかもなー)

  と、学生なのに意味のわからない自問自答をする

・最後に、今の会社の残件を思い出しながら

(あれ?俺って会社で働いてるよね?なんで大学生なの?)

  と現実を思い出しつつ起床する

 

以上が夢の内容です。

細かい内容は覚えていないのですが、

頭の中のやり取りは忘れずに記憶に残っていて上記の内容を毎回考えています。

 

もしこれを見た

精神科医等の専門的な方がいらっしゃいましたら、

私は正常なのかコメントで教えていただけるととても嬉しいです。

 

以上、どうか温かい目でよろしくお願いいたします。

【C#】修飾子ごとに出来る事 ※. private、public、static 編

今日、後輩に「staticって何ですか?」と聞かれて、激テンパったので調べてみました。
結果として、口で説明することは私には無理だ。とさじを投げたのですが、
各修飾子の挙動をまとめることで後輩に何とか説明できました。
ブログのネタになりそうでしたのでまとめます。

構文エラーで挙動を確認してみた

C#でクラス内に各修飾子の変数を定義し、クラスを跨いで 変数にアクセスした時に、構文エラーが出るものをまとめてみました

確認用コード

▼ 変数を定義したクラス

namespace WindowsFormsApp1
{
    class Cmn_Script
    {
        //テスト用クラス
        private string Hensu_Private;
        public string Hensu_Public;
        public static string Hensu_Static;

        //メソッドから変数をいじる用
        public void SetHensu_Public()
        {
            Hensu_Private = "";
            Hensu_Public = "";
            Hensu_Static = "";
        }
        public static void SetHensu_Static()
        {
            Hensu_Private = "";
            Hensu_Public = "";
            Hensu_Static = "";
        }
    }
}

▼ 変数をいじる関数を定義したクラス

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        // A)クラスを直接いじる
        private void Event_Test_A()
        {
            Cmn_Script.Hensu_Private = "";
            Cmn_Script.Hensu_Public = "";
            Cmn_Script.Hensu_Static = "";
        }
        // B)クラス型変数を作って中身をいじる   
        private void Event_Test_B()
        {
            Cmn_Script Cls_Set = new Cmn_Script();
            Cls_Set.Hensu_Private = "";
            Cls_Set.Hensu_Public = "";
            Cls_Set.Hensu_Static = "";
        }
        // C)クラス内メソッドを作って中身をいじる   
        private void Event_Test_C()
        {
            Cmn_Script.SetHensu_Public();
            Cmn_Script.SetHensu_Static();
            Cmn_Script Cls_Set = new Cmn_Script();
            Cls_Set.SetHensu_Public();
            Cls_Set.SetHensu_Static();
        }
    }
}

こんな感じでソースを組みました。
Windowsフォームアプリ内で作成したのでクラス名が変なのは気にしないでください。
同一namespace内の別クラスからアクセスしている。という事が重要です。

実際の構文エラー

エディターの画像をそのまま貼り付けます。

f:id:apuridasuo:20200717234954p:plain
図:エディター画像
画像のとなっている部分が構文エラーになっています。
構文エラーになるという事は、修飾子のルールにのっとっていない。という事です。
つまり、エラーの有無で修飾子の特性が分かってきます。

エラーから見える修飾子の特性

エラー情報から各修飾子の特性を見ていきます

①. Static(ソース上:SetHensu_Static)

Static変数は、「 A)クラスを直接いじる 」場合と、
同一クラスのメソッドからいじる 」場合にのみエラーになっていません。
つまり、Static変数の特性は
・同一クラスからのアクセスは可能
・クラスへ直接アクセスしてからのアクセス時は可能
という事です。
このおかげで、Static変数は大きな特性がありました。
クラス型の変数を作ろうが、クラスに直接アクセスしようが同じ値になる
という特性です。
他の修飾子の変数は、クラス型の変数(ソース上:Cls_Set)を作ると、
その変数ごとに値が変わっていくと思います。
Static変数はそれを許しません。
どんな状況でもアクセスできるけど、どんな状況でも同じ値になる
というのが特性の様です。

②. Private(ソース上:Hensu_Private)

Privateの変数を追ってみると、とても分かりやすい挙動になっています。
同一クラス内のメソッド以外からのアクセスは全てエラーになっています。
また、同一クラス内のメソッドでも
staticのメソッドのアクセスもエラーになっている点に注目です!
つまり、
同一クラス内からのみアクセス可能。かつ、
クラス型の変数を作れば、変数ごとに値も変わっていく
という特性になります。

③. Public(ソース上:Hensu_Public)

PublicはStaticとPrivateの自由な部分を併せ持った感じですね。
Staticのメソッド 」、「 A)クラスを直接いじる
つまり、
クラス型変数を作って、その中で変数をいじることで
クラス変数ごとに別々の値を持ち、自由にアクセスできる。

しかし、
自由に値を変えれるため、クラスを直接アクセスする方法は禁止されている。

以上です。
全然違う説明を行っていたら大変申し訳ございません。
素人の独学だと細かい知識がうっすらし過ぎていて恥ずかしい限りです。
違っている部分があれば、ご指摘いただけると
本当に勉強になりますので嬉しいです。