[국비지원과정 Day 4] Java
📕ch06 메서드
1. Method
- 특정한 작업을 수행하기 위한 명령문의 집합. 크게 선언부와 구현부로 이루어져 있다.
- 수학의 함수(function)와 유사하지만, 경우에 따라 입력값이나 반환값(출력)이 없을 수도 있다.
- 메서드 활용으로 반복적인 코드를 줄이고 코드 관리를 용이하게 할 수 있다.
2. 메서드의 구성
접근권한지정자 반환타입 method이름(입력매개변수) {
메서드 호출 시 실행할 명령어;
return 결과로 반환할 값;
}
3. 메서드의 호출(call) 메서드 구현부{} 문장을 수행하기 위해 메서드를 호출(call) 해야만 한다. 즉, 메서드 이름 뒤에 소괄호()를 붙이면 해당 코드가 실행된다.
- 메서드의 매개변수(parameter, argument): 메서드를 호출하면서 전달하는 값을 저장하는 변수
- return문: 현재 실행 중인 메서드를 종료하고 호출한 곳으로 되돌아가게하는 명령어. 반환값은 1개만 허용되며, 반환값이 없을 경우(반환타입이 void일 경우) return문은 생략가능하다.
- 메서드에 선언된 리턴타입과 반환되는 값의 자료형은 반드시 일치하거나 자동 형변환이 가능한 것이어야 한다.
4. 메서드 오버로딩(overloading)
- 하나의 클래스에 같은 이름의 메서드를 여러개 정의하는 것
- 오버로딩의 조건:
(1) 메서드의 이름이 같아야한다.
(2) 매개변수의 개수 또는 타입이 달라야한다.
*cf. 오버라이딩(overriding): 상속관계 에서 상위 클래스로부터 상속받은 메서드의 내용을 하위 클래스에 맞게 변경 하는 것. 메서드의 선언부(메서드 이름, 매개변수, 반환타입)는 상위 클래스의 메서드와 동일하다.
📕ch07 클래스
1. 객체지향 프로그래밍(Object Oriented Programming)
실제 세계에 존재하는 어떤 대상을 그 속성(멤버변수)과 기능(메서드) 을 특징으로 하는 객체(Object) 로 정의하고, 이러한 객체들 간의 상호작용을 프로그램으로 구성하는 하는 기법
장점: 코드의 재사용성을 높여 코드의 관리를 용이하게 하기 때문에, 신뢰성이 높은 프로그래밍이 가능하다.
2. 객체지향 프로그래밍의 특성
-
캡슐화: 클래스 내부에 선언된 데이터를 보호하고 외부에서 함부로 변경하지 못하도록 외부접근을 제한하는 것. 데이터 감추기.
접근제어자 를 활용하여 private 변수로 보호 & public method를 통해 변수에 접근
*cf1. 접근제어자: public(접근제한 X) > protected(같은 패키지+상속관계에 있는 하위 클래스) > default(같은 패키지) > private(같은 클래스)
*cf2. getter 멤버변수의 값을 읽어오는 메서드 & setter 값을 저장하는 메서드 - 상속: 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것. 코드의 재사용성을 높이고 중복을 제거하여 프로그램의 생산성, 유지보수에 기여한다.
- 다형성: 어떤 객체의 속성이나 기능이 상황에 따라 여러 가지 형태를 가질 수 있는 성질.
객체 지향 프로그래밍에서 다형성이란 한 타입의 참조변수를 통해 여러 타입의 객체를 참조할 수 있도록 만든 것을 의미함.
Java에서는 상속을 통해 상위 클래스 타입의 참조변수로 하위 클래스의 객체를 참조할 수 있다. - 추상화: 객체의 공통적인 속성과 기능을 추출하여 정의하는 것. 추상클래스(abstract class)와 인터페이스(interface)
3. class 와 Object
클래스 class: 객체(Object)를 정의해 놓은 것. 객체의 모든 속성(변수)과 기능(메서드)이 정의되어 있는 설계도 또는 틀과 같다. 객체를 생성하는데 사용된다.
- 인스턴스화: 클래스로부터 객체를 만드는 과정.
- 인스턴스: 어떤 클래스로부터 만들어진 객체
4. 객체의 생성과 사용
클래스명 변수명; //클래스의 객체를 참조하기 위한 참조변수의 선언
변수명 = new 클래스명(); //클래스의 객체를 생성(new)하고 객체의 "주소"를 참조변수에 저장
클래스명 참조변수명 = new 클래스명(); //한 문장으로 간단히 할 수 있다.
*cf. naming rule
낙타식 표기법(camel case) : 첫단어 소문자, 두번째 단어 첫글자부터 대문자 표기 (iAmABoy)
파스칼 표기법 : 모든 단어의 첫글자를 대문자로 표기 (IAmABoy)
Snake 표기법 : 영어 소문자 표기와 ‘_‘기호로 단어연결 (i_am_a_boy)
헝가리안 표기법 : 자료형 소문자, 변수명 첫글자 대문자 표기 (strName, intAge 등)
✏️Quiz
(Q1) 반지름값을 화면에서 입력받아 원의 둘레와 넓이를 계산하시오.
원주율은 Math.PI 를 사용하고, 결과값은 소수 첫째자리에서 반올림((String.format() 사용)하시오.

Leave a comment