C. Java
java 자바 클래스
sfeg
2017. 7. 2. 22:42
접근지정자
클래스
- 클래스는 동일한 모양의 객체를 여러개 만들어 내기 위해 만든 모형이다.
즉 어떠한 데이타와 어떠한 메소드를 사용하는 객체를 만들겠다는 정의이다.
(Object[객체] = > Data + 메소드)
- 자료형(프로그램적인 측면에서)
- 특징은 추상화, 다형성, 상속성, 은닉화(캡슐화) 이다.
객체 생성
- 클래스에서 정의에 따라 실질적으로 데이타를 저장할수 있는 기억공간을 메모리에 할당하는
것을 객체생성이라고 한다. ( 인스턴스 생성 )
- 클래스에서 정의에 따라 실질적으로 데이타를 저장할수 있는 기억공간을 메모리에 할당하는
것을 객체생성이라고 한다. ( 인스턴스 생성 )
객체 생성 방법
- new연산자 를 이용하여 객체를 생성한다.
- new연산자 를 이용하여 객체를 생성한다.
기본자료형(int, short...)은 변수선언에 의해 실제 데이타를 저장할 공간이 생기지만,
ex) int a; a=5;
클래스 자료형은 레퍼런스형이어서 변수선언으로 스택메모리 공간에 레퍼런스 변수가 할당되어
값을 저장하지 못하고 new연산자를 사용하여 객체선언을 해야한다.
ex) Animal(클래스) a;
a = new Animal();
=> Animal a = new Animal();
생성자(Constructor)
- 객체가 생성될때 자동으로 호출(new 명령어를 만났을때) 되며 객체를 초기화한다.
- 객체가 생성될때 자동으로 호출(new 명령어를 만났을때) 되며 객체를 초기화한다.
- 클래스명과 동일한 메소드
- 생성자는 리턴형이 없습니다 .
- 생성자의 역할은 인스턴트변수(클래스 내부변수) 초기화를 담당 한다.
- 생성자는 중복정의 될수 있다 . (생성자 오버로드)
- 생성자는 리턴형이 없습니다 .
- 생성자의 역할은 인스턴트변수(클래스 내부변수) 초기화를 담당 한다.
- 생성자는 중복정의 될수 있다 . (생성자 오버로드)
- 생성자를 정의하지 않았을 때에는 컴파일러가 제공하는 생성자가 호출되어진다.
(디폴트 생성자)
(디폴트 생성자)
디폴트 생성자
- 자바의 모든 클래스는 최소한 한개의 생성자는 갖고 있다. 만일 사용자가 생성자를 하나도
만들지 않았을경우에도 컴파일러에 의해서 디폴트 생성자가 자동으로 호출된다.
- 자바의 모든 클래스는 최소한 한개의 생성자는 갖고 있다. 만일 사용자가 생성자를 하나도
만들지 않았을경우에도 컴파일러에 의해서 디폴트 생성자가 자동으로 호출된다.
- 전달인자가 없고, 메소드 몸체부분이 비어있는 형태이다. ex) public MyDate() { }
- 사용자가 생성자를 하나라도 만들게 되면 컴파일러는 디폴트 생성자를 제공하지 않는다.
ps. 클래스 설계시 디폴트 생성자와 같은 형태의 생성자를 만들어주는것이 좋다.
생성자 오버로딩
- 메소드 오버로딩처럼 인수형식이 다른 생성자를 더 정의할수 있다.
- 메소드 오버로딩처럼 인수형식이 다른 생성자를 더 정의할수 있다.
this
- 자신을 참조하는 참조변수
- 자신을 참조하는 참조변수
- class 메소드내에서만 사용가능
this() 생성자
- 같은 클래스내의 다른 생성자를 호출할때 사용
- 같은 클래스내의 다른 생성자를 호출할때 사용
오버로딩
- 같은 클래스 안에서 메소드 명이 같고,인수 형식이 다른 메소드를 정의 하는 것을 의미
오버라이딩
- 서브 클레스에서 메소드 명. 인수의 형식이 완전히 같은 메소드를 다시 정의 하는 것을 의미
- 같은 클래스 안에서 메소드 명이 같고,인수 형식이 다른 메소드를 정의 하는 것을 의미
오버라이딩
- 서브 클레스에서 메소드 명. 인수의 형식이 완전히 같은 메소드를 다시 정의 하는 것을 의미
클래스배열 - ex) A []ar;
ar = new A[3];
ar[0] = new A();
ar[1] = new A();
ar[2] = new A();