[자바의 신] 8장 참조 자료형에 대해서 더 자세히 알아봅시다

한지연·2023년 3월 18일
0

📘 생성자

📚 기본 생성자

  • 자동으로 만들어짐
  • 다른 생성자가 있으면 자동으로 만들어지지 않음

생성자가 필요한 이유

  • 자바 클래스의 객체를 생성하기 위해 존재

생성자는 몇 개까지?

  • 매개 변수 개수의 제한은 없고, 몇 개를 만들어도 상관 없음
  • 하지만 어떤 생성자들이 필요한가 생각하고 적합하게 만들어야 함

this

  • 객체의 변수와 매개 변수의 이름이 동일할 때 인스턴스의 변수를 구분하기 위해서 사용
  • this.xx라고하면 매개 변수 안에 있는 xx가 아닌 이 객체의 x라고 명시적으로 지정해 줌

📚 메소드 오버로딩

  • 메소드 이름은 같지만 매개 변수들을 다르게 만드는 것
  • 같은 역할을 하는 메소드는 같은 메소드 이름을 가져야 한다는 모토로 사용

메소드 종료되는 조건

  1. 메소드의 모든 문장이 실행됨
  2. return 문장 도달
  3. throw 발생

📚 static

  • 객체를 생성하지 않아도 메소드를 호출할 수 있음
  • static 메소드는 클래스 변수만 사용할 수 있음

static 블록

  • 객체가 생성되기 전에 한 번만 호출
  • 클래스 내에 선언되어 있어야 함
  • 여러 개를 선언할 수 있지만 선언 순서가 매우 중요함

📚 pass by value와 pass by reference

pass by value

  • 값을 전달, 호출되기 전과 후에 데이터가 변경되지 않음

pass by reference

  • 호출한 메소드의 데이터에도 영향
// ex - pass by value
        int a = 4;
        int b = a;

        a = 7;
        System.out.println("a = " + a + ", b = " + b);
// a = 7, b = 4
// a의 값이 변해도 b의 값에 영향을 주지 않음

// ex - pass by value
        Member member = new Member();
        member.setName("GodOfJava");
        Member member2 = member;

        member2.setName("member2 name");

        System.out.println("member name = " + member.getName() + ", member2 name = " + member2.getName());
        // member name = member2 name, member2 name = member2 name
        // side effect 발생
profile
배우고 활용하는 것을 즐기는 개발자, 한지연입니다!

0개의 댓글