본문 바로가기
기초 및 언어/▶ Java&JSP

10. 클래스

by 류딩이 2025. 8. 14.

1. 클래스(Class)

클래스는 객체(Object)를 만들기 위한 설계도
변수(속성)와 메서드(기능)를 한 곳에 묶어 관리

 

2. 메서드란?

**메서드(Method)**는 특정 작업을 수행하도록 독립적으로 작성된 코드 블록입니다.
기능을 한 덩어리로 묶어 필요할 때 호출해서 사용할 수 있습니다.

 

메서드 사용 목적

  • 코드 재사용 → 같은 기능을 여러 번 작성할 필요 없음
  • 가독성 향상 → 코드 구조가 보기 쉬움
  • 유지보수 편리 → 기능별로 코드가 분리되어 수정이 쉬움

 

클래스의 기본 구성 요소

[접근제어자] class 클래스명 {
    // ① 멤버변수(필드, 속성)
    자료형 변수명;

    // ② 생성자(Constructor)
    클래스명(매개변수) {
        // 객체 생성 시 실행되는 코드
    }

    // ③ 메서드(Method)
    반환타입 메서드명(매개변수) {
        // 기능 구현
        return 값; // 반환타입이 void면 생략 가능
    }
}

 

 

클래스와 메서드 예제1

public class Ex02_메서드 {

    public static void main(String[] args) { 
        // main 메서드: 프로그램의 시작점

        System.out.println(1);
        System.out.println(2);

        star(); // ★ star() 메서드 호출 (전달인자 없음)

        System.out.println(3);
        System.out.println(4);

        star(); // 다시 호출

        // ★ sub() 메서드 호출
        // 전달인자: 40, 10, 7
        int result2 = sub(40, 10, 7);

        // ★ add() 메서드 호출
        // 전달인자: 10, 20
        int result = add(10, 20); 

        // 리턴값 출력
        System.out.println("result : " + result);   // 30
        System.out.println("result2 : " + result2); // 23

        System.out.println(5);
        star();
    }

    // 📌 star 메서드
    // 반환타입: void (값 반환 없음)
    public static void star() { 
        System.out.println("*****");
        System.out.println("=====");
        return; // void에서는 생략 가능
    }

    // 📌 add 메서드
    // 매개변수: int a, int b (호출 시 전달받는 값)
    // 반환타입: int (계산된 합계 반환)
    public static int add(int a, int b) {
        int sum = a + b;
        return sum; // 결과를 호출한 자리로 반환
    }

    // 📌 sub 메서드
    // 매개변수: int c, int d, int e
    // 반환타입: int (계산된 값 반환)
    public static int sub(int c, int d, int e){
        int solve = c - d - e;
        return solve;
    }
}

 

 

용어정리

메서드 정의 메서드를 만드는 것 public static int add(int a, int b) { ... }
메서드 호출 만든 메서드를 실행하는 것 add(10, 20);
매개변수(Parameters) 메서드가 받는 입력 변수 int a, int b
전달인자(Arguments) 호출 시 실제로 넘기는 값 add(10, 20)의 10, 20
반환타입(Return type) 메서드가 돌려주는 값의 자료형 int, String, void
반환값(Return value) return으로 돌려주는 실제 값 return sum;
void 반환값이 없음 public static void star()
main 메서드 프로그램 시작점 public static void main(String[] args)

 

 

작은 팁

  • 메서드명은 동사형·소문자 시작 권장: printLine(), getSum()
  • 반환타입이 void가 아닐 때는 return 필수
  • 반복되는 출력/계산은 메서드로 분리하면 코드가 짧고 읽기 쉬움

 

 

클래스와 메서드 예제2

class Calculate{
	int x; // 인스턴스 변수
	int y; // 인스턴스 변수
	static int z; // static변수
	
	// 더하기 리턴하는 메서드 정의
	public int add() {  //인스턴스 메서드
		return x+y;
	}
	// 곱하기 리턴하는 메서드 정의
	public int multi() {  //인스턴스 메서드
		return x*y;
	}
	// 큰 값을 리턴하는 메서드 정의
	public int max() {  //인스턴스 메서드
		if(x>y) {
			return x;
		}else {
			return y;
		}
	}
	// 메서드에도 static을 붙일 수 있다.
	// static 메서드: 객체 생성 없이 호출 가능
	public static void star() { //static메서드
		System.out.println("*");
		System.out.println(z); //static변수 안에서는 static변수만 사용할 수 있다.  
	}
}

public class Ex04_메서드 {

	public static void main(String[] args) {
		Calculate c1 = new Calculate(); // 객체(인스턴스)생성
		c1.x=  2;
		c1.y = 3;
		System.out.println(c1.x);
		System.out.println(c1.y);
		
		// 다른 클래스의 메서드를 호출하고 리턴값 사용하기
		// → 객체를 생성한 후, 해당 객체의 메서드를 통해 호출
		
		// 더하기 메서드 호출
		int result = c1.add();
		System.out.println("add : " + result);
		
		// 곱하기 메서드 호출
		int result2 = c1.multi();
		System.out.println("multi : "+ result2 );
		
		// 큰 값을 리턴하는 메서드 호출
		int maxNum = c1.max();
		System.out.println("maxNum : " + maxNum);
		
		// 클래스 이름으로 메서드를 접근할 수 있다.
		c1.star();
		Calculate.star();

	}

}

 

 

  • 인스턴스 변수(x, y) → 객체마다 다른 값 저장
  • static 변수(z) → 모든 객체가 공유하는 값
  • 인스턴스 메서드(add, multi, max) → 객체 생성 후 호출
  • static 메서드(star) → 클래스명으로 직접 호출 가능, 인스턴스 변수는 접근 불가

 

 

'기초 및 언어 > ▶ Java&JSP' 카테고리의 다른 글

12. 변수  (1) 2025.08.18
11. 배열넘기기  (0) 2025.08.18
09. 2차원  (7) 2025.08.14
08. 정렬  (2) 2025.08.14
07. 배열  (2) 2025.08.14