ホーム
Java
その他
こんなサイト腐るほどあるのになんでうちに来たの?
来たからには、ちゃんとJavaをマスターしてもらうからね。
2018/02/10

第7回 面倒な仕事はメソッドに任せておけばいい。


タイトルがあんまり良くないね。

今回はメソッドを作ったり作ったりします。
メソッドってなに?って人多いよね。
別の言語では、「関数」って言われてます。

なんか数学っぽい単語で嫌な気分になる人もいるかもしれないけど、だいじょおぉ↑↑ぶ!
安心できる画像
簡単だから。

じゃあやっていこう。

まず、メソッドってのは今までもいくつか使ってきてて、例えばInteger.parseInt()とか、
System.out.println()とか、こういう括弧がついてるやつが、メソッドです。
メソッドは、値を送ったり受け取ったりすることができて、受け取った値をメソッドのなかで弄りまわしたりできるんです。

じゃあ例文ね。

class MyMethod{
tab public static void main(String[] args){

tab tab hoge();
tab }

tab public static void hoge(){

tab tab System.out.println("hello");
tab }
}


こういう感じで、新しいメソッドを作ります。
今回作ったhoge()メソッドはいつも使ってるメインメソッドとよく似てるね。
ひとつずつ解説していくよ。

public (意味:大衆の, 公共の, 公衆の 等)
このメソッドを別のクラスから呼び出す(実行する)ことが出来るかどうかってこと。
例えば、Integer.parseInt()は、Integerクラスにあるけど、自分で作ったクラス(今回ならMyMethodクラス)からでも呼び出すことができる。
これが、publicの意味。
逆に、自分のクラス内だけで使う目的で作るなら、privateって書く。
まあ、基本的にはpublicにしておけばいいと思うよ。

static (意味:静的な)
これはちょっと難しくて、クラスってのは、オブジェクトの概念みたいなもので、staticなメソッドや変数ってのは、それひとつしかメモリに存在しない。
非staticなものは、クラスのインスタンスを作る事にメモリ領域が複製されていく。
多分この説明はちょっと間違ってる。
理解はしてるけど説明が難しいな。
例えば、自動車クラスがあるとしよう。

class Car{
tab String name;
tab String number;
tab int engineDisplacement;
}

自動車ってのは、それ自体に形はなくて、そこに車名だったりナンバーだったり排気量だったりいろんな要素を設定して、実態を作ることで、人が乗ることのできるものができる。
自動車⇒クラス
プリウス⇒インスタンス
スイフト⇒インスタンス
みたいな関係だ。

Car swift = new Car();
swift.name = "SWIFT";
swift.number = "品川 さ 1234";
swift.engineDisplacement = 1300;

これのswiftがCarクラスのインスタンスだ。
まあ、今は理解しなくてもそのうちわかってくると思う。
まあ、オブジェクト指向言語を使いこなすには必ず必要になるから、自分で調べて勉強しておいてくれ。
俺の説明力じゃ多分伝わらない。
このサイトでも説明してるから、理解できるかわからないけど一応読んでおいて。
あなたの知らないJava staticの使い方 - SEチャンネル

void
これは、メソッドから処理後に返ってくる値がありませんよって意味。
返ってくる値ってのを、「戻り値」って言って、始めの頃はよく「返り値」って間違えて言ってた記憶がある。
返り血じゃないよ。
戻り値がある場合には、戻り値の型を入れる。
もしString型の値を返すなら、public static String hoge()になる。
で、戻り値はメソッドの最後またはif文のなかとかで、returnってのを使って返す。
このやり方もあとで説明するね。

hoge()
これがメソッドの名前。
括弧の中には、引数(ひきすう)を書く。
今回は引数がないからなにも書いてない。

最初に書いた例文では、メインメソッドからhogeメソッドが呼び出されて、hogeメソッドの中に書いてあるSystem.out.println()が呼ばれる。
じゃあ次は引数を使ってみよう。


