본문 바로가기

국비지원_핀테크

10일차_ [java] 클래스 ( class ), 접근제한자, 메소드 ( method )

 

 

 

 

 

클래스 ( class )

클래스 ( class )

 

접근 제한자

 

같은 패키지 내의 TestCalss01 클래스를 tc 라는 객체에 담아서 해당 클래스 내의 변수를 사용한다
생성된 tc 객체의 변수를 불러와서 사용한 모습
TestClass01 클래스 내 age 변수의 접근 제한자를 private 으로 변경하니 같은 패키지내에서도 접근이 불가 ( private 은 같은 클래스 내에서만 접근이 가능하다 )

 

 

 

 

 

 

 

 

 

 

메소드 ( method )

메소드 ( method )

 

TestClass02 클래스를 MainClass02 클래스에서 객체로 생성하여 TestClass02 클래스의 메소드를 사용

 

TestClass03 클래스를 TestClass03 자료형의 t 라는 객체로 생성하여 해당 객체의 .test() 메소드를 실행

 

sumFunc 메소드를 실행할 때 main 에서 입력받은 num 값을 sumFunc 메소드로 전달하여 코드를 진행한뒤 출력

 

반환 타입을 int 로 변경하여 return 으로 int 값을 main 으로 다시 넘겨준 모습

메소드를 사용할때 입력과 출력(return)의 자료형을 잘 맞춰주는 것이 중요하다

 

입력, 연산, 출력 부분을 모두 메소드화 시킨 모습

 

void 는 return 값이 존재하지 않지만 return 뒤에 값을 지정하지 않고 사용은 가능하다, i 가 3일때 return 을 만나서 아래 "test1 종료" 문구가 출력되지 않은 모습이다

 

컬렉션을 매개변수로 입력하거나 컬렉션을 출력 값으로 받아오는 방법

 

 

 

 

 

 

 

 

 

 

실습 예제

1. 두 수를 입력 받아 큰 수를 출력하는 함수를 만드시오

package class_;

public class MainTest {
	public static void main(String[] args) {
		
		TestMethod1 test1 = new TestMethod1();
		int[] nums = test1.inputNum();
		int moreBig = test1.moreBig(nums);
		test1.printBig(moreBig);
		
	}
}

main

package class_;

import java.util.Scanner;

public class TestMethod1 {
	// 수 입력받는 메소드
	public int[] inputNum() {
		Scanner sc = new Scanner(System.in);
		int[] nums = new int[2];
		
		for(int i=0; i<nums.length; i++) {
			System.out.print("비교할 수를 입력 >>> ");
			nums[i] = sc.nextInt();
		}
		return nums;
	}
	
	// 비교 연산 메소드
	public int moreBig(int[] a) {
		int moreBig = 0;
		if(a[0] > a[1]) {
			moreBig = a[0];
		}else {
			moreBig = a[1];
		}
		return moreBig;
	}
	
	// 출력 메소드
	public void printBig(int a) {
		System.out.println("더 큰 숫자 : " + a);
	}
}

메서드

 

 

 

 

 

2. 입력 받는 값이 짝수인지 홀수인지 판별하는 함수 제작

package class_;

public class MainTest {
	public static void main(String[] args) {
		
		TestMethod2 test2 = new TestMethod2();
		int inputnum = test2.inputNum();
		String even = test2.even(inputnum);
		test2.printEven(inputnum, even);
		
	}
}

main

package class_;

import java.util.Scanner;

public class TestMethod2 {
	
	// 수 입력받는 메소드
	public int inputNum() {
		int num;
		Scanner sc = new Scanner(System.in);
		System.out.print("수를 입력 >>> ");
		num = sc.nextInt();
		return num;
	}
	
	// 입력받은 수가 짝수인지 홀수인지 연산
	public String even(int a) {
		if(a % 2 == 0) {
			return "짝수";
		}else {
			return "홀수";
		}
	}
	
	// 출력
	public void printEven(int a, String b) {
		System.out.printf("입력하신 %d는 %s입니다.", a, b);
	}
}

메서드

 

 

 

 

 

3. 3의 배수를 판별하는 함수를 만들고 이 함수를 이용하여 main 에서 3의 배수만 출력하시오

package class_;

import java.util.ArrayList;

public class MainTest {
	public static void main(String[] args) {
		
		TestMethod3 test3 = new TestMethod3();
		ArrayList<Integer> inputNum = test3.inputNum();
		ArrayList<Integer> even3 = test3.even3(inputNum);
		test3.printEven3(even3);
		
	}
}

main

package class_;

import java.util.ArrayList;
import java.util.Scanner;

public class TestMethod3 {
	public ArrayList<Integer> inputNum() {
		// 수를 무한대로 입력받는 부분
		Scanner sc = new Scanner(System.in);
		ArrayList<Integer> nums = new ArrayList<>();
		
		while(true) {
			System.out.print("수를 입력하세요(종료:0) >>> ");
			int num = sc.nextInt();
			if(num == 0)	break;
			nums.add(num);
		}
		
		// 숫자를 저장한 List 를 반환
		return nums;
	}
	
	public ArrayList<Integer> even3(ArrayList<Integer> a){
		// List 배열의 수가 3의 배수인지 확인하는 메소드
		ArrayList<Integer> even3 = new ArrayList<Integer>();
		for(int i : a) {
			if (i%3 == 0) {
				// 3의 배수라면 even3 이라는 List 에 값 추가
				even3.add(i);
			}
		}
		// 3의 배수가 담긴 List 인 even3 을 return
		return even3;
	}
	
	public void printEven3(ArrayList<Integer> a) {
		System.out.println("- 3의 배수 목록 -");
		for (int i : a) {
			System.out.print(i + " ");
		}
	}
}

메서드

728x90