국비지원 8일차(객체와 메소드)

💻 메소드?

메소드(method)란 특정 작업을 수행하는 일련의 문장들을 하나로 묶은 것이다. 수학에서의 함수와 유사하다고 보면 되는데, 메서드는 반드시 클래스 안에 존재하지만, 함수는 클래스에 독립적이라는 차이가 있다.

public class MyClass02 {
	

	
//	 메소드 (method)
	 /*
	  * 작성방법
	  * 접근제한자 리턴타입 메소드명(매개변수) {실행할 내용, 리턴값이 있다면 return 값}
	  * public  int   plus(number)   {number++; return number;}
	  * 
	  * -리턴값이 없으면? void라고 작성
	  * -매개변수(()안의 값)는 안 받아도 되고, 여러개를 받아도됨
	  * -매개변수를 여러개 받으면 리턴도 여러개? ㄴㄴ 리턴은 무조건 하나
	  * 
	  * 메소드 구성
	  * 메소드 헤드, 메소드 바디
	  * -메소드의 헤드를 보면, 입력값의 정보 및 반환값의 정보를 알 수 있다.
	  */
	
	
	
	
	
	public void test() {
		System.out.println("테스트 메서드 시작");
//		myMethod01();
//		plusTen(10);
//		System.out.println(getAge());
		System.out.println(plusOne(10));
		//plusOne 메소드를 호출한다. (숫자 10을 전달해줄것)
		//호출을 통해 리턴받은 값을 출력해보기
		System.out.println("테스트 메서드 종료");
	}
    
    
    
    **메소드는 다음과 같이 크게 4가지 종류가 있다.**

	//1. 매개변수가 없고, 리턴값이 없는 메소드(네모형)
	public void myMethod01() {
		System.out.println("안녕 나는 출력문이야 ㅎㅎ");
	}
	
	//2. 매개변수가 있고, 리턴값이 없는 메소드(정수 x하나 전달받아서, 그 숫자에다가 +10 해서, 출력하는 메소드)
    (위가 뚫린 함수)
	public void plusTen(int x) {
		x = x+10;
		System.out.println(x);
	}
	
	
	//3. 본인 나이를 뱉어내는(반환하는) 메소드 작성
    (밑이 뚫린 함수)
	public int getAge() {
		System.out.println("getAge 메서드 호출됨");
		return 20;
	}
	
	//정수 하나를 입력받고, +1 한 값을 리턴 하는 메소드
	//4.(1) 입력받는 값(매개변수)이 있고, 뱉어내는 값(==반환하는 ==return 하는)이 있는 메소드
    (위아래가 모두 뚫린 함수)
	public int plusOne(int x) {
		x++;
		return x;
		
	}
	//(2) 반지름의 길이(정수)를 입력받고, 원의 넓이를 리턴하는 메소드
	//매개변수: 반지름
	//리턴타입: 실수형 데이터 (float, double)
	//실행할 내용: 반지름을 이용하여 원의넓이 계산
	
	public double calcCircle(int r) {
		double result = r * r * 3.14;
		return result;
	}
	
}
<직접 실습한 코드>
public class Practice {
	public void test() {
		System.out.println("start");
		
		printHelloWorld();
		printMyName();
		multiple(5);
		System.out.println(getName());
		System.out.println(plus(3,5));
		
		System.out.println("end");
	}
	
	
	public void printHelloWorld() {
		System.out.println("hello world");
	}

	public void printMyName() {
		System.out.println("(이름)");
	}
	
	
	public void multiple(int x) {
		System.out.println(x * 2);
	}
	
	public String getName() {
		return "(이름)";
	}
	
	public int plus(int x , int y) {
		return x+y;
		
	}
	
}

이렇게 호출한 메소드의 값은 다음과 같다.

테스트 메서드 시작
안녕 나는 출력문이야 ㅎㅎ
20
getAge 메서드 호출됨
20
11
테스트 메서드 종료

start
hello world
(이름)
10
(이름)
8
end

헷갈렸던 것은 void의 경우 return 값이 없으면 없다는 의미로 접근제어자 옆에 적어야 한다.(return문이 없어도 아무런 문제가 없는 이유는 컴파일러가 메서드의 마지막에 return을 자동적으로 추가해주기 때문임)

💻 객체?

객체지향과 절차지향
https://brownbears.tistory.com/407

  • 다음 글을 통해 절차지향과 객체지향에 대해 확실히 공부할 수 있었다.
  • 두 개념은 서로 상반되는 개념이 아니라, 각자의 장단점을 가진 개념이다.
  • c언어와 같은 절차지향 언어는 순서와 데이터를 중점으로 하고, java와 같은 객체지향 언어는 기능을 중심으로 한다.
    전자의 경우는 개별적인 순서를 중요시하고 후자는 클래스 안에 존재하는 각 인스턴스의 기능. 집단적인 느낌이 강하다.




9일차 예고

객체 개념이 굉장히 낯설다. 이후에 매개변수, 접근제한자, 오버로딩, 생성자 등에 관하여 정리할 예정이다.


좋은 웹페이지 즐겨찾기