java 학습노트8: 방법 매개 변수 유형 및 반환값 유형, 내부 클래스, 익명 내부 클래스

3755 단어
1. 방법 매개 변수 유형 및 반환값 유형 1. 형식 매개 변수 ① 기본 유형은 하나의 기본 유형의 변수 또는 구체적인 상수값 ② 클래스 이름일 때 하나의 클래스의 대상 ③ 추상적 클래스일 때 하나의 클래스를 계승하는 하위 클래스 대상 ④ 인터페이스일 때 이 인터페이스를 실현한 하위 클래스 대상 2.반환값 유형 ① 기본 데이터 유형일 때 반환되는 것은 하나의 구체적인 값 ② 기본 데이터 유형일 때 반환되는 것은 하나의 구체적인 값 ③ 추상적 클래스일 때 반환되는 것은 해당 클래스에서 계승된 하위 클래스 대상 ④ 인터페이스 이름일 때 반환되는 것은 이 인터페이스를 실현한 하위 클래스 대상
 
public class MyTest {
    public static void main(String[] args) {
        Student student = new Student();
        student.setStudent(new Student()," ");
        Cat cat = new Cat();
        Animal an = new Cat();
        setAnimal(an);
        System.out.println("---------------");
        setInterface(new MyClass());
    }
    public static void setAnimal(Animal an) {
        an.eat();
    }   
    public static void setInterface(MyInterface myInterface) {
        myInterface.test();
    }
}
interface MyInterface {
void test();
}
class MyClass implements MyInterface{
    @Override
    public void test() {
      System.out.println(" ");
    }
}
class Student {
    String name;
    public void setStudent(Student s,String mz){
        s.name=mz;
    }
}

반환값
  public static Animal getAnimal(){
          return new Dog();
        }
        public static MyInterface getInterface(){     
            return new MyClass();
        }
        public Teacher getTeacher(Teacher teacher,String mz){
        teacher.name=mz;
        return this;
    }

2. 내부 클래스는 클래스를 다른 클래스의 내부에 정의하는데 이 클래스는 내부 클래스라고 부른다.1. 특징: ① 내부 클래스는 외부 클래스의 구성원을 직접 방문할 수 있으며 사유를 포함한다.② 외부 클래스가 내부 클래스의 구성원에게 액세스하려면 객체를 작성해야 합니다.2. 내부 클래스의 정의 위치에 따라 구성원 내부 클래스와 국부 내부 클래스로 나뉜다.
class B{
    class A{} // 
    public void  show(){
        class C{}// 
    }
}

구성원 내부 클래스 접근 외부 내부 형식: 외부 클래스 이름.내부 클래스 대상 이름 = 외부 클래스 대상.내부 클래스 대상;
class Outer {
	public int num = 10;
	class Inner {
		public int num = 20;
		public void show() {
			int num = 30;
			System.out.println(num);//30 
			System.out.println(Inner.this.num);//20
			System.out.println(Outer.this.num);//10 
		}
	}
}
	class InnerClassTest {
		public static void main(String[] args) {
			Outer.Inner oi = new Outer().new Inner();
			oi.show();
		}	
	}

국부 내부 클래스 접근 국부 변수: ① 외부 클래스에 직접 접근할 수 있는 구성원 ② 내부 클래스 대상을 만들 수 있다. 대상을 통해 내부 클래스 방법을 호출하여 국부 내부 클래스 기능을 사용한다. ③ 국부 내부 클래스 접근 국부 변수는final로 수식해야 한다.국부 변수는 방법의 호출이 완료됨에 따라 사라지기 때문에 이때 국부 대상은 즉시 메모리에서 사라지지 않고 그 변수를 사용해야 한다.데이터가 계속 사용될 수 있도록fianl로 수식하면 메모리에 저장된 것은 사실상 상수값이다.
class Outer { 	
	//  
	private int a = 45 ;   	
	//  
	public void show() { 
		final int b = 45 ;//JDK1.7 final    JDK1.8  
		class Inner {
			public void method(){
				System.out.println(a) ;//45
				System.out.println(b) ;//45
			}
		}
		Inner i = new Inner() ;
		i.method() ;    	
	}
}    
class InnerClassDemo6 { 
	public static void main(String[] args) { 		
		Outer out = new Outer() ;   
		out.show() ;
	}
}

3. 익명 내부 클래스 1, 즉 국부 내부 클래스의 간략한 쓰기.2. 전제: 하나의 종류나 인터페이스가 존재한다.이곳의 종류는 구체류일 수도 있고 추상류일 수도 있다.3. 형식:
new  (){
			 ;
		} ;

4. 본질은 이 클래스를 계승하거나 이 인터페이스를 실현한 하위 클래스의 익명 대상이다.
public class MyTest {
    public static void main(String[] args) {
        // 
         setFu(new Fu() {
             @Override
             public void show() {
                 System.out.println(" show ");
             }
         });
        Zi zi = new Zi();
        setFu(zi);
    }
       public static void setFu(Fu f){
    f.show();
  }
}
  abstract class Fu {
     public abstract void show();
  }
class Zi extends Fu{
    @Override
    public void show() {
        System.out.println(" show ");
    }
 }
// : show 
     // show 

좋은 웹페이지 즐겨찾기