전역변수
지역 변수
선언부-> static void 합(int a, int b) {
메서드 구현부
}
static void 합(int a, int b) {
System.out.println(a + b);
}
// 아웃풋이 없음
static int 합(int a, int b) {
System.out.println(a + b);
return 10;
}
// 이제 아웃풋이 생김
import java.awt.Point;
// 좌표상의 위치를 나타낼 때 편리한 Point 클래스
import java.util.Arrays;
// 배열을 다루기 위한 다양한 메소드가 포함되있는 Arrays 클래스
//Point와 Arrays클래스는 이미 자바에 만들어져있는 클래스니까 import하여 불러내야함
// Main 클래스에는 지금 총 4개의 메서드가 있다
// main 메서드를 기준으로 위에서부터 아래로 봐야한다
class Main {
public static void main(String[] args) {
String message = greet("Alice"); // greet 함수를 찾아가보자
System.out.println(message);
Point point = createPoint(5, 10); // createPoint 함수를 찾아가보자
// Point 타입 //자바에 이미 있는 클래스니까 import해야함
System.out.println("Point created at (" + point.x + ", " + point.y + ")");
int[] evens = firstNEvenNumbers(5); // firstNEvenNumbers 함수를 찾아가보자
System.out.println("First 5 even numbers: " + Arrays.toString(evens));
// Array클래스내부에있는 메소드 호출 // string으로 변환 // evens 인자를 받는 매개변수
}
public static String greet(String name) {
return "Hello, " + name + "!";
// 메서드 선언부 - static을 사용해서 객체화하지 않고 함수 만듬
// 메서드 선언부 - message라는 변수는 String 타입이라 return 타입이 String만 가능함
// 메서드 구현부 - return 한 걸 message라는 변수에 넣고 돌려주겠다는 뜻
// 매개변수에 Alice라는 인자값을 받아고, return statement에 return 하고 함수 실행값을 message변수에 담음
// message 변수에 담긴 실행값을 출력
}
public static Point createPoint(int x, int y) { // x좌표 y좌표
// 좌표 공간의 지정된 위치 (x, y)에 점을 구축해 초기화
return new Point(x, y);
// 마찬가지로 static을 사용해서 객체화하지 않고 함수 만들건데
// return 타입이 Point타입
// new를 사용해서 만든 Point 객체 안에있는 공간에 인자값 x인 5와 y인 10을 받고 return
// 쉽게 말해 new Point(x, y) 객체를 point 변수에 연결
// point 변수에 리모컨으로 객체에 연결해서 x과 y의 데이터를 출력
}
public static int[] firstNEvenNumbers(int n) {
int[] evenNumbers = new int[n];
for (int i = 0, num = 2; i < n; i++, num += 2) { // 초기화 1번, 컨디션체크 1번, 업데이트 2번
evenNumbers[i] = num;
}
return evenNumbers;
// int[] -> return 타입
// n개의 공간이 있는 정수들만 담을 배열객체를 하나 만들어서 evenNumbers라는 변수와 연결할건데
// n에 인자값 5를 받아서 5개의 공간을 만들겠다는 뜻
// 반복문 사용해서 5번 반복해서 정수 num의 값을 2씩 증가시키며 짝수 5개를 evenNumbers 리모콘에 연경
// 저장된 배열을 return 해서 메인클래스에서 출력
// 출력문에 Arrays.toString(evens)는 배열을 출력하겠다는 Array클래스의 함수를 적어서 배열객체 내부에있는 정보들을 출력
// 자바에서 배열의 변수 그대로 출력하게 되면 배열의 주소값이 출력됨
// 배열의 내용을 출력하기 위해 Arrays.toString()을 사용해야한다.
}
}
class Main {
public static void main(String[] args) {
// 함수호출문을 살펴보면, 함수선언문을 어떻게 만들어야할지 알 수 있다.
// new 사용해서 객체생성 안했기때문에 static인지 알수있고, return받아서 담을 변수는 없으니 void가 함수선언문에 들어간다
계산기.더한결과를_화면에_출력(10, 20);
// 출력 => 결과 : 30
계산기.더한결과를_화면에_출력(50, 20);
// 출력 => 결과 : 70
계산기.뺀결과를_화면에_출력(50, 20);
// 출력 => 결과 : 30
계산기.뺀결과를_화면에_출력(5, 2);
// 출력 => 결과 : 3
계산기.곱한결과를_화면에_출력(5, 2);
// 출력 => 결과 : 10
}
}
class 계산기 {
static void 더한결과를_화면에_출력(int i, int j) {
System.out.println(i + j);
}
static void 뺀결과를_화면에_출력(int i, int j) {
System.out.println(i - j);
}
static void 곱한결과를_화면에_출력(int i, int j) {
System.out.println(i * j);
}
}
//문제 - 함수를 실행하면 값을 돌려주도록 만들어주세요.
class Main {
public static void main(String[] args) {
int 결과;
// new 사용해서 객체생성 안했기때문에 static인지 알수있다
// return받아서 담을 변수가 있으니 변수타입을 보고 함수선언문의 return 타입을 정할 수 있다
결과 = 계산기.합(10, 20);
System.out.println("결과 : " + 결과);
// 출력 => 결과 : 30
결과 = 계산기.합(30, 20);
System.out.println("결과 : " + 결과);
// 출력 => 결과 : 50
결과 = 계산기.합(30, 70);
System.out.println("결과 : " + 결과);
// 출력 => 결과 : 100
결과 = 계산기.차(30, 70);
System.out.println("결과 : " + 결과);
// 출력 => 결과 : -40
결과 = 계산기.곱(3, 7);
System.out.println("결과 : " + 결과);
// 출력 => 결과 : 21
}
}
class 계산기 {
static int 합(int i, int j) {
return i + j;
}
static int 차(int i, int j) {
return i - j;
}
static int 곱(int i, int j) {
return j * j;
}
}
//문제 - 1부터 n까지의 합을 반환하는 함수
class Main {
public static void main(String[] args) {
// new 사용해서 객체생성 안했기때문에 static인지 알수있다
// return받아서 담을 변수가 있으니 변수타입을 보고 함수선언문의 return 타입을 정할 수 있다
int 결과1 = Math.oneToNSum(3);
System.out.println("결과1 : " + 결과1);
// 출력 : 결과1 : 6
int 결과2 = Math.oneToNSum(10);
System.out.println("결과2 : " + 결과2);
// 출력 : 결과2 : 55
}
}
class Math {
// 함수 안에서 반복문도 가능하고 return value도 줄 수 있다
static int oneToNSum(int n) {
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += i;
}
return sum;
}
}
// 문제 - n부터 m까지의 합을 반환하는 함수
// 위 문제와 똑같은 방식으로 해결 할 수 있는 문제이다, 다만 매개변수와 인자의 값을 잘 일치시키도록 하기
class Main {
public static void main(String[] args) {
int 결과1 = Math.nToMSum(2, 3);
System.out.println("결과1 : " + 결과1);
// 출력 : 결과1 : 5
int 결과2 = Math.nToMSum(5, 10);
System.out.println("결과2 : " + 결과2);
// 출력 : 결과2 : 45
}
}
class Math {
static int nToMSum(int n, int m) {
int sum = 0;
for (; n <= m; n++) { // 반복문 초기화자리가 비어있는 이유는, 매개변수자리에 이미 선언이됐기때문이다
sum += n;
}
return sum;
}
}
💡 같은 패키지안에 클래스 생성하면 다른 .java 파일에서도 사용할수있다
💡 패키지분리하면 클래스를 공유 할 수 없다.