메서드

메서드 선언과 호출

  • 메서드도 변수처럼 선언 및 정의 후 필요시 호출해서 사용
  • 메서드 선언
    • 접근자 반환형 메서드이름 매개변수
  • 메서드이름
    • 카멜표기법 사용
    • 동사+명사의 형태로 사용하는 것이 일반적
//접근자 반환형 메서드이름 매개변수
public void getInfo() { // 메서드 선언
    System.out.println("i = " + i); // 메서드 정의
}
  • 반환형

    • return 값의 데이터 타입 명시
    • void는 반환값이 없는 경우
  • 메서드 호출

    • 클래스명.메서드이름()
// ChildClass 생성

package testPjt;

public class ChildClass {
	// 클래스의 속성들 정의
	public String name; 
	public String gender;
	public int age;
	
	ChildClass() {
		System.out.println("--ChildClass Constructor--");
	}
	
	public void getInfo() { // 메서드 선언
		// 이하 메서드 정의부, 실제 함수의 내용
		System.out.println("--getInfo() START--");
		
		System.out.println("name :" + name);
		System.out.println("gender :" + gender);
		System.out.println("age :" + age);
	}
}
// MainClass 생성
// 여기서 위에 클래스를 불러오고 메서드를 호출

package testPjt;

public class Main {
	
	public static void main(String[] args) {
		
		// main class 에서 ChildClass의 객체 생성
		ChildClass child1 = new ChildClass();
		// class의 속성 넣어줌
		child1.name = "hong";
		child1.gender = "M";
		child1.age = 20;
		// 해당 클래스의 메서드 호출
		child1.getInfo();
		
	}
}

매개변수(parameter)

  • 메서드 호출 시 데이터 전달
  • 자료형과 변수(지역변수)로 이루어짐
// 위의 ChildClass에 메서드 추가
                        // 자료형과 변수명
	public void setInfo(String n, String g, int a) {
		System.out.println("--setInfo() START--");
		
		name = n;
		gender = g;
		age = a;
		
	}
// 위의 MainClass에서 메서드 호출

	child1.setInfo("hong Gil dong", "M", 20);

메서드 오버로딩 (overloading)

  • 중복 메서드

  • 같은 이름으로 여러개의 메서드 만들 수 있음

  • 그러나, 매개변수를 차이를 둬서 다른 메서드로 사용할 수 있음

  • 매개변수의 차이

    • 매개변수의 갯수, 매개변수의 자료형 등...
// 이름은 같으나 매개변수에 차이가 있음

public void getInfo() {
    System.out.println("--getInfo() 1--");
}

public void getInfo(int x, int y) {
    System.out.println("--getInfo() 2--");
    System.out.printf("parameter -> x : %d, y : %d\n", x, y);
}

public void getInfo(String s1, String s2) {
    System.out.println("--getInfo() 1--");
    System.out.printf("parameter -> x : %s, y : %s\n", s1, s2);
}

접근자

  • 메서드 호출시 접근자에 따라서 호출이 불가할 수 있음
  • private으로 접근자를 만듬 메서드의 경우 외부의 메서드 호출부에서 호출이 불가능
  • public은 외부에서 호출 가능
  • 여기서 외부란?
    • 다른 클래스
profile
자기 주도 개발전 (개발, 발전)

0개의 댓글

Powered by GraphCDN, the GraphQL CDN