접근제한자(public, private) / 생성자
클래스의 3대 특징
- 은닉화
- 함수중복
- 상속성
private 는 내 소스 밖에서는 사용할 수 없다.
함수는 private를 쓰지 않는다. 대부분 public으로 선언해 사용한다.
변수는 private 로 선언해도 함수를 통해서 사용이 가능하다. 그래서 변수는 private를 사용한다.
하나의 클래스는 1개의 자바 파일로 작성하지만, 여기서는 설명을 편하게 하기 위해 하나의 파일에 작성해서 사용하겠다. 하나의 자바 파일에서 여러 개의 클래스를 작성할 때는 한 개의 메인클래스만 public으로 하고, 나머지는 public선언을 빼줘야한다.
생성자에서 다른 생성자를 호출할 때에는 다음과 같이 this() 코드를 사용한다.
this는 생략이 가능하다. 그렇지만 이 경우에는 멤버변수와 지역변수가 동일한 변수명이기 때문에 명시해줘야한다.
실무에서는 변수가 매우 많기 때문에 변수명을 다르게 작성하면 혼란이 있어서 같게 작성한다. 그러므로 this를 써줄 것!
들어오는 거 setter
나가는거 getter
이클립스에서는 자동으로 생성해준다. 패턴방식의 하나.
마우스 오른쪽 클릭 > Source > Generate Getters and Setters
선택 후 생성. 여기서는 Select All 선택해서 getter, setter 모두 생성해주었다.
생성자
:생성자란? 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드' 이다. 따라서 인스턴스 변수의 초기화 작업에 주로 사용되며, 인스턴스 생성 시에 실행되어야 할 작업을 위해서도 사용된다.
조건 1) 생성자는 클래스명이랑 같다. 2) 생성자는 return이 없다.
변수명 영문자, 숫자 다 가능. 특수문자 안되지만 _(언더바)는 가능. 앞에 숫자로 시작할 수 없다. 길이는 32자 내외로 작성. 함수명도 변수명처럼 사용가능.
데이터 전달 방식의 3가지는 1) .연산자를 사용한 접근, 2) 함수를 사용한 접근, 3) 생성자를 사용한 접근이었다.
멤버 변수를 private로 선언하게 되면 다른 클래스에서 사용이 불가능하기 때문에 . 연산자를 사용해 데이터를 전달할 수 없다. 그러면 나머지 2 경우, 함수와 생성자를 이용한 접근이 있다.
함수는 객체가 발생을 한 후에 데이터를 전달해주는 방식인데, 객체가 아무리 발생해도 함수를 호출하지 않으면 안된다.
생성자는 객체 발생과 동시에 데이터를 전달해준다. 따라서 속도면에서는 함수보다는 빠르다. 주로 특정한 값으로 초기화 해줘야할 때 사용한다. static변수와 같이 써야한다.
없으면 default 생성자, 있으면 내 것이 우선
생성자 중복
: 똑같은 이름의 생성자를 만들어서 쓸 수 있다. 단, 파라미터의 타입과 수만 같지 않으면 된다. 리턴을 명시하지 않는다.
생성자를 이용한 데이터 접근
함수를 이용한 데이터 접근