¤¿¤á¤Ë¤Ê¤ë¥Û¡¼¥à¥Ú¡¼¥¸ ¤ªÌ䤤¹ç¤ï¤»




TOP > Java > ¥á¥½¥Ã¥ÉÀë¸À¤ÈÊÑ¿ôÀë¸À¤È½¤¾þ»Ò
¥á¥ó¥Ð¡¼
¥á¥½¥Ã¥É¤È¥¤¥ó¥¹¥¿¥ó¥¹¡ÊÈó¥í¡¼¥«¥ë¡ËÊÑ¿ô¤Î¤³¤È¡£¤Á¤Ê¤ß¤Ë¡¢¥á¥½¥Ã¥ÉÆâ¤ÇÀë¸À¤·¤¿ÊÑ¿ô¤ò¥í¡¼¥«¥ëÊÑ¿ô¤È¤¤¤¦¡£
¥¯¥é¥¹´Ö¤¬¥¢¥¯¥»¥¹¤Ç¤­¤ë»ö¤¬Á°Äó¤È¤¤¤¿¾å¤Ç¡¢¤¢¤ë¥½¡¼¥¹¥³¡¼¥É¤¬Ê̤Υ¯¥é¥¹¤Î¥á¥ó¥Ð¡¼¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¤È¤¤¤¦»ö¤Ï¡¢°Ê²¼¤Î2Ä̤꤬¤¢¤ë¡£
£±¡¥¥¤¥ó¥¹¥¿¥ó¥¹¤òÀ¸À®¤·¤Æ¡¢¥á¥ó¥Ð¡¼¤Ë¥¢¥¯¥»¥¹¤¹¤ë¡£
£²¡¥·Ñ¾µ¤·¤¿¥¯¥é¥¹¤¬·Ñ¾µ¸µ¤Î¥á¥ó¥Ð¡¼¤ò»ÈÍѤ¹¤ë¡£

¥¤¥ó¥¹¥¿¥ó¥¹¤òÀ¸À®¤·¤Æ¡¢¥á¥ó¥Ð¡¼¤Ë¥¢¥¯¥»¥¹¤¹¤ëÎã
class Test{
    public String Method(){
        return "¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤·¤¿¡£" ;
    }
}

class TestMain{
    void use(){
        //¤³¤Î¹Ô¤¬¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤ë¤È¡¢
        //TestMemderInstance¤¬test¥¯¥é¥¹¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£
        Test test = new Test() ;
        //TestMemderInstance¤Ï¥Ç¥Õ¥©¥ë¥È¥á¥½¥Ã¥ÉMethod()¤Ë
        //¥¢¥¯¥»¥¹¤Ç¤­¤ë¤Î¤ÇOK¡ª
        System.out.println(test.Method()) ;
    }
}


·Ñ¾µ¤·¤¿¥¯¥é¥¹¤¬·Ñ¾µ¸µ¤Î¥á¥ó¥Ð¡¼¤ò»ÈÍѤ¹¤ëÎã
class Super{
    public String Method(){
        return "¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤·¤¿¡£" ;
    }
}


class Sub extends Super{
    void use(){
        //Super¥¯¥é¥¹¤ò·Ñ¾µ¤·¤Æ¤¤¤ë¤Î¤Ç¡¢¤³¤Î¹Ô¤ÏOK¡ª
        this.Method() ;

        //¤³¤Î¹Ô¤¬¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤ë¤È¡¢
        //Sub¤¬TestMemberSuper¥¯¥é¥¹¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£
        Super s = new Super() ;

        //Sub¤Ïtest»²¾ÈÊÑ¿ô¤òÄ̤¸¤Æ¡¢Method()¤ò¸Æ¤Ó½Ð¤»¤ë¡£
        s.Method() ;
    }
}


¥á¥ó¥Ð¡¼¥¢¥¯¥»¥¹[¥Ñ¥Ö¥ê¥Ã¥¯¥á¥ó¥Ð¡¼(public)]
¥á¥ó¥Ð¡¼ÊÑ¿ô¡¦¥á¥½¥Ã¥É¤Ë¡Öpublic¡×½¤¾þ»Ò¤¬¤Ä¤¤¤Æ¤¤¤ë¤È¡¢Á´¤Æ¤Î¥Ñ¥Ã¥±¡¼¥¸¤«¤é¥¢¥¯¥»¥¹²Äǽ¤È¤Ê¤ë¡£Ã¢¤·¡¢¤½¤Î¥¯¥é¥¹¤¬¸«¤¨¤Æ¤¤¤ë»ö¤¬Á°Äó¾ò·ï¡£

