============================================================================================



			Learn More About Java2 Professional Tutrial Vol.1

					I-ichirow Suzuki

============================================================================================



	Learn More About Java2 Professional Tutrial



		Chapter 1 変数とオブジェクト

		Chapter 2 お約束とコメント

		Chapter 3 メソッドと基本制御

		Chapter 4 コンストラクタと初期化

			Chapter 5 クラスの再利用

			Chapter 6 継承

			Chapter 7 ポリモフィズム

			Chapter 8 インターフェイスとインナークラス

			Chapter 9 コレクション

			Chapter10 エラーハンドリング

			Chapter11 ファイル入出力

			Chapter12 Creating Windows AWT

			Chapter13 Creating Windows Swing

			Chapter14 Multiple Threads

			Chapter15 ネットワーク

			Chapter16 アルゴリズムとデータ構造







///////////////////////////////////////////////////////////////////////////////////////////

//// 	Chapter 1 変数とオブジェクト



//------------------------------------------------

// c01 どれも結局同じ意味



String s; s = "asdf" ;

String s = "asdf";

String s = new String("asdf");





//------------------------------------------------

// c01 どれも結局同じ意味



char c = 'x';

Character C = new Character(c);

Character C = new Character('x');





//------------------------------------------------

// c01 スコープとは



{

    int x = 12;

    /* only x available */

    {

    int q = 96;

    /* both x & q available */

    }

    /* only x available */

    /* q "out of scope" */

}

{

    int x = 12;

    {

    int x = 96; /* illegal */

    }

}

{

    String s = new String("a string");

} /* end of scope */





//------------------------------------------------

// c01 クラスオブジェクトのインスタンス



// DataBase.java

class DataOnly 

{

    int i;

    float f;

    boolean b;

}

public class DataBase //ファイルに1つだけの存在のpublicクラス

{

	public static void main(String[] args)

	{

		DataOnly d = new DataOnly();



		d.i = 47;

		d.f = 1.1f;

		d.b = false;

	}

}





//------------------------------------------------

// c01 メソッドの戻り型



returnType methodName( /* argument list */ ) 

{

    /* Method body */

}



int storage(String s)

{

    return s.length() * 2;

}



boolean flag() 

{

    return true; 

}

float naturalLogBase() 

{

    return 2.718f; 

}

void nothing() 

{ 

    return; 

}

void nothing2() {}



//------------------------------------------------

// c01 staticとは

// StaticTest.java

class StaticTest 

{

    static int i = 47;

}



public class StaticTestBase

{

	public static void main(String[] args)

	{

		StaticTest.i++;

	}

}

//------------------------------------------------

// c01 staticとは 応用



// StaticFunBase.java

class StaticTest 

{

    static int i = 47;

}

class StaticFun 

{

    static void incr() 

    {

        StaticTest.i++; 

    }



public class StaticFunBase

{

	public static void main(String[] args)

	{

		StaticFun sf = new StaticFun();

		sf.incr();

	}

}







///////////////////////////////////////////////////////////////////////////////////////////

//// 	Chapter 2 お約束とコメント



//------------------------------------------------

// c02 Hello, world ?

// HelloDate.java



import java.util.*;



public class HelloDate 

{

    public static void main(String[] args) 

    {

        System.out.println("Hello, it's: ");

        System.out.println(new Date());

    }

}



/**

Hello, it's:

Sat Feb 24 14:37:56 JST 2001

**/





//------------------------------------------------

// c02 コメント



/* This is a comment

*    that continues

*    across lines

*/



/* This is a comment that

continues across lines */



// this is a one-line comment



/** A class comment */

public class docTest 

{

    /** A variable comment */

    public int i;

    /** A method comment */

    public void f() {}

}







///////////////////////////////////////////////////////////////////////////////////////////

//// 	Chapter 3 メソッドと基本制御



//------------------------------------------------

// オブジェクトの = は 同じメモリアドレスを参照させる 決して値の代入ではない

//: c03:Assignment.java



class Number 

{

    int i;

}

public class Assignment 

{

    public static void main(String[] args) 