class MyMethod{
tab public static void main(String[] args){

tab tab hoge("hello");
tab }

tab public static void hoge(String msg){

tab tab System.out.println(msg);
tab }
}


これも、実行すると最初のと同じように動く。
前回と違うのは、まずメインメソッドでhogeを呼び出す時に、括弧に"hello"と入れてある。
こうすることで、hogeメソッドに文字列"hello"を送ることができる。
そして、メソッドはそれを受け取るために、public static void hoge(String msg)と書いてある。
こうすると、値をString型で受け取って、msgという変数に格納してメソッド内で使うことができる。
んで、hoge内でSystem.out.println(msg)とすることで文字列"hello"を表示することができる。
引数はカンマで区切って2つ以上送ることもできるし、配列を送ることもできる。

次、戻り値。
疲れてきたからちゃちゃっと終わらせよう。
まずは例文。

class MyMethod{
tab public static void main(String[] args){

tab tab String msg = hoge();
tab tab System.out.println(msg);
tab }

tab public static String hoge(){

tab tab return "hello";
tab }
}


これも実行時の動きは一緒。
メインメソッドでhogeを呼んで、hogeが文字列をreturnする。
変数msgに"hello"が代入されて、それをSystem.out.println(msg)で表示する。

終了。

次回は、非staticなメソッドを作ったり、インスタンスを作ったりするよ。(予定)
お疲れ様でした。
この記事はあと2回くらい読み返して勉強してください。

Bye!

2018/02/03

第6回 配列って便利なんだぜ。


どうも、おとふとです。
今回は、変数の配列について書いていきます。

配列ってのは、ひとつの変数をたくさん複製して番号をつけて使うようなやつ。

って言ってもわかりにくいだろうから、早速例文を書くよ。
これを見てなんとなくイメージできるといいな。


int[] array = {3, 5, 2, 7, 9, 7};
array[0] += array[1] + array[5];
System.out.println(array[0]);
//15と表示される


オッケー?
こんな感じで使います。
宣言の仕方からもう違うよね。
int[] array = {3, 5, 2, 7, 9, 7};
って書いてあるじゃん?
変数の名前は"array"で、arrayの0番目の値が3、1番目の値が5、2番目の値が2っていうふうに見ます。

最初の数は1じゃなくて0だから、間違えないようにね。
んで、変数を宣言したらそれを使ってみる。
arrayの0番目をarray[0]って書く
使い方は配列じゃない場合と同じで、足したり引いたりできる。

それから、宣言の方法がほかにもあって、以下の例文をみてくれ。

int[] array = new int[6];
array[0] = 3;
array[1] = 5;
array[2] = 2;
array[3] = 7;
array[4] = 9;
array[5] = 7;


こんなふうに、先に配列の値を指定して宣言することができる。
で、ちゃんと全て初期化しておくこと。

どっちの書き方も同じ意味なんだけど、状況によって使い分けるから両方覚えておこう。

じゃあ、ほかにも説明することはあるけど、今回も何かアプリを作ってみよう。
今回作るのは、複数の数字を入力して、それを大きい順に並べ替えて出力するものだ。
前回までみたいにBufferedReaderとかは使わないで、もっとシンプルな方法で入力する。
こっちの方が一般的だから、ちゃんと覚えてね。

class Sample{

public static void main(String[] args){

//argsをintにしてiに置き換える
int[] i = new int[args.length];
for(int a = 0; a < args.length; a ++){

i[a] = Integer.parseInt(args[a]);
}

//前後の数字を比べて大きい方を前に出す
for(int a = 0; a < i.length; a ++){

for(int b = 0; b < i.length - 1; b ++){

if(i[b] <= i[b + 1]){

int c = i[b];
i[b] = i[b + 1];
i[b + 1] = c;
}
}
}

//画面に出力する
for(int a : i){

System.out.println(a);
}
}
}

ちょっとややこしいね。

