일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- java
- SW
- Java Programming
- 부스트코스
- ERD
- exception
- 관계형 데이터베이스
- CS50
- SSAFY 9기
- 예외처리
- w3schools
- CS 기초지식
- 기초프로그래밍
- CS 기초
- Compute Science
- CS기초지식
- ssafy
- Computer Science
- 알고리즘
- WebProgramming
- til
- edwith
- 면접을 위한 CS 전공지식 노트
- 삼성청년SW아카데미
- 모두를 위한 컴퓨터 과학(CS50)
- 상속
- 이진법
- 모두를 위한 컴퓨터 과학
- 데이터베이스 모델링
- 객체지향
- Today
- Total
Joslynn의 하루
대용량 웹서비스를 위한 MSA Full-Stack 개발자 양성 과정 - 4일차 노트 정리_Method_ 220721 본문
대용량 웹서비스를 위한 MSA Full-Stack 개발자 양성 과정 - 4일차 노트 정리_Method_ 220721
Joslynn 2022. 7. 21. 19:06
Method
- 객체 안에 선언되어 객체가 가지고 있는 기능
- 반드시 class 내부에 선언
- 반드시 호출해서 사용(호출된 순서 중요)
- 재귀호출가능 (자기 자신 안에서 자신을 호출)
- Method 마지막 구현부에서 return할 수 있음 (1번만 가능)
- 재사용 목적: 코드의 중복 피할 수 있음
Method 작성법
modifiers(제한자)
: 둘 이상이 올 때는 공백으로 구분한다.
s: 0개 이상 올 수 있다.
1) 접근 제한자 (access modifier): method의 접근을 제한
①public: 어디서나, 아무나 접근 가능
② protected: 상속 관계라면 어디서나(폴더) 접근 가능
③생략(작성x): 같은 폴더 내에서 아무나 접근 가능
④private: 하나의 class 내에서만 접근 가능 [캡슐화(은닉)에 사용]
: 순차적으로 접근 범위가 좁아짐
2) 일반 제한자(특수한 경우)
static
final
abstract
synchronized
:특수한 경우 사용
작성 순서: 보통 access modifier 먼저, 이후 일반 제한자
return Type
*객체 타입
: 반드시 한 개 작성, 생략X
① 기본형 8가지 중 1개
② Object Type 중 1개
④ void: 리턴값이 없다.
: 반드시 구현부 마지막 줄에 return 가지고 갈 값; void는 작성X
* method
선언부
구현부: 기능이 들어가는 부분, { }
return: method 끝나고 난 뒤 가지고 나온 값
method이름(인수 = parameter = 아규먼트 = 매개변수 (들어오는 값) ) { 기능
}
: method 이름은 indentifier 규칙에 따라 개발자가 작성
*인수 = parameter = 아규먼트 = 매개변수 (들어오는 값)
: method를 호출하는 사람이 들고 들어오는 두 개의 값 → 받아줄 변수 필요 → 변수 선언
: 표현 방식 (DataType 변수 이름, DataType 변수 이름....)
: 호출하는 사람이 들고 들어올 수 있는 값을 저장할 수 있는 변수 (들고 들어오는 값은 변수의 type과 동일)
*Method 작성 방법
modifier returnType method이름( 인수 ) //메소드 선언 { 기능 } // 구현부, 마지막 부에 retrun 값;
Method 호출 방법
1. 가장 일반적인 방법
ㄱ. 호출하려는 method를 감싸고 있는 class 생성 (객체생성: new)
→ class 이름(dataType) 변수이름 = new class이름();
/** 변수는 stack, 객체는 heap에 위치, 변수는 객체의 주소를 값으로 가짐; 객체를 new로 생성하고 나면 일회성으로, 뒤에 사용되지 않으면, 가비지 콜렉터에 수집됨. 지속적 사용을 위해서는 변수에 담아줘야 함*/
ㄴ. 생성된 객체를 이용하여 method를 호출
→ 방법: 변수이름.method이름([값, 값,...]);
class Test{
public void aa(){
}
int bb(){
기능;
return 5;
}
public String cc(int i){
기능;
return "Method";
}
} // 총 3개의 method
class MainApp {
public static {
Test t= new Test(); // 변수 t에 해당 클래스의 주소값이 저장
t.속성
t.method이름(값,...);
// 1번 method 호출
t.aa(); // 인수 없으므로 값 들고가면 안됨
int a = t.bb(); // return 값 5를 받아주려면 변수가 있어야 함, 우항 먼저 연산 완료 후 좌항에 대입
String s = t.cc(3); // int 하나 가져가야 함, return ",Method" 받으려면 변수 필요
}
}
2. static이 붙은 메소드 호출 방법
- 객체를 생성하지 않고 호출 가능
- class이름.method([값, 값, ....]);
- static 영역은 정적 영역
Ex> double d = Math.random(); // 0.0 ~ 0.99999 , 메소드를 호출
class Math {
public static double random(); {
}
}
class Test{
public void aa(){
}
public int bb(String s){
//기능
}
public static void cc(int i){
}
protected static double dd(String s){
//기능
return 5.5;
}
//3번 method 호출 시, Test.cc(int 값 아무거나);
}
//문자열을 숫자로 변환하는 메소드
int i = Interger.parselnt("10");
class Interger{
public static int parselnt(String s) {
//기능
return 숫자값;
}
}
//숫자를 문자열로 변환하는 메소드
String s = Interger.toString(5);
class Interger{
public static String toString(int a) {
//기능
return 숫자값;
}
}
3. 같은 class 내부에서 method 호출하는 방법
this.method이름( [값, 값, ... ] ); //this. 생략 가능 but 불가능한 경우도 있음
: static은 this로 접근하지 못 함
: *this; 현재 객체; 생성된; // 현재 객체 안에 있는 method