    {

        Number n1 = new Number();

        Number n2 = new Number();



        n1.i = 9;

        n2.i = 47;



        System.out.println("1: n1.i: " + n1.i +    ", n2.i: " + n2.i);

		

        n1 = n2;

        

		System.out.println("2: n1.i: " + n1.i +    ", n2.i: " + n2.i);

        

		n1.i = 27;

        

		System.out.println("3: n1.i: " + n1.i +    ", n2.i: " + n2.i);

    }

} 



/**

1: n1.i: 9, n2.i: 47

2: n1.i: 47, n2.i: 47

3: n1.i: 27, n2.i: 27

**/





//------------------------------------------------

//: c03:PassObject.java オブジェクトを渡す

// 



class Letter 

{

    char c;

}

public class PassObject 

{

    static void f(Letter x) 

    {

        x.c = 'z';

    }

    public static void main(String[] args) 

    {

        Letter x = new Letter();



        x.c = 'a';



        System.out.println("1: x.c: " + x.c);



        f(x);



        System.out.println("2: x.c: " + x.c);

    }

} 



/**

1: x.c: a

2: x.c: z

**/





//------------------------------------------------

//: c03:Equivalence.java イコールの定義



public class Equivalence 

{

    public static void main(String[] args) 

    {

        Integer n1 = new Integer(47);

        Integer n2 = new Integer(47);



        System.out.println(n1 == n2);// 値が格納されているメモリアドレスが等しいか比べる

        System.out.println(n1 != n2);

    }

} 



/**

false

true

**/



//------------------------------------------------

//: c03:EqualsMethod.java イコールの定義



public class EqualsMethod 

{

    public static void main(String[] args) 

    {

        Integer n1 = new Integer(47);

        Integer n2 = new Integer(47);



        System.out.println(n1.equals(n2));//値を比べる

    }

} 



/**

true

**/



//------------------------------------------------

//: c03:EqualsMethod2.java



class Value 

{

    int i;

}

public class EqualsMethod2

{

    public static void main(String[] args) 

    {

        Value v1 = new Value();

        Value v2 = new Value();



        v1.i = v2.i = 100;



        System.out.println( v1.i == v2.i );

        System.out.println( v1.equals(v2));

        // System.out.println( (v1.i).equals(v2.i) ) ;// Error !

    }

} 



/**

true

false

**/



//------------------------------------------------

//: c03:ShortCircuit.java  論理演算子 boolean



public class ShortCircuit 

{

    static boolean test1(int val) 

    {

        System.out.println("test1(" + val + ")");

        System.out.println("result: " + (val < 1));

        return val < 1;

    }

    static boolean test2(int val) 

    {

        System.out.println("test2(" + val + ")");

        System.out.println("result: " + (val < 2));

        return val < 2;

    }

    static boolean test3(int val) 

    {

        System.out.println("test3(" + val + ")");

        System.out.println("result: " + (val < 3));

        return val < 3;

    }

    public static void main(String[] args) 

    {

        if(test1(0) && test2(2) && test3(2))// All true 

        {

            System.out.println("expression is true");

        } else {

            System.out.println("expression is false");

        }

    }

} 



/**

test1(0)

result: true

test2(2)

result: false

test3(2)

result: true

expression is false

**/





//------------------------------------------------

//: c03:IfElse.java if-else



public class IfElse 

{

    static int test(int testval, int target) 

    {

        int result = 0;



        if(testval > target)

        {

            result = +1;

        } 

        else if(testval < target)

        {

            result = -1;

        }

        else

        {

            result = 0; // Match

        }

        return result;

    }

    public static void main(String[] args) 

    {

        System.out.println(test(10, 5));

        System.out.println(test(5, 10));

        System.out.println(test(5, 5));

    }

} 



/**

1

-1

0

**/





//------------------------------------------------

//: c03:WhileTest.java While



public class WhileTest

{

    public static void main(String[] args) 

    {

        double r = 0;

        while(r < 0.99d) 

        {

            r = Math.random();

            System.out.println(r);

        }

    }

} 



/**

0.4643098755141839

0.46956833871910775

0.3023014793430383

0.9343842809456361

0.9642984062528261

0.594761574760128

0.7540668421887108

0.42473394514593177

0.3312915948912968

0.08084027534642113

0.4218415025627196

0.4687745399436214

0.3829927758818946

0.616095194457045

0.011273102047402395

0.4732251094198431

0.33792380108740894

0.5604475435957004

0.5978686611004081

0.35382757166521284

0.5288154146512988

0.3183120940316535

0.99461348729767

**/



//------------------------------------------------

//: c03:ListCharacters.java for loop



public class ListCharacters 

{

    public static void main(String[] args) 

