메서드
객체의 동작(기능)
호출해서 실행할 수 있는 중괄호 블록
메소드 호출하면 중괄호 블록에 있는 모든 코드들이 일괄 실행 됨
메서드의 종류
public class Ex02 {
public static void main(String [] args) {
// 메서드가 필요한 이유
// 4단
for(int i = 1; i <= 9; i++) {
System.out.println("4 x " + i + " = " + 4 * i);
}
System.out.println();
// 5단
for(int i = 1; i <= 9; i++) {
System.out.println("5 x " + i + " = " + 5 * i);
}
System.out.println();
// 6단
for(int i = 1; i <= 9; i++) {
System.out.println("6 x " + i + " = " + 6 * i);
}
System.out.println();
// 4단 ~ 6단
for(int dan = 4; dan <= 6; dan++) {
for(int gop = 1; gop <= 9; gop++) {
System.out.println(dan + " x " + gop + " = " + dan * gop);
}
}
System.out.println();
// 2단 5단 8단
// 2단 출력
int dan = 8;
for(int gop = 1; gop <= 9; gop++) {
System.out.println(dan + " x " + gop + " = " + dan * gop);
}
System.out.println();
// 반복적으로 정의해서 사용하는 코드가 있다면 한번만 정의해서 사용
gugu(2);
gugu(5);
gugu(7);
}
public static void gugu(int dan) { // 피호출 메서드
// 반복적인 코드를 메서드 안에 정의
for(int gop = 1; gop <= 9; gop++) {
System.out.println(dan + " x " + gop + " = " + dan * gop);
}
}
// 메서드의 역할
// 1. 값을 전달한다.
// 2. 값을 받아온다.
// 3. 반복적인 코드를 한번만 정의해서 사용할 수 있다.
}
static 메서드에서 메서드를 호출하려면 메서드가 static 메서드여야 한다.
public class Ex04 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 기본형
int result = add(4, 5);
System.out.println(result);
String fullName = name("현경", "이");
System.out.println(fullName);
double circle = area(3, 3.14);
System.out.println(circle);
int rangle = rangleArea(4, 3);
System.out.println(rangle);
System.out.println();
}
// static 메서드에서 메서드를 호출하려면 메서드가 static 메서드여야 한다.
// 메서드의 종류는 4가지 종류
// 1. 기본 메서드 : 매개변수가 있고 반환 값이 있는 메서드
public static int add(int num1, int num2) {
return num1 + num2;
}
// return type은 return문 뒤에 있는 결과 값의 type을 적어준다.
public static String name(String firstName, String lastName) {
return lastName + firstName;
}
public static double area(int radius, double pi) {
return radius * radius * pi;
}
public static int rangleArea(int num1, int num2) {
return num1 * num2;
}
}
return type은 return문 뒤에 있는 결과값의 type을 적어준다.
public class Ex05 {
public static void main(String[] args) {
// TODO Auto-generated method stub
add(4, 5);
fullName("현경", "이");
area(3, 3.14);
rangleArea(3, 4);
}
// 2. 매개변수는 있지만 반환값이 없는 메서드
// 반환형을 void로 적어주면 반환값이 없는 메서드가 된다.
// 반환값이 없는 경우에는 메서드 내에서 결과를 확인할 수 있어야 한다.
public static void add(int num1, int num2) {
int result = num1 + num2;
System.out.println(result);
}
public static void fullName(String firstName, String lastName) {
String fullName = lastName + firstName;
System.out.println(fullName);
}
public static void area(int radius, double pi) {
double result = radius * radius *pi;
System.out.println(result);
}
public static void rangleArea(int num1, int num2) {
int result = num1 * num2;
System.out.println(result);
}
}
반환형을 void로 적어주면 반환값이 없는 메서드가 된다.
반환 값이 없는 경우에는 메서드 내에서 결과를 확인할 수 있어야 한다.
public class Ex06 {
static int num1 = 3;
static int num2 = 4;
static String firstName = "현경";
static String lastName = "이";
static int radius = 3;
static double pi = 3.14;
public static void main(String[] args) {
// TODO Auto-generated method stub
// 3. 매개변수는 없고 반환값이 있는 메서드
int result = add();
System.out.println(result);
String fullName = name();
System.out.println(fullName);
double circle = area();
System.out.println(circle);
result = rangleArea();
System.out.println(result);
}
// 매개변수가 없는 경우에는 멤버필드를 이용해서 결과를 얻을 때 사용
public static int add() {
return num1 + num2;
}
public static String name() {
return lastName + firstName;
}
public static double area() {
return radius * radius * pi;
}
public static int rangleArea() {
return num1 * num2;
}
}
매개변수가 없는 경우에는 멤버필드를 이용해서 결과를 얻을 때 사용한다.
public class Ex07 {
static int num1 = 3;
static int num2 = 4;
static String firstName = "현경";
static String lastName = "이";
static int radius = 3;
static double pi = 3.14;
public static void main(String[] args) {
// TODO Auto-generated method stub
// 4. 매개변수도 없고 반환 값도 없는 메서드
add();
name();
area();
rangleArea();
}
public static void add() {
System.out.println(num1 + num2);
}
public static void name() {
System.out.println(lastName + firstName);
}
public static void area() {
System.out.println(radius * radius * pi);
}
public static void rangleArea() {
System.out.println(num1 * num2);
}
}
public class Ex08 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 매개변수의 개수를 모르는 경우
add(3, 4);
// 매개변수와 매개변수에 전달되는 값의 개수는 같아야 한다.
int [] val = {1, 2, 3, 4, 5};
sum(val);
sum2(1, 2, 3, 4, 5);
sum2(1, 2, 3);
sum2(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
}
public static void add(int num1, int num2) {
System.out.println(num1 + num2);
}
public static void sum(int [] i) {
int sum = 0;
for(int j : i) {
sum += j;
}
System.out.println(sum);
}
public static void sum2(int ... i) {
int sum = 0;
for(int j : i) {
sum += j;
}
System.out.println(sum);
}
}