메서드 / 오버로딩 / 객체 / 생성자 / this


메서드(method)


  • 객체의 기능을 구현하기 위해 클래스 내부에 구현되는 함수

  • 메서드로 구현된 하나의 기능은 여로 곳에서 동일한 방식으로 호출되어 사용될 수 있음

  • 메서드 구현(호출(call)하여 사용) > 객체의 기능 구현

  • 값(입력)을 받아 처리, 결과를 반환(출력)

  • 하나의 메서드는 한 가지 기능만 수행하도록 작성 > 유지보수에 유리, 재사율성이 높아짐

  • 메서드의 장점

    • 코드의 중복을 줄일 수 있음

    • 코드의 관리 용이

    • 코드의 재사용 가능

    • 코드가 간결해저 이해하기 쉬움



  • 반환타입 메서드이름 (타입 변수명, 타입 변수명, ...){
        메서드 호출  수행될 코드
    }
    
  • 메서드의 호출

    • 리턴값/입력값 모두 없을 때 : 객체.메서드명();

    • 입력값만 있을 때 : 객체.메서드명(값1, 값2, ...);

    • 리턴값만 있을 때 : 리턴값받을변수 = 객체.메서드명();

    • 리턴값/입력값 모두 있을 때 : 리턴값받을변수 = 객체.메서드명(값1, 값1, ...);


오버로딩(Overloading)


  • 한 클래스 안에 같은 이름의 메서드 여러개를 정의하는 것

  • 오버로딩이 성립하기 위한 조건

    • 메서드 이름이 같아야 함

    • 매개변수의 개수 또는 타입이 달라야 함

    • 반환 타입은 영향 X


  • 매개변수 시그너처가 일치하는 메서드 실행됨

    • 매개변수 시그너처 : 자료형의 개수와 순서의 일치하는 것


객체


  • 객체의 생성
클래스명 변수명;            //클래스 타입의 참조변수 선언
변수명 = new 클래스명();    //인스턴스 생성(new 클래스명) 후, 생성된 인스턴스의 주소를 변수에 저장
  • 객체의 사용

    • 변수 사용

      변수명.멤버변수 = ;
      
      • 클래스 영역에 정의한 변수 : 필드(field) = 전역 변수(global variable)

      = 멤버 변수(member variable)

      • 메서드 안에 있는 변수 : 지역 변수(local variable)
    • 메서드 사용(호출)

      변수명.메서드명();
      


생성자(constructor)


  • 객체를 생성하기 위해 new키워드와 함께 사용

  • 생성자의 이름은 클래스 이름과 동일해야 함

  • 리턴값 X

  • 대부분 public > 외부에서 접근 가능

  • 모든 클래스는 반드시 생성자를 가져야 함

  • 객체가 생성읻 될 때 생성자가 받은 값을 멤버변수에 넣어주는 것!

  • 생성자이름(매개변수){   //매개변수 : 타입 변수명
        코드;
    }
    
  • 기본생성자(default constructor)

    • 매개변수가 없는 생성자

    • 생성자이름(){}

    • 생성자가 하나도 없을때만 컴파일러가 자동 추가 (웬만하면 그냥 직접 적는게 좋다)


this


  • 생성자 this()

    • 같은 클래스의 다른 생성자를 호출할 때 사용
  • 참조변수 this

    • 인스턴스 자신을 가리키는 참조변소, 인스턴스의 주소가 저장되어 있음

    • 인스턴스 메서드에서 사용 가능

    • 지역변수와 인스턴스 변수를 구별할 때 사용

public class Person {

	String name;
	int age;
	
	public Person() {	//디폴트생성자
		this("김이름", 25);
	}
	
	public Person(String name, int age) {
		this.name = name;
		this.age = age;
	
	}
	
	public void personInfo() {
		System.out.println("이름 : " + name + ", " + "나이 : " + age);
	}

	public static void main(String[] args) {
		
		Person person = new Person();
		person.personInfo();
	}
}

Categories:

Java