    {

        for( char c = 0; c < 128; c++)

        {

            if (c != 26 )// ANSI Clear screen

            {

                System.out.println("value: " + (int)c + "character: " + c );

            }

        }

    }

} 

/**

value: 0character: .....

.

.

.

value: 118character: v

value: 119character: w

value: 120character: x

value: 121character: y

value: 122character: z

value: 123character: {

value: 124character: |

value: 125character: }

value: 126character: ~

value: 127character: 

**/





//------------------------------------------------

//: c03:CommaOperator.java for loop



public class CommaOperator 

{

    public static void main(String[] args) 

    {

        for(int i = 1, j = i + 10; i < 5;i++, j = i * 2) 

        {

            System.out.println("i= " + i + " j= " + j);

        }

    }

} 



/**

Here's the output:

i= 1 j= 11

i= 2 j= 4

i= 3 j= 6

i= 4 j= 8

**/





//------------------------------------------------

//: c03:BreakAndContinue.java break & continue



public class BreakAndContinue 

{

    public static void main(String[] args) 

    {

        for(int i = 0; i < 100; i++) 

        {

            if(i == 74) 

            {

				break; // Out of for loop

			}

            if(i % 9 != 0) continue; // Next iteration

            {

	            System.out.println(i);

		    }

        }

        int i = 0;

        // An "infinite loop":

        while(true) 

        {

            i++;

            int j = i * 27;



            if(j == 1269) 

            {

				break; // Out of loop

   			}

            if(i % 10 != 0) 

            {

				continue; // Top of loop

			}

            System.out.println(i);

        }

    }

} 



/**

0

9

18

27

36

45

54

63

72

10

20

30

40

**/





//------------------------------------------------

//: c03:VowelsAndConsonants.java switch



public class VowelsAndConsonants 

{

    public static void main(String[] args) 

    {

        for(int i = 0; i < 20; i++) 

        {

            char c = (char)(Math.random() * 26 + 'a');

            System.out.print(c + ": ");

            switch(c) 

            {

                case 'a':

                case 'e':

                case 'i':

                case 'o':

                case 'u':	System.out.println("vowel");	break;

                default:    System.out.println("consonant");

            }

        }

    }

} 



/**

c: consonant

r: consonant

d: consonant

c: consonant

j: consonant

j: consonant

k: consonant

v: consonant

w: consonant

s: consonant

a: vowel

r: consonant

v: consonant

i: vowel

q: consonant

y: consonant

t: consonant

l: consonant

x: consonant

s: consonant

**/







///////////////////////////////////////////////////////////////////////////////////////////

//// 	Chapter 4 コンストラクタと初期化



//------------------------------------------------



//: c04:SimpleConstructor.java デフォルトコンストラクタ



class Rock 

{

    Rock()// This is the constructor

    { 

        System.out.println("Creating Rock");

    }

}

public class SimpleConstructor 

{

    public static void main(String[] args) 

    {

        for(int i = 0; i < 5; i++)

        {

            new Rock();

        }

    }

} 



/**

Creating Rock

Creating Rock

Creating Rock

Creating Rock

Creating Rock

**/





//------------------------------------------------

//: c04:SimpleConstructor2.java コンストラクタへ値を渡す



class Rock2 

{

    Rock2(int i) // This is the constructor

    {

        System.out.println("Creating Rock number " + i);

    }

}

public class SimpleConstructor2 

{

    public static void main(String[] args) 

    {

        for(int i = 0; i < 5; i++)

        {

            new Rock2(i);

        }

    }

} 



/**

Creating Rock number 0

Creating Rock number 1

Creating Rock number 2

Creating Rock number 3

Creating Rock number 4

**/





//------------------------------------------------

//: c04:OverloadingOrder.java

// パラメータの内容が異なればコンストラクタの名前は同一でも構わない



public class OverloadingOrder 

{

    static void print(String s, int i) 

    {

        System.out.println("String: " + s +", int: " + i);

    }

    static void print(int i, String s) 

    {

        System.out.println("int: " + i + ", String: " + s);

    }

    public static void main(String[] args) 

    {

        print("String first", 11); // String, int

        print(99, "Int first");    // int, String

    }

} 



/**

String: String first, int: 11

int: 99, String: Int first

**/





//------------------------------------------------

//: c04:DefaultConstructor.java

// デフォルトコンストラクタは省略が可能 自動的に作成される



class Bird 

{

}

public class DefaultConstructor 

{

