지역 변수 : local variable
- 특정한 지역에서만 의미를 갖는 변수
- 주로 메소드 내부에 선언되는 변수를 의미함
- () 내부에서 선언된 변수
- 클래스 중괄호{}가 아닌 다른 중괄호{}들에서 선언된 변수
멤버 변수 : member variable : class의 구성 요소
- method가 아닌 class 내부에 선언된 변수.
- 효력 범위 : class 내부
- class가 살아 있는 동안 같이 살아 있다.
class
- new를 통해, 메모리에 올라간다.
- 더 이상 사용되지 않아서, garbage collector에게 수집이 될 때까지 존재한다.
method
- 호출이 되면 메모리에 올라가서 실행된다.
- 메소드 실행이 끝나면, 사라진다.
- 멤버 변수는 class가 new를 통해 메모리에 올라가서, 사라지기 전까지 존재.
- 지역 변수는 메소드가 실행 될 때만 메모리에 올라가서, 메소드 실행이 끝나면 사라진다.
method의 정의
- class는 현실 세계를 모델링한 설계도. 현실 세계의 대상을 표현한 주제가 있다.
- 예) 음료수 자판기 : 음료수, 투입 행위, 배출 행위 요소들로 표현 가능.
- class의 member라는 개념 : class를 표현하는 것.(음료수, 투입 행위, 배출 행위)
- 투입 행위, 배출 행위와 같이 동작을 담당하는 것이 method.
method의 구성
- 다른 사람에게 이 메소드를 사용하면, 돌려주는 값의 데이터 형태를 알려준다.
- int, double, String 등 이 메소드를 사용하면, 얻을 수 있는 데이터의 형태를 알려준다.
- void : return type 없음 : 돌려주는 값 없다 : return 없음(사용 안 함).
- 첫문자 소문자, 이어지는 단어의 첫문자 대문자, 숫자 가능하지만 맨 앞 불가, 특수문자 비권장.
- 메소드를 수행하기 위해 필요한 data를 외부에서 입력 받는 공간.
- 코드의 재사용성 : 한 번 만들어 놓은 메소드는 재 사용 가능.
- 코드의 모듈화, 코드의 중복 회피, 개발 기간 단축, 유지보수를 쉽고 빠르게.
method call
- 메소드는 다른 메소드를 호출 할 수 있다
- 메소드 호출의 흐름.
constructor (생성자)
-
- class로 instance를 만들(메모리 load 할) 때, 최초에 1번만 실행되는 특수한 메소드.
-
- new를 통해 메모리에 올라갈 때 호출된다. 예) new Ch042Dummy5();
-
- new Ch042Dummy5();의 ()가 생성자 호출.
-
- 특수한 메소드 ?
-> 1. JRE가 객체 생성될 때, 최초의 1번만 호출.
-> 2. return type 없음.
-
- 메소드의 일종이기 때문에 method overload가 가능함.
-
- 사용 목적 : instance를 만들 때, 멤버 변수 값 대입 또는 instance에 데이터 전달.
-
- 규칙 : 생성자의 이름은 class name과 동일해야 한다.
-
프로그래머가 생성자를 하나도 안 만들었다면?
-> 아무 값도 없는 생성자가 있는 것으로 간주한다.
-> default constructor라고 한다.
-> public className() {} : 이런 형태가 있는 것으로 간주한다.
-
프로그래머가 어떠한 형태라고 생성자를 하나라도 만들었다면?
-> default constructor 제공 안됨.
-> public className() {} : 이것도 반드시 만들어야 함.
Inheritance : 상속 : 설계 개념
-
- 하나의 class의 유전적 특징(멤버 변수, 멤버 메소드)를 또 다른 class에 이식하는 방법
-
- 유전적 특징을 주는 class : parent, super, 상위, 부모 class
-
- 유전적 특징을 받는 class : child, sub, 하위, 자식 class
-
- extends : 상속을 만드는 문법 : 확장한다는 의미
-
- Child extends Parent : Child는 Parent를 확장했다 : 뿌리가 Parent
-
- Parent : family name(성씨, 홍), Child : name(이름, 길동)
-
- java에서는 단일 상속만 지원 : extends 뒤에 단 하나의 class만 온다
-
- 상속 : is a relationship : 자식은 일종의 부모이다
-
- 박찬호는 투수이다 O, 류현진은 투수이다 O
-> 박찬호는 일종의 투수이다 O, 류현진은 일종의 투수이다 O
-
- 투수는 류현진이다 X -> 투수는 일종의 류현진이다 X
-
- 박찬호는 류현진이다 X -> 박찬호는 일종의 류현진이다 X
-
- parent는 상위 개념, child는 하위 개념.
-
- 하위 class는 상위 class의 일종이다.