プログラミング基礎


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

2.1 プログラム構造

/*
* MyClass
* クラスの定義例
*/

public class MyClass                                 // クラスの定義
{
    private static String message;                   // フィールドの定義
    
    public static void main(String[] args)           // main()メソッドの定義
    {
        message = "Greate Java!!";
        System.out.println(message);                 // メソッドの呼び出し
    }
}

2.2 変数と定数

  • 変数に設定できる型には、基本型と参照型(クラス型、配列型など)がある。
  • 定数とは値が変化しない値の事。
  • finalは、変数に値を一度しか代入できない。
 Javaでは一般にクラス内で複数のメソッドが共通して利用する値を定数として定義できる。
  • クラスの定義内でメソッドの外側に宣言する定数は、そのクラスのすべてのメソッドから呼び出し可能。
class MyClass
{
    final String MY_MESSAGE = "unko"
    
    void methodA(....)
    {
        final String A_MESSAGE = "methodA unko";
        System.out.println(MY_MESSAGE);                      // MY_MESSAGE呼び出し
    }
    void medhodB(....)
    {
        System.out.println(MY_MESSAGE);                      // MY_MESSAGE呼び出し
        System.out.println(A_MESSAGE);                       // A_MESSAGE呼び出し
    }
}
  • さらにpublicで定義すると、クラス外からの呼び出し可能。
public final String MY_MESSAGE = "unko";

リテラル

  • 変数へ代入する値をリテラルと呼ぶ。

Javaにおけるリテラルの記述方法

記述例 備考
整数 50(10進数),072(8進数),0X3A(16進数) 長整数(long型)の場合、数字のあとにLをつける
浮動小数点 1E1,2.3,0.01,3.14,1E-9D 単精度浮動少数点(float型)の場合、あとにFをつける
ブール値 true,false
文字 'A','\n'
文字列 "unko"

2.3 型

  • 基本型・・・整数(int)や文字(char)など、予約語で表される型。
  • 参照型
 + 配列型・・・同一の基本型やクラス型の連続を一つの型として扱う。
 + クラス型・・・クラスから生成されたオブジェクトの参照を格納する。
 + インターフェイス型・・・インターフェイスを実装するクラスから生成されたオブジェクトの参照を格納。

数値

型名 長さ 値の範囲
整数 byte 1バイト -128~127
short 2バイト -32,768~32,767
int 4バイト -2,147,483,648~2,147,483,647
long 8バイト -9,223,372,036,854,775,808~9,223,372,036,854,775,807
浮動少数点 float 4バイト IEEE 754準拠単精度浮動少数点
double 8バイト IEEE 754準拠単精度浮動少数点

基本型の相互変換

  • boolean型を除き、基本型を相互変換できる。異なる基本型の変数を代入すると自動変換される。
  • サイズの大きな型から小さな型へ値を代入する場合、オーバーフローをする可能性がある。このような場合にはキャストする。
int i = 200;
short s;
s = (short)i;

2.4 文字列

  • Stringは、java.langパッケージに含まれるクラス

文字列の宣言と代入方法

s1 = "TEST"
String s2 = "あいうえお"

文字列の連結

String a = "test";
String b = "unko";
String to = a + "---" + b;

2.5 演算子

  • 比較演算子
a == b aとbが等しい場合にtrue
a != b aとbが等しくない場合にtrue
a < b aがbより小さい場合にtrue
a > b aがbより大きい場合にtrue
a <= b aがb以下である場合にtrue
a >= b aがb以上である場合にtrue
!A Aがfalseである場合にtrue

2.6制御構造

条件分岐(if,else if,else)

import java.io.*;

public class IfTest
{
    public static void main(String[] args) throws IOException
    {
        char c;
        System.out.println("YまたはNを入力してください");
        c = (char)System.in.read();                               // 標準入力から1バイトを入力
        
        if(c == 'Y')
            System.out.println("Yが入力されました");
        else if(c == 'N')
            System.out.println("Nが入力されました");
        else
            System.out.println("YとN以外が入力されました");
     }
}

ループ(while,for,do/while)

while(condition)
{
    statement1;
}

do
{
    statement1;
    statement2;
}while(condition)

  • for文の中で設定した変数はfor文を抜けると無効となる。
  • 変数が有効である範囲が限定される。(変数のスコープ)
for( mae; condition; ato )
{
    statement1;
}

  • exprには、char,byte,short,int,Caracter,Byte,Short,Integer,enum型のいずれかの型を指定する。
  • defaultは必須ではない。
  • breakを入れないと処理は続く。
switch( expr )
{
    case value1: statement1;
                 break;
    case value2: statement2;
                 break;
    default:
}

import java.io.*;
public class ForTest
{
    public static void main(String[] args) throws IOException
    {
        int start,end;
        String s;
        //標準入力から文字列を読み取るためのオブジェクト生成
        BufferedReader in = new BufferedReader(new InputStreamReader(Sysmte.in));
        System.out.println("start:");
        s = in.readLine();                    // ループを開始する数値を入力
        start = Integer.parseInt(s);          // 入力した文字列を整数型へ
        end = 0;

        while( end <= start )                 // 終了の条件となる数値入力
        {
            System.out.println("end");
            s = in.readLine();                    // ループを終了する数値を入力
            end = Integer.parseInt(s);            // 入力した文字列を整数型へ
        }

        System.out.println("ループスタート");

        for(int i = start; i <= end; i++ )
            System.out.println(i);
         
        System.out.println("ループスタート");
    }
}

2.7 配列

  • 配列宣言後、必ずnew演算子を使って実際の配列を生成する。
int [] a;
a = new int[10];
int b [] = new int[10];

クラス型の配列

  • String型の配列はクラス型の配列。
  • 初期化に注意する。
String s = "Java";
String s = new String("Java");
変数sは「"Java"という文字列を含むStringオブジェクトを参照する変数」
クラス型の変数は参照型変数であるため、配列と同様に宣言したあとに実際にオブジェクトを生成する必要がある。

配列のコピー

  • 配列型の変数は、基本型の変数と同様にほかの変数に代入する事ができる。
  • 同じ型の配列に限る。
String[] s = {"Java","Program","unko"};
int[] a = {10,9,8};
int[] b = {1,2,3};
a = s;                       // Error
a = b;                       // OK
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。