클래스 : 메서드, 객체생성(객체화 = 인스턴스화), 오버로딩(overloading)

메서드

  • 메서드란 어떤 작업을 수행하는 명령문(코드)의 집합을 표현한다.
    다른 언어에서는 함수라고도 부른다.
  • 메서드를 작성하는 이유 :
    • 반복적으로 사용되는 코드의 중복을 방지.
    • 코드양을 줄여주어 유지 보수성을 향상하기 위함.
  • main메서드 : system소속으로 실행을 담당하는 특별한 메서드이다.
메서드종류 생김새 특징
main메서드 public static voide main(String[] args){ } system소속, 실행을 담당.
void형 메서드 void 메서드명(){ } return값 없음. 변수에 담아서 사용X, 호출만 가능.
return형 메서드 리턴데이터타입 메서드명(){ } return값이 있기에 리턴데이터타입작성필수, 변수에 담아서 사용가능.




메서드의 형태

매개변수는 호출시에만 메모리에 할당받고 메서드실행이 끝나는 순간 매개변수는 사라진다.
매서드는 return값이 없으면 void를 붙여준다.

1
2
3
제한자/리턴_타입 메서드명(타입 변수명, 타입 변수명, ...){
실행코드
}




void 메서드 예시

void는 return값이 없는 메서드이다
return이 없기때문에 system.out,print(person())에서 사용할 수 없고 변수에 담아서 사용할 수 없다.
오직 호출만가능하다.

1
2
3
4
5
6
7
8
9
10
11
public class Person {
void eat(String food){ //String food는 매개변수라고 부른다
System.out.println(food + "먹었다")
}
}
Person p = new Pesron();

p.eat("바나나"); //바나나먹었다
p.eat("딸기"); //딸기먹었다
p.eat(1); //타입에러
p.eat("1"); //'먹었다




리턴타입이있는 메서드 예시

return값이 있는 메서드는 리턴타입을 적어주면된다

1
2
3
4
5
6
7
8
9
10
11
public class Person {
String name = '민지';
int age = '77';

String infoPrint(){ //String타입을 리턴값으로 가지는 메서드이다.
return name +"는 "+ age;
}

}
Person p1 = new Pesron();
System.out.println(p1.infoPrint()); // 민지는 77




메서드 오버로딩(Method overloading)

  • 동일한 기능을 수행하는 메서드를 매개변수를 달리하여 추가로 작성하는 것을 의미.
  • 데이터타입이 다른 매개변수에 따라 메서드를 여러개 정의하는 것을 말한다.
  • 메서드오버로딩방법 : 동일한 이름의 메서드에 파라미터의 개수 또는 파라미터의 타입을 다르게 작성하면 된다.
  • 오버로딩 사용하는 이유 : 재사용성을 높이기 위해서.
  • 오버로딩과 오버라이딩은 차이가 있으니 용어에 주의하자
    • 오버로딩(Overloading) : 같은 이름의 메서드 여러개를 가지면서 매개변수의 유형과 개수가 다르도록 하는 기술
    • 오버라이딩(Overriding) : 상속관계일때 사용. 상위 클래스가 가지고 있는 메서드를 하위 클래스가 재정의해서 사용
  • 메서드뿐만 아니라 생성자도 오버로딩이 가능하다.
    • 생성자 오버로딩 : 파라미터를 다르게 해서 여러 개의 생성자를 정의하는 것




객체(인스턴스)

클래스가 붕어빵틀이라면 객체는 붕어빵 그 자체이다.
배열과 마찬가지로 객체도 선언 후에 생성을 해야 사용할수있다.
객체생성을 하지않으면 메모리에 올가가지않기에 사용할수가없다. 따라서 객체생성을 꼭해야한다.

객체생성

1
객체명 변수명 = new 클래스명(); //객채생성

참고링크 : 클래스와 인스턴스