메소드
필드가 물체의 상태라면, 물체의 행동에 해당하는게 메소드이다.
car에 이름과 번호가 있기도 하지만, car는 앞으로 전진할 수도 있고, 후진하는 행동도 할 수 있다.
- 메소드는 입력값이 있고, 그 입력값을 받아서 무언가 한 다음 결과를 도출해 내는 수학의 함수와 비슷한 개념
- 이때 입력값을 매개변수라고 하고, 결과값을 리턴값이라고 한다.
- 인자(Argument)는 어떠한 함수를 호출시에 전달되는 값
- 매개변수(Parameter)는 그 전달된 인자를 받아들이는 변수를 의미
- 메소드란 클래스가 가지고 있는 기능이다. 클래스 안에 선언된다.
다양한 형태의 메소드
매개변수도 없고 리턴하는 것도 없는 형태의 메소드
리턴하는 것이 없는 경우 void라고 작성
public class MyClass{
public void method1(){
System.out.println("method1 실행");
}
}
정수를 받아들인 후, 리턴하지 않는 메소드
받아 들이는 값은 어떤 타입이라도 상관없다.
받아 들이는 값의 수는 여러개 일 수 있다. 여러개 있을 경우 콤마(,)로 구분
public class MyClas{
public void method2(int x){
System.out.println(x + " 를 이용하는 method2입니다");
}
}
정수를 받아들인 후, 리턴하지 않는 메소드이다.
아무것도 받아들이지 않고, 정수를 반환하는 메소드
리턴하는 값 앞에 return이라는 키워드를 사용한다.
메소드 이름 앞에는 리턴하는 타입을 적어준다.
리턴타입은 하나만 사용할 수 있다. 리턴하는 타입은 어떤 타입이라도 상관없다.
public int method3(){
System.out.println("method3 실행");
return 10;
}
정수를 2개 매개변수로 받고, 아무것도 반환하지 않는 메소드
public void method4(int x, int y){
System.out.println(x + "," + y + " 를 이용하는 method4입니다.");
}
정수를 한 개 받아들인 후, 정수를 반환하는 메소드
public class MyClass{
public void method(){
System.out.println("method1이 실행");
}
public void method2(){
System.out.println(x + " 를 이용하는 method2입니다.");
}
public int method3(){
System.out.println("method3이 실행됩니다.");
return 10;
}
public void method4(int x, int y){
System.out.println(x + "," + y + "를 이용하는 method4입니다.");
}
public int method5(int y){
System.out.println(y + " 를 이용하는 method5입니다.");
return 5;
}
}
메소드 선언 실습
https://school.programmers.co.kr/learn/courses/5/lessons/366
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
public class MyClass{
//이곳에 코드를 작성하세요.
public int myMethod(int x){
return 4;
}
}
메소드 사용해보기
MyClass
public class MyClass{
public void method(){
System.out.println("method1이 실행됩니다.");
}
public void method2(int x){
System.out.println(x + " 를 이용하는 method2입니다.");
}
public int method3(){
System.out.println("method3이 실행됩니다.");
return 10;
}
public void method4(int x, int y){
System.out.println(x + "," + y + " 를 이용하는 method4입니다.");
}
public int method5(int y){
System.out.println(y + " 를 이용하는 method5입니다.");
return 5;
}
}
메소드를 사용하기 위해서는 메소드가 정의된 클래스인 MyClass가 생성되어야 한다.
객체를 생성할 때는 new 연산자를 이용한다.
메소드를 사용할때는 생성된 클래스를 참조하는 레퍼런스 변수.메소드명()으로 사용할 수 있다.
public class MyClassExam{
public static void main(String args[]){
MyClass my1 = new MyClass(); //메소드가 정의된 클래스 생성
my1.method1(); //MyClass에서 정의해 놓은 메소드 method1() 를 호출한다.
my1.method2(10);
int x = my1.method3();
System.out.println("method3 이 리턴한 " + x + " 입니다.");
my1.method4(10,100);
int x2 = my1.method5(50);
System.out.println("method5 가 리턴한 " + x2 + " 입니다.");
}
}
메소드 사용해보기 실습(1)
https://school.programmers.co.kr/learn/courses/5/lessons/357
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
class ReferenceTypeExam {
public static void main(String []args) {
ReferenceTypeExam exam = new ReferenceTypeExam();
//기본형 변수value1을 addOne에 전달합니다.
int value = 10;
exam.addOne(value);
System.out.println("기본형 변수의 값을 다른 메소드에서 변경한 결과: " + value);
//참조형 변수arr을 addOne에 전달합니다.
int []arr = {10};
exam.addOne(arr);
System.out.println("참조형 변수의 값을 다른 메소드에서 변경한 결과: " + arr[0]);
}
public void addOne(int value) {
value++;
}
public void addOne(int[] arr) {
for(int i = 0; i < arr.length; i++){
arr[i] ++;
}
}
}
메소드 사용해보기 실습(2)
https://school.programmers.co.kr/learn/courses/5/lessons/909
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
class CarExam {
public static void main(String [] args) {
// 이 아래에서 car에 Car클래스의 인스턴스를 생성하고 run메소드를 사용해 보세요.
Car car = new Car();
car.run();
}
}
'Java' 카테고리의 다른 글
[자바 입문] 변수의 scope와 static (0) | 2023.08.14 |
---|---|
[자바 입문] String 클래스 메소드 (0) | 2023.08.14 |
[자바 입문] 필드(field)선언 (0) | 2023.08.12 |
[자바 입문] String 클래스 (0) | 2023.08.11 |
[자바 입문] 참조 타입 (0) | 2023.08.11 |