210727(화)_DAY 07
[수업 목표]
1. 클래스 연동 및 non-static 구현을 이해할 수 있다.
2. 사용자 자료형을 설계하고 구현할 수 있다.
3. 클래스 멤버를 선언할 수 있다.
4. java class내의 getter&setter의 구조를 기술할 수 있다.
5. 생성자의 뜻과 목적을 이해하고 구현할 수 있다.
6. 객체를 생성하고 생성된 객체의 주소를 통해서 멤버를 자유롭게 호출할 수 있다.
[class]
= 사용자 자료형
- class라는 키워드를 이용해서 사용자 자료형을 만들어 사용하는 자바에서 제공하는 특별한 키워드
- user가 자주 사용하는 속성과 기능을 class라는 키워드를 통해서 내부에 선언을 통해 자료형 즉 사용자 데이터 타입을 만들 수 있다.
- NESTED | FIELD | CONSTR | METHOD 등 멤버를 선언할 수 있다.
- 각각의 멤버는 접근제한자를 이용해서 자료형의 탐색 및 호출의 권한을 제어할 수 있다.
- 자바의 클래스는 멤버변수는 은닉화 (private)시키고 오픈된(public) 메소드를 통해 값전달 및 변경(void setter), 값 리턴(return형 getter)하는 메소드를 사용한다.
⇢ full capsule = encapsulation
* 형식
접근제한자 [final, abstract] class User_name{
멤버; // 전역변수, 생성사, 전역메소드, 배열, inner class 등
}
* 선언
//접근제한자: public, protected, default, private (아무것도 지정하지 않으면 기본적으로 default)
public class MyTest{
int a;
int b;
}
* 생성 후 호출
- new라는 키워드를 이용해서 선언된 클래스를 동적할당 후(객체생성) 주소를 대입받는 변수를 통해 클래스 멤버를 호출한다.
1) 클래스이름 변수 = new 클래스이름();
2) 변수.멤버
[생성자]
1) 클래스 이름과 동일하되 반환형은 없다.
2) 생성자는 overload 할 수 있다.
3) 생성자는 상속되지 않는다.
4) 생성자의 내부 키워드로 내부 생성자를 호출할 수 있는 this()와 선조의 생성자를 호출할 수 있는 super()를 사용할 수 있다.
5) 생성자는 객체를 생성할 떄 한번만 호출되며 (new constructor())로 메소드처럼 호출할 수 없다.
6) 생성자를 명시하지 않으면 default 생성자가 호출되고 명시하게 되면 명시된 생성자가 호출된다.
7) 생성자는 클래스의 멤버를 초기화하는 목적을 가진다.
8) 모든 클래스는 생성자를 가진다.
eg/ 전역변수 생성 및 호출 + 확장
eg/ 그림판으로 보는 class와 public static final field
- class: 속성 변경 가능
- public static final field: 항상 변하지 않고 그대로 존재함