천천히 빛나는
Java 기초 : 메소드와 API 본문
메소드 (method)
어떤 특정 작업을 수행하기 위한 명령문의 집합 (함수와 비슷하다)
중복되는 코드를 메소드로 만들어 코드의 반복 사용을 피할 수 있다.
public static void main(String[] args) {
// main method
}
main() 메소드는 자바 프로그램을 실행 및 종료하는 기능을 지닌다
public class Application1 {
public static void main(String[] args) {
System.out.println("main() 시작!");
Application1 app1 = new Application1();
app1.methodA();
System.out.println("main() 종료!");
}
public void methodA() {
System.out.println("methodA() 호출");
methodB();
System.out.println("methodA() 종료");
}
public void methodB() {
System.out.println("methodB() 호출");
System.out.println("methodB() 종료");
}
}
main에서 다른 메소드를 부를 때와 methodA에서 methodB를 부를 때가 다른 것을 알 수 있는데, static이 안 붙은 method 끼리는 쉽게 method 이름으로 호출할 수 있기 때문이다
new는 클래스 타입의 인스턴스(객체)를 생성해주는 역할을 담당한다.
Static 키워드를 통해 생성된 정적멤버들은 Heap영역이 아닌 Static영역에 할당된다. Static 영역에 할당된 메모리는 모든 객체가 공유하여 하나의 멤버를 어디서든지 참조할 수 있다
public class Application1 {
public static void main(String[] args) {
Application1 app1 = new Application1();
app1.methodA(19);
}
public void methodA(int age) {
System.out.println("당신의 나이는 " + age + "살 입니다.");
}
}
int age로 입력 변수를 전달해줄 수 있다. 만약 long 형의 변수를 methodA의 입력값으로 전달하게 되면 오류가 나게 될 것이다. (byte, short는 에러 발생 안함)
public class Application1 {
public static void main(String[] args) {
Application1 app1 = new Application1();
System.out.println(app1.methodA(10));
}
public String methodA(int age) {
return age*2 + "가 되었습니다.";
}
}
method의 반환값을 이와 같이 설정해줄 수 있다. (기존엔 void 였으므로 return 값 없음)
public class Application1 {
public static void main(String[] args) {
Application1.methodA();
methodA();
}
public static void methodA() {
// 메소드 A
}
}
static 메소드에서 static 메소드를 호출할 때는 new 연산자로 class를 호출할 필요 없이 바로 클래스를 이용해서 호출할 수 있다.
같은 클래스 있는 static 메소드는 클래스명을 생략하고 호출할 수도 있다.
패키지 (package)
서로 관련 있는 클래스 등을 하나의 묶음으로 구성하는 것
임포트 (import)
서로 다른 패키지에 존재하는 클래스를 사용하는 경우 패키지명을 포함한 풀 클래스 이름을 사용해야 한다
하지만 매번 다른 클래스의 패키지명까지 기술하기는 번거롭다
그래서 패키지명을 생략하고 사용할 수 있도록 한 구문이 import 구문이다
package com.mtvs.section02.package_and_import;
public class Application1 {
public static void main(String[] args) {
int first = 30;
int second = 20;
// 다른 패키지에 있는 non-static 메소드 호출
com.mtvs.section01.method.Caculator calc = new com.mtvs.section01.method.Calculate();
calc.minNumberOf(first, second);
// 다른 패키지에 있는 static 메소드 호출
int max = com.mtvs.section01.method.Caculator.maxNumberOf(first, second);
}
}
이와 같이 다른 패키지에 존재하는 클래스를 부를 때는 패키지명을 포함한 클래스의 이름을 사용하였다
package com.mtvs.section02.package_and_import;
import com.mtvs.section01.method.Caculator;
public class Application1 {
public static void main(String[] args) {
int first = 30;
int second = 20;
// 다른 패키지에 있는 non-static 메소드 호출
Caculator calc = new Calculate();
calc.minNumberOf(first, second);
// 다른 패키지에 있는 static 메소드 호출
int max = Caculator.maxNumberOf(first, second);
}
}
import를 사용하여 간단하게 코드를 작성할 수도 있다
API (Application Programming Interface)
https://shine-slowly.tistory.com/75
응용프로그램 (카카오톡 등)에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있도록 만든 인터페이스를 뜻한다
API란? 비개발자가 알기 쉽게 설명해드립니다! - wishket
여러분은 API가 무엇인지 알고 계신가요? 자주 듣지만 그 개념이 무엇인지 정확하게 알기 쉽지 않은데요. 이번 시간 위시켓이 API란 무엇인지 알기 쉽게 설명해드리고자 합니다.
blog.wishket.com
API는 어떤 서버의 특정한 부분에 접속해서 그 안에 있는 데이터와 서비스를 이용할 수 있게 해주는 소프트웨어 도구를 뜻한다. API를 이용하면 두 개의 소프트웨어가 서로 통신을 주고받을 수 있으며, 이는 우리가 모바일을 이용해서 하는 모든 행동들의 기반을 이루고 있다고 할 수 있다.
SOAP REST 차이, 두 방식의 가장 큰 차이점은? - wishket
API는 방식에 따라 'SOAP REST 차이'가 있다는데, 이 둘의 차이점은 과연 무엇일까요? 각각 어떤 장점들이 있는지, 어떤 상황에 무엇이 더 잘 맞는지 알려드리겠습니다:)
blog.wishket.com
쉽게 말해 우리가 구현할 수 없거나 구현하기 번거로운 기능들을 JDK를 설치하면 사용할 수 있도록 제공한 소스코드(클래스나 인터페이스)들을 의미한다. 더 쉽게 말해 누가 작성해 놓은 소스코드이니 가져다 쓰는 방법을 제공해 주는 것이다. 모든 코드를 우리가 다 외울 수 없으니 API 문서를 별도로 제공해주고 있다.
https://docs.oracle.com/javase/8/docs/api/
Scanner 클래스
읽은 바이트를 문자, 숫자, 실수, boolean, 문자열 등 다양한 타입으로 변환하여 리턴하는 클래스
public class Application1 {
public static void main(String[] args) {
// 스캐너 객체 생성
Scanner sc = new Scanner(System.in);
// 입력받기
System.out.print("이름을 입력하세요: ");
// nextLine(): 엔터를 누르면 문자열로 반환
String name = sc.nextLine();
System.out.println("입력하신 이름은 " + name + "입니다.");
}
}
println 대신 print를 사용하면 마지막에 \n 없이 출력된다
nextInt() : int형으로 반환
nextLong() : long형으로 반환
nextBoolean() : boolean형으로 반환
public class Application1 {
public static void main(String[] args) {
// 스캐너 객체 생성
Scanner sc = new Scanner(System.in);
System.out.print("아무 문자나 하나의 문자를 입력해 주세요: ");
char ch = sc.next().charAt(0);
System.out.println("입력하시는 문자는 " + ch + "입니다.");
}
}
char은 nextChar()이 존재하지 않는다.
'JAVA > JAVA' 카테고리의 다른 글
Java 기초 : 배열 (0) | 2023.07.27 |
---|---|
Java 기초 : 제어문 (0) | 2023.07.25 |
Java 기초 : 변수 (0) | 2023.07.21 |
IntelliJ : 프로젝트 생성 (Hello World 출력) (0) | 2023.07.18 |
Java, IntelliJ : 개요 및 개발환경 구축 (0) | 2023.07.15 |