ABOUT ME

-

Today
-
Yesterday
-
Total
-

Post Calendar

«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
  • Java Study [2022-08-01] - 객체지향프로그래밍(생성자, 참조 자료형)
    백엔드 2022. 8. 2. 02:57

    📌 Java Study

    🔸 2022-08-01 월요일

    [클래스와 객체]

    1. 생성자(Constructor)

    • 객체를 생성할 때 new 키워드와 함께 호출(객체 생성 외에는 호출할 수 없음)
    • 인스턴스를 초기화 하는 코드가 구현됨(주로 멤버 변수 초기화)
    • 반환 값이 없음, 상속되지 않음
    • 생성자는 클래스 이름과 동일

     

    • 기본 생성자 : 하나의 클래스에느 반드시 하나 이상의 생성자가 존재해야 함
    • 프로그래머가 생성자를 구현하지 않으면 컴파일러가 생성자 코드 넣어줌
    • 매개 변수가 없고 구현부가 없음
    • 만약, 클래스가 다른 생성자가 있는 경우 디폴트 생성자는 제공되지 않음(디폴트 생성자 => 매개 변수, 구현부가 없는 생성자)

     

    • 생성자 구현 예제(public 자리에 다른 것이 오거나 없을 수 있음)
        public Student(int id, String name) {
            studentID = id;
            studentName = name;
        }
    • 두 개의 매개 변수를 받는데, 첫번째 매개 변수는 studentID에 초기화
    • 두번째 매개 변수는 studentName에 초기화
    • 이렇게 작성하면 Test 즉, main 함수가 있는 곳의 생성자 함수가 있기 때문에 오류 발생
    • 이를 해결하는 방법은 2가지, 1.디폴트 생성자를 직접 작성
    • 위 생성자 있는 코드 자리 위에 디폴트 생성자 작성 public Student() {}
    • 2.Test 클래스 쪽에 Student studentHeo = new student();

     

    • 오버 로딩 : 메서드(생성자 등)를 여러 개 삽입할 수 있다.
    • 같은 이름의 메서드에 다른 매개 변수
    • 생성자 오버로딩 : 생성자를 두 개 이상 구현하는 경우
    • 사용하는 코드에서 여러 생성자 중 선택하여 사용할 수 있음
    • private 변수도 생성자를 이용하여 초기화 할 수 있음
    • private : 해당 클래스 내부에서만 사용할 수 있는 변수, 외부 클래스 참조 불가능

     

    2. 참조 자료형

    • 변수의 자료형
      • 기본 자료형 : int, long, float, double 등
      • 참조 자료형 : String, Date, Student 등

     

    • 클래스형으로 변수를 선언함
        String name;

     

    • 기본 자료형은 사용하는 메모리가 정해져 있지만, 참조 자료형은 클래스에 따라 다름
    • 참조 자료형 직접 만들어서 사용하기
      • 학생 클래스(Student)에 있는 과목 이름, 과목 성적 속성을 과목 클래스(Subject)로 분리
      • Subject 참조 자료형 멤버 변수를 Student에 정의하여 사용함

     

        public Student() {
            korea = new Subject();
            math = new Subject();
        }
    • 참조 자료형 타입으로 변수 선언 후에 생성자에서 초기화 하면, 그 안에 korea와 math가 생성

     

    3. 해당 Eclipse 실습정리

     

    • 원래 Student에 여러 속성이 있었는데, 그 속성들은 개별적인 객체가 될 수 있다.
    • 그 개별적인 객체를 뽑아서 클래스로 생성한다.(Subject 클래스)
    • 다시 Student 클래스에다가는 참조 자료형 선언하기
      (Student korea;, Student math;)
    • 생성자 함수 생성
        public Student(int id, String name) {
    
            studentID = id;
            studentName = name;
    
            korea = new Subject();
            math = new Subject();
        }
    • 생성자 함수를 생성하지 않고 값을 넣지 않게 되면, Null 값이 들어가 오류 발생

     

    🔖 Eclipse 실습

    day6

    🔖 Eclipse 출력 Console

    day6_console

    댓글

Designed by Tistory.