본문 바로가기
AI빅데이터융합웹개발자양성과정/JAVA

[Java] 메소드(Method)와 상속(Extends)

by 밍구적 2023. 4. 17.

JAVA 2023.04.17 다섯 번째 시간!

 

메소드(method)

 

프로그램에게 지시할 명령문들을 묶어놓은 것으로 함수 안에 함수를 작성할 수는 없기 때문에, 외부에 선언해야 한다.

 


클래스에서 메서드를 작성하여 사용하는 이유

  1. 코드의 반복적인 프로그래밍을 피할 수 있다.
  2. 코드의 가독성이 좋아진다.
  3. 유지보수가 쉬워진다.
public class Function {

	static int s1() {
		return 1 + 1;
	}

	static int getSum(int a, int b) {
		System.out.println("덧셈을 수행합니다.");
		return a+b;
	}

	// 반환 : "뱉어낸다"
	// 매개변수 : 함수를 실행할 때 필요한 정보를 전달받는 역할 ("순서대로" 들어옴)

	// 함수 선언부 원형
	// 반환형 함수이름(매개변수타입 매개변수이름, ...){

	// }
	// 반환형 : 함수에서 "뱉어내는" 값의 타입(실제로 반환하는 값의 타입과 동일하지 않으면 에러 발생)

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		// 프로그램을 실행하면, main 함수에 있는 내용만 실행

		// 예제 : 2개의 숫자를 입력받고 이들의 합을 출력하기.
		// 1. 2개의 숫자 입력받기
		int a = sc.nextInt();
		int b = sc.nextInt();

		s1();

		// 2. 2개의 숫자 합 출력
		// 함수 호출 : [함수이름](전송할 값, ...);
		// 전송할 값의 개수는 매개변수쌍의 개수와 동일해야 함

		System.out.println("a와 b의 합은 : " + getSum(a, b)); // a와 b의 값을 전송하면서 getSum 함수를 실행하라.
	}

}

 

 

상속(Extends)

extends 키워드를 사용해, 부모 클래스의 멤버들을 자식 클래스에게 물려주는 문법.

부모(상위) 클래스의 멤버들을 복사하여 자기 자신(자식, 하위)의 클래스에 구현한다.

     → 자식 클래스의 멤버 = 부모 클래스의 멤버 + 자신만의 멤버

   

//예제 : phone, SmartPhone 클래스 구현
class Phone { // 2G폰 클래스, 부모 클래스
	public String tel; // 전화번호
	public boolean touch; // 탭 여부

	public void Print() {
		System.out.println("전화 번호 : " + this.tel);
		System.out.println("탭 가능 여부 : " + this.touch);
	}

}

class SmartPhone extends Phone { // 스마트폰 클래스, 자식 클래스
	// 부모 클래스로부터 물려받은 멤버 변수
	// public String tel; //전화번호
	// public boolean touch; //탭 여부

	public String os;
    
	// 오버라이딩 : 부모 클래스의 메소드를 자식 클래스에서 "재정의"하는 문법
	//		=> 함수의 내용을 "덮어쓰기" 한다.
	// 함수 이름과 매개변수
	public void Print() {
		System.out.println("전화 번호 : " + this.tel);
		System.out.println("탭 가능 여부 : " + this.touch);
		System.out.println("운영체제 버전 : " + this.os);
	}
}

public class Extends {

	public static void main(String[] args) {
		// Phone 클래스에 대한 객체 생성
		Phone p = new SmartPhone();
		p.tel = "010-1234-1234";
		p.touch = false;

		// SmartPhone 클래스에 대한 객체 생성
		SmartPhone sp = new SmartPhone();
		sp.tel = "010-1234-5678";
		sp.touch = true;
		sp.os = "Icecream_sandwich";

		p.Print();
		System.out.println();
		sp.Print();
	}

}

 

 

댓글