Perlがくしゅう帳(Rubyも)

プログラミングの勉強会の参加記録や学んだことなど。 twitter ID : @tomcha_で活動しています。 最近は主にPerl関連の勉強会やコミュニティに参加しています。移転前のブログはこちら->http://ruby.doorblog.jp/

Java文法覚書

基本

基本2

クラス、main関数のひな型

public OriginalClass {
  public static void main(Stirng[] args){
    メイン関数の処理;
  }
}
  • 処理はmain関数から実行される。

変数

  • 変数名には英数字 $ _ が使える。
  • ただし、数字で始める事はできない。
  • 大文字と小文字は区別される。

  • boolean型
    • true / false
  • char型
    • 一文字だけの文字。シングルクォーテーションで囲む。' '
  • byte / short / int / long
    • 整数数値の型。通常はint型を使っておく。
  • float / double
    • 小数数値の型。通常はdouble型を使っておく。
  • Stringについて
    • 文字列のクラス。型ではない。ダブルクォーテーションで囲む。 " "

数値の変数への代入

  • 理由を要確認
  • 代入時、long型変数へ格納する右辺の数値の末尾にはLを付す。
  • 代入時、float型変数へ格納する右辺の数値の末尾にはFを付す。

数値の型変換(キャスト)

  • (新データ型)変数 と書く。例) (int)n;
  • 整数同士の割り算の計算結果は、小数点以下は切り捨てられる。
  • 割り算のどちらかの数値が小数値であれば、計算結果は小数値となる。

文字列演算

  • 文字列の連結演算子は +
  • 数字を直接連結(して文字列とする)する事ができる。
  • 特殊文字 "\n" や "\t" などにも + での連結は使える。

条件分岐

if文書式
if(条件文){
}else{
}else if{
}

論理演算子

> , >= , == , != , && , || , !

三項演算子の書式

条件式 ? 真の時の値 : 偽の時の値

条件分岐2

switch文書式

switch(値){
  case 1:
    処理;
    break;
  case 2:
  case 3:
    複数の条件値の時の処理;
    break;
  default:
    どの条件にも当てはまらなかった時の処理;
    break;
}

break文を書き忘れると、breakが出現するまで次の行以下が実行される。

ループ

while文書式

while(条件式){
  処理:
  カウンタ++など;
}

後置while do{ }while(条件式);

ループ2

for文書式 for (int i = 0; 条件; i++){ 処理; }

ループ処理応用

  • break;
    • ループを抜ける。
  • continue;
    • ループ中、スキップする。

配列

配列宣言の書式 型 変数名; -> 宣言 変数名 = new 型[3] -> メモリ領域の確保。例の場合は[0]から[2]まで生成される。 変数名.length -> 配列の個数を返すメソッド。

宣言と領域確保、初期化を同時に行う方法 型 変数 = {要素, 要素, 要素,...} 例) int array[] = {1, 2, 3}

メソッド定義

メソッド定義の書式(宣言に必要なスコープやら戻り値の型やら)

public static void メソッド名(引数の型 変数名){
  処理;
}

クラス

  • クラス定義の書式
class User{
  String name;
  (メンバ変数やメソッドを定義)
}
User tomcha = new User;
  • コンストラクタ書式 メソッド名はクラス名と同じにする。引数でnew時の引数を設定。 メンバ変数へのアクセスはthis.変数名 例)
User(String name){
  this.name = name;
}

クラスの継承

クラスの継承の書式

class hoge extends fuga{
}

継承した時、親クラスに引数をとるコンストラクタが設定されている場合は、子クラスにも同様のコンストラクタが必要。 その中で親クラスにそのまま処理を投げる(引数を渡す)場合は、super(変数)を使う。

アクセス修飾子

範囲

  • public
    • どこからでもアクセス可。
  • protected
    • 自らと継承しているサブクラスからのアクセスは可能。
  • private
    • そのクラス内のみアクセス可能。(継承した子クラスからは不可)

Stringクラス

メソッド

  • .length() -> 文字列の長さを返す
  • .substring(f, l) f位からl個の文字列を切り出し
  • .repraceAll("before", "AFTER") -> beforeをAFTERRに置き換え
  • String[] array = s.split("-",0) -> 文字列を指定記号で分けて配列に格納

Mathクラス

クラスメソッド

  • Math.ceil(f)
    • 小数以下切り上げ
  • Math.floor(f)
    • 小数以下切り捨て
  • Math.round(f)

    • 四捨五入
  • Math.random()

    • 乱数を求める
  • Math.PI()
    • 円周率を求める

Calendarクラス(日付や時間のクラス)

Calendarクラスは外部モジュール。外部モジュールの読み込みは

import java.util.Calendar;

を先頭行に書く。

使用方法:自作クラスの中に

Calendar cal = Calendar.getInstance();

-> 現在時刻のオブジェクトを生成。

Calendar.DATEメソッド -> インスタンスメソッドではなく何故クラスメソッド?要勉強。