형식
접근자 리턴데이터타입 함수명(인자 x) {
처리 로직
결과 리턴
}
public int fn(int x) {
int y = x * x;
return y
}
package chapter05;
public class MethodEx {
public static int add(int x) {
int y = x * x;
return y;
}
public static void main(String[] args) {
}
}
package chapter05;
public class MethodEx {
public static int add(int x) {
int y = x * x;
return y;
}
public static void addPrint(int x) {
int y = x * x;
print(y)
}
public static void main(String[] args) {
}
}
package chapter05;
import java.util.Scanner;
public class MethodEx {
public static int add(int x) {
int y = x + x;
return y;
}
public static void main(String[] args) {
int x = 10;
int y = add(x);
System.out.println("y = add(x) = " + y);
x = 20;
y = add(x);
System.out.println("y = add(x) = " + y);
System.out.println("int input > ");
Scanner scan = new Scanner(System.in);
x = scan.nextInt();
y = add(x);
System.out.println("y = add(x) = " + y);
}
}
package chapter05;
public class MyMath {
// static 메서드
public static int add(int x) {
int y = x + x;
return y;
}
// instance 메서드
public int add(int x1, int x2) {
int y = x1 + x2;
return y;
}
}
package chapter05;
public class MyMathTest {
public static void main(String[] args) {
int x1 = 10;
int x2 = 20;
// 다른 클래스 static 메서드 호출
int y1 = MyMath.add(x1);
// 다른 클래스 instance 메서드 호출
MyMath myMath = new MyMath();
int y2 = myMath.add(x1, x2);
System.out.printf("(y1,y2) = (%s,%s)", y1, y2);
}
}
package chapter05;
import java.util.Scanner;
public class MethodEx {
public static void addPrint(int x) {
if(x == 0) {
System.out.println("end");
return;
}
int y = x + x;
System.out.println("y="+ y);
}
public static void main(String[] args) {
addPrint(0);
}
}
package chapter05;
public class LocalVarTest {
public static void main(String[] args) {
int n = 0;
{
int a = 10;
}
// int b = a; // error 블럭에서 선언된 a 지역변수
for(int i=0; i<3; i++) {
int j = 3;
}
// int b = i; error for() 선언된 i, for블럭에 선언된 j 지역변수
}
public static void nUse() {
//int k = n; // main()에 선언된 n 지역변수
}
}
package chapter05;
public class ArgsTest {
public static void varInt(int x) {
x = 10;
}
public static void varArr(int[] x) {
x[0] = 10;
}
public static void main(String[] args) {
int x = 0;
// 기본형 변수에 값 전달 => 복사본 => 전달값 변화 없음
varInt(x);
int[] xArr = {0};
//참조형 변수에 주소 전달 => 실제값 => 전달값에 영향이 미침
varArr(xArr);
System.out.println(x);
System.out.println(xArr[0]);
}
}
package test;
public class Dog {
private String name;
public Dog(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package test;
public class Test { public static void main(String[] args) {
int x = 10;
int[]y = {1,2,3};
Dog dog1 = new Dog("덕구");
Dog dog2 = new Dog("뎅뎅이");
input(x, y, dog1, dog2);
// x, y, dog1.getName(), dog2.getName()
// 각각의 값 예측하기
}
static void input(int x, int[] y, Dog dog1, Dog dog2) {
x++;
y[0]++;
dog1 = new Dog("덕팔이");
dog2.setName("붕붕이");
// x, y, dog1.getName(), dog2.getName()
// 각각의 값 예측하기
}
}