サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
体力トレーニング
nobuo-create.net
Javaの初心者を対象とした入門講座です。とことん丁寧にそして如何に効率よくJavaを理解できるかにこだわって作りました。1を100にしてくれるサイトは数多くありますし非常に役に立ちますが、当入門講座は0を1にするのが目的です。どうぞ最初の第一歩を踏み出して下さい。
継承時のメソッドや変数の挙動についてはだいたい分かってもらえたと思いますが、コンストラクタについてはちょっとややこしい事になっていますので、説明したいと思います。 継承についてよく分かっていない人は先に継承って何?を読んで下さい。 またコンストラクタについてよく分からない人は先にコンストラクタって何? this( )の意味を読んで下さい。 まず例としてHumanクラスを作ります。 Human.java public class Human { Human(){ System.out.println("人間誕生"); } } コンストラクタを書くことで、Humanクラスをインスタンス化する際には「人間誕生」と標準出力に出るようにしています。 このHumanクラスを継承したProgrammerクラスを書きます。 Programmer.java public class Programmer e
G様は仕様がころころ変わるので大変です。 AndroidアプリにAdMobを実装する方法という記事でAdMobの実装方法を忘備録がてら解説していたのですが、いつの間にかやり方が変わってました。 今回は、2016年8月現在のAdMob実装方法を分かりやすく解説したいと思います。 なお、本記事は執筆時点のものであり、各ツールのバージョン等はGet Started in Android Studio | AdMob by Google | Firebaseにて最新の情報を確認することをお勧めします。 AdMobとは? AdMobというのはアプリ用の広告バナーのことです。webサイトでいうアドセンスです。 クリック単価もそこそこ良いので、アプリの収益化には欠かせません。 AdMobを実装するためにするべきこと 以下の手順でAdMobを実装していきます。 Google Playにアプリを公開
あるクラスを継承したクラスを書くと、親クラスのメンバ(メソッド及びフィールド)を全て引き継ぐことが出来るっていうところまで、継承って何?で説明しました。 その際、親クラスのメソッドを単純に引き継ぐだけでなく、親クラスのメソッドを子クラスで定義しなおす(上書きする)ことも出来ます。親クラスで定義されているメソッドを子クラスで再定義することをオーバーライドと言います。 よく似たのにオーバーロードっていうのがありますが、全く関係ないので混同しないようにして下さい。 参考:メソッドのオーバーロードって何? オーバーライドってどういうことなのかよく分かるように、実際にやってみましょう。 オーバーライドをしてみる こんなCarクラスがあるとします。 class Car{ int gas = 60; //ガソリン // gasを消費して走る public void drive(int gas){ thi
具体的には以下のように使います。 String a = "abc"; if(a.equals("abc")){ System.out.print("この文字列は「abc」です"); }else{ System.out.print("この文字列は「abc」ではありません"); } 出力結果→この文字列は「abc」です String a = "abcde"; if(a.equals("abc")){ System.out.print("この文字列は「abc」です"); }else{ System.out.print("この文字列は「abc」ではありません"); } 出力結果→この文字列は「abc」ではありません ご覧のように、equalsメソッドで調べられるのは、文字列が完全に一致しているかどうかだけでです。 しかし、完全一致ではなくもうちょっと柔軟にチェックしたい場合もあると思います。そうい
さて、新規プロジェクトを作ってみようで、画面にHello world!という文字が表示されるアプリを作りました。簡単でしたね。 今回は、このアプリを立ち上げると画面にHello world!と表示されるその仕組みを、簡単に解説したいと思います。難しいことは考えずにあくまで簡単に行きましょう。 マニフェストファイルとは? まず、初めに説明する必要があるのが、マニフェストファイルというxmlファイルの存在です。 Androidアプリにはマニフェストファイルが必ず要ります。これがないとAndroidアプリだと認識されません。 マニフェストファイルというのは何かと言うと、そのアプリの名前やアイコン、機能面についての様々な情報を書いておく為のファイルです。なんかいきなり難しいですよね。 が、ご心配なく。マニフェストファイルはeclipseが勝手に作ってくれています。さっそく見てみましょう。 ecli
Androidアプリ開発環境構築の流れ Androidアプリを開発するには、Android Studioだけでは出来ません。AndroidアプリはJavaでプログラミングしますので、JDK(Java Development Kit)が必要です。JDKをインストールしていない状態ではAndroid Studioをインストールすることは出来ないので、まだの方は先にJDKをインストールしましょう。 それから環境変数(JAVA_HOME)の設定をします。 あとはAndroid Studioをインストールすれば完了です。Android Studioのインストールが完了すれば自動的にAndroid SDKのセットアップもしてくれます。 JDKをインストールする JDKは執筆時点で8が最新バージョンですが、Android StudioはJDK7が推奨されています。 JDKはOracleのサイトhttp:
mainメソッドに渡す引数 メソッドについての理解が深まったところで、意味も分からず覚えたmainメソッドについてもう一度よく見てみましょう。 public static void main(String[] args){ } 初めは意味不明なアルファベットの羅列だったと思いますが、ちょっと意味が分かるようになってませんか? 「public」と「static」は残念ながらまだ横へ置いておくとして、「void」は「戻り値を返しません」という意味でした。 そして後ろの( )の中には「String[ ] args」が入っていますね。これは、このメソッドはString[ ]を引数として受け取りますってことです。String[ ]というのは、Stringの配列ですね。argsはその配列変数名です(これはただの名前なんで別に「args」じゃなくても良いみたいです)。 つまり、mainメソッドを呼ぶ時に
配列とは? テストの結果、Aさんは80点、Bさんは65点、Cさんは70点、Dさんは95点でした。何のテストやらよく分かりませんが、この点数を管理するプログラムを作りたいと思います。 class名は簡単に「Scores」でいきます。お決まりのmainメソッドを書いてから、その中でまずはAさんからDさんまでそれぞれの点数を入れる変数を用意します。 Scores.java public class Scores{ public static void main(String[] args){ int scoreA; int scoreB; int scoreC; int scoreD; } } こういう同じ変数型を複数、宣言するのってなんか面倒くさいですよね。そんな時は、以下のようにまとめて宣言することもできます。 int scoreA, scoreB, scoreC, scoreD; このよう
新規プロジェクトを作ってみようで、立ち上げると画面にHello world!と表示されるアプリを作りました。 画面にHello world!と表示されるその仕組みについてのお話の続きです。 前回(【Hello world!の仕組み2】 MainActivity.java と activity_main.xmlについて)は、setContentView(R.layout.activity_main)で、画面に、画面いっぱいサイズのFrameLayoutという枠を仕込むところまで説明しました。 onCreate()の続き Activityを立ち上げた時に最初に呼ばれるonCreate()メソッドの中身を引き続き見ていきます。 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedIn
ブロックとは? 前回、コンパイルと実行をやってみる為に、Testクラスを作りました。 Test.java public class Test{ public static void main(String[] args){ System.out.print("hello"); } } このプログラム文はJavaを習う上で絶対最初に出てくるものですが、初歩の段階でいきなり出てくる割りにはややこしすぎますよね。初っ端から理解不能なアルファベットの羅列を見せられてこの時点で嫌になる人も結構いると思います。が、どうかめげないで下さい。これ初めから全部理解できる人なんて居ないと思いますから。 そこで、このプログラムについて、最初の段階で分かっておくべきことだけを説明したいと思います。 まず最初に注目するべきは、意味の分からないアルファベットではなく、{ }(波カッコ)です。{ }で囲われた部分をブロ
オブジェクト指向? プログラミングを勉強している人なら、オブジェクト指向って聞いたことありますよね? 経験豊かなベテランさんでもオブジェクト指向というものの解釈は一筋縄ではいかないようなものらしいので、シロウトの僕には正直、オブジェクト指向のことを語る程の経験も知識もございません。 が、オブジェクト指向の概念を語ることはできなくても、オブジェクトを作ることはできます。オブジェクト指向を理解する為にはオブジェクトというのはどういうもので、どうやって使うのか?をしっかり理解することが先決だと思います。 とりあえず難しいことは考えずにオブジェクトを作ってみましょう。 オブジェクトを作る為のクラス 「オブジェクト」というのは直訳すると「物」です。物理的な物体を表すこともあれば、そうでないこともあります。 今回はHumanオブジェクトを作ってみましょう。Humanつまり人間です。 Humanオブジェ
一番かんたんなJava入門 これからJavaを始めようという人の為の超入門サイトです。丁寧、簡単にこだわった解説なので初心者にぴったりです
スッキリわかるJava入門 実践編 ただし、スッキリわかるJava入門で学べるのは本当に基礎の部分です。 基礎は何より大事なのですが、もちろんこの一冊を読んだだけで何でも出来るようになるわけではありません。 そこで、ステップアップとして、より実践的な内容になっているのが、スッキリわかるJava入門 実践編です。 こちらは実際、プログラミングの現場で扱っている実践的なテクニックについての解説なので、やや専門的な内容になっています。 しかし一人前のJava使いになるには、当然避けて通れない道です。 より高度なプログラミング技術を身につけたい方にはこの本がオススメです。このシリーズの作者は難しい事を簡単に説明する天才です。 なぜ、あなたはJavaでオブジェクト指向開発ができないのか スッキリわかるJava入門 実践編は、より細かいテクニックについての解説書なのですが、もっとプログラミングの全体像
他のクラスからのアクセス 今回はアクセス修飾子というのが何なのかを分かりやすく説明したいと思います。オブジェクト指向の三大要素の一つである「カプセル化」というのを実現する為に、アクセス修飾子は非常に重要な役割を果たします。 アクセス修飾子と言えば、publicというのがそれです。クラスの前に、 public class クラス名 という風につけたり、メソッドの修飾子としても、つけていましたよね。 public static void main(String[] args) 「public」の他に「private」と「protected」と、もう一つ、デフォルトってのがあります。デフォルトっていうのは何かと言うとアクセス修飾子を何もつけていない状態です。何もつけていなかったらアクセス制限について何も規定していないのではなく、何もつけていないなりのアクセス制限がかけられることになります。 表に
Stringクラス?? 初めはStringって何なのかよく分からないまま、ただ単に文字列を保持する変数だと思って使う人が多いと思います。かく言う私も、Stringってすんごい基本的な変数なのに、なぜ基本データ型(プリミティブ型)に含まれていないのかな?なんて思ったクチでした。 そもそもStringと、基本データ型(boolean,byte,char,short,int,long,float,double)には見た目の決定的な違いがありますよね。何かというと基本データ型は全部小文字だけど、Stringは頭文字が大文字だと言う事。なぜStringは頭文字が大文字なのかと言えばStringはクラス型変数だからです。 基本データ型というのはJavaのまさに基本データとして元々存在している型です。一方、クラス型というのはクラスでそのオブジェクトについて定義することで使えるようになる型です。 つまり、
AdMobの実装方法がややこしいぞ AdMobってAdSenseとの絡みもあってか、ここ数年ころころ変わってますよね。 正直、何がどうなってるのかわけ分りませんが、先日(2014年4月)、やっとの思いで新しいアプリにAdMobを実装することができたので、防備録として記しておきます。 Google Mobile Ads SDK — Google Developersに、一通りやり方が書いてあります。 けど、これ読んでパッと出来る人居るのか?!っていうぐらい難解です。え?そんなことない??まあいい、自分用の防備録じゃい。 AdMobを実装する為にやること まず全体の流れを確認。 AdMobのアカウントを作る Google Play Servicesを使えるようにする AndroidManifest.xmlをいじる レイアウトxmlに広告表示枠を作っておく AdMobにアプリを登録する Acti
カプセル状のオブジェクト? カプセルっていうのは、その中に何かを入れて密閉してしまうような容れ物のことです。知ってますよね。 ではカプセル化というのは、どういうことなのか? 勘違いしてはいけないのは、オブジェクトを大事にカプセルの中に入れるわけではありません。オブジェクトの構造をカプセル状にしてしまうんです。 カプセル状と言うからには、中に何かを入れて密閉するわけですが、一体何をカプセルの中に大事に密閉しておくのか?それはフィールド(パラメータ)です。 全てのフィールドをprivateにすることで、まるでカプセルで覆われたように外(他のクラス)からフィールドの値を触れないように、というか見えないようにしてしまうわけです。 そして、そのカプセルには棒が刺さっています。その棒は動かすことができます。棒をカプセルの外から動かして、カプセルの中身をごちゃごちゃかき回すことができるような形状です。例
今回は、ゲッターの相方的なセッターについて説明したいと思います。 前回に続いて、お馴染みのHumanクラスをいじります。 Human.java public class Human{ private static int count_Human = 0; String name; int birthday; int manpukudo; Human(String name, int birthday, int manpukudo){ // コンストラクタ1 this.name = name; this.birthday = birthday; this.manpukudo = manpukudo; count_Human++; } Human(String name, int birthday){ // コンストラクタ2 this(name, birthday, 50); } Hu
これから、Javaを勉強する方へ。 私は全くのゼロからJavaを独学で勉強して、半年の間にAndroidアプリを7つリリースしました。(まあ大したアプリではないんですが。。) 私がJavaを使えるようになったのは、間違いなくネットのおかげです。数々のJava、android関連のサイトの管理人様のおかげでいろんな知識を得ることができました。 そこで、全くのド素人から数か月でアプリを作れる程度にJavaを使えるようになった私のこの経験を、ネットに還元できないかなと考え、感謝の気持ちを込めてこのサイトを作りました。 大変僭越ではございますが当サイトは、そんな私、Nobuo_CREATEによるJava初学者向け入門講座です。 [当入門講座のこだわりポイント] 難しい言葉や表現は極力使わない 初学者が理解しづらいポイントや、考え方のヒントをしっかり押さえている 仕組みを理解する為に、徹底的に例を挙
Androidアプリ開発環境 Androidアプリを開発するために必要なものは、3つあります。 ①JDK JDKというのはJavaを使ってプログラムを書いて動かす為に必要なソフトウェアのセットです。 まだインストールしていない人はJDK? Path? Java開発環境を作ろうを読みながらやれば簡単にインストールできるので、やって見てください。 ②eclipse eclipseというのは統合開発環境と呼ばれるjavaプログラミングに必須と言える開発ツールです。 まだインストールしていない人は、eclipse?Pleiades?Java統合開発環境を用意を読んでインストールしてみて下さい。 ③Android SDK Android SDKというのは、Androidアプリを開発する際に必要なツールのセットです。 このページでは、①JDKと②eclipseは既にインストールしているという前提で、③
メンバ変数とは? 前回、Humanクラスを書いて、それをnewすることでHumanオブジェクトを作りました。Humanクラスはこんなのでした。 Human.java public class Human{ String name; int birthday; } このHumanクラスが、Humanオブジェクトの設計図・テンプレートです。Humanオブジェクトはnameとbirthdayというパラメータを持っています。 オブジェクトが持つパラメータのことを、このクラスのメンバ変数と言います。Humanクラスはnameとbirthdayという2つのメンバ変数を持っているわけです。 インスタンスのメンバ変数にアクセスする それでは 前回、newして作った名前不明・生年月日不明という気持ち悪い人間オブジェクトの名前と生年月日を設定する為に、これらのメンバ変数にアクセスします。と、その前にオブジェク
インスタンスの初期状態 今回はインスタンスの初期状態を自由に操ることが出来るコンストラクタというものについて解説します。その為に【Java】オブジェクトって何?から連載でいじっているHumanクラスを使います。現時点で、Humanクラスはこんな状態です。 Human.java public class Human{ String name; int birthday; int manpukudo; void eat(){ this.manpukudo += 60; } } ご覧のようにこのHumanクラスには4つのメンバが存在します。 3つの変数 name,birthday,manpukudo と 1つのメソッド eat( ) です。 このHumanクラスをインスタンス化します。Humanクラスと同じパッケージ内に作ったHumanTestクラスでやります。 HumanTest.java p
staticじゃないメンバ(インスタンスメンバ) 今回はstaticの意味を解説したいと思います。 まだstaticの意味がよく分かっていない人も、書いたことは何回もあるんじゃないでしょうか?mainメソッドを書く時に出てきますよね。mainメソッドはstaticなメソッドなんです。 staticなメソッドとかstaticな変数とかstaticなクラスなんかもあるんですが、このちょっと難解なstaticを理解するには、逆にstaticじゃない変数って何なのか?staticじゃないメソッドって何なのか?を理解すると分かりやすいです。 なのでまずは非staticなメンバとはどういうものかを理解する為に以下のクラスを見てください。 Human.java public class Human{ String name; // メンバ1 int birthday; // メンバ2 int manpu
WordPressの更新に失敗! WordPress(以下wp)の管理画面の上の方に、 「WordPress 3.6 が利用可能です ! 更新してください。」 って更新を促すメッセージが出てるので軽い気持ちで更新してみると、何分待っても更新が終了せず、仕方ないのでブラウザを閉じた。。 ・・なんていう事をしでかすのは僕だけなんでしょうか? その後、wp管理画面にアクセスすると、真っ白な画面に、 Warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, ‘_show_post_preview’ was given in /export/sd208/www/jp/r/e/gmoserver/(ドメイン)/wp/wp-incl
の8つです。それぞれの詳細は基本データ型変数についてを見てもらうとして、注目は上記のbit数です。これは何を表しているのかというと、それぞれの変数がどれだけのメモリ領域を消費するかです。 1bitというのは2進数1桁ということです。例えばboolean型の変数というのはtrueかfalseのどちらかなので、情報量としては1bitで事足りるわけです(0か1のどちらか)。変数をよく箱に例えますが、そのノリで行くとbit数は箱の大きさを表していると言えます。 変数を使う時にはまず宣言をします。 int a; この時点で、Java仮想マシンは、メモリ上に32bitの「a」という領域を確保します。 int a; a = 5; 続いて「a」に5を代入しました。これは、先ほど確保したメモリ上の「a」という領域に5という値を保持させたんです。 コンピュータは全て0か1の2進数で処理していますので、5なんて
罠と化したgetExternalStorageDirectory() androidアプリを作っていて、SDカードにデータを保存する機能を実装したい時の話。 androidは全て把握できないくらい様々な機種があり、残念なことにSDカードのマウント先(ディレクトリのpath)は、機種によって微妙な差があるらしいです。なので、プログラムの中で File file = new File("mnt/sdcard", "data"); みたいにそのpathを絶対的に指定することはできません。なんとかしてその機種固有のpathを取得する必要があります。 その為に用意されていたのが、 Environment.getExternalStorageDirectory() というクラスメソッドです。このメソッドを使えば、外部ストレージ(SDカード)のマウント先を簡単に取得することができていました。 しかし、い
※最新の情報に更新しました(2015年2月22日) androidは日々進化しています。いろんな機能が追加されていくそのスピード感は素晴らしいと思うのですが、アプリを作っていると、いろんなOSのバージョンに対応する必要があるので結構大変です。今でも2.xを使っている人は多いらしいし(実は僕もです。。)、最新の4.xも増えていると思います。一番困るのがハードキーのmenuボタンが無くなって、その替わりにaction barというUIが実装されたことです。勝手にボタンを無くすなよ!と言いたいところですが、開発者の端くれの端くれとしてはandroid様に従うしかないので、なんとかついて行くしかありません。。 そこで今回は、androidのOSのバージョンによってプログラムの実行内容が変わるように、if文を使って分岐させる方法を防備録として書いておきます。 機種のAPIレベルを取得する 機種によっ
次のページ
このページを最初にブックマークしてみませんか?
『一番かんたんなJava入門』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く