恥じらいながら学ぶJavaとデザインパターン【0: HelloWorld】
背景
ウェッブ系のプヨグヤマになって3年目になりましたが、僕の処女言語はJavaScriptで、サーバサイドは業務ではPHPしか書いたことありません。お恥ずかしい限りです。目的はJavaを学ぶというより、デザインパターンをちゃんと学ぼう、その場しのぎのエンジニアはもうやめようと思ったから。デザインパターンをちゃんと学ぶなら、Java言語で学ぶデザインパターン入門だろうということで、必要なのでJavaしようと思った。見栄を張っていてもできないものはできないし、必要なものは必要なので、恥ずかしいけど一歩目からやる。
Hello, Java
なんかうろ覚えの知識でこんなファイルをつくった
hello.java
public class HelloJava { public static void main(String[] args) { System.out.println("Hello,Java!"); } }
コンパイルはjavac
コマンドだったと思われ
問題1)コンパイルエラーメッセージが文字化けしとる
% javac hello.java hello.java:1: �N���X HelloJava �� public �ł���A�t�@�C�� HelloJava.java �Ő錾���Ȃ���Ȃ�܂���B public class HelloJava { ^ �G���[ 1 ��
ファック。さっそくしばきたい気持ち
調査
ファイルエンコーディングもUTF-8だし、シェルの$LANG
もUTF-8だったので、javac
の文字エンコーディングの問題っぽいなということで、以下を実行。
% javac -J-Dfile.encoding=UTF-8 hello.java hello.java:1: クラス HelloJava は public であり、ファイル HelloJava.java で宣言しなければなりません。 public class HelloJava { ^ エラー 1 個
ビンゴですね
問題2)クラス名とファイル名は同じでなければならない
で、コンパイルエラーが読める文字になったところで、
クラス HelloJava は public であり、 ファイル HelloJava.java で宣言しなければなりません。
ウッ、頭が...そういえばそうだったような気が...
% mv hello.java HelloJava.java % javac -J-Dfile.encoding=UTF-8 HelloJava.java % ls -la total 16 drwxr-xr-x 4 otiai10 staff 136 7 6 21:50 . drwxr-xr-x 7 otiai10 staff 238 7 6 21:37 .. -rw-r--r-- 1 otiai10 staff 423 7 6 21:50 HelloJava.class -rw-r--r-- 1 otiai10 staff 121 7 6 21:38 HelloJava.java
実行はjava
コマンドだったような気が...
% java HelloJava Hello,Java! %
ハロージャバ。とりあえずデザインパターンの勉強進めれる状態にはなった。
雑感
積み重ねる以外に高くする方法は無い
恥じらいながら学ぶJavaとデザインパターン【0: HelloWorld】 - DRYな備忘録 http://t.co/om9H5RJIRJ
【緩募】僕と一緒に恥じらいながらデザインパターンを勉強したい人いませんか
— ( ´_ゝ`) (@otiai10) July 6, 2014
DRYな備忘録として