この曲カッコいいな。
でもこんな曲が、バスターミナルとか町の先頭とか駄菓子屋とかで流れてたら違和感ありまくりって感じだな。
っていう、まとめもあったように。
そうなんだよな。バスタ新宿に併設してるNeWomanだったか?NEWWOMAN?New Woman?スペル忘れたが。
お土産にしては高いっていうかハイソ過ぎるっていうか、「これじゃない感」は確かに半端ないよな。
東京ソラマチみたいなテナントが入ってたら結構、いい気もするんだけどね。
閑話休題。
本題に入るか、記事のタイトルについて。どういうことかというと…
------------------------------
package dj.shikabane;
public class Underdog {
String musician;
String track;
}
class start {
public static void main(String[] args) {
Underdog music = new Underdog();
music.musician = "Tom Misch";
music.track = "South Of The River";
}
void show(String musician,String track) {
System.out.println("今日聴いた名曲は" + track + "です");
System.out.println("アーティスト名は" + musician + "です");
}
}
------------------------------
このコード、おかしいんだよな。
Eclipse上でコンパイルはできるのに、Javaアプリケーションで実行してコンソールで表示させることができない。
理由を探したところ、
であることが判明した。
ファイル名とクラス名が異なる、mainメソッドのあるクラスがファイル名と異なる、つまり。
------------------------------
package dj.shikabane;
public class start {
String musician;
String track;
}
class Underdog {
public static void main(String[] args) {
start music = new start();
music.musician = "Tom Misch";
music.track = "South Of The River";
}
void show(String musician,String track) {
System.out.println("今日聴いた名曲は" + track + "です");
System.out.println("アーティスト名は" + musician + "です");
}
}
------------------------------
と、ファイル名とmainメソッドのあるクラス名を同一にすれば行けるかと思ったが、publicの箇所で、まだエラーが出る。
------------------------------
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
public 型 start はそれ独自のファイル内に定義されなければなりません
at dj.shikabane.start.(Underdog.java:3)
at dj.shikabane.Underdog.main(Underdog.java:10)
------------------------------
な感じの。
でもJavaアプリケーションで実行することができた。
------------------------------
package dj.shikabane;
class start {
String musician;
String track;
}
String musician;
String track;
}
public class Underdog {
public static void main(String[] args) {
start music = new start();
music.musician = "Tom Misch";
music.track = "South Of The River";
}
public static void main(String[] args) {
start music = new start();
music.musician = "Tom Misch";
music.track = "South Of The River";
}
void show(String musician,String track) {
System.out.println("今日聴いた名曲は" + track + "です");
System.out.println("アーティスト名は" + musician + "です");
}
System.out.println("今日聴いた名曲は" + track + "です");
System.out.println("アーティスト名は" + musician + "です");
}
}
------------------------------
maiメソッドのある方のクラスにpublic付けるとエラーが消えた?
これは謎だな…今後、調べよう。
エラーなくコンパイルできるんだけど、結果が何も出力されんかった。
そうか、Underdogクラスでshowメソッドを呼び出してるのに、startクラスにshowメソッドが定義されてないからかな。
------------------------------
package dj.shikabane;
class start {
String musician;
String track;
void show(String musician,String track) {
System.out.println("今日聴いた名曲は" + track + "です");
System.out.println("アーティスト名は" + musician + "です");
}
}
String musician;
String track;
void show(String musician,String track) {
System.out.println("今日聴いた名曲は" + track + "です");
System.out.println("アーティスト名は" + musician + "です");
}
}
public class Underdog {
public static void main(String[] args) {
start music = new start();
music.musician = "Tom Misch";
music.track = "South Of The River";
}
public static void main(String[] args) {
start music = new start();
music.musician = "Tom Misch";
music.track = "South Of The River";
}
void show(String musician,String track) {
System.out.println("今日聴いた名曲は" + track + "です");
System.out.println("アーティスト名は" + musician + "です");
}
}
System.out.println("今日聴いた名曲は" + track + "です");
System.out.println("アーティスト名は" + musician + "です");
}
}
------------------------------
何で同じクラスなのに中身一緒のshowメソッドがある?これでもコンパイルできちゃうってのがおかしいよな。
実行しても、何も出てこないけど。
------------------------------
package dj.shikabane;
class start {
String musician;
String track;
void show() {
System.out.println("今日聴いた名曲は" + track + "です");
System.out.println("アーティスト名は" + musician + "です");
}
}
String musician;
String track;
void show() {
System.out.println("今日聴いた名曲は" + track + "です");
System.out.println("アーティスト名は" + musician + "です");
}
}
public class Underdog {
public static void main(String[] args) {
start music = new start();
music.musician = "Tom Misch";
music.track = "South Of The River";
music.show();
}
}
public static void main(String[] args) {
start music = new start();
music.musician = "Tom Misch";
music.track = "South Of The River";
music.show();
}
}
------------------------------
これでオッケー。
セオリー通り、mainメソッドのあるクラスからshowメソッドを呼び出して。
処理の中身は別のクラスに書く感じだ。
さて、今日聴いたTom Misch、かなりいいな。
Tom Misch - South Of The River (Official Audio)
ストリングスの使い方が何かJamiroquaiちょっと思い出したけど、若干違う。アコギとか手拍子とか口笛とか、プリミティブな音色も混じってて、かなり音作りこだわってるな。
ボーカルmainって感じじゃない。ボーカルも音として他の音と調和してる。
Tom Misch - Water Baby (feat. Loyle Carner) (Official Video)
JazzyPianoHipHopだ!氷上でドレッドヘアのcoolな黒人がダンスしてるPVも素敵。
『Geography』 - Tom Misch 買うかな、また。