°Û¤Ê¤ë¥Ñ¥Ã¥±¡¼¥¸´Ö¤ÎÎã
package cat ;

public class Cat{
    public void method(){
        System.out.println("public¥á¥ó¥Ð¡¼¤Ê¤Î¤Ç¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤¹¡£") ;
    }
}


package dog ;

import cat.* ;

public class Dog{
    public static void main(String[] args){
        Cat test = new Cat() ;

        test.method() ;
    }
}


·Ñ¾µ¤Ë¤è¤ëÎã
package supered ;

public class Super{
  public String method(){
    return "public¥á¥ó¥Ð¡¼¤Ê¤Î¤Ç¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤¹¡£" ;
  }
}



package subed ;

import supered.* ;

public class Sub extends Super{

    public void use(){
        //TestMemberPublicSuper¤ò·Ñ¾µ¤·¤Æ¤¤¤ë¤Î¤Ç¡¢
        //¥¤¥ó¥¹¥¿¥ó¥¹¤òÀ¸À®¤»¤º¤ËľÀÜmethod()¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£
        //¤Á¤Ê¤ß¤Ëthis½¤¾þ»Ò¤Ï¤³¤Î¾ì¹ç¤Ê¤¯¤Æ¤â¤è¤¤¡£
        System.out.println(this.method()) ;
    }
}


//¼Â¹Ô¥Õ¥¡¥¤¥ë
package subed ;

public class Test{
    public static void main(String[] args){
    //¤³¤ÎTest¤Ï¥µ¥Ö¥¯¥é¥¹¤Ç¤Ê¤¤¤Î¤Ç¡¢Sub¤Î¥¤¥ó¥¹¥¿¥ó¥¹À¸À®¤¬É¬Íפˤʤ롣
        Sub s = new Sub() ;
        s.use() ;
    }
}


¥á¥ó¥Ð¡¼¥¢¥¯¥»¥¹[¥×¥é¥¤¥Ù¡¼¥È¥á¥ó¥Ð¡¼(private)]
private¤ÇÀë¸À¤µ¤ì¤¿¥á¥ó¥Ð¡¼¤Ï¡¢¤½¤Î¥¯¥é¥¹°Ê³°¤Î¥¯¥é¥¹¤Î¥³¡¼¥É¤«¤é¥¢¥¯¥»¥¹¤¹¤ë»ö¤Ï¤Ç¤­¤Ê¤¤¡£¤Þ¤¿¡¢private½¤¾þ»Ò¤ÎÉÕ¤¤¤Æ¤¤¤ë¥¹¡¼¥Ñ¡¼¥¯¥é¥¹¤Î¥á¥½¥Ã¥É¤â¡¢¥µ¥Ö¥¯¥é¥¹¤Ç»ÈÍѤǤ­¤Ê¤¤¡£
¡Öprivate¥á¥½¥Ã¥É¤ò¥µ¥Ö¥¯¥é¥¹¤Ï·Ñ¾µ¤Ç¤­¤Ê¤¤¡×¡á¡Ö¥á¥½¥Ã¥É¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É¤â¤Ç¤­¤Ê¤¤¡×
¥µ¥Ö¥¯¥é¥¹Æâ¤Ç¡¢¥á¥½¥Ã¥É¤ò¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤Æ¤¤¤ëÍͤˤߤ¨¤ë¤¬¡¢¼ÂºÝ¤Ï¥ª¡¼¥Ð¡¼¥é¥¤¥É¤Ç¤Ï¤Ê¤¯¡¢¿·¤·¤¯¥á¥½¥Ã¥É¤òÀë¸À¤·¤Æ¤¤¤ë¤À¤±¤Ç¤¢¤ë¡£

private¤¬ÉÕ¤¤¤Æ¤¤¤ë¥á¥ó¥Ð¡¼¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤ß¤ëÎã
package cat ;

public class Cat{
    private int add(int a , int b){
        return (a + b) ;
    }
}


package dog ;

import cat.* ;

public class Dog{

    int c ;
    Cat cat = new Cat() ;

    public void use(){
        c = cat.add(1 , 3) ;//¢¨
    }
}


Cat¥¯¥é¥¹Æâ¤Î¡Öadd()¡×¥á¥½¥Ã¥É¤Ïprivate½¤¾þ»Ò¤¬ÉÕ¤¤¤Æ¤¤¤ë¤Î¤Ç¡¢Æ±°ì¥¯¥é¥¹(¤¹¤Ê¤ï¤Á¡¢CatÆâ)¤Ç¤Î¤ß¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£¤è¤Ã¤Æ¡¢¡Ö¢¨¡×¤Ç¥³¥ó¥Ñ¥¤¥ë¥¨¥é¡¼¤¬µ¯¤­¤ë¡£

