Javaの基礎:まとめ
こんにちは。Javaの書き方について、さっとまとめてあると便利かなと思ったので。。
あくまで自分用ですが、メモです。
【はじめの一歩:Javaを書く環境を整える】
☆ダウンロード
①jdk(コンパイラ)を用意する。
Java Archive|OracleのJava SE6あたりがよい。
ダウンロードされた.exeを実行。
②cortanaに”環境変数”と入力。
Pathに、"C:\Program Files\Java\bin"のフォルダを指定。
③再起動する。
☆書き方:メモ帳で書けますよ。
拡張子は".java"で、Cドライブの任意の場所に保存。
☆実行方法:cmd(コマンドプロンプト)で
①cd "保存したフォルダ名"でEnter。
②javac "保存したファイル名.java"。
→.classファイルが生成されます。複数のファイルをまとめて生成もできる。
③java "生成されたクラス名(拡張子なし)"で実行されます。
Class Sample {
public static void main(String args[]){
最初に実行されるメインプログラム
}
}
【種々の演算子について】
・他の言語と大体一緒。
※+よりも++のほうが優先( a+++b は、(a++)+b という意味になります。)
※==, >=, <=, != は数字と真偽の比較。
文字列の比較は、以下のように使う。
(例)String b = "いろは";
bln_a = b.equals("いろは");
【型について】
・他の言語と大体一緒。
・String →int
Integer.parseInt(String型の変数);
・大きい容器の型→小さい容器の型に型変換する場合、
明示的に型名を記述する必要がある。
b = (byte)s;
byte型 < short型 < int型 < long型
【コマンドラインに入力された値を取得する】
public static void main(String args[]){
・・・
}
・args.length…何個入力があったか
・args[0].length()…入力があった文字列(0番地)の文字数を取得
・args[0]…文字列そのものを取得
【コマンドラインに文字列を表示する】
・System.out.print("あははは");…改行なしで表示
・System.out.println("あははは");…改行ありで表示
【オブジェクト指向プログラミング】
☆外部のクラスを読み込みたい!
class Main{
public static void main(String args[]){
//クラスのインスタンス化
Piyo p;
p = new Piyo();
int a;
a = p.Tweet(5);
System.out.println(a);
}
}
class Piyo{
処理。
int Tweet(int b){
なんか処理;
return ○〇;
}
}
☆メンバ変数とコンストラクタ
class Keisan{
double ritsu; //メンバ変数(このクラス内のみで利用可能な変数)
Keisan(double r){//コンストラクタ(初期設定,クラス名と同じ名前のメソッド.)
//「この」クラス(Keisan)内のritsu変数にrを格納
this.ritsu = r;
}
int Zeigaku(int k){
int kingaku = (int)(k*this.ritsu);
return kingaku;
}
}
//↓実行クラス
class Jikko{
public static void main(String args[]){
Keisan a;//オブジェクト作成
k = new Keisan(0.08);//インスタンス
kekka = k.Zeigaku(1000);
System.out.println("消費税は"+kekka+"円です。");
}
}
☆クラスの継承
→class クラス名 extends スーパークラス名
class Bird{
void Sing(String a){
ぴよぴよいう。
}
}
class Okame extends Bird{
void Piyo(){
ぴよこさんが歌います。
}
}
class Jikko{
public static void main(String args[]){
Okame o;
o = new Okame();
o.Sing("ぴよぴよ");//ぴよぴよいう。
o.Piyo(); //ぴよこさんが歌います。
}
}
☆オーバーライド:
親クラスで定義されたメソッドを、子クラスで再び定義すること。
子クラス上で親クラスのメソッドを上書きする。
☆オーバーロード:
引数の数や型の違う、同じ名前のメソッドを複数個生成すること。
【メソッドの書き方】
基本
: 返り血の型 メソッド名(引数){ メソッドの処理内容 return (戻り値); }
☆メソッドの返り血あり
int Tweet(int b){
処理;
return ○○;
}
☆メソッドの返り血なし
void Tweet(int b){
処理;
}
【Java.util.機能:もともとある機能を呼べます。】
☆スキャナ機能
import java.util.Scanner;
class A{
public static void main(String args[]){
//インスタンス化
Scanner s;
s = new Scanner(System.in);
//入力された1行分を取得
String a = s.nextLine();
}
}
☆乱数生成機能
import java.util.Random;
class B{
public static void main(String args[]){
//インスタンス化
Ramdom r;
r = new Ramdom();
//0~4個までの計5つの中から乱数を生成
int a = nextInt(5);
//(例)1~100までの100個であれば、
//int a = nextInt(100)+1;
}
}
☆フレーム機能
import java.awt.Frame;
import java.awt.Button;
import java.awt.Label;
import java.awt.TextField;
import java.awt.FlowLayout;//上から右下に配置するレイアウトの機能
class Sample{
public static void main(String args[]){
//インスタンス化
Frame f = new Frame();
FlowLayout fl = new FlowLayout();
Label l = new Label("テスト");
TextField t = new TextField(10);//10文字ぶん
Button b = new Button("クリック");
//設定とか
f.setTitle("はじめてのフレーム");
f.setSize(width,height);
//レイアウトをFlowLayoutにセット
f.setLayout(fl);
//フレームにボタン・ラベル・テキストボックスを配置していく。
f.add(l);
f.add(t);
f.add(b);
//表示
f.setVisile(true);
}
}
※グリッドレイアウトの利用
import awt.Frame;
import awt.Button;
import awt.GridLayout;//グリッド(方眼)
class Sample{
public static void main(String args[]){
Frame f = new Frame();
Button b[] = new Button[7];
GridLayout g = new GridLayout(2,4)//2行4列
for(int i = 0; i<7; i++){
b[i] = new Button(i+1+"");//文字じゃないといかんのでね
}
f.setLayout(g);
for(int i = 0; i<7; i++){
f.add(b[i]);
}
f.setSize(width,height);
f.setVisible(true);
}
}
※ボーダーレイアウトの利用
import java.awt.Frame:
import java.awt.BorderLayout;
import java.awt.Button;
class Sample{
public static void main(String args[]){
Frame f = new Frame();
BorderLayout bl = new BorderLayout();
f.setLayout(bl);
Button b1,b2,...,b5;
b1 = new Button("玄武");
:
b5 = new Button("朱雀");
//配置(方角を指定すると配置できる模様)
f.add("Nourth",b1);
:
f.add("South",b5);
}
}