메소드의 구조
첫번째 방법
접근제한자 반환타입 메소드명 ( ) { }
두번째 방법
접근제한자 반환타입 메소드명 (매개변수) { }
세번째 방법
접근제한자 반환타입 메소드명 (매개변수) { }
접근제한자(public, private, protected, default)
public : 모든 접근 허용
private : 현재 객체 내에서만 허용(현재의 클래스)
protected : 같은 패키지에 있는 객체와 상속관계의 객체들만 허용
default : 같은 패키지에 있는 객체들만 허용
접근제한자 사용
- 클래스 : public, default
- 생성자 : public, protected, default, private
- 멤버변수 : public, protected, default, private
- 멤버메소드 : public, protected, default, private
- 지역변수 : 접근제한자 사용 불허
캡슐화란?
항상 은닉화를 전제로 합니다. 관련이 있는 데이터 그리고 동작들을 하나로 묶어 요약하고 사용자에게는 내부적인 접근을 허용하지 않는 대신에 사용의 편의성을 제공해 주는 것입니다.
- 데이터 보호의 장점
- 유지 보수성의 장점
void (반환값이 없을때)
return(반환값이 존재 할때) : void를 반환값의 데이터타입으로 바꾸고 return을 시킴
1.클래스내의 어떠한 메소드가 실행되고 해당 메소드 실행에 따라 나온 값을 호출한 곳에서 돌려받고자 할 때
void -> int ( 리턴 타입에 맞춰서)
2.해당 메소드 실행 중 특정 조건에 따라 해당 메소드의 진행을 멈추고 빠져나올때
return으로 메소드 강제 종료
메소드에서 반환되는 데이터 타입은 반드시 하나여야한다!!
데이터 타입이 여러개 일경우에는 클래스를 만들어 객체에 저장해 준 뒤에 return 시켜줘야한다.
static
loading 시 생성되는것 static이 붙은 변수,메소드들
static이 없는 변수,메소드 => 객체를 생성해야만 선언(생성)완료
.클래스를 만들때,멤버변수 중 모든 인스턴스에 공통적으로 사용해야하는 것에static을 붙인다.
=> 인스턴스를 생성하면, 각 인스턴스들은 서로 독립적기 때문에 서로 다른 값을 유지한다. 경우에 따라서는 각 인스턴스들이 공통적으로 같은 값이 유지되어야 하는 경우 static을 붙인다.
. static이 붙은 멤버변수는 인스턴스를 생성하지 않아도 사용할 수 있다.
=> static이 붙은 멤버변수(클래스변수)는 클래스가 메모리에 올라갈때 이미 자동적으로 생성되기 때문
. static이 붙은 메소드에서는 인스턴스 변수를 사용할 수 없다.
=> static이 메소드는 인스턴스 생성 없이 호출가능한 반면, 인스턴스 변수는 인스턴스를 생성해야만 존재하기 때문에... static이 붙은 메소드(클래스메소드)를 호출할 때 인스턴스가 생성되어있을수도 그렇지 않을 수도 있어서 static이 붙은 메소드에서 인스턴스변수의 사용을 허용하지 않는다. (반대로, 인스턴스변수나 인스턴스메서드에서는 static이 붙은 멤버들을 사용하는 것이 언제나 가능하다. 인스턴스변수가 존재한다는 것은 static이 붙은 변수가 이미 메모리에 존재한다는 것을 의미하기 때문이다.)
. 메소드 내에서 인스턴스 변수를 사용하지 않는다면, static을 붙이는 것을 고려한다.
=> 메소드의 작업내용중에서 인스턴스 변수를 필요로 한다면, static을 붙일 수 없다. 반대로 인스턴스변수를 필요로 하지 않는다면, 가능하면 static을 붙이는 것이 좋다. 메소드 호출시간이 짧아지기 때문에 효율이 높아진다. (static을 안붙인 메소드는 실행시 객체를 생성하여 호출하여야한다.)
'개발노트 > Java' 카테고리의 다른 글
[Java] 예외 처리 (0) | 2021.04.02 |
---|---|
[Java] File Class (0) | 2021.03.19 |
[Java] String Method (0) | 2021.03.17 |
[Java] 배열과 ArrayList (0) | 2021.03.17 |
[Java] 보수 (0) | 2021.02.20 |