컴퓨터는 잘못이 없다..

[JAVA]클래스 메소드 생성하고 사용해보기(메소드만들기, 메소드의 리턴타입, 매개변수 확인하는 법) 본문

공부/JAVA

[JAVA]클래스 메소드 생성하고 사용해보기(메소드만들기, 메소드의 리턴타입, 매개변수 확인하는 법)

도토리까꿍v 2020. 11. 28. 22:57
Contents 접기

[메소드를 만들 때 고려해야 하는것]

1. 접근 지정자  (public, protected, default, private) 
2. static or non static 
3. 리턴 type (void 는 어떤 type도 리턴하지 않는다는 의미) 
4. 메소드명(영문자 소문자로 시작하고 예약어가 아니면 된다) 
5. 메소드에 전달하는 인자의 개수와 데이터 type

 

[메소드의 return]

메소드를 호출하면 그 값은 return 값으로 바뀐다.

 

[메소드의 return 타입, 매개변수 확인하는 방법]

-참조값.~을 쳐서 보면 아래와 같은 창이 뜨는데 여기서 리턴타입을 확인할 수 있다. 

-매개변수 확인하는 방법

 

[예제코드]

 

MyObject.java

package test.mypac;

public class MyObject {
	//어떤값도 리턴하지 않는 메소드 
	public void walk() {
		System.out.println("걸음을 걸어요~");
		
	}
	
	//int type을 리턴하는 메소드 
	public int getNumber() {
		//리턴 type을 void가 아닌 다른 type으로 지정했으면 그 type으로 반드시 리턴해줘야한다. 
		int num=10;
		return num; //return을 만나면 값을 return하고 함수를 종료한다. 
	}
	
	//String type을 리턴하는 메소드
	public String getGreeting() {
		String greet = "안녕하세요";
		return greet;
	}
	
	//House 타입을 리턴하는 메소드
	public House getHouse() {
		House house = new House();
		return house;
	}
	
	//phone type을 전달받는 메소드
	public void usePhone(Phone p) {
		p.call();
	}
	
	//Phone type을 전달받는 static 메소드 
	public static void callPhone(Phone p) {
		p.call();
	}
	
	//House type을 리턴해주는 static 메소드 
	public static House buyHouse() {
		return new House();
	}
	
}

 

House.java

package test.mypac;

public class House {
	
	public void relax(String name) {
		System.out.println(name + "이 편안하게 집에서 쉽니다.");
	}
}

 

Phone.java

package test.mypac;

public class Phone {
	public void call() {
		System.out.println("전화를 걸어요");
	}
}

 

 

[다양한 메소드 호출해보기]

 

MyObject, House, Phone 클래스를 활용하여 메소드를 호출해보자.

 

MainClass01.java

package test.main;

import test.mypac.MyObject;
public class MainClass01 {
	public static void main(String[] args) {
		//1. MyObject 객체를 생성해서 참조값을 m1이라는 지역변수에 담아보세요.
		MyObject m1 = new MyObject();
		
		//2. m1안에 들어있는 참조값을 이용해서 3개의 메소드를 모두 호출해보세요.
		m1.walk();
		m1.getNumber();//m1.getNumber()을 호출하면 그 자리는 return값으로 바뀐다.
		m1.getGreeting();//m1.getGreeting()을 호출하면 그 자리는 return값으로 바뀐다.
		
		//3. m1안에 들어있는 참조값을 이요해서 getNumber() 메소드를 다시 호출하고
		//리턴되는 값을 a라는 이름의 지역변수에 담아보세요.
		int a = m1.getNumber();//m1.getNumber()을 호출하면 그 자리는 return값으로 바뀐다. 
		
		//4. m1안에 들어있는 참조값을 이용해서 getGreeting() 메소드를 다시 호출하고
		//리턴되는 값을 b라는 이름의 지역변수에 담아보세요.
		String b = m1.getGreeting();//m1.getGreeting()을 호출하면 그 자리는 return값으로 바뀐다.

	}

}

 

 

실행결과

걸음을 걸어요~

    

 

 

MainClass02.java

package test.main;
import test.mypac.House;
public class MainClass02 {
	public static void main(String[] args) {
		 //House 클래스를 이용해서 여러분들이 집에서 편안하게 3번 쉬어보세요.
		House h1 = new House();
		String name = "신지윤";
		h1.relax(name);
		h1.relax(name);
		h1.relax(name);
	
		System.out.println("-------------------------------");
		//집에서 100번 쉬어보세요.
		for(int i=0; i<100; i++) {
			h1.relax(name);
		}
		
	}
}

실행결과

신지윤이 편안하게 집에서 쉽니다.
신지윤이 편안하게 집에서 쉽니다.
신지윤이 편안하게 집에서 쉽니다.
-------------------------------
신지윤이 편안하게 집에서 쉽니다.
신지윤이 편안하게 집에서 쉽니다.
.
.
.
생략...

          

 

MainClass03.java

package test.main;

import test.mypac.*;
public class MainClass03 {
	public static void main(String[] args) {
		//MyObject 객체를 생성해서 m1이라는 이름의 지역변수에 대입해보세요.
		MyObject m1 = new MyObject();
		
		//m1에 있는 참조값을 이용해서 House 객체의 참조값을 얻어와서 myHome이라는
		//이름의 지역변수에 담아보세요.
		House myHome =  m1.getHouse();
		
		//myHome 안에 있는 참조값을 이용해서 집에서 3번 쉬어보세요.
		String name = "김재성";
		myHome.relax(name);
		myHome.relax(name);
		myHome.relax(name);
		
		

	}
}

실행결과

김재성이 편안하게 집에서 쉽니다.
김재성이 편안하게 집에서 쉽니다.
김재성이 편안하게 집에서 쉽니다.

 

MainClass04.java

package test.main;
import test.mypac.*;

public class MainClass04 {
	public static void main(String[] args) {
		//MyObject 클래스에 있는 usePhone() 메소드를 호출해보세요.
		
		//방법1 : 객체 생성 후 전달하기
		MyObject m1 = new MyObject();
		Phone p1 = new Phone(); //객체 생성 후
		m1.usePhone(p1); //전달하기
		
		//방법2 : 객체 생성하면서 전달하기
		MyObject m2 = new MyObject();
		m2.usePhone(new Phone()); //객체 생성하면서 전달하기 

		//방법3 : 한줄로 써보기 
		//객체를 일회용으로 쓸거라면(한번 쓰고 말거라면) 이런식으로 쓰는것도 가능하다. 
		new MyObject().usePhone(new Phone());
	}
}

실행결과

전화를 걸어요
전화를 걸어요
전화를 걸어요

 

MainClass05.java

package test.main;

import test.mypac.*;
public class MainClass05 {
	public static void main(String[] args) {
		//1. MyObject 클래스의 callPhone() 메소드를 호출해보세요.
		MyObject.callPhone(new Phone());
		
		//2. MyObject 클래스의 buyHouse() 메소드를 호출하고 
		//리턴되는 참조값을 myHome 이라는 이름의 지역변수에 담아보세요
		House myHome = MyObject.buyHouse();

	}
}

실행결과

전화를 걸어요
Comments