메소드 method
(다른 언어에서는 함수와 같은 존재 ex) C언어 = define)
사용자 정의함수. 즉, 코드의 유지보수와 간략함,최적화 등을 위해서 사용자가 만든 임의의 함수(메소드)를 정의하고 각각의 함수를 호출하면서 사용한다.
메소드의 장점 - 반복적이게 사용 할 수있다. (재활용성이 좋다), 입력과 출력으로 인해 고정적인 것들은 가변적으로 변환 할 수 있다.
여기서 limit이라는 변수는 메소드 numbering의 정의 부에 있는 로직들에게 5라는 값을 전달하고 있다. 호출에서 입력한 값을 로직으로 매개 한다는 의미에서 이러한 변수를 매개변수 라고 부른다. 영어로는 parameter다. 그리고 메소드를 호출할 때 전달된 값인 5를 '인자' 영어로는 argument라고 한다. 관습적으로는 매개변수와 인자를 구분하지 않고 부르는 경우도 많다.
Tip : 복잡한 함수를 읽을 때 메인 메소드를 먼저 파악한 뒤 그 다음 정의된 메소드를 파악하는 것이 전체적인 메소드의 맥락이 이해가 쉽다.
메소드의 구조
ex ) public static void numbering (int limit)
/ | \
리턴값의 데이터형식 메소드 이름 매개변수
리턴값의 데이터형식은 함수를 호출할 때에도(리턴값을 받을 때에도)같은 테이터형식을 불러와야한다.
복잡하게 데이터를 리턴하는 이유 ? - 부품으로서의 가치를 높이기 위해서라고 할 수 있다. (결과값만으로 다양한 작업을 할 수 있다.)
return은 메소드를 종료시키는 역할을 하므로 처음 등장한 이후의 구문은 실행되지 않는다. 서로 다른 리턴값을 얻길 원하면 조건문이 붙어야 한다
복수의 리턴
메소드는 여러개의 입력값을 가질 수 있다. 그렇다면 여러개의 값을 출력하고 싶다면? 하지만 자바에서는 문법적으로 그런 기능을 제공하지 않는다. 하나의 메소드는 하나의 값만을 반환할 수 있기 때문에 배열을 통해 간단하게 여러개의 데이터를 처리 할 수 있다.
Tip : 이클립스 팁 ctrl+shift+O 를 누르면 코드내의 자동으로 필요한 라이브러리를 전부 import할 수 있다.
ctrl+shift+F = 코드 자동정렬 기능
alt+shift+R = 변수명 전체수정 (맥 option+command+R)
입력과 출력
Scanner sc = new Scanner(System.in);
while(sc.hasNextInt())
sc.nextint(); - C언어의 scanf 와 같은 동일한 의미 (nextint - 다음 int형의 데이터타입 입력을 기다려라)
(System.in) - '시스템 내부에서의 입력값을 받아라' 의미
sc.hasNextInt() - 입력값이 생기기 전까지 실행을 유보시키는 역할
GUI (Graphic User Interface)
비주얼하게 시각적으로 정보화된 인터페이스 <> CLI ( Command Line Interface) 반대로 단순하게 텍스트로 이루어진 인터페이스
여기까지 자바의 절반쯤인 객체지향전에 절차지향적인 프로그래밍에 대해서 배웠다
다른 언어들의 기초적인것들과 비슷하다고 생각하다보니까 다소 처음 배우는것보다는 쉽게 느껴졌다
다음부터 이제 객체지향의 프로그래밍에 대해서 배우는데 솔직하게 아직도 객체지향의 뜻을 잘 모르겠다..
배우기 전에 조금 두렵기도 하지만 잘 이해됐으면 좋겠다 ㅠㅠ
'Java' 카테고리의 다른 글
Java 기초 입문 6일차 (Interface, 다형성, Exception, multi catch) (0) | 2022.11.23 |
---|---|
Java 기초 입문 5일차 (classpath, API, 접근제어자, abstract) (0) | 2022.11.22 |
Java 기초 입문 4일차 (class와 instance의 관계, 지역변수와 전역변수, 상속, 생성자, 오버로딩과 오버라이딩) (0) | 2022.11.21 |
Java 기초 입문 3일차 (객체 지향 프로그래밍, 클래스와 인스턴스) (0) | 2022.11.18 |
Java 기초 입문 1일차 (조건문, 반복문, 배열) (0) | 2022.11.16 |