¥µ¥Ö¥¯¥é¥¹¤¬¥¹¡¼¥Ñ¡¼¥¯¥é¥¹¤Îprivate½¤¾þ»Ò¤ÎÉÕ¤¤¤Æ¤¤¤ë¥á¥ó¥Ð¡¼¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤ß¤ëÎã
class Super{

    private int add(int a , int b) {
        return (a + b) ;
    }
}


public class Sub extends Super{

    void use(){
        System.out.println(add(1 , 2)) ;//¢¨
    }
}


¥¯¥é¥¹´ÖƱ»Î¤Ï¥¢¥¯¥»¥¹¤Ç¤­¤ë¤¬¡¢Super¥¯¥é¥¹¤Îprivate¥á¥½¥Ã¥É¤Ï·Ñ¾µ¤Ç¤­¤Ê¤¤¤Î¤Ç¡Ö¢¨¡×¤Ç¥³¥ó¥Ñ¥¤¥ë¥¨¥é¡¼¤¬µ¯¤­¤ë¡£

¥á¥ó¥Ð¡¼¥¢¥¯¥»¥¹[¥Ç¥Õ¥©¥ë¥È¥á¥ó¥Ð¡¼¤È¥×¥í¥Æ¥¯¥È¥á¥ó¥Ð¡¼(protected)]
¤Û¤È¤ó¤É¤³¤Î2¤Ä¤Ë°ã¤¤¤Ï¤Ê¤¤¡£¥Ç¥Õ¥©¥ë¥È¥á¥ó¥Ð¡¼¤È¥×¥í¥Æ¥¯¥È¥á¥ó¥Ð¡¼¤Ï¡¢Æ±°ì¥Ñ¥Ã¥±¡¼¥¸¤Î¤ß¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£Í£°ì¤Î°ã¤¤¤Ï¡¢¥×¥í¥Æ¥¯¥È¥á¥ó¥Ð¡¼¤Ï¡Ö¾¥Ñ¥Ã¥±¡¼¥¸¤Î¥×¥í¥Æ¥¯¥È¥á¥ó¥Ð¡¼¤ò¥µ¥Ö¥¯¥é¥¹¤Ç·Ñ¾µ¤òÄ̤¸¤Æ¥¢¥¯¥»¥¹¤Ç¤­¤ë¤³¤È¡£¡×

Ʊ°ì¥Ñ¥Ã¥±¡¼¥¸Æâ¤Î¥Ç¥Õ¥©¥ë¥È¥¢¥¯¥»¥¹¤ÎÎã
class Dog{
    void echo(){
        System.out.println("I am a dog") ;
    }
}


public class Cat{
    public static void main(String[] args){
        Dog dog = new Dog() ;

        dog.echo() ;
    }
}


Ʊ°ì¥Ñ¥Ã¥±¡¼¥¸Æâ¤Ê¤Î¤Ç¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£¤Á¤Ê¤ß¤ËDog¥¯¥é¥¹¤Îecho()¥á¥½¥Ã¥É¤Ë¡Öprotected¡×¤òÉÕ¤±¤Æ¤â·ë²Ì¤ÏƱ¤¸¡£

°Û¤Ê¤ë¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ç¥Õ¥©¥ë¥È¥¢¥¯¥»¥¹¤ÎÎã
package Dog ;

public class Dog{
    void echo(){
        System.out.println("I am a Dog") ;
    }
}


package cat ;

import dog.* ;

public class Cat{
    public static void main(String[] args){
        Dog d = new Dog() ;

        d.echo() ;//¤³¤³¤Ç¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Ê¤¤¡£
    }
}


¤³¤ÎÎã¤Ç¤Ï¡¢¤ª¸ß¤¤¤Î¥¯¥é¥¹´ÖƱ»Î¤Ïpublic¤Ê¤Î¤Ç¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£¤¬¡¢Dog¥¯¥é¥¹¤Î¥á¥½¥Ã¥Éecho()¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¥¢¥¯¥»¥¹¤Ê¤Î¤ÇƱ°ì¥Ñ¥Ã¥±¡¼¥¸Æâ¤Ç¤Ê¤¤¤È¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤¡£¤è¤Ã¤Æ¡¢¤³¤ÎÎã¤Ï¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Ê¤¤¡£¤Á¤Ê¤ß¤Ë¥á¥½¥Ã¥Éecho()¤ò¥×¥í¥Æ¥¯¥È(protected)¤ËÊѹ¹¤·¤Æ¤â¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Ê¤¤¡£