    public static void main(String[] args) 

    {

        Bird nc = new Bird(); // default!

    }

} 



/**

**/





//------------------------------------------------

//: c04:Cake.java



class Pie 

{

    void f() 

    {

		System.out.println("Pie.f()"); 

    }

}

class Cake 

{

    public static void main(String[] args) 

    {

    	Pie x = new Pie();

    	x.f();

    }

} 



/**

 * Pie.f()

 */





//------------------------------------------------

//: c04:Flower.java

// thisはクラスのコンストラクタを意味する



public class Flower 

{

    int petalCount = 0;

    String s = new String("null");



    Flower(int petals) 

    {

        petalCount = petals;

        System.out.println("Constructor w/ int arg only, petalCount= "    + petalCount);

    }

    Flower(String s, int petals) 

    {

        this(petals);

        this.s = s; // Another use of "this"

        System.out.println("String & int args");

    }

    Flower() 

    {

        this("hi", 47);

        System.out.println("default constructor (no args)");

    }

    void print() 

    {

        System.out.println("petalCount = " + petalCount + " s = "+ s);

    }

    public static void main(String[] args) 

    {

        Flower x = new Flower();

        x.print();

    }

} 



/**

Constructor w/ int arg only, petalCount= 47

String & int args

default constructor (no args)

petalCount = 47 s = hi

**/





//------------------------------------------------

//: c04:OrderOfInitialization.java

// インスタンスオブジェクトの生成の後、コンストラクタが実行される



class Tag 

{

    Tag(int marker) 

    {

    	System.out.println("Tag(" + marker + ")");

    }

}

class Card 

{

    Tag t1 = new Tag(1); // Before constructor

    

    Card() 

    {

	    // Indicate we're in the constructor:

	    System.out.println("Card()");

	    t3 = new Tag(33); // Reinitialize t3

    }

    

    Tag t2 = new Tag(2); // After constructor

    

    void f() 

    {

    	System.out.println("f()");

    }

    

    Tag t3 = new Tag(3); // At end

}

public class OrderOfInitialization 

{

    public static void main(String[] args) 

    {

	    Card t = new Card();

	    t.f(); // Shows that construction is done

    }

} 



/**

Tag(1)

Tag(2)

Tag(3)

Card()

Tag(33)

f()

**/





//------------------------------------------------

//: c04:ExplicitStatic.java

// static はクラス変数



class Cup 

{

    Cup(int marker) 

    {

	    System.out.println("Cup(" + marker + ")");

    }

    void f(int marker) 

    {

    	System.out.println("f(" + marker + ")");

    }

}

class Cups 

{

    static Cup c1 = new Cup(1);

    static Cup c2 = new Cup(2);



    Cups() 

    {

    	System.out.println("Cups()");

    }

}

public class ExplicitStatic 

{

    public static void main(String[] args) 

    {

	    System.out.println("Inside main()");

	    Cups.c1.f(99);

    }

} 



/**

Inside main()

Cup(1)

Cup(2)

f(99)

**/





//------------------------------------------------

//: c04:IceCream.java



class Sundae 

{

    private Sundae() 

    {

    }

    static Sundae makeASundae() 

    {

	    return new Sundae(); 

    }

}

public class IceCream 

{

    public static void main(String[] args) 

    {

	    //! Sundae x = new Sundae();

	    Sundae x = Sundae.makeASundae();

    }

} 



/**

 * 

 */





//------------------------------------------------

//: c04:Arrays.java

// プリミティブ変数の配列



public class Arrays 

{

    public static void main(String[] args) 

    {

	    int[] a1 = { 1, 2, 3, 4, 5 };

	    int[] a2;

	    a2 = a1;

	    for(int i = 0; i < a2.length; i++)

	    {

	        a2[i]++;//increment

	    }

	    for(int i = 0; i < a1.length; i++)

	    {

	        System.out.println("a1[" + i + "] = " + a1[i]);

	    }

    }

} 



/**

a1[0] = 2

a1[1] = 3

a1[2] = 4

a1[3] = 5

a1[4] = 6

**/















I-ichirow Suzuki _/_/_/_/_/_/_/_/_/_/_

URL : www.kg-group.com Top Page

Mail : suzuki@kg-group.com

/_/_/_/_/_/_/_/_/_/_/_/_ ICQ : 3743158