[자바 무료 강의] 객체에 행위를 추가하다 - 메서드 - 코드라떼
Lesson List button
코스자바로 배우는 프로그래밍
hamburger button
강의객체에 행위를 추가하다 - 메서드최종수정일 2021-09-07
아이콘약 3분

객체의 행위를 메서드라고 하는데요. 이번 강의는 메서드를 만드는 법을 배워봅시다.

추가 노트

목차


  1. 메서드
  2. [실습해보기] 메서드를 작성해보자



메서드(Method)


메서드는 기본적으로 네 가지 메서드로 존재할 수 있습니다.

  1. 반환값이 있고 매개변수도 있는 메서드
  2. 반환값이 있고 매개변수가 없는 메서드
  3. 반환값이 없고 매개변수가 있는 메서드
  4. 반환값이 없고 매개변수가 없는 메서드

인스턴스 변수와 정적 변수가 있듯이 메서드에는 인스턴스 메서드정적 메서드가 있습니다.


메서드의 선언과 정의

메서드는 클래스 내부에 선언되며 다음과 같을 수 있습니다.

class Person { String name; int age; String gender; // 반환값이 없고 매개변수가 있는 메서드 void setName(String name) { this.name = name; } // 반환값이 있고 매개변수가 없는 메서드 String getName() { System.out.println(name); return name; } }
copy

반환값이 없는 메서드는 void 키워드를 선언해야 하며, 반환값이 있는 메서드는 메서드 내부에 return 키워드와 반환값이 존재해야 합니다.


반환값이 없는 메서드에도 return 키워드가 존재할 수 있다

메서드 실행 도중 종료되길 원한다면 메서드에서 반환값없는 return 키워드를 이용하여 메서드 실행을 종료할 수 있습니다.

class Study { … boolean isStuding; void start() { if (isStuding) { System.out.println("이미 공부중이다"); return; } isStuding = true; System.out.println("공부를 시작한다"); } }
copy


메서드의 실행

메서드에는 인스턴스 메서드와 정적 메서드가 존재합니다.
인스턴스 메서드는 인스턴스 변수와 같이 인스턴스를 생성 후에 호출할 수 있습니다.

Person person = new Person(); // 인스턴스 메서드의 실행 person.setName("록카"); String name = person.getName();
copy


정적 메서드

정적 변수와 같이 메서드도 정적 메서드가 존재하는데요. 정적 메서드는 객체를 인스턴스화하지 않고 사용할 수 있는 메서드입니다.

정적 메서드 또한 정적 변수와 같이 프로그램 시작 시 메서드의 내용이 적재되기 때문에 인스턴스 생성 없이도 메서드를 호출할 수 있습니다.

class Utils { static int plus(int a, int b) { return a + b; } }
copy
int sum = Utils.plus(1, 3); System.out.println(sum);
copy

그러나 정적 메서드에도 제약이 있습니다.

class Utils { // 인스턴스 변수 int c = 3; static int plus(int a, int b) { // 인스턴스 변수 c에 접근할 수 없다 return a + b + c; } }
copy

정적 메서드도 생성과 소멸의 수명주기가 인스턴스 변수와 다르기 때문에, 정적 메서드 내부에서 인스턴스 변수 c에 접근할 수 없습니다.

class Utils { // 정적 변수 static int c = 3; static int plus(int a, int b) { return a + b + c; } }
copy

그러나 정적 변수는 프로그램 시작이 메모리에 적재되기 때문에 정적 메서드 내부에서 접근할 수 있습니다.




[실습해보기] 메서드를 작성해보자


1. 메서드 선언하기

case 1

코드 작성(Person.java)

class Person { String name; int age; String gender; Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } // 인스턴스 메서드 void eat(String food) { System.out.printf("%s는 %s를 먹었다\n", name, food); } // 인스턴스 메서드 String getPersonInfo() { return String.format("name: %s, age: %d, gender: %s", name, age, gender); } // 정적 메서드 static void printSpecies() { System.out.println("사람입니다"); } }
copy



코드 작성(Main.java)

public class Main { public static void main(String[] args) { Person.printSpecies(); Person person = new Person("김철수", 20, "male"); person.eat("밥"); System.out.println(person.getPersonInfo()); } }
copy



출력

사람입니다 김철수는 밥을 먹었다 name: 김철수, age: 20, gender: male
copy
도전자 질문
작성된 질문이 없습니다
이용약관|개인정보취급방침
알유티씨클래스|대표, 개인정보보호책임자 : 이병록
이메일 : cs@codelatte.io
사업자등록번호 : 824-06-01921
통신판매업신고 : 2021-성남분당C-0740
주소 : 경기도 성남시 분당구 대왕판교로645번길 12, 9층 24호
파일
파일파일
Root
파일

실습해보세요의 코드를 작성해보세요.

Output
root$
Lesson List button
코스자바로 배우는 프로그래밍
hamburger button
강의객체에 행위를 추가하다 - 메서드최종수정일 2021-09-07
아이콘약 3분

객체의 행위를 메서드라고 하는데요. 이번 강의는 메서드를 만드는 법을 배워봅시다.

추가 노트

목차


