Ch06: Methods: A DEEEP DARK⭐️ LooK
static Methods, Fields and Class Math
static 메소드 (클래스 메소드)
static
메소드 안에서는 인스턴스 변수 접근이 불가능하다. 클래스 변수는 접근이 가능하다.static
메소드는 유틸리티 성 메소드를 작성할 때 많이 사용된다.
Math 클래스 메소드
- 클래스
Math
는 수학적 계산을 수행하는static
메소드들을 제공한다.
Math 클래스 static 상수 PI와 E
- 접근 지정자가
public
,final
과static
이다.
// abs(x) : x의 절대값.
abs(23.7) == 23.7
abs(0.0) == 0.0
abs(-23.7) == 23.7
// ceil(x) : x보다 큰, 가장 작은 정수.
ceil(9.2) == 10.0
ceil(-9.8) == -9.0
// floor(x) : x보다 작거나 같은, 가장 큰 정수.
floor(9.2) == 9.0
floor(-9.8) ==
// 이 밖에도 cos, exp, log, max, min, pow, sin, sqrt, tan이 있다.
클래스의 필드
static
변수들과 인스턴스 변수들을 말한다.
static 변수
- 클래스의 모든 객체는
static
필드를 공유한다.
인스턴스 변수
- 클래스의 객체 각각은 메모리에 별도의 인스턴스 변수를 가진다.
Declaring Methods with Multiple Parameters
- 메소드는 한 가지 값만 반환할 수 있다. 단, 반환값이 다양한 값의 인스턴스 변수를 가지는 클래스에 대한 참조값일 수 있다.
- 클래스의 한 가지 이상의 메소드에서 사용에 필요할때나, 메소드 간의 호출 사이에서 프로그램이 값을 저장해야 할때, 변수가 필드에 선언되어야 한다.
Notes on Declaring and Using Methods
non-static 메소드
- 같은 클래스의 어떠한 메소드도 직접 호출이 가능하다.
- 같은 클래스의 어떠한 필드도 직접 조작이 가능하다.
static 메소드
- 오직 같은 클래스의 다른
static
메소드만 직접 호출이 가능하다. - 같은 클래스의
static
필드만 직접 조작이 가능하다. - 클래스의
non-static
멤버에 접근하려면, 오직 그 클래스의 객체의 참조를 이용해야 한다.
Method-Call Stack and Activation Records
프로그램-실행 스택(메소드-콜 스택)
- 메소드 호출의 연속이다. main() → mA() → mB()
스택 프레임
- 각각의 스택 프레임은 호출한 메소드로 돌아가기 위한 주소와 지역 변수를 가진다.
Secure Random-Number Generation
난수 생성기
class Random
java.util
패키지에 존재한다.- 결정론적 난수이다.
- 예측이 가능하다.
class SecureRandom
java.secure
패키지에 존재한다.- 비결정론적 난수이다.
- 예측이 불가능하다.
Math.random
- 사이의
double
형 난수를 생성한다.
- 사이의
secureRandom randomNumbers = new SecureRandom();
int randomValue = randomNumbers.nextInt(3); // range 0 ~ 2
A Game of Chance; Introducing enum Types
enum
- 서로 연관된 상수들의 집합이다.
enum
형 변수에는 오직 해당enum
에 선언된 상수만 할당 가능하다.- 자바는
enum
형 상수와int
형 상수의 비교를 허용하지 않는다.
Scope of Declarations
기본 범위 규칙
- 매개 변수 범위는 메소드의 바디이다.
- 지역 변수 범위는 선언이 등장하는 곳부터 블록의 마지막까지이다.
for
문 헤더의 초기화 구역 안에 선언된 지역 변수의 범위는,for
문의 바디와 헤더 안의 다른 표현들이다.- 메소드와 필드의 범위는 클래스의 전체 바디이다.
- 어떠한 블록도 지역 변수를 가질 수 있다.
- 만약 메소드의 지역 변수와 매개 변수가 클래스의 필드와 같은 이름을 가진다면, 필드는 블록이 실행 종료할 때까지 "가려진다". 이러한 것을 shadowing이라 한다.
Method Overloading
- 같은 클래스 내에 같은 이름의 메소드가 존재하도록 하는 것이다.
- 다른 매개 변수 집합을 가져야 한다.
- 같거나 비슷한 일을 하지만, 매개 변수의 자료형이 다를때 사용한다.
- 컴파일러는 메소드들을 시그니쳐로 구별한다.
- 메소드의 이름
- 매개 변수의 수, 자료형, 순서
- 반환형으로 구별할 수 없다.
Author And Source
이 문제에 관하여(Ch06: Methods: A DEEEP DARK⭐️ LooK), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@scv1702/Ch06-Methods-A-DEEEP-DARK-LooK저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)