Study Java

메서드, 클래스

SangJune238 2025. 1. 15. 16:46

메서드

클래스 내부에 있는 함수

// [표현법]
반환형 메소드이름(매개변수){
	함수에서 실행할 코드
}

 

 

예시

public class A_Method {

	public static void main(String[] args) {
		System.out.println("프로그램 시작");
		hiEveryone(12);
		hiEveryone(13);
		System.out.println("프로그램 끝");

		
	}
	
	public static void hiEveryone(int age) {
		System.out.println("좋은 아침입니다.");
		System.out.println("제 나이는 " + age + "입니다.");
	}

}

 

메서드 오버로딩

자바에서 한 클래스 내에서 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메서드를 정의할 수 있습니다. 한 클래스 내에 같은 이름이 메서드를 여러 개 정의하는 것을 "메서드 오버로딩" 또는 "오버로딩"이라고 합니다.

 

메서드 오버로딩 구분 요건은 아래와 같습니다.

  • 메소드 이름이 같아야 한다.
  • 매개변수의 개수, 타입 또는 순서가 달라야 한다.
  • 반환 타입은 관계가 없다.
public class C_Method {
	
	//메소드 오버로딩
	//메소드의 이름이 동일해도 매개변수의 갯수 또는 타입이 다르면 메소드를 구분할 수 있다.
	//단, 호출시점이 구분해서 호출할 수 있어야하므로 반환형이 다른 것은 아무 의미가 없다.
	//자동형변환은 매개변수로 인자를 전달할 때도 동작하기 때문에 모호한 오버로딩을 하지 말자.

	public static void main(String[] args) {
		System.out.println(adder(5,10));
		System.out.println(adder(5,13));
		System.out.println(adder(5, "안녕"));

	}
	
	public static int adder(int num1, int num2) {
		int addResult = num1 + num2;
		return addResult;
		
	}
	
	public static double adder(double num1, double num2) {
		double addResult = num1 + num2;
		return addResult;
		
	}
	public static int adder(int num1, String ch) {
		String addResult = num1 + ch;
		return 0;
	}

}

 

 

클래스

클래스는 객체 지향 프로그래밍의  기본적인 개념 중 하나입니다. 클래스는 프로그램에서 사용될 객체의 틀을 정의하며, 객체를 생성하기 위한 설계도 역할을 한다. 클래슨 여러 가지 멤버 변수와 메서드를 포함하고 이들을 적절히 구성하여 객체의 동작을 정의합니다.

 

클래스의 구조

접근제한자 class 클래스명{

     //필드영역(사용할 데이터를 선언하는 영역)
     
     //생성자 영역 (데이터를 초기화해주기 위한 특수목적의 메서드를 정의하는 영역)
     
     //메서드 영역 (클래스의 기능을 정의하느 영역)
         
 }

 

 

예시

1)

package F.Object.ex1;
public class Student {
	//필드
	String name; //이름
	int age; //나이
	double height; //키
	
	//메서드
	public void myInfo(){ //내 정보를 출력하는 기능
		int age = 20;
		System.out.println("안녕하세요. 저는 " + this.age + "살의" + name + "입니다.");
		
	}
package F.Object.ex1;

public class Run {

	public static void main(String[] args) {
		//객체를 생성할 때
		//class명 객체이름;
		
		Student choi; //choi라는 참조변수 생성
		choi = new Student();
		
		Student kim = new Student();
		
		
		choi.name = "홍길동";
		choi.age = 55;
		
		kim.name = "홍길순";
		kim.age = 60;
		
		choi.myInfo();
		kim.myInfo();
		
	}
}

 

2)

package F.Object.ex2;

public class BankAccount {
	int balance = 0;
	
	public int deposit(int amount) {
		balance += amount;
		return balance;
	}
	
	public int withdraw(int amount) {
		balance -= amount;
		return balance;
	}
	
	public int checkMyBalance() {
		System.out.println("잔액 : " + balance);;
		return balance;
	}
	
	public int checkMyBalance(BankAccount ref) {
		System.out.println("잔액 : " +  ref.balance);;
		return ref.balance;
	}

}
package F.Object.ex2;

public class Run {
	
	public static void main(String[] args) {
//		BankAccount ref1 = new BankAccount();
//		BankAccount ref2 = ref1;
//		
//		System.out.println(ref1.deposit(3000));
//		ref2.deposit(2000);
//		
//		ref1.checkMyBalance();
//		ref1.checkMyBalance();
		
		BankAccount ref1 = new BankAccount();
		BankAccount ref2 = new BankAccount();
		
		ref1.deposit(10000);
		ref1.withdraw(2000);
		
		ref2.checkMyBalance(ref1);
	}

}

 

3)

 

package F.Object.ex3;


//이름, 나이, 수학, 영어, 국어점수를 가지고있는 학생 클래스
public class Student {

	//필드
	String name; //이름
	int age; //나이
	double mathScore; //수학점수
	double enScore; //영어점수
	double koScore; //국어점수
	
	//생성자
	//객체를 초기화해주기 위한 특수목적 메서드
	//개발자가 생성해주지 않으면 기능이 없는 디폴트 생성자가 컴파일 과정에서 생성됨.
	//생성자는 class와 이름이 동일하다.
	//반환형이 존재하지 않는다.
	//alt+shift+s 단축키 이용가능
	public Student() {
		super();
	}
	
	//생성자도 메서드 오버로딩이 가능하다.
	//생성자는 alt + shift + s -> o
	public Student(String name, int age, double mathScore, double enScore, double koScore) {
		super();
		this.name = name;
		this.age = age;
		this.mathScore = mathScore;
		this.enScore = enScore;
		this.koScore = koScore;
	}

	
	
	//메서드
	public void myInfo(){ //내 정보를 출력하는 기능
		int age = 20;
		System.out.println("안녕하세요. 저는 " + this.age + "살의" + name + "입니다.");
		
	}

	
}
package F.Object.ex3;

public class Run {

	public static void main(String[] args) {
		Student st1 = new Student(); 
		Student st2 = new Student("홍길동", 20, 100, 95, 50);
		
		st2.mathScore = -50;
		
		st1.myInfo();
		st2.myInfo();
	}
}

'Study Java' 카테고리의 다른 글

접근제한자  (5) 2025.01.16
형변환과 배열  (6) 2025.01.14
Java 프로젝트 생성  (2) 2025.01.07
Java, eclipse 설치  (5) 2025.01.07