메소드는 프로그램의 구성요소인 클래스의 기능(동작) 입니다.
메서드를 작성하여 사용하는 이유는 중복되는 코드의 반복적인 프로그래밍을 피할 수 있기 때문
public class Animal {
String name;
public void setName(String name) { // setName 메소드 추가.
this.name = name;
}
public static void main(String[] args) {
Animal cat = new Animal();
cat.setName("boby"); // 메소드 호출
System.out.println(cat.name); // boby 출력
}
}
// cat.name = "boby"라는 문장은 객체 cat의 객체변수 name에 "boby"라는 값을 대입
객체 변수는 공유되지 않는다
//main메소드 변경
public static void main(String[] args) {
Animal cat = new Animal();
cat.setName("boby");
Animal dog = new Animal();
dog.setName("happy");
System.out.println(cat.name); // boby 출력
System.out.println(dog.name); // happy 출력
}
// 결과를 보면 name 객체 변수는 공유되지 않는다는 것을 확인
매개변수도 없고 리턴하는 것도 없는 형태의 메서드
public class MyClass{
public void method1(){
System.out.println("method1이 실행됩니다.");
}
}
정수를 받아들인 후, 리턴하지 않는 메서드
public class MyClass{
public void method2(int x){
System.out.println(x + " 를 이용하는 method2입니다.");
}
}
아무것도 받아들이지 않고, 정수를 반환하는 메서드
public int method3(){
System.out.println("method3이 실행됩니다.");
return 10;
}
//위 메소드가 실행되면, 콘솔에 'method3이 실행됩니다.' 를 출력하고,
//이 메소드를 호출한 쪽에 10을 리턴한다.
정수를 2개 매개변수로 받고, 아무것도 반환하지 않는 메서드
public void method4(int x, int y){
System.out.println(x + "," + y + " 를 이용하는 method4입니다.");
}
정수를 한개 받아들인 후, 정수를 반환하는 메서드
public int method5(int y){
System.out.println(y + " 를 이용하는 method5입니다.");
return 5;
}
String 인스턴스는 한 번 생성되면 그 값을 읽기만 할 수 있고, 변경할 수는 없다.
이러한 객체를 자바에서는 불변 객체(immutable object)라고 한다.
즉, 자바에서 덧셈(+) 연산자를 이용하여 문자열 결합을 수행하면, 기존 문자열의 내용이 변경되는 것이 아니라 내용이 합쳐진 새로운 String 인스턴스가 생성되는 것
String Class가 제공하는 메소드
String 클래스의 메소드는 매우 다양하며, 그중에서 많이 사용되는 메소드 하단 이미지 참조