Ʊ°ì¥Ñ¥Ã¥±¡¼¥¸Æâ¤Ç¤Î¥¯¥é¥¹¤Î·Ñ¾µ¡Ê¥Ç¥Õ¥©¥ë¥È¥¢¥¯¥»¥¹¡Ë¤ÎÎã
class Super{
  int a = 9 ;
}


public class Sub extends Super{
    void echo(){
        System.out.println(a) ;//­¡
    }

    public static void main(String[] args){
        Sub s = new Sub() ;
        s.echo() ;

        Super s2 = new Super() ;
        System.out.println(s2.a) ;//­¢
    }

}


­¡¤Ï·Ñ¾µ¤·¤¿¥á¥ó¥Ð¡¼ÊÑ¿ô¤ò»È¤Ã¤Æ¤¤¤ë¡£­¢¤Ï¥¹¡¼¥Ñ¡¼¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤òÀ¸À®¤·¡¢¥¢¥¯¥»¥¹¤·¤Æ¤¤¤ë¡£¤Á¤Ê¤ß¤Ë¡¢¥¹¡¼¥Ñ¡¼¥¯¥é¥¹¤Î¥á¥ó¥Ð¡¼ÊÑ¿ô¤ò¡Öprotected¡×¤Ë¤«¤¨¤Æ¤â·ë²Ì¤ÏƱ¤¸¡£

¾¥Ñ¥Ã¥±¡¼¥¸Æâ¤Ç¤Î¥¯¥é¥¹¤Î·Ñ¾µ¡Ê¥Ç¥Õ¥©¥ë¥È¥¢¥¯¥»¥¹¡Ë¤ÎÎã
package supered ;

public class Super{
    int a = 9 ;
}


package subed ;

import supered.* ;

public class Sub extends Super{
    void echo(){
        System.out.println(a) ;//­¡
    }

    public static void main(String[] args){
        Sub s = new Sub() ;
        s.echo() ;

        Super s2 = new Super() ;
        System.out.println(s2.a) ;//­¢
    }

}


­¡¤Ï·Ñ¾µ¤·¤¿¥á¥ó¥Ð¡¼ÊÑ¿ô¤ò»È¤Ã¤Æ¤¤¤ë¡£­¢¤Ï¥¹¡¼¥Ñ¡¼¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤òÀ¸À®¤·¡¢¥¢¥¯¥»¥¹¤·¤Æ¤¤¤ë¡£¤Á¤Ê¤ß¤Ë¡¢¥¹¡¼¥Ñ¡¼¥¯¥é¥¹¤Î¥á¥ó¥Ð¡¼ÊÑ¿ô¤ò¡Öprotected¡×¤Ë¤«¤¨¤Æ¤â·ë²Ì¤ÏƱ¤¸¡£

¾¥Ñ¥Ã¥±¡¼¥¸Æâ¤Ç¤Î¥¯¥é¥¹¤Î·Ñ¾µ¡Ê¥Ç¥Õ¥©¥ë¥È¥¢¥¯¥»¥¹¡Ë¤ÎÎã
package supered ;

public class Super{
    int a = 9 ;
}


package subed ;

import supered.* ;

public class Sub extends Super{
    void echo(){
        System.out.println(a) ;//­¡
    }

    public static void main(String[] args){
        Sub s = new Sub() ;
        s.echo() ;

        Super s2 = new Super() ;
        System.out.println(s2.a) ;//­¢
    }

}


­¡¤Ç¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Ê¤¤¡£Â¾¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î¥¹¡¼¥Ñ¡¼¥¯¥é¥¹¤Î¥Ç¥Õ¥©¥ë¥È¥á¥ó¥Ð¡¼¤ò¥µ¥Ö¥¯¥é¥¹¤Ï·Ñ¾µ¤Ç¤­¤Ê¤¤¡£­¢¤â¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Ê¤¤¡£Â¾¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î¥¹¡¼¥Ñ¡¼¥¯¥é¥¹¤Î¥Ç¥Õ¥©¥ë¥È¥á¥ó¥Ð¡¼¤ò¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô(s)¤òÄ̤·¤Æ¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤¡£¤Ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¥á¥ó¥Ð¡¼¤òprotected¤Ë¤¹¤ë¤È¤É¤¦¤Ê¤ë¤«¡©¼¡¤ÎÎã¤ò¸«¤Æ²¼¤µ¤¤¡£