  1. 메서드
  2. [실습해보기] 메서드를 작성해보자



메서드(Method)


메서드는 기본적으로 네 가지 메서드로 존재할 수 있습니다.

  1. 반환값이 있고 매개변수도 있는 메서드
  2. 반환값이 있고 매개변수가 없는 메서드
  3. 반환값이 없고 매개변수가 있는 메서드
  4. 반환값이 없고 매개변수가 없는 메서드

인스턴스 변수와 정적 변수가 있듯이 메서드에는 인스턴스 메서드정적 메서드가 있습니다.


메서드의 선언과 정의

메서드는 클래스 내부에 선언되며 다음과 같을 수 있습니다.

class Person { String name; int age; String gender; // 반환값이 없고 매개변수가 있는 메서드 void setName(String name) { this.name = name; } // 반환값이 있고 매개변수가 없는 메서드 String getName() { System.out.println(name); return name; } }
copy

반환값이 없는 메서드는 void 키워드를 선언해야 하며, 반환값이 있는 메서드는 메서드 내부에 return 키워드와 반환값이 존재해야 합니다.


반환값이 없는 메서드에도 return 키워드가 존재할 수 있다

메서드 실행 도중 종료되길 원한다면 메서드에서 반환값없는 return 키워드를 이용하여 메서드 실행을 종료할 수 있습니다.

class Study { … boolean isStuding; void start() { if (isStuding) { System.out.println("이미 공부중이다"); return; } isStuding = true; System.out.println("공부를 시작한다"); } }
copy


메서드의 실행

메서드에는 인스턴스 메서드와 정적 메서드가 존재합니다.
인스턴스 메서드는 인스턴스 변수와 같이 인스턴스를 생성 후에 호출할 수 있습니다.

Person person = new Person(); // 인스턴스 메서드의 실행 person.setName("록카"); String name = person.getName();
copy


정적 메서드

정적 변수와 같이 메서드도 정적 메서드가 존재하는데요. 정적 메서드는 객체를 인스턴스화하지 않고 사용할 수 있는 메서드입니다.

정적 메서드 또한 정적 변수와 같이 프로그램 시작 시 메서드의 내용이 적재되기 때문에 인스턴스 생성 없이도 메서드를 호출할 수 있습니다.

class Utils { static int plus(int a, int b) { return a + b; } }
copy
int sum = Utils.plus(1, 3); System.out.println(sum);
copy

그러나 정적 메서드에도 제약이 있습니다.

class Utils { // 인스턴스 변수 int c = 3; static int plus(int a, int b) { // 인스턴스 변수 c에 접근할 수 없다 return a + b + c; } }
copy

정적 메서드도 생성과 소멸의 수명주기가 인스턴스 변수와 다르기 때문에, 정적 메서드 내부에서 인스턴스 변수 c에 접근할 수 없습니다.

class Utils { // 정적 변수 static int c = 3; static int plus(int a, int b) { return a + b + c; } }
copy

그러나 정적 변수는 프로그램 시작이 메모리에 적재되기 때문에 정적 메서드 내부에서 접근할 수 있습니다.




[실습해보기] 메서드를 작성해보자


1. 메서드 선언하기

case 1

코드 작성(Person.java)

class Person { String name; int age; String gender; Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } // 인스턴스 메서드 void eat(String food) { System.out.printf("%s는 %s를 먹었다\n", name, food); } // 인스턴스 메서드 String getPersonInfo() { return String.format("name: %s, age: %d, gender: %s", name, age, gender); } // 정적 메서드 static void printSpecies() { System.out.println("사람입니다"); } }
copy



코드 작성(Main.java)

public class Main { public static void main(String[] args) { Person.printSpecies(); Person person = new Person("김철수", 20, "male"); person.eat("밥"); System.out.println(person.getPersonInfo()); } }
copy



출력

사람입니다 김철수는 밥을 먹었다 name: 김철수, age: 20, gender: male
copy
도전자 질문
작성된 질문이 없습니다
이용약관|개인정보취급방침
알유티씨클래스|대표, 개인정보보호책임자 : 이병록
이메일 : cs@codelatte.io|운영시간 09:00 - 18:00(평일)
사업자등록번호 : 824-06-01921|통신판매업신고 : 2021-성남분당C-0740
주소 : 경기도 성남시 분당구 대왕판교로645번길 12, 9층 24호(경기창조혁신센터)
파일
파일파일
Root
파일

실습해보세요의 코드를 작성해보세요.

Output
root$