まず、lengthについて。
lengthってのは、配列の要素数だ。
int[] i = new int[args.length];ってので、入力された数字の数の配列をつくる。
argsってのはメインメソッドpublic static void main(String[] args)のargsだ。
コンソールで実行するときに入力できる。red:java Sample 7 5 3 4 0:redみたいな感じで。

で、if(i[b] <= i[b + 1])ってのでiのb番目の数字とb+1番目の数字を比べて、後ろのほうが大きいなら数字を入れ替えるって感じ。
それを数字の数だけ繰り返したら大きい順になるよ。

最後はfor文でひとつずつ表示する。
前に書いたfor文の書き方と違うけど、これは下のリンクで勉強してね。
【Java入門】拡張for文とJava8のforEachの使い方総まとめ | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト

毎回毎回長々と書いてもお互い疲れるし、今回はこの辺にしておきます。

Bye!
2018/01/27

第5回 条件分岐と繰り返しをマスターしよう


前回は、単純なプログラムを作ってみたけど、今回はもうちょっと本格的なものを作っていこうと思う。

それにあたって、条件分岐ってのと繰り返し文ってのを覚える必要がある。
まずは条件分岐。
もし〜ならば実行ってやつです。
「もし」は英語で「if」だから、イフ文って言います。

んで、条件式には左右を比較する演算子がよく使われる。
じゃあひとつ例文

int a = 5;
int b = 10;
if(a < b){
tab System.out.println("aよりbのほうが大きいです");
}
if(a * 2 == b){
tab System.out.println("aを2倍するとbと等しくなります。");
} else {
tab System.out.println("aの2倍とbは等しくありません。");
}

使い方は大体こんな感じになります。

一応説明しとくと、if(a < b){ ... }ってのが、「もしa < bが真ならば」ってことだ。
まあ見たまんまだから大丈夫だよな?

次に、elseについてだ。
ifに対して、違った場合にelseの内容が実行される。

だから上記の場合だと、最初にif(a * 2 == b)が判断されて、これが正なら{}の内容を実行。偽だったら、実行せずに次のelseに移る。
また、こんな書き方もできる。

int i = 5;
if(i > 5){
tab //iが5より大きい場合の処理
} else if(i < 5){
tab //iが5未満の場合の処理
} else {
tab //どちらでもない場合の処理
}


if文はこんな感じでとても簡単。
次は繰返し文だな。
これは2つの方法を紹介する。
まず、while文だ。
書き方はifと同じ。
while(条件式){ 繰り返す内容 }ってかんじになる。
あと、do-whileとかいうのもあるけど今回は割愛、気になる人は後で調べておきな。
俺は今までそれを使う機会はなかったが。

さあ、まずは例文だ。

int i = 0;
while(i < 10){

tab System.out.println("a");
tab i ++;
}


これは、コンソールにaを10回表示するだけの意味不明なプログラムだ。
まず、iという変数を宣言して0で初期化する。
次、whileのカッコの中に、1 < 10と書いてある。
つまり、i < 10が真のとき繰り返すってことだ。
繰り返しの中でaを表示して、そのあとiを1ずつ足しているから、iが10になったとき1 < 10が偽になって繰り返しが終わるって仕組みだ。

で、これをもっとスマートに書く方法ってのがもうひとつの繰り返し文のfor文ってやつで、ちょっと慣れるまでは書き間違いがあったりするかもしれないけど、とりあえず一度覚えておこう。
これは結構使うから。
書き方はちょっと特殊で、for(変数の宣言; 条件式; 毎回行う動作){ ... }ってかんじになる。
では例文。

for(int i = 0; i < 10; i ++){

tab System.out.println("a");
}

これは、先に書いたwhile文と同じ動作をする。
俺はwhileよりforの方が使う頻度高いかな。
回数を指定して繰り返し処理を行いたいときによく使います。

じゃあ今回も、実際になにか作ってみよう。

今回作るアプリは、2つの入力された数の最小公倍数を求めるものだ。
とりあえず、忘れているといけないから最小公倍数のおさらいだ。
最小公倍数は、2つ以上の数の倍数で共通の数のうち最小のものです。

