본문 바로가기
Java/Java 예습

[Java] 자바의 객체 예습_6

by 박채니 2022. 1. 18.

안녕하세요, 코린이의 코딩 학습기 채니입니다.

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

: 해당 메소드를 종료하고 자신을 호출한 메소드로 돌아가는 예약어

: 반환 값이 있다면 반환 값을 가지고 자신을 호출한 메소드로 돌아감

'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