¾¥Ñ¥Ã¥±¡¼¥¸Æâ¤Ç¤Î¥¯¥é¥¹¤Î·Ñ¾µ¡Ê¥×¥í¥Æ¥¯¥È¥¢¥¯¥»¥¹¡Ë¤ÎÎã
package supered ;

public class Super{
    protected int a = 9 ;//protectd¤ËÊѹ¹
}


package subed ;

import supered.* ;

public class Sub extends Super{
    void echo(){
        System.out.println(a) ;//­¡
    }

    public static void main(String[] args){
        Sub s = new Sub() ;
        s.echo() ;

        Super s2 = new Super() ;
        System.out.println(s2.a) ;//­¢
    }

}


¤³¤Î¥³¡¼¥É¤Ï­¢¤Ç¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Ê¤¤¡£protected½¤¾þ»Ò¤¬¤Ä¤¤¤Æ¤¤¤ë¥á¥ó¥Ð¡¼¤Ï¾¥Ñ¥Ã¥±¡¼¥¸¤Î¾ì¹ç¡¢·Ñ¾µ¤òÄ̤¸¤Æ¤Ï»ÈÍѤǤ­¤ë¤¬¡¢»²¾ÈÊÑ¿ô¤ò»ÈÍѤ·¤Æ¥¢¥¯¥»¥¹¤¹¤ë»ö¤Ï¤Ç¤­¤Ê¤¤¡£

¾¥Ñ¥Ã¥±¡¼¥¸Æâ¤Ç¤Î¥¯¥é¥¹¤Î·Ñ¾µ¤·¤¿¥á¥ó¥Ð¡¼¤ò¾¤Î¥¯¥é¥¹¤«¤é¥¢¥¯¥»¥¹¤·¤Æ¤ß¤ë¡Ê¥×¥í¥Æ¥¯¥È¥¢¥¯¥»¥¹¡Ë¤ÎÎã
package supered ;

public class Super{
    protected int a = 9 ;//protectd¤ËÊѹ¹
}


package subed ;

import supered.* ;

class Sub extends Super{

}


class Test{
    public static void main(String[] args){
        Sub s = new Sub() ;
        System.out.println(s.a) ;//¢¨
    }
}


¤³¤ÎÎã¤Ï¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Ê¤¤¡£Sub¥¯¥é¥¹¤Ç·Ñ¾µ¤·¤¿¥á¥ó¥Ð¡¼ÊÑ¿ô¡Öa¡×¤Ï¡¢Sub¥¯¥é¥¹Æâ¤Ç¤Ï»ÈÍѤǤ­¤ë¤¬¡¢·Ñ¾µ¤·¤¿¥á¥ó¥Ð¡¼¤ÏÁ´¤Æ¡Öprivate¡×¥¢¥¯¥»¥¹¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¡£¤è¤Ã¤Æ¡¢¤½¤Îprivate¥á¥ó¥Ð¡¼¡Öa¡×¤Ë¥¢¥¯¥»¥¹¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¢¨¤Ç¥³¥ó¥Ñ¥¤¥ë¥¨¥é¡¼¤¬µ¯¤­¤ë¡£

¥í¡¼¥«¥ëÊÑ¿ô¤È¥¢¥¯¥»¥¹½¤¾þ»Ò
¥í¡¼¥«¥ëÊÑ¿ô¤Ë¥¢¥¯¥»¥¹½¤¾þ»Ò¤ÏÉÕ¤±¤ì¤Þ¤»¤ó¡£Í£°ìÉÕ¤±¤é¤ì¤ë½¤¾þ»Ò¤Ï¡¢¡Öfinal¡×¤Î¤ß¡£

final¥á¥½¥Ã¥É
¥á¥½¥Ã¥É¤ò¥µ¥Ö¥¯¥é¥¹¤Ç¥ª¡¼¥Ð¡¼¥é¥¤¥É¤Ç¤­¤Ê¤¯¤¹¤ë¤Î¤Ë»ÈÍÑ¡£API¤ÎÃæ¤Ë¤Ï¡¢final¥á¥½¥Ã¥É¤¬Â¿¤¤¡£

final¥á¥½¥Ã¥É¤ÎÎã
class Super{
    final void echo(){//final¥á¥½¥Ã¥É
        System.out.println("Final") ;
    }
}


