JAVA C# メソッドとクラスの動きの検証。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
    class Dentaku
    {
        public int tasizan(int a, int b)
        {
            int c;

            c = a + b;

            return c;
        
        }

    }

    class Program
    {
        static void Main(string[] args)
        {

            Dentaku Dentaku1 = new Dentaku();

            int a = 1;
            int b = 2;

            int c;

            c = Dentaku1.tasizan(a, b);


            Console.WriteLine(a + "+" + b + "=" + c );


        }
    }
}

 

JAVAの記述をそのまま書いただけ。

 

結局のところオブジェクト指向って

クラス別で記述。

それを使いたい記述。主に static void main()で使用するだけ。

 

ってことかな。

 

ただ、メソッドの記述がものによっては、メインクラスの後に記述されていたりするのでその辺が微妙。

 

メソッドの記述だけど

 

        public int tasizan(int a, int b)
        {
            int c;

            c = a + b;

            return c;
        
        }

で、メソッドの戻り値は int 型。

んで、int 型のc にreturn c で返す。

なんかすっきりしないのは、このメソッドっていうのが、

変数なのか、クラスなのか、処理順はどうなのかっていう疑問はあるけど

駄文書いてけば自ずと理解できるだろう。

 

この処理だと

メソッドの作成(int a , int b)

に引数を指定

 

main メソッドで int a ,b 変数を宣言して、

dentaku クラスのtasizan メソッドに渡した。

でもこれ、c = になってるから

 

メソッドの戻り値は int 型。

んで、int 型のc にreturn c で返す。

 

はあくまで一時的なデータ置き場である。。

 

 

例えば

        public int tasizan(int a, int b)
        {
            int d;

            d = a + b;

            return d;
        
        }

 

に変更しても問題なく動く。

 

更に、

        public int tasizan(int e, int f)
        {
            int d;

            d = e + f;

            return d;
        
        }

 

引数の値をint e, int fにしても

問題なく処理はされた。

これを見ればわかるが、結局メソッドでの変数は独立しているみたいだ。

 

参考書はこの辺をまとめてしまうので、

そういった点だけが不満だー

 

 

return がないとやっぱりダメ。

戻り値が読み取ってるのは、 メソッド内の 処理後の変数ではないのかー。

 

 

なんとなくきになるのは別にreturn なくても、処理の関係上 計算をした変数にはデータは入っているはず。

 

あーなるほど

 

return は計算した c = a + bのcを

戻り値として送ってるのか。

 

だから

 

c = 3 + 3

 

C = 6

このままだと、メソッド内の変数の値でしか無い

 

return c

→戻り値として,メソッドに渡される。

 

        public int tasizan(int e, int f)
        {
            int d;

            d = e + f;

            int z = 21;

            return z;
        
        }

 

やっぱりなー。

この状態にすれば、21が出た。

21を戻り値として返してるみたいだねー。