내부 클래스,부분 내부 클래스 와 익명 내부 클래스 생 성 대상 방법

2789 단어 javase
내부 클래스:
A 클래스 에 정 의 된 B 클래스 는 내부 클래스 이 고 B 클래스 는 A 클래스 에서 다른 멤버 와 같은 위치 에 있 습 니 다.즉,서로 호출 할 수 있다 는 뜻 입 니 다. 
장점:내부 클래스 를 통 해 자바 간접 적 으로 다 중 계승 가능
내부 클래스 의 대상 만 들 기
   
             
Outer out = new Outer();
     .new        
Outer.Inner in = out.new Inner();
in.play();

   
                  
Outer out = new Outer();
out.show();
class Outer{
	int age = 10;
	class Inner{//   
		int height =  20;
		public void play() {
			age+=10;
  	 System.out.println("Inner - play"+ age);
		}
	}
	
	public void show() {
		System.out.println("Outer - show");
		//      Inner
		Inner in= new Inner();
		in.play();
	}
}

부분 내부 클래스:
정의:한 클래스 의 방법 중 클래스
역할 범위:이 를 정의 하 는 것 부터 해당 방법의 끝 역할 까지:코드 의 사유 화 를 확보 할 뿐만 아니 라 코드 를 정리 하여 코드 의 가 독성,조작 성 을 증가 시 켰 다.
  •  형식
    class     {
            (){
                {
                    (){
                    
                }
            }
        }
    }
    

    익명 내부 클래스
    익명 내부 클래스(대상):한 가지 방법 에 정 의 된 익명 하위 클래스 의 대상 은 국부 내부 클래스 익명 내부 클래스 의 역할 에 속 합 니 다.클래스 의 민영화 에 사용 되 고 외부 클래스 만 볼 수 있 습 니 다.
          ,      
    class Text1 {
    	public void text1Method() {
    		System.out.println("text1Method");
    	}
    }
    
    class SubText1 extends Text1 {
    	public void text1Method() {
    		System.out.println("SubText1-Method");
    	}
    }
    

    익명 대상 만 들 기,방법 호출 완료
    new Text1().text1Method();
    

    익명 하위 클래스 만 들 기
  •  방법 은 기 존의 하위 클래스 성명 하위 클래스 대상 을 사용 하고 호출 방법
  •  응용 장면:기 존의 자 류 는 여러 번 사용 할 수 있 고 같은 기능 을 여러 번 사용 해 야 할 때
  • new SubText1().text1Method();
    
  •  방법 2:이름 없 는 Text 1 류 의 익명 클래스 대상 을 직접 만 듭 니 다
  •   :new      /       +()+{
                
    };
    
  •  장면:한 번 만 사용 할 수 있 습 니 다.사용 하고 즉시 방출 합 니 다.매번 다른 기능 을 사용 합 니 다
  • Text1 t = new Text1() {
    			//    Text1    
    			public void text1Method() {
    				System.out.println("  ");
    			}
    
    			//        
    			public void bark() {
    				System.out.println("bark");
    			}
    		};
    

    익명 내부 클래스 를 매개 변수 와 반환 값 으로 연구 합 니 다.
    매개 변수 로
    //            
    	public void textCanshu1() {
    		System.out.println(new Text1());
    	}
    
    
    	//              
    	public void textCanshu2() {
    		
    		System.out.println(
    
    				new Text1() {
    					public String xiuxiuxiu() {
    						System.out.println("   ");
    						// com.qinafeng.text.Out$3@4e25154f
    						return "dididi";
    					}
    				}.xiuxiuxiu());
    	}
    

    반환 값 으로
    //            
    	public Text1 textFanhuizhi1() {
    		return new Text1();
    	}
    
    //          
    	public Text1 textFnhuizhi2() {
    		return new Text1() {
    			public void xiuxiuxiu() {
    				System.out.println("   ");
    			}
    		};
    	}
    

    좋은 웹페이지 즐겨찾기