質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
オブジェクト指向

オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

3282閲覧

VB.NET プロパティが分からない

Shipooo

総合スコア1

オブジェクト指向

オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2021/04/28 00:50

前提・実現したいこと

プログラミング研修を初めて1週間弱の新入社員です。VB.NETの研修を受けていますが、オブジェクト指向のプロパティがよく分かりません。
Getでreturn namevalueとありますが、これはどこの部分を取得しているのでしょうか。
私の考えでは、Public property Name () As String でForm1の"山田太郎"にアクセスし、山田太郎を取得し、Setの部分でValueに山田太郎を当てはめる。出た結果はそれぞれnameValueに代入され、return namevalueでname()の部分に戻す。というイメージなのですが、これで合っていますか?
初心者なので、わかりにくい説明で申し訳ありません。
宜しければ、プロパティの部分を1行ずつどんな処理をしているのか説明していただけるとありがたいです。

発生している問題・エラーメッセージ

該当のソースコード

VB.NET

1 2Account.vbタブ 3Public Class Account 4 Private namevalue As String 5 Public Property number As String 6 Public Property balance As Integer 7 8 Public Sub New(name As String, number As String) 9 Me.name = name 10 Me.number = number 11 Me.balance = 0 12 End Sub 13 14 Public Property name() As String 15 Get 16 Return namevalue 17 End Get 18 Set(value As String) 19 If value.Length < 11 Then 20 namevalue = value 21 Else 22 namevalue = "名義不明" 23 End If 24 End Set 25 End Property 26End Class 27 28Form1.vbタブ 29Public Class Form1 30 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles_ Button1.Click 31 Dim yamada = New Account("山田太郎", "12345") 32 MessageBox.Show(yamada.returninfo()) 33 End Sub 34End Class

試したこと

何度か問題を解き直し、講師の方に質問しましたが、いまいちピンと来ませんでした。

補足情報(FW/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/04/28 00:55

自分で書いたソースなのですか? 新入社員なら先輩に聞けばよいのでは?
Shipooo

2021/04/28 03:24

これは研修中の課題の解答例です。オンラインで講師の方に教わっているのですが、初心者すぎてその説明が逆に分かりづらく、こちらで質問致しました。
退会済みユーザー

退会済みユーザー

2021/04/28 03:31

何故講師の方に聞かないのですか? 「初心者すぎてその説明が逆に分かりづらく」ということですが、文章でやり取りするここのような Q&A サイトの方が分かりやすいなんてことはあり得ません。オンラインと言え Face-to-Face でやり取りできるのでしょうから、そのやり取りを通じであなたが何が分からないかまで探ってもらって、真にあなたが聞きたいことの回答をもらえると思いますけど。
gentaro

2021/04/28 03:43

> 宜しければ、プロパティの部分を1行ずつどんな処理をしているのか説明していただけるとありがたいです。 盛大に勘違いしてるみたいだけど、ここは初心者相手に無料で先生やってくれる人を募集するところじゃない。 金払ってメンターでも雇おう。
Shipooo

2021/04/28 04:37

受講者が多く、きちんと質問をする時間が取れなかったことや、理解している人向けの説明をされ、より分かりづらくなってしまったので、こちらで質問しました。 分かりやすくまとめているサイトを探していたところ、このサイトを見つけたので、あまりよく分からずこちらで質問してしまいました。 丸投げな質問をしてしまい、不快な思いにさせて申し訳ございません。 今回は、このような質問の仕方でしたが、ベストアンサーの方が優しい方で対応してくださって良かったです。
退会済みユーザー

退会済みユーザー

2021/04/28 05:52

サイトを探すのではなく、本を買って体系的な勉強をしましょう。研修とかなら教本もあるのでは? 聞いていることはごく基本的なことなので、本を買って読めばわかると思います。それが分からないということは、そういう基本的なことすらやってないように思えるのですけど、違いますか? ネットの情報は玉石混交で、玉を見極めるのはここで聞いていることが分からないレベルの初心者には無理です。石ならまだしも毒もあるかも。本はそれよりはかなりマシ、少なくとも毒はなさそうだと思います。
Shipooo

2021/04/28 08:55 編集

この質問を投稿した後、講師の方が1対1で教えてくださる時間があったので、ベストアンサーの方の回答を踏まえた上で改めてこの内容を講師の方に質問しました。ベストアンサーの方の回答と講師の方の回答で、ようやく理解出来ました。 今後は、自分でまず情報を収集するよう心がけます。ご指摘ありがとうございました。
退会済みユーザー

退会済みユーザー

2021/04/28 10:44

そういうのはマルチポストに似たものがあって相手してくださった方々に失礼だと思うのですが?
Shipooo

2021/04/29 01:19

マルチポストというもの自体知りませんでした。今後マナーとして気をつけます。失礼致しました。
退会済みユーザー

退会済みユーザー

2021/04/29 02:34 編集

1-2. 投稿前に検索し、できるところまで自分でやってみましょう https://teratail.com/help/question-tips#questionTips1-2 どうしても調べても判らなくて行き詰まった時にこういうところで聞くのは一つの手段ですけど、自分で調べた知識じゃないと、結局身に付かないもんです。少なくとも、基礎を学習する段階でする事ではありません。調べる方法を学習するのも開発者として重要な事なので、それをすっ飛ばして答えだけ得るのは、結局成長の機会を一つ失ったと考えてください。ゆっくり調べられる新入社員のうちに、試行錯誤してしっかり基礎を身に付けてください。 実際に仕事に入ると、時間がなくて色々妥協せざるを得ない事もあります。
guest

回答1

0

ベストアンサー

プロパティの動作として

VBNET

1 Public Property name() As String 2 Get 3 Return namevalue 4 End Get 5 Set(value As String) 6 If value.Length < 11 Then 7 namevalue = value 8 Else 9 namevalue = "名義不明" 10 End If 11 End Set 12 End Property

とあった時

VBNET

1yamada.name = "あいうえお"

とプロパティに値を代入する時はSetの部分が実行されます。
その時、valueあいうえおが入った状態で呼ばれます。

また

VBNET

1Dim name As String 2name = yamada.name

と値を参照しようとした時にGetの部分が実行されます。
例ですと、namevalueという変数に入っている内容を返しnameに代入されることとなります。

デバッガでステップ実行し、各変数がどうなるのか、プログラムがどういう順番でどの部分が実行されるのか確認してみましょう。

投稿2021/04/28 01:11

YAmaGNZ

総合スコア10258

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Shipooo

2021/04/28 04:33

丸投げの質問だったのに詳しく教えてくださって本当にありがとうございます。 初心者でもわかりやすい回答で、理解が深まりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問