SMALL
안녕하세요, 코린이의 코딩 학습기 채니입니다.
Java 객체를 예습하며 정리한 포스팅입니다.
메소드(Method)
: 수학의 함수와 비슷하며 호출을 통해 사용
: 전달 값이 없는 상태로 호출을 하거나 어떤 값을 전달하여 호출을 하며 함수 내에 작성된 연산 수행을 수행 후 반환 값 / 결과 값은 있거나 없을 수 있음
: 클래스 안에 정의가 되어야 함
메소드 표현식
[접근제한자] [예약어] 반환형 메소드명 ( [매개변수] ) { // 기능 정의}
메소드 접근제한자
구분 | 클래스 | 다른 패키지 | 자손 클래스 | 전체 | |
+ | public | O | O | O | O |
# | protected | O | O | O | |
~ | (default) | O | O | ||
- | private | O |
메소드 예약어
구분 | 전체 |
static | static 영역에 할당하여 객체 생성 없이 사용 |
final | 종단의 의미, 상속 시 오버라이딩 불가능 |
abstract | 미완성된, 상속하여 오버라이딩으로 완성시켜 사용해야 함 |
synchronized | 동기화 처리, 공유 자원에 한 개의 스레드만 접근 가능함 |
static final (final static) |
static과 final의 의미를 둘 다 가짐 |
메소드 반환형
구분 | 전체 |
void | 반환형이 없음을 의미, 반환 값이 없을 경우 반드시 작성 |
기본 자료형 | 연산 수행 후 반환 값이 기본 자료형일 경우 사용 |
배열 | 연산 수행 후 반환 값이 배열인 경우 배열의 주소값이 반환 |
클래스 | 연산 수행 후 반환 값이 해당 클래스 타입의 객체일 경우 해당 객체의 주소값이 반환 (클래스 == 타입) |
메소드 매개변수
구분 | 전체 |
( ) | 매개변수가 없는 것을 의미 |
기본 자료형 | 기본형 매개변수 사용 시 값을 복사하여 전달 매개변수 값을 변경하여도 본래 값은 변경되지 않음 |
배열 | 배열, 클래스 등 참조형을 매개변수로 전달 시에는 데이터의 주소 값을 전달하기 때문에 매개변수를 수정하면 본래의 데이터가 수정됨 (얕은 복사) |
클래스 | |
가변인자 | 매개변수의 개수를 유동적으로 설정하는 방법으로 가변 매개변수 외 다른 매개변수가 있으면 가변 매개변수를 마지막에 설정 * 방법 : (자료형 ... 변수명) |
* 매개변수의 수에 제한이 없다.
package kh.oop1.day04.exam;
public class MethodExam {
// 1. 매개변수가 없고, 리턴 값도 없을 때
// [접근제한자] [예약어] void 메소드명() {}
public void method() {
System.out.println("매개변수가 없고 리턴 값도 없을 때의 메소드");
}
// 2. 매개변수가 있고, 리턴 값이 없을 때
// [접근제한자] [예약어] void 메소드명([매개변수]) {}
// 매개변수의 값의 타입은 기본자료형, 배열, 클래스, 가변인자
// 매개변수의 수는 여러개일 수도 있음. 구분은 ,(콤마)
public void method2(int x) {
System.out.println("매개변수는 " + x + "리턴 값은 없을 때의 메소드");
}
public void method2(int x, String s) {
System.out.println("매개변수가 한 개 이상이고 리턴 값이 없을 때의 메소드");
}
public void method2(int[] x, String[] s) {
System.out.println("매개변수가 배열 형태이고 리턴 값이 없을 때의 메소드");
}
// 3. 매개변수가 없고, 리턴 값이 있을 때
// [접근제한자] [예약어] 반환형 메소드명() {}
public int method3() {
System.out.println("매개변수가 없고, 리턴 값이 있을 때의 메소드");
return 10;
}
// 4. 매개변수가 있고, 리턴 값도 있을 때
// [접근제한자] [예약어] 반환형 메소드명([매개변수]){}
public String method4(int x) {
return "매개변수가 있고, 리턴 값도 있을 때의 메소드";
}
}
getter 메소드
: 필드에 기록된 값을 읽어서 요청한 쪽으로 읽은 값을 넘기는 메소드
getter 표현식
[접근제한자] [예약어] 반환형 get필드명( ) { return 필드명;}
setter 메소드
: 필드에 변경할 값을 전달 받아서 필드 값을 변경하는 메소드
setter 표현식
[접근제한자] [예약어] void set필드명(자료형 변수명) { (this.)필드명 = 자료형 변수명;}
package kh.oop1.day04.exam;
public class Student {
private int studentNo;
private String studentName;
// getter
public int getStudentNo() {
return studentNo;
}
public String StudentName() {
return studentName;
}
// setter
public void setStudentNo(int studentNo) {
this.studentNo = studentNo;
}
public void setStduentName(String studentName) {
this.studentName = studentName;
}
}
@run
package kh.oop1.day04.run;
import kh.oop1.day04.exam.Student;
public class run {
public static void main(String[] args) {
Student st = new Student();
st.setStudentNo(1);
st.setStduentName("홍길동");
System.out.println(st.getStudentNo());
System.out.println(st.StudentName());
}
}
@출력값
1
홍길동
return
: 해당 메소드를 종료하고 자신을 호출한 메소드로 돌아가는 예약어
: 반환 값이 있다면 반환 값을 가지고 자신을 호출한 메소드로 돌아감
LIST
'Java > Java 예습' 카테고리의 다른 글
[Java] 자바의 객체 예습 1-7 정리 (0) | 2022.01.18 |
---|---|
[Java] 자바의 객체 예습_7 (0) | 2022.01.18 |
[Java] 자바의 객체 예습_5 (0) | 2022.01.18 |
[Java] 자바의 객체 예습_4 (0) | 2022.01.17 |
[Java] 자바의 객체 예습_3 (0) | 2022.01.17 |