국비지원 8일차(객체와 메소드)
💻 메소드?
메소드(method)란 특정 작업을 수행하는 일련의 문장들을 하나로 묶은 것이다. 수학에서의 함수와 유사하다고 보면 되는데, 메서드는 반드시 클래스 안에 존재하지만, 함수는 클래스에 독립적이라는 차이가 있다.
public class MyClass02 {
// 메소드 (method)
/*
* 작성방법
* 접근제한자 리턴타입 메소드명(매개변수) {실행할 내용, 리턴값이 있다면 return 값}
* public int plus(number) {number++; return number;}
*
* -리턴값이 없으면? void라고 작성
* -매개변수(()안의 값)는 안 받아도 되고, 여러개를 받아도됨
* -매개변수를 여러개 받으면 리턴도 여러개? ㄴㄴ 리턴은 무조건 하나
*
* 메소드 구성
* 메소드 헤드, 메소드 바디
* -메소드의 헤드를 보면, 입력값의 정보 및 반환값의 정보를 알 수 있다.
*/
public void test() {
System.out.println("테스트 메서드 시작");
// myMethod01();
// plusTen(10);
// System.out.println(getAge());
System.out.println(plusOne(10));
//plusOne 메소드를 호출한다. (숫자 10을 전달해줄것)
//호출을 통해 리턴받은 값을 출력해보기
System.out.println("테스트 메서드 종료");
}
**메소드는 다음과 같이 크게 4가지 종류가 있다.**
//1. 매개변수가 없고, 리턴값이 없는 메소드(네모형)
public void myMethod01() {
System.out.println("안녕 나는 출력문이야 ㅎㅎ");
}
//2. 매개변수가 있고, 리턴값이 없는 메소드(정수 x하나 전달받아서, 그 숫자에다가 +10 해서, 출력하는 메소드)
(위가 뚫린 함수)
public void plusTen(int x) {
x = x+10;
System.out.println(x);
}
//3. 본인 나이를 뱉어내는(반환하는) 메소드 작성
(밑이 뚫린 함수)
public int getAge() {
System.out.println("getAge 메서드 호출됨");
return 20;
}
//정수 하나를 입력받고, +1 한 값을 리턴 하는 메소드
//4.(1) 입력받는 값(매개변수)이 있고, 뱉어내는 값(==반환하는 ==return 하는)이 있는 메소드
(위아래가 모두 뚫린 함수)
public int plusOne(int x) {
x++;
return x;
}
//(2) 반지름의 길이(정수)를 입력받고, 원의 넓이를 리턴하는 메소드
//매개변수: 반지름
//리턴타입: 실수형 데이터 (float, double)
//실행할 내용: 반지름을 이용하여 원의넓이 계산
public double calcCircle(int r) {
double result = r * r * 3.14;
return result;
}
}
<직접 실습한 코드>
public class Practice {
public void test() {
System.out.println("start");
printHelloWorld();
printMyName();
multiple(5);
System.out.println(getName());
System.out.println(plus(3,5));
System.out.println("end");
}
public void printHelloWorld() {
System.out.println("hello world");
}
public void printMyName() {
System.out.println("(이름)");
}
public void multiple(int x) {
System.out.println(x * 2);
}
public String getName() {
return "(이름)";
}
public int plus(int x , int y) {
return x+y;
}
}
메소드(method)란 특정 작업을 수행하는 일련의 문장들을 하나로 묶은 것이다. 수학에서의 함수와 유사하다고 보면 되는데, 메서드는 반드시 클래스 안에 존재하지만, 함수는 클래스에 독립적이라는 차이가 있다.
public class MyClass02 {
// 메소드 (method)
/*
* 작성방법
* 접근제한자 리턴타입 메소드명(매개변수) {실행할 내용, 리턴값이 있다면 return 값}
* public int plus(number) {number++; return number;}
*
* -리턴값이 없으면? void라고 작성
* -매개변수(()안의 값)는 안 받아도 되고, 여러개를 받아도됨
* -매개변수를 여러개 받으면 리턴도 여러개? ㄴㄴ 리턴은 무조건 하나
*
* 메소드 구성
* 메소드 헤드, 메소드 바디
* -메소드의 헤드를 보면, 입력값의 정보 및 반환값의 정보를 알 수 있다.
*/
public void test() {
System.out.println("테스트 메서드 시작");
// myMethod01();
// plusTen(10);
// System.out.println(getAge());
System.out.println(plusOne(10));
//plusOne 메소드를 호출한다. (숫자 10을 전달해줄것)
//호출을 통해 리턴받은 값을 출력해보기
System.out.println("테스트 메서드 종료");
}
**메소드는 다음과 같이 크게 4가지 종류가 있다.**
//1. 매개변수가 없고, 리턴값이 없는 메소드(네모형)
public void myMethod01() {
System.out.println("안녕 나는 출력문이야 ㅎㅎ");
}
//2. 매개변수가 있고, 리턴값이 없는 메소드(정수 x하나 전달받아서, 그 숫자에다가 +10 해서, 출력하는 메소드)
(위가 뚫린 함수)
public void plusTen(int x) {
x = x+10;
System.out.println(x);
}
//3. 본인 나이를 뱉어내는(반환하는) 메소드 작성
(밑이 뚫린 함수)
public int getAge() {
System.out.println("getAge 메서드 호출됨");
return 20;
}
//정수 하나를 입력받고, +1 한 값을 리턴 하는 메소드
//4.(1) 입력받는 값(매개변수)이 있고, 뱉어내는 값(==반환하는 ==return 하는)이 있는 메소드
(위아래가 모두 뚫린 함수)
public int plusOne(int x) {
x++;
return x;
}
//(2) 반지름의 길이(정수)를 입력받고, 원의 넓이를 리턴하는 메소드
//매개변수: 반지름
//리턴타입: 실수형 데이터 (float, double)
//실행할 내용: 반지름을 이용하여 원의넓이 계산
public double calcCircle(int r) {
double result = r * r * 3.14;
return result;
}
}
<직접 실습한 코드>
public class Practice {
public void test() {
System.out.println("start");
printHelloWorld();
printMyName();
multiple(5);
System.out.println(getName());
System.out.println(plus(3,5));
System.out.println("end");
}
public void printHelloWorld() {
System.out.println("hello world");
}
public void printMyName() {
System.out.println("(이름)");
}
public void multiple(int x) {
System.out.println(x * 2);
}
public String getName() {
return "(이름)";
}
public int plus(int x , int y) {
return x+y;
}
}
이렇게 호출한 메소드의 값은 다음과 같다.
테스트 메서드 시작
안녕 나는 출력문이야 ㅎㅎ
20
getAge 메서드 호출됨
20
11
테스트 메서드 종료
start
hello world
(이름)
10
(이름)
8
end
헷갈렸던 것은 void의 경우 return 값이 없으면 없다는 의미로 접근제어자 옆에 적어야 한다.(return문이 없어도 아무런 문제가 없는 이유는 컴파일러가 메서드의 마지막에 return을 자동적으로 추가해주기 때문임)
💻 객체?
객체지향과 절차지향
https://brownbears.tistory.com/407
- 다음 글을 통해 절차지향과 객체지향에 대해 확실히 공부할 수 있었다.
- 두 개념은 서로 상반되는 개념이 아니라, 각자의 장단점을 가진 개념이다.
- c언어와 같은 절차지향 언어는 순서와 데이터를 중점으로 하고, java와 같은 객체지향 언어는 기능을 중심으로 한다.
전자의 경우는 개별적인 순서를 중요시하고 후자는 클래스 안에 존재하는 각 인스턴스의 기능. 집단적인 느낌이 강하다.
객체지향과 절차지향
https://brownbears.tistory.com/407
전자의 경우는 개별적인 순서를 중요시하고 후자는 클래스 안에 존재하는 각 인스턴스의 기능. 집단적인 느낌이 강하다.
9일차 예고
객체 개념이 굉장히 낯설다. 이후에 매개변수, 접근제한자, 오버로딩, 생성자 등에 관하여 정리할 예정이다.
Author And Source
이 문제에 관하여(국비지원 8일차(객체와 메소드)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@noome777/국비지원-8일차객체와-메소드저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)