雑記
オブジェクト指向:3
最終更新:
匿名ユーザー
-
view
さて(何がさて、なのか)、オブジェクト指向な言語ですが現在有名なところでは
C++とJavaあたりがよく使われているのでしょうか。あとC#くらいかな?
C++とJavaあたりがよく使われているのでしょうか。あとC#くらいかな?
これらの言語で何が気に入らないかというと、「基本データ型」と「クラス」を
別のものとして扱っていること。
別のものとして扱っていること。
実用的にはともかくとして、思想として美しくないと思うんですよね。
intやbyteとかも、オブジェクトじゃないの??
特にJavaの場合は、扱いに注意しないといけないような気がする。
だって、クラスのインスタンスって、これ要はポインタじゃないですか。
MyClass hoge; MyClass piyo; hoge = new MyClass(); piyo = hoge;
なんてした後、hogeの状態に変更を加えるとpiyoの状態も変化する。これってC++で書くなら
MyClass* hoge; MyClass* piyo; hoge = new MyClass; piyo = hoge;
ってことでしょ? コードもほとんど同じだし。
でも、基本データ型では、また挙動が違ってくる。
int X, Y; X = 100; Y = X; X = 200;
としたら、ちゃんとXに200、Yに100が入っている。
オブジェクト指向だって言うなら基本データ型だって同じように
オブジェクトとして扱えるべきだ。
オブジェクトとして扱えるべきだ。
int X = new int(100); X.tostring();
見たいな感じであつかってあげるべきなんじゃないのか??意味があるかどうかは別にして。
これはあくまで例だし。
これはあくまで例だし。
現在のJavaの仕様のほうが、特に基本データ型なんかはよく使うわけだから使いやすいのはわかるんだけど。
私が言いたいのは、そこが不親切というか、扱いが異なるのであれば明示的にわかるような文法にしてほしかったなあということ。
C言語/C++なんかではポインタが初心者のひとつの壁だと言われてるから、それをSUNが嫌がったのかな?
でもこんな調子では、昔よく言われていた「Javaにはポインタがない」という言葉はやっぱり欺瞞だったんだなあ。
どうせオブジェクト指向言語というなら、SmallTalkくらい潔くてもいいかも、
・・・なんてことを言うと極端すぎるかな?
・・・なんてことを言うと極端すぎるかな?