본문 바로가기

bitcamp/JAVA

클래스와 생성자

1. 클래스의 구성요소는 무엇인가?

· 클래스 = 데이터 + 기능

· 클래스는 코딩상의 class와 컴파일 된 class 크게 두가지의 의미로 나뉜다.

 

   class 클래스명 {

        멤버필드 //선언

        생성자    //처음 값을 넣어줄 때 사용됨

        메소드    //변수를 이용하여 함수를 조작

   }

2. 객체란 무엇인가?

· 객체는 어떠한 속성값과 행동을 가지며, 클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화라고 한다.

· 생성한 class를 메모리에 저장하고 객체 생성의 역할을 하는 new라는 키워드를 사용하여 객체를 생성한다. 

· circle 메모리 공간이 생성되고 해당되는 주소를 찾아(Circle) 함수를 통해 크기와 용도가 지정되어 값이 출력되고,

 이 때 생성된 circle과 메소드들을 객체라 일컫는다.

 

3. 클래스와 객체의 차이는 무엇인가?

· 클래스는 변수(인스턴스)와 함수로 구성되어 다른 클래스를 통하여 값이 입력되어 작동된다.

· 객체는 선언된 타입에 맞는 메모리 공간이 생성되고 해당되는 클래스를 찾아 함수를 통해 크기와 용도가 지정되어

 하나의 객체가 생성된다. (두 개의 클래스에서 메인 메소드를 가진 클래스를 통해 값이 입력되어 하나의 객체를 생성)

· 즉, 클래스를 기반으로 객체가 생성되고, 생성된 객체를 통해 클래스 내의 함수가 구현된다.

 

4. 아래의 클래스에 대하여, 메모리 그림을 그리시오. 

Rectangle rec = new Rectangle();

    public class Rectangle {

       int height;

       int width;

    }

    public int getHeight() {

       return height;

    }

    public void setHeight(int height) {

       this.height = height;

    }

    public int getWidth() {

       return width;

    }

    public void setWidth(int width) {

       this.width = width;

    }

    public int getArea() {

       return width * height;

    }

}

5. 아래의 BankAccount 객체에 대하여 그림을 그리시오.

  BankAccount ref1 = new BankAccount();

  BankAccount ref2 = ref1;

 

6. 생성자란 무엇인가?

·  초기화 메소드란? 필드를 초기화, 즉 필드에 처음으로 값을 할당하는 함수이다.

·  생성자란(Constructor)란? 초기화 메소드를 대신하여 초기화 역할을 하며, 객체를 생성하고 맨 처음 실행되는 메소드이다. 

·  생성자의 이름은 클래스 이름과 동일하게 표기한다. 

   ex) Rectangle rec = new Rectangle(); 이 때 생성자 함수는 Rectangle()

7. 생성자의 용도에 대하여 설명하시오.

· 생성자는 필드를 초기화하고, 객체가 생성될 때 자동으로 호출되어 사용된다.

· 생성자 함수는 반환값이 없기 때문에 메소드 정의 시 반환타입을 포함시키지 않으며, return도 표기하지 않는다.

  why? 값들에 대한 초기화가 주목적이며, 값을 반환하는 용도로 사용하지 않기 때문이다.

 

8. 디폴트 생성자란 무엇인가?

· 메소드의 매개변수와 본문(실행내용)이 전혀 없는 형태의 함수이다. (숫자는 0, 문자는 Null로 초기화)

· 컴파일러에 의해 디폴트 생성자가 자동 삽입되기 때문에 함수가 없어도 오류가 발생하지 않으며, 호출도 가능하다.

· 생성자가 한 개라도 존재한다면 디폴트 생성자는 자동으로 만들어지지 않으므로 필요한 경우 개발자가 작성해야한다.

 

9. Null에 대하여 설명하시오.

※참조변수란?

· 기본자료형 8개를 제외 한 나머지 타입을 참조변수라하며, null은 참조형 변수에만 사용이 가능하다.(자료형에는 사용x)

 

10. 자바의 명명 규칙에 대하여 설명하시오.

1)클래스: 첫 문자는 대문자, 합성어를 이룰 때 뒤에 오는 단어의 첫 문자도 대문자로 작성한다.

· camel case: 클래스의 명명 규칙에서 낙타의 등모습을 닮았다하여 유래된 표기법이다.

2)메소드와 변수: 첫 문자는 소문자, 합성어를 이룰 때 뒤에 오는 단어의 첫 문자는 대문자로 작성한다.

 

3)상수: 모든 문자를 대문자, 합성어를 이룰 때는 언더바 사용.

· snake case: 상수의 명명 규칙에서 길게 이어지는 모습이 뱀을 닮았다하여 유래된 표기법이다.

 

 

'bitcamp > JAVA' 카테고리의 다른 글

클래스패스와 패키지  (0) 2021.01.10
클래스와 생성자_연습문제  (0) 2021.01.04
메소드와 변수의 Scope  (0) 2021.01.03
반복문_연습문제  (0) 2021.01.03
반복문  (0) 2021.01.03