2021. 6. 21. 15:06ㆍJAVA
* 메소드(Method)
-클래스 내에 기능 역할
-변수, 조건문, 반복문, 출력, 실행문 등 사용
-사용방법 :
출력타입(반환타입) 메소드명(입력변수-개수,타입 상관X(기본타입,참조타입[배열,String])) {
실행문
// 중괄호 안에서 동작
}
//메소드 사용방법
예) 출력타입 없는 메소드
void m1(int a){
//return없음
}
예2) 출력타입이 int, 입력이 두개(int, String)
int m2(int a, String b){
//출력타입 있으면 return필수
//return : int타입의 변수
}
예3) 출력타입이 String, 입력이 하나(배열)
String m3(int[] arr){
//return "String타입의 변수"
String s = "";
return s;
}
//메소드 활용방법
public class MethodClass {
String str = "전역변수";
public static void main(String[] args) {
}
//반환이 없고, 입력이 있는 메소드
void method1() {
System.out.println("method1 출력");
int a = 0, b = 0;
int sum = a+b;
//메소드 내에서 계산이 끝나는 실행문
str = "method1에서 전역변수 수정";
}
//반환이 없고, 입력이 있는 메소드
void method2(String s) {
//입력을 받아서 처리(출력, 연산)할 때 사용
System.out.println(s + "문자값 입력"); //입력받아 출력
s = "수정된 문자값"; //입력값을 수정
}
//반환, 입력 모두 있는 메소드
String method3(int a, String s, int[]arr) {
arr[0] = a;
for(int i = 0; i<10; i++) {
System.out.println(i);
}
String result = s+a;
return result;
}
//반환이 있고, 입력이 없는 메소드
int[] method4() {
int[] result = new int[5];
result[0] = 1;
result[1] = 2;
return result;
}
//메소드 활용예시
public class MethodClass2 {
public static void main(String[] args) {
//같은 클래스의 객체 생성
MethodClass2 mc2 = new MethodClass2();
//같은 클래스에 있는 메소드 호출
mc2.printOneOfTen();
mc2.printOneOfTen2(2,10);
//inputSum 반환타입이 int이기 때문에 그 값을 넣는 변수도 int여야됨
int sum = mc2.inputSum(1, 20); //1~20까지의 숫자
System.out.println(sum);
}
//1~10까지 출력하는 메소드
void printOneOfTen() {
for(int i = 0; i<=10; i++) {
System.out.print(i + " ");
}
//같은 클래스 내에서 메소드 호출방법 (메소드 이름만 적는다)
printEnter();
}
//start~end까지 출력
void printOneOfTen2(int start, int end) {
//start = 2; end = 10;
for(int i = start; i < end; i++) {
System.out.print(i + " ");
}
printEnter();
}
//한줄 내려쓰고 "---------------"구분해주는 메소드
void printEnter() {
System.out.println("\n-------------------------");
}
//start~end 합계 값을 반혼해주는 메소드
int inputSum(int start, int end) {
int sum = 0;
for(int i = start; i < end; i++) {
sum+=i;
}
return sum;
}
}
*return문
* 메소드가 정상적으로 종료되는 경우
1. 메소드의 블럭{}의 끝에 도달했을 때
2. 메소드의 블럭{}을 수행 도중 return문을 만났을 때
*return문
- 리턴 타입은 기본형, 참조형이 올 수 있다.
- 현재 실행 중인 메소드를 종료하고 반환값을 가지고 호출한 메소드로 되돌아간다.
1. 반환값이 없는 경우 : return 필요없음
2. 반환값이 있는 경우 : return 뒤에 반환값을 지정해줘야 됨
*생성자
- 리턴 값이 없다. (하지만 void를 쓰지 않는다.)
- 클래스가 실행될 때 딱 한번 실행된다.
- 생성자의 이름은 클래스의 이름과 같아야 한다.
- 클래스에 생성자가 하나도 없으면 컴파일러가 기본 생성자를 추가한다.
- 모든 클래스에는 반드시 하나 이상의 생성자가 있어야 한다.
- 매개변수는 개수, 타입 상관없이 가능하다.
- 생성자는 여러개를 만들 수 있다.(입력변수의 개수나 타입이 다른 경우)
public class Car(){
int carVar;
//생성자(클래스 객체화시 초기화)
Car(){
//실행문;
}
//메소드(기능)
void carMethod(){
//실행문;
}
}
//ConstructorClass 클래스
public class ConstructorClass {
//생성자 사용
ConstructorClass(){ //클래스명과 동일
System.out.println("ConstructorClass 객체화진행");
}
//매개변수 3개를 받은 생성자
ConstructorClass(String s, int a, char c){
System.out.println("s: " + s);
System.out.println("a: " + a);
System.out.println("c: " + c);
}
}
---------------------------------------------------------------------------
//ConstructorMain 클래스
public class ConstructorMain {
public static void main(String[] args) {
ConstructorClass cc = new ConstructorClass();
// 클래스명 변수명 ㄴ>생성자
ConstructorClass cc1 = new ConstructorClass("문자값",10,'a');
}
}
//결과
ConstructorClass 객체화진행
s: 문자값
a: 10
c: a
* this()
- 인스턴스 자신을 가리키는 참조변수. 인스턴스의 주소가 저장되어있음
- 인스턴스변수와 지역변수를 구별하기 위해 참조변수 this사용
- 모든 인스턴스 메서드에 지역변수로 숨겨진 채로 존재
'JAVA' 카테고리의 다른 글
[Eclipse] 객체지향개념(static, final, 접근제어자, getter, setter) (2) | 2021.06.22 |
---|---|
[Eclipse] 메소드 오버로딩 (0) | 2021.06.21 |
[Eclipse] 1차원배열 예제 (0) | 2021.06.18 |
[Eclipse] for문 예제 (0) | 2021.06.18 |
[Eclipse] 배열(Array) (0) | 2021.06.17 |