class Test extends Super{//·Ñ¾µ
     void echo(){//¥ª¡¼¥Ð¡¼¥é¥¤¥É
         System.out.println("final") ;
     }
}


final¥á¥½¥Ã¥É¤ò¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤è¤¦¤È¤¹¤ë¤È¡¢¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Ê¤¤¡£

final°ú¿ô
¥á¥½¥Ã¥É¤Î°ú¿ô¤òfinal¤Ç»ØÄê¡£final¤Ç»ØÄꤹ¤ë¤³¤È¤Ë¤è¤ê¤³¤ÎÊÑ¿ô¤Ï¡¢Êѹ¹¤Ç¤­¤Ê¤¯¤Ê¤ë¡£¤Á¤Ê¤ß¤Ë°ú¿ô¤Ï¥í¡¼¥«¥ëÊÑ¿ô¤Ê¤Î¤Ç¥á¥½¥Ã¥ÉÆâ¤Ç¤·¤«»È¤¨¤Ê¤¤¡£

final°ú¿ô¤ÎÎã
class Test{
     int add(int a, final int b){//b¤Ïfinal°ú¿ô
         a = a + 3 ;
         b = b + 3 ;//b¤Ïfinal°ú¿ô¤Ê¤Î¤ÇÊѹ¹¤Ç¤­¤Ê¤¤¡£¢¨
         return (a + b) ;
    }
    public static void main(String[] args){
        Test t = new Test() ;
        System.out.println(t.add(2, 3)) ;
        System.out.println(t.add(2, 5)) ;
    }
}


final°ú¿ô¤ÎÃͤÏÊѹ¹¤Ç¤­¤Ê¤¤¡£¤Ê¤Î¤Ç¤³¤Î¥½¡¼¥¹¤Ï¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Ê¤¤¡£¢¨¤òºï½ü¤¹¤ì¤Ð¡¢¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤ë¡£

abstract(Ãê¾Ý)¥á¥½¥Ã¥É
Ãê¾Ý¥á¥½¥Ã¥É¤Ï¡¢¡ÖÃê¾Ý¥¯¥é¥¹¡×¡Ö¥¤¥ó¥¿¥Õ¥§¡¼¥¹¡×¥¯¥é¥¹¤Ç¤Î¤ß»È¤¨¤ë¡£¥¤¥ó¥¿¥Õ¥§¡¼¥¹¥¯¥é¥¹¤Ç¤Ï°ÅÌÛŪ¤ËÃê¾Ý¥á¥½¥Ã¥É¤È¤Ê¤ë¤Î¤Ç¡¢abstract½¤¾þ»Ò¤Ï¾Êά¤Ç¤­¤ë¡£Ãí°Õ¤·¤Ê¤¯¤Æ¤Ï¤¤¤±¤Ê¤¤¤Î¤Ï¡¢¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ç¤Ê¤¯¤Æ¡¢¥¯¥é¥¹Æâ¤ËÃê¾Ý¥á¥½¥Ã¥É¤¬¤¢¤Ã¤¿¾ì¹ç¤Ï¡¢¤½¤Î¥¯¥é¥¹¤ÏÃê¾Ý¥¯¥é¥¹¤È¤Ê¤ë¤Î¤Ç¡¢É¬¤º¥¯¥é¥¹¤Î½¤¾þ»Ò¤Ëabstract¤ò¤Ä¤±¤ë¡£
Ãê¾Ý¥á¥½¥Ã¥É¤ÏÉÔ´°Á´¤Ê¥á¥½¥Ã¥É¤Ê¤Î¤Ç¡¢Ìá¤êÃÍ¡¦¥á¥½¥Ã¥É̾¡¦°ú¿ô¤ò»ØÄꤷ¡¢´Ø¿ô¤Ï½ñ¤«¤º¤Ë¥»¥ß¥³¥í¥ó¤Ç½ª¤ï¤é¤»¤ë¡£
Ãê¾Ý¥á¥½¥Ã¥É¤Ï¼ÂÁõ¤òÁ°Äó¤È¤·¤Æ¤¤¤ë¤Î¤Ç¡¢¼ÂÁõ¤Ë´ØÏ¢¤¹¤ë½¤¾þ»Ò¡Ösynchronized¡×¡Östatic¡×¡Önative¡×¡Östrictfp¡×¤È¤Î»ÈÍѤâ¤Ç¤­¤Ê¤¤¡£¤Þ¤¿¡¢¼ÂÁõ¤òÁ°Äó¤È¤·¤Æ¤¤¤ë¤Î¤Ç¡¢¡Öfinal¡×¤È¤âÊ»ÍѤǤ­¤Ê¤¤¡£

