메서드 / 오버로딩 / 객체 / 생성자 / 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();
}
}