計算方法は何通りかあるけど、プログラミングの練習のために今回はかなり古典的?で地道な作業をさせてみます。
処理の流れは、
1. ふたつの数字を入力してもらう。
2. 大きい方の数字を2倍,3倍,4倍ってしていって、それぞれを小さい方の数字で割って割り切れたらそれが最小公倍数
3. 最小公倍数をコンソールに出力してプログラム終了。

じゃあ書いてみよう。

import java.io.*;

class TLCM{

public static void main(String[] args) throws IOException{

System.out.println("1つめの数を入力してください。");
int a = Integer.parseInt(new BufferedReader(new InputStreamReader(System.in)).readLine());

System.out.println("2つめの数を入力してください。");
int b = Integer.parseInt(new BufferedReader(new InputStreamReader(System.in)).readLine());

int bigger = 0;
int smaller = 0;
if(a > b){

bigger = a;
smaller = b;
} else if(a < b){

bigger = b;
smaller = a;
} else if(a == b){

System.out.println("最小公倍数は" + a + "です。");
}

if(smaller > 0){

int i = 1;
while(true){

i ++;
if(bigger * i % smaller == 0){

System.out.println("最小公倍数は" + (bigger * i) + "です。");
break;
}
}
}
}
}


ちょっと長くなったけど、理解できるかな?
はじめに2つの数字を入力してもらって、int aとbに入れておく。
それをif(a > b)でどちらが大きいか判断して、大きい方の数をint boggerに、小さい方をsmallerに入れる。
aとbが同じなら、最小公倍数はその数だからそれを出力する。
本当はこのあたりで、入力された値が0以下だった場合の処理とかも書いておくべきなんだけど、面倒だったから今回はパス。
小さい方の数字が0より大きいなら、最小公倍数を求めるwhile文を実行。
while(true)ってのは、終わりなくずっとループさせるってこと。
言い忘れたけど、trueが真でfalseが偽ね。
ループの中で、大きい方を2倍、3倍ってしていく。
これを、bigger * iって書いてるね。
で、それを小さい方の数で割る。
割った余りが0ならばbigger * iが最小公倍数だってことで、それを出力する。
bigger * i % smallerってので、bigger * iをsmallerで割った余りを求めることができる。
割り切れれば余りは0だから、 == 0で判断。

求めた最小公倍数を出力したあとでbreakって書いてあるのが、繰り返し文を途中で抜けるためのおまじない
for文でも使える。
これでwhileのループを抜け出してプログラムは終了となる。

じゃあこれをコンパイルして実行してみよう。

今回わからないことがあったら、今のうちにググって解決しておくように。

では次回、配列の勉強をしよう。
多分すぐ終わる。

2018/01/20

第4回 変数とか演算子とか使って計算なんかしちゃおう


はいどーもー、おとふとでぇーーーすwwwwww

今日は、前回作ったHelloWorldにプログラムを書き足していこうと思いまーす。

で、何を書き足すかってぇと、タイトルに書いてある変数とか演算子ってのを使った計算式だ。
算数ができれば誰でも扱える、簡単で基本的なことだから、さっさと覚えてしまおう。


まずは、下の文を見てくれ。

int i = 10;
i = i + 5;
System.out.println(i);


前回、System.out.println()でデータを表示できると言ったな?
ここでは、"i"というのが表示されるわけだが、この"i"が変数だ。
変数というのは、値を入れる箱のようなものだと、よく説明されている。

まず、int i = 10;という文で、整数の値を入れるためのiという名前の変数に、10という整数を入れている。
専門用語を使うと、「int型の変数iを10で初期化する」と言う。
とりあえず覚えておいてくれ。

次に、i = i + 5;という文で、変数iに、i+5を代入している。
プログラミングで=の記号は、数学のイコールとは意味が違って、左辺に右辺の値を代入するってことなんだわ。
だから、この場合i = 10 + 5ってことになるから、iの中身は15になる。