synchronized(Ʊ´ü)¥á¥½¥Ã¥É
¥á¥½¥Ã¥É¤Ësynchronized¥­¡¼¥ï¡¼¥É¤¬ÉÕ¤±¤ë»ö¤Ë¤è¤ê¡¢¤½¤Î¥á¥½¥Ã¥É¤Ë¤Ï°ì¤Ä¤Î¥¹¥ì¥Ã¥É¤·¤«¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¯¤Ê¤ë¡£Æ±´ü¥á¥½¥Ã¥É¤Ï¡¢4¤Ä¤Î¥¢¥¯¥»¥¹¥ì¥Ù¥ë¤¬»ÈÍѤǤ­¡¢final¤È¤âÊ»ÍѤǤ­¤ë¡£

native(¥Í¥¤¥Æ¥£¥Ö)¥á¥½¥Ã¥É
native½¤¾þ»Ò¤¬¤Ä¤¤¤Æ¤¤¤ë¥á¥½¥Ã¥É¤Ï¡¢¤½¤Î¥á¥½¥Ã¥É¤¬¥×¥é¥Ã¥È¥Õ¥©¡¼¥à°Í¸¤Î¸À¸ì(C¤Ê¤É)¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë»ö¤òɽ¤¹¡£

strictfp¥á¥½¥Ã¥É
strictfp½¤¾þ»Ò¤¬ÉÕ¤¤¤Æ¤¤¤ë¥á¥½¥Ã¥É¤Ï¡¢ÉâÆ°¾®¿ôÅÀ¤òIEEE754ɸ½à¤Ë½àµò¤µ¤»¤ë¤¿¤á¤Î¤â¤Î¡£¥¯¥é¥¹Á´ÂΤˤâ»È¤¨¤ë¡£

finalÊÑ¿ô
final¤ÇÀë¸À¤µ¤ì¤¿¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô(¥á¥ó¥Ð¡¼ÊÑ¿ô)¤Ï¡¢¤½¤ÎÊÑ¿ô¤òÌÀ¼¨Åª¤ÊÃͤǽé´ü²½¤·¤¿¸å¤ËºÆ¤Ó½é´ü²½¤¹¤ë»ö¤Ï¤Ç¤­¤Ê¤¯¤Ê¤ë¡£¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤òfinal¤ÈÀë¸À¤·¤¿¾ì¹ç¤Ï¡¢¥³¥ó¥¹¥È¥é¥¯¥¿½ªÎ»»þ¤Þ¤Ç¤ËÌÀ¼¨Åª¤ÊÃͤò³ä¤êÅö¤Æ¤ëɬÍפ¬¤¢¤ë¡£

finalÊÑ¿ô¤ò½é´ü²½¤·¤Ê¤¤Îã
class Super{
    final int a ;//­¡
}
class Test{
    public static void main(String[] args){
        Super s = new Super() ;
    }
}


­¡¤ÏfinalÊÑ¿ô¤Ê¤Î¤Ç¡¢½é´ü²½¤·¤Ê¤¤¤È¥³¥ó¥Ñ¥¤¥ë¥¨¥é¡¼¤Ë¤Ê¤ë¡£

finalÊÑ¿ô¤ò½é´ü²½¤¹¤ëÎã
class Super{
    final int a ;
    //¥³¥ó¥¹¥È¥é¥¯¥¿
    Super(){
        a = 3 ;//½é´ü²½
    }
}
class Test{
    public static void main(String[] args){
        Super s = new Super() ;
        System.out.println(s.a) ;
    }
}

finalÊÑ¿ô¤ËºÆÂåÆþ¤¹¤ëÎã
class Super{
    final int a ;
    //¥³¥ó¥¹¥È¥é¥¯¥¿
    Super(){
        a = 3 ;//½é´ü²½
    }
    //ºÆÂåÆþ¥á¥½¥Ã¥É
    int method() {
        a = 5 ;
    }
}
class Test{
    public static void main(String[] args){
        Super s = new Super() ;
        s.method() ;
        System.out.println(s.a) ;
    }
}

¥á¥½¥Ã¥Émethod()¤ÏfinalÊÑ¿ô¡Öa¡×¤ËºÆÂåÆþ¤ò¹Ô¤ª¤¦¤È¤·¤Æ¤¤¤ë¡£¤³¤³¤Ç¥³¥ó¥Ñ¥¤¥ë¥¨¥é¡¼¤¬µ¯¤­¤ë¡£

