JAVA 2023.04.17 다섯 번째 시간!
메소드(method)
프로그램에게 지시할 명령문들을 묶어놓은 것으로 함수 안에 함수를 작성할 수는 없기 때문에, 외부에 선언해야 한다.
클래스에서 메서드를 작성하여 사용하는 이유
- 코드의 반복적인 프로그래밍을 피할 수 있다.
- 코드의 가독성이 좋아진다.
- 유지보수가 쉬워진다.
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();
}
}
'AI빅데이터융합웹개발자양성과정 > JAVA' 카테고리의 다른 글
[Java] 추상메소드와 상속 (0) | 2023.04.18 |
---|---|
[Java] 클래스 (0) | 2023.04.14 |
[Java] 배열 (0) | 2023.04.13 |
[JAVA] 제어문과 연산자 (0) | 2023.04.12 |
[JAVA] 개발 환경(Eclipse) 설치 및 출력 and 자료형 (0) | 2023.04.11 |
댓글