ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 클래스 기본
    JAVA/Class 2020. 10. 21. 22:26

    클래스 정의

    동일하지 않은 자료형을 묶어서 관리할 수 있고,

    데이터를 조작하는 메소드도 포함하는 것을 클래스라 한다.

    위의 클래스의 이름은 Exam이며, 접근제한자는 public이다.

     

     

     

     

    클래스의 기본 구성

    자바 클래스는 중첩(내부 클래스), 필드, 생성자, 메소드로 구성된다.

     

     

     

    클래스 사용하기

    프로그램을 실행하면 60이 나온다.

    위의 Exam 클래스에서 접근제한자 public을 제거하면 default public 이 된다.

    즉, 접근제한자가 명시되지 않을 경우 default public이 된다.

     

     

     

    new 객체

    위의 문장의 의미는 인스턴스(객체)를 생성해주는 역할을 한다.

    new 연산자를 통해 메모리(Heap 영역)에 데이터를 저장할 공간을 할당받고

    그 공간의 참조 값(reference value/해시코드)을 객체에게 반환하고 생성자를 호출한다.

     

     

     

    Exam 클래스의 기본 값설정, 출력하는 함수와 결과값 변수를 정의

     

     

     

    Exam 클래스의 생성자

    위의 함수가 Exam 클래스의 생성자이다.

    모든 클래스는 인스턴스화 될 때, 생성자를 사용한다.

    생성자의 특징

    1. 생성자는 리턴타입이 없다.

    2. 생성자를 프로그래머가 만들지 않으면 매개변수가 없는 생성자가 컴파일할 때, 자동으로 만들어진다.

        이 매개변수가 없는 생성자를 기본생성자라고 한다.

    3. 생성자를 하나라도 프로그래머가 만들었다면 기본생성자는 자동으로 만들어지지 않는다.

    생성자의 역할

    . 생성자가 하는 일은 객체가 될 때, 초기화 하는 역할을 수행한다.

     

    아래의 글은 시간이 되면 보자. 생성자를 이용해서 클래스를 만들어 본 것이다.

    designatedroom87.tistory.com/216

     

    생성자(Constructor) & 기본 클래스 만들기

    모든 클래스는 인스턴스화 될 때, 생성자를 사용한다. 생성자의 특징 1. 생성자는 리턴타입이 없다. 2. 생성자를 프로그래머가 만들지 않으면 매개변수가 없는 생성자가 컴파일할 때, 자동으로

    designatedroom87.tistory.com

     

     

     

    메소드 오버로딩(이름이 같은 함수 만들기)

    오버로딩의 정의는 1개의 클래스에서 동일한 이름의 메소드 또는 생성자를 여러 개 정의하는 것을 말한다.

    생성자도 함수이므로, 이름이 같은 함수로 만들어보자.

    오버로딩의 조건은 리턴형만으로 오버로딩되지 않으며, 입력값의 자료형을 다르게 선언해야 한다.

    아래의 this라는 것은 지정 예약어라고 하는데 이는 아래에서 알아보자.

    그리고, 다음과 같이 세팅하고 출력해보자.

    출력 결과는 140이 나온다.

     

     

     

     

     

    지정 예약어의 종류

    1. this - 클래스 내부에서 속성, 메소드를 지정하기 위한 자신의 객체

    클래스 자기 자신을 참조하는 하나의 객체 역할을 한다.

    클래스 내부에서 자기 자신의 클래스를 지칭하는 객체로 이용한다.

    클래스 내부에 선언된 속성을 다른 함수에서 지정할 때 사용하며 함수의 매개 변수와 구분하는 역할을 한다.

     

    2. static - 공용 변수를 위한 지정 예약어

    java에서 static 키워드를 사용한다는 것은 메모리에 한 번 할당되어 프로그램이 종료 될 때 해제되는 것을 의미

    우리가 만든 class는 static영역에 생성되고, new 연산을 통해 생성한 객체는 Heap 영역에 생성된다.

    Heap 영역의 메모리는 Garbage Collector를 통해 수시로 관리된다.

    static 키워드를 통해 static 영역에 할당된 메모리는 모든 객체가 공유하는 메모리가 된다.

    Garbage Collector의 관리 영역 밖에 존재하므로

    static을 자주 사용하면 프로그램의 종료 시까지 메모리가 할당된 채로 존재한다.

    static 변수는 3가지 특징이 있다.

    (1). static 변수는 클래스 변수이다.

    (2). 객체를 생성하지 않고도 static 자원에 접근이 가능하다.

    (3). static 변수와 static 메소드는 static 메모리 영역에 존재하므로 객체가 생성되기 이전에 이미 할당되어 있다.

         그렇기 때문에 객체의 생성없이 바로 접근 (사용)할 수 있다.

     

    static에 대한 예제로 아래는 static의 선언이 없이 쓴 예제이다.

    위의 MyColor 클래스의 필드를 모두 static으로 지정한 후에 사용법을 보자. 아래와 같다.

    그리고, 아래와 같은 예제를 보자.

     

    3. final = 상수 변수를 위한 지정예약어

    변수를 상수로 사용한다. 한 번 초기화 되면 변경 불가.

     

     

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

    생성자(Constructor) & 기본 클래스 만들기  (1) 2020.10.21

    댓글

Designed by Tistory.