실삼과 형삼의 전달 관계

2651 단어 java 학습의 길
우리가 주조 함수에서 방법을 호출할 때, 유형이 일치하는 실제 데이터를 방법에 전달해야 한다.전송된 그 데이터는 실참이고 방법 정의에서 수신된 매개 변수는 형참이다.다음은 세 가지 상황으로 나뉘어 토론한다. 1. 기본 데이터 유형을 전달한다. 이런 상황에서 실참은 값을 형삼에게 전달하는 것이고 형삼은 함수에서 값을 바꾸면 실참에 영향을 주지 않는다.2. 실체 전달 대상: 이런 상황에서 실참은 실제적으로 대상이 창고에 있는 주소를 형삼에게 전달한다.형삼 변수 호출 방법이 값을 바꿀 때 사실은 이 대상을 가리키는 값을 바꾸는 것이다. 따라서 퇴출 함수를 실행한 후에 대상의 값이 바뀌었고 우리가 주조 함수를 이 대상을 계속 사용할 때 값도 이에 따라 바뀐다.3. 전달NULL: 우리가 전달 대상을 전달할 때 전달된 것이 NULL일 때 함수에 하나의 실례를 만들고 형삼을 가리키더라도 함수가 끝난 후에도 실삼은 NULL의 것이다.여기에서도 실참이 형삼에 전달되는 값은 단방향이고 기본 유형이든 인용 유형이든 전달은 모두 단방향이라는 것을 잘 설명했다.다만 기본 유형은 값 자체를 전달하고 인용 유형은 인용 주소를 전달한다.다음은 실험 코드입니다.
package demo;

public class TestOfPiont {

    public static void main(String[] args) {
        // TODO Auto-generated method stub  
        TestOfPiont test= new TestOfPiont();
        Person p =  test.new Person("jack", 33);
        test.newone(p);
        System.out.println(p.name);
        test.change(p);
        System.out.println(p.name);
        int x=2;
        test.basechange(x);
        System.out.println(x);
    }
    void newone(Person p){
        p = new Person("mike", 22);
    }
    void change(Person p){
        p.name="mike";
    }
    void basechange(int x){
        x=5;
    }
    class Person{
        private String name;
        private int age;
        public Person(String name, int age) {
            super();
            this.name = name;
            this.age = age;
        }       
    }

}
// :
jack
mike
2

좋은 웹페이지 즐겨찾기