で、最後にSystem.out.println(i);で、iの値である15をコンソール画面に表示するわけだ。


さあ、変数の使い方についてはこれでわかったと思うが、続いて変数の作り方だ。
変数を作ることを、宣言すると言うんだ。
コンピュータに対して、「今からこの変数を使いますよー」って、宣言するんだ。
宣言の方法は、"型 変数名;"と書くこと。
そしてついでに、型 変数名 = 値;で初期化する。
この「型」というのは、いろんなものがあるんだが。
まず変数というのは、入れることができる値がきまっているんだ。
今回の場合なら、intという型を使っている。
"int"というのは、英語の「整数」という意味の"Integer"からとっている。
"int i;"と書くことで、iは整数型の変数として宣言することができる。

ほかにもよく使う型をいくつか紹介するから覚えておいて欲しい。
書くのは面倒だから下のリンクから確認しておいてくれ。
基本のデータ型 - 変数とデータ型 - Java入門 (JavaDrive)


で、次に演算子のお勉強だ。
演算子ってのは、計算式に使う記号のことだ。
+ - * / = < > これらがそうで、組み合わせて使うこともある。
+と-は見たまんま、足し算と引き算だ。
掛け算では*(アスタリスク)を使って、割り算では/(スラッシュを使う。
=はいろいろな記号と組み合わせて使うことができる。例えば、
i += 5;と書くと、iに5を足したものをiに代入するということになる。
つまり、i = i + 5;とは、i += 5;と書くことが出来る。
- * / も同様だ。
他に、不等号とも組み合わせることができる。
例えば、>=と書くと、≧と同じ意味になる。
だから、System.out.println(1 >= 2);って書くと、コンソールにはfalseと表示される。

じゃあ、長々と説明していてもつまらないだろうし、ちょっと実用的なアプリをひとつ作ってみようか。
どこで使うかわからないけど、円の直径を入力してもらって、面積を求めて出力するアプリだ。
とりあえず、こう書いてくれ。

import java.io.*;

class HelloWorld{

tab public static void main(String[] args) throws IOException{

tab tab String str = new BufferedReader(new InputStreamReader(System.in)).readLine();
tab }
}


こうすると、文字列型の変数strに、ユーザーから入力してもらった文字列が代入される。
これはあまり使うことないから覚えなくていい。

しかし、計算をするわけだから数字を入力してもらいたい。
こういう時は、こうする。

import java.io.*;

class HelloWorld{

tab public static void main(String[] args) throws IOException{

tab tab System.out.println("円の直径を整数で入力してください。");
tab tab String str = new BufferedReader(new InputStreamReader(System.in)).readLine();
tab tab int i = Integer.parseInt(str);
tab }
}


まず、コンソールに「整数で入力してください」というメッセージを表示して、入力を行ってもらう。
そして、入力された文字列strを、整数型のint iに変換する。
例えばユーザーが"10"と入力したとしても、"10"という文字列として入力されてしまう(仕様)なので、自分で整数に変換してやる必要がある。
このとき使う変換器が、Integer.parseInt()ってやつだ。
int i = Integer.parseInt(str);と書いてやることで、文字列のstrを整数に変換してiを初期化することができる。

次は計算だ。
ゆとり世代は円周率を3と習ったらしいが、俺の世代は3.14と習ったから、3.14で計算する。
つまり、小数をつかうわけだから、小数の型であるdoubleを使う必要がある。
円の面積は、半径×半径×πだから、
double hankei = (double)i / 2;と書いてまずは半径を求めてやる。
んで、
double menseki = hankei * hankei * 3.14;で面積を求める。
ここで重要になってくるのが、型キャストというやつだ。
なぜかというと、整数を割り算した答えは整数になってしまうからだ。
どういうことかというと、例えばプログラム中で7 / 2をすると、答えは3になってしまう。
どうすれば解決できるかってぇと、7.0 / 2をするんだ。
7.0という小数を2で割ると、答えも小数の3.5になる。
8.0を2で割っても、4.0になる。

じゃあどうやって整数を小数に変換するのかってぇと、それが型キャストってやつで、(double)iって書くとiをintからdoubleに変換できるんだけど、説明めんどくさいから下のリンクから勉強して。
型キャスト | Javaコード入門

ってわけで、最後にSystemout.println("面積は" + menseki + "です。");と書けば完成ですわ。

import java.io.*;

class HelloWorld{

tab public static void main(String[] args) throws IOException{

tab tab System.out.println("円の直径を整数で入力してください。");
tab tab String str = new BufferedReader(new InputStreamReader(System.in)).readLine();
tab tab int i = Integer.parseInt(str);
tab tab double hankei = (double)i / 2;
tab tab double menseki = hankei * hankei * 3.14;
tab tab System.out.println("面積は" + menseki + "です。");
tab }
}


じゃあこれを自分でHelloWorld.javaに書いて、コンパイルして実行してみて。


......
ちゃんと動いた?

そうだ、今回は見やすいように何行にも分けて書いたけど、実際はこれ1行の文でできちゃうから。

import java.io.*;

class HelloWorld{

tab public static void main(String[] args) throws IOException{

tab tab System.out.println(Math.pow(Double.parseDouble(new BufferedReader(new InputStreamReader(System.in)).readLine()) / 2, 2) * 3.14);
tab }
}


こんな感じ。
でも、読みにくくなるからなるべく分けて書こう。


さぁ~て、次回のJava講座は??

・条件分岐
・繰返し文
の2本でお送りしまぁ~すwwwwwww
じゃんっけんっぽん!
結果を見る


2018/01/17

第3回 HelloWorldプログラムを書いて実行してみる。


本当はプログラムの構造とか書き方とかから説明したいところだけど、また長々と説明から入ってしまったら途中で読むのやめられてしまいそうだから、ここからは先に作って後から説明するスタイルで行こうと思う。

じゃあ、まずは、前回作った"HelloWorld.java"を開いてくれ。
ここにコードを書いていく。

以下のように書こう。

class HelloWorld{

tab public static void main(String[] args){

tab tab System.out.println("Hello, world!");
tab }
}

さあ、これをコンパイルして実行だ。
内容の説明は後。
前回作っておいた"コンパイル.bat"を実行してみてくれ。
黒いコンソール画面が出て、
このように表示されるはずだ。

C:\Users\*****\Documents\Java\HelloWorld>javac -encoding utf-8 HelloWorld.java

C:\Users\*****\Documents\Java\HelloWorld>pause
続行するには何かキーを押してください . . .


もし違う文が出てきたら、jdkのインストールに失敗しているか、環境変数の設定が間違っているか、ソースコードの文字コードが間違っているか、コードの記述ミスだ。
もう一度確認してみてくれ。

さあ、コンパイルが成功したら、"HelloWorld.java"と同じフォルダに、"HelloWorld.class"というのが出来上がっているから、それを実行しよう。

実行用のバッチファイルも作っておこうか。
"コンパイル.bat"を作った時と同じように、
右クリックメニュー→新規作成→テキスト ドキュメント
でファイルを作って、"実行.bat"で保存する。
これを編集して、こう書く。

java HelloWorld
pause


ok?
じゃあこれを保存して、ダブルクリックで実行だ。

C:\Users\*****\Documents\Java\HelloWorld>java HelloWorld
Hello, world!

C:\Users\*****\Documents\Java\HelloWorld>pause
続行するには何かキーを押してください . . .

このように表示されたのではなかろうか。

さあ、じゃあ説明に入ろう。

このソースコードの中の、System.out.println();というのが、コンソール画面に文字列を表示させて改行するための呪文だ。
括弧のなかに入れたデータを表示する。


だから、System.out.println("あああああ");と書けば、実行時に「あああああ」と表示されるんだ。
そこで注意して欲しいのが、文字列は""(ダブルクォーテーション)で囲ってやらなければいけない。
そうしないと、コンピュータがこれを文字列なのか命令文なのかを判断できないからだ。


次に、1行目に書いたclass HelloWorld{}というやつだが、
これは「"HelloWorld"という名前のクラスですよ」とコンピュータに言っているんだ。
だから、コンパイルすると"HelloWorld.class"というファイルが出来上がる。
クラスが何かってのは、ちょっと現段階では説明が難しいから、とりあえず"プログラムそのもの"って覚えておいたらいいんじゃないかと思う。
クラスってのは、Javaがオブジェクト指向の言語だってことの説明をするときに一緒に説明すると思うから、しばらく待っててね。


次、public static void main(String[] args){}についてだ。
これは「メインメソッド」と言って、プログラムを実行した時に一番最初に実行されるメソッドなんだ。
メソッドってのは、プログラムの集合体みたいなもんで、データを渡したり受け取ったり、なんやかんやするアレだ。
まあこれも後々説明するからまってて。
このメインメソッドは、どんなプログラムにも存在して、書き方は2通りしかないからちゃんと暗記しておいてくれ
ひとつめはpublic static void main(String[] args){}
ふたつめはpublic static void main(String args[]){}
どちらの書き方でも同じ意味になる。

さあ、今日はこのくらいにして、次回は変数と演算子の勉強に移りましょうか!
ようやくプログラミングらしいことできるようになるよ!

あ~~~疲れた。
Bye!

2018/01/16

第2回 開発環境の準備とコンパイルについて


まずはこれが先だね。
パソコンにJavaとコンパイラとかをインストールしよう。
え、"コンパイラ"がわかんない?
よし、説明しよう。



さあ、コンパイルについての説明が終わったところで、ダウンロードとインストールの手順を説明しよう。
まず、Googleで"jdk"って検索してごらん?
するとこんなのが出てくる。
jdk検索画面
んで、32bitのパソコン使ってる人は、上のJava SE Development Kit 8を開いて、64bitなら、9の方を開いておくれ。
んで、すこし下にスクロールするとダウンロードリンクが貼ってあるから、「Accept License Agreement(訳:ライセンス契約に同意する)」にチェックを入れてから、自分のパソコンにあったものをダウンロードして、インストールする。
もしパソコンにJavaが入っていなくても、JDKと同時にインストールしてくれるから、これひとつダウンロードしておけばいい。
JDKダウンロード画面

......
さて、インストールが終わったら、パソコンの設定をしなくちゃいけない。
Windowsの説明はできるけど、それ以外の方法は知らないから、自分で調べておくれ。


Windowsの人は、まずコントロールパネルを開く。
win10になってから場所がわかりづらくなったけど、Windowsキーを押してスタートメニューを出してから"C"を入力すると、検索候補にコントロールパネルが出るからEnterを押せばいい。
win10でのコントロールパネルの出し方
んで、コントロールパネルの右上の検索画面で「システム環境変数の編集」って打って、システムのプロパティを開く。
「詳細設定」タブの下の方に、「環境変数」ってのがあるから、それを開いて、Pathっていう変数を編集するんだ。
既になにか書いてあるかもしれないけど、それに追加でJDKをインストールした場所のbinフォルダのパスを入れる。
俺の場合だと、jdk9.0.1をインストールしてあるから、「C:\Program Files\Java\jdk-9.0.1\bin」になる。
こうすることで、スムーズにコンパイルとかなんやかんや(後々説明する)ができるようになる。


......
Windows以外の人おまたせ。

いよいよプログラムを作っていくよ。
今日は、プロジェクトをつくるところまでにしておこう。

まず、作業場所を作る必要がある。
どこでもいいんだけど、とりあえずドキュメントフォルダに「Java」というフォルダを作ろう。
そこに、これから作るプロジェクトのフォルダを置くよ。
とりあず最初は「HelloWorld」っていうプログラムを作るから、「HelloWorld」って名前のフォルダを用意しよう。
HelloWorldってなによ

Javaのソースコードは、".java"の拡張子のファイルに書く。
ファイル名は、プログラムの名前を書こう。
今回は、"HelloWorld.java"というファイルを作ってくれ。
拡張子が非表示になっている人はちゃんと表示しておくように。
作り方は簡単。
右クリックメニューで「新規作成」→「テキスト ドキュメント」の順に選択して、ファイル名を変えるだけ。(Windowsの場合)

ファイルが出来上がったら、これを"UTF-8"っていう文字コードで保存する。
文字コードの設定方法はエディタごとに違うから、各自で調べておくれ。

次に、Windowsの場合は便利なバッチファイルを作れる。
他は知らない。
コンパイルをさっさと済ますための便利なものだ。
さっきと同じように新しいファイルを作って、"コンパイル.bat"で保存する。
これを右クリックして、「編集」をクリック。
中に、以下の文を書く。

javac -encoding utf-8 HelloWorld.java
pause

これを保存する。
はい、完成。
じゃあ次回からはプログラムを作って動かしていこうと思うから、楽しみにしててね。

Bye!

2018/01/15

第1回 そもそもプログラミングって何さ?


初めまして(?)、おとふとです。
このサイトでは、これからプログラミングを初めてみたいけど何から始めればいいのかわからないって人のために、Java言語を使ったプログラミングのやりかたを書いていこうと思います。
......

さあ、まずプログラミングってなに?ってところからだね。
知っているつもりでも、実はちゃんと理解していない可能性もあったりするから、一応確認しておこう。
まず、Wikiを見てみると、こう書いてある。
Wikiのスクリーンショット「プログラミング」
「コンピュータプログラムを作成することにより、人間の意図した処理を行うようにコンピュータに指示を与える行為である。」
だってさ。

はい、多分想像通りだったと思います。
でも、ここにはパソコンとは書かれていないよね?
書かれているのは「コンピュータ」。
つまり、パソコンやスマホに限らず、洗濯機やテレビや自動販売機なんかを動かすのにも、プログラムを作る必要があるってわけ。
で、出来上がったプログラムを「ソフトウェア(ソフト)」って言うんだけど、ソフトにもいろいろある。

<ソフト?>

まず、OS(オペレーションシステム)もソフトだね。
Windowsとか、Macとか、Andoroidとか、Linux系とか、ほかにも沢山。
これらも、C言語とかアセンブリ言語とかを使ってプログラミングされたソフトなわけですよ。
まあこういうのは初心者向けじゃないからやめといたほうがいい。

それから、Realtekとか、ハードウェアのドライバもソフト。
これらは、目に見えないけど、OSのバックグラウンドで動いているよ。

それから、ExcelとかChromeとかiTunesみたいなアプリケーション。
これらももちろんソフトだね。
このサイトでは、こういうOS上で動くアプリを作っていくよ。

そういう話はいいから早くプログラミング教えろよ

ってそろそろ思い始めたんじゃないかな?
ってわけで、早速(ようやく)プログラミングのしかたを説明していくね。
とりあえず、これから勉強するJavaってのがなんなのかも知っておいてもらいたいから、リンクだけ貼っとくね。
【超初心者向け】今さら聞けない!Javaとは?

用意するもの
・パソコン
・インターネット環境
・テキストエディタのソフト

はい、じゃあはじめよう。
まず、Windowsの場合は「メモ帳」ってアプリを開いてもらえるかな?
Macの場合は知らない。
標準で入ってるテキストエディタを使ってくれ。
それか、なんか無料でテキストエディタを拾って来てもいい。
とりあえずリンク貼っとく。
テキストエディタおすすめ無料13選 | プログラミング・文章作成ソフトを紹介 - 文書管理 | ボクシルマガジン
俺が使ってるのは「SublimeText3」ってやつ。便利な上に見た目もかっこいいからすごく気に入ってるよ。
こんなかんじ。
SublimeText3実行画面
で、エディタでプログラミング言語をつらつらつらーって書いていって、
それをコンパイルして、
完了!

......

なわけです。
詳しくは次回説明するねー。

Bye!