transientÊÑ¿ô
¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤òtransient¤ÈÀë¸À¤¹¤ë¤È¡¢¤½¤ÎÊÑ¿ô¤òÀë¸À¤·¤Æ¤¤¤ë¥ª¥Ö¥¸¥§¥¯¥È¤ò¤òľÎ󲽤·¤è¤¦¤È¤·¤¿»þ¡¢¤½¤ÎÊÑ¿ô¤ò¥¹¥­¥Ã¥×¡Ê̵»ë¡Ë¤¹¤ë¤è¤¦¤Ë¡¢JVM¤Ë»Ø¼¨¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤Î½¤¾þ»Ò¤Ï¡¢ÊÑ¿ô¤Î¤ß¤Ë»ÈÍѤǤ­¤ë¡£

volatileÊÑ¿ô

¥í¡¼¥«¥ëÊÑ¿ô
¥í¡¼¥«¥ëÊÑ¿ô¤È¤Ï¡¢¥á¥½¥Ã¥ÉÆâ¤ÇÀë¸À¤µ¤ì¤¿ÊÑ¿ô¤Î¤³¤È¡£É¬¤º½é´ü²½¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤È°ã¤¤¡¢¥Ç¥Õ¥©¥ë¥ÈÃͤò¤È¤é¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£¥í¡¼¥«¥ëÊÑ¿ô¤Ï¡¢¥á¥½¥Ã¥ÉÆâ¤ÇÀ¸¤Þ¤ì¥á¥½¥Ã¥É½ªÎ»»þ¤Ë¾ÃÌǤ¹¤ë¡£¥í¡¼¥«¥ëÊÑ¿ô¼«ÂΤϥҡ¼¥×¾å¤ËÃÖ¤«¤ì¤ë»ö¤Ï¤Ê¤¤¡£¥¹¥¿¥Ã¥¯¾å¤Ë¸ºß¤¹¤ë¤Î¤Ç¤¢¤ë¡£
¥í¡¼¥«¥ëÊÑ¿ô¤¬¥ª¥Ö¥¸¥§¥¯¥È»²¾È¤Ç¤¢¤ë¾ì¹ç¤Ï¡¢¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¼«ÂΤϥҡ¼¥×¾å¤Ë¸ºß¤¹¤ë¡£
¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤ÈƱ¤¸Ì¾Á°¤òÉÕ¤±¤ë»ö¤¬¤Ç¤­¤ë¡£¤³¤ì¤ò¥·¥ã¥É¥¦²½¤È¤¤¤¦¡£
¥í¡¼¥«¥ëÊÑ¿ô¤Ë»ÈÍѤǤ­¤ë½¤¾þ»Ò¤Ï¡¢¡Öfinal¡×¤Î¤ß¤Ç¤¢¤ë¡£

¥·¥ã¥É¥¦²½¤ÎÎã
class Super{
    int height = 178 ;

    void getHeight(int height){//¥·¥ã¥É¥¦²½
        height = height ;
    }
}
class Test{
    public static void main(String[] args){
        Super s = new Super() ;
        s.getHeight(180) ;
        System.out.println(s.height) ;//­¡
    }
}


¤³¤ÎÎã¤Ï¡¢¸í¤ê¡£¥³¥ó¥Ñ¥¤¥ë¡¢¼Â¹Ô¤Ï¤Ç¤­¤ë¤¬¡Öheight = height¡×¤¬¤É¤Îheight¤ò»Ø¤·¤Æ¤¤¤ë¤«¤ï¤«¤é¤Ê¤¤¡£¤³¤ÎÎã¤ò¼Â¹Ô¤¹¤ë¤È¡¢­¡¤Ï178¤òɽ¼¨¤¹¤ë¡£¤¹¤Ê¤ï¤Á¡¢¥í¡¼¥«¥ëÊÑ¿ô¤Ë180¤òÂåÆþ¤·¤¿¤À¤±¡ª¤È¤¤¤¦»ö¤Ë¤Ê¤ë¡£
ÂåÆþÀè¤ò¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤Ë¤¹¤ë¤Ë¤Ï¡¢º¸ÊÕ¤Îheight¤¬¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¤Ë¤Ï¡¢¥­¡¼¥ï¡¼¥Éthis¤ò»ÈÍѤ¹¤ì¤Ð¤è¤¤¡£
¤¹¤Ê¤ï¤Á¡¢this.height = height ;





Copyright 2007 ¤¿¤á¤Ë¤Ê¤ë¥Û¡¼¥à¥Ú¡¼¥¸ All Rights Reserved.