[3일차] 5장(1) : 클래스, 메서드, 인스턴스, 생성자

  • 객체 지향 프로그램
    : 객체를 기반으로 하는 프로그램
    : '어떤 대상(객체)을 가지고 프로그래밍한다'고 이해하면 됨
    : 객체를 정의하고 객체 간 협력을 프로그래밍 하는 것

  • 절차 지향 프로그래밍
    : 순서대로 일어나는 일을 시간순으로 프로그래밍하는 것 ex. C 언어

  • 클래스
    : 객체 지향 프로그램은 클래스를 기반으로 프로그래밍한다. 클래스는 객체의 속성과 기능을 코드로 구현한 것. 객체를 클래스로 구현하는 것을 '클래스를 정의한다'라고 함.
(접근 제어자) class 클래스 이름 {
	멤버 변수;
    메서드;
}

-> 학생 클래스 만들기


-> 학생 이름과 주소 출력하는 메서드 만들기


  • 패키지
    : 클래스 파일의 묶음. 계층구조를 가질 수 있음. 전체 프로젝트의 소스 코드를 어떻게 관리할지와 관련있음.

  • 패키지 선언하기
package domain.student.view;

public class StudentView {

  }
-> 클래스 이름: StudentView
-> 클래스의 전체 이름(class full name): domain.student.view.StudentView

  • 함수 정의하기
int add (int num1, int num2) {		// int = 함수 반환형 / add = 함수 이름 / (int num1, int num2) = 매개변수
	int result;
    result = num1 + num2;
    return result;			    	// return = return 예약어

  • 함수 반환형 void = 반환할 값이 없다는 예약어

  • 함수 구현하고 호출하기

  • 함수 호출과 스택 메모리 (p.138)
    : 함수를 호출하면 그 함수만을 위한 메모리 공간이 할당되는데 이 메모리 공간을 스택(stack)이라고 부름. 스택은 마지막에 추가된 자료부터 순서대로 꺼내서 사용할 수 있으며 LIFO(Last In First Out) 구조라고 부른다.

  • 학생 이름을 반환/부여하는 메서드

  • 클래스 내부에 main 함수 만들기

  • 클래스 외부에 main()함수를 포함한 실행 클래스 따로 만들기

  • new 예약어로 클래스 생성하기
    : 클래스형V변수 이름 = newV생성자;
Student studentAhn = new Student();
-> 여기서 studentAhn를 참조변수라고 하고, 이 변수가 생성된 인스턴스를 가리킨다.
-> 클래스는 하나지만 이 클래스로부터 여러 개의 각각 다른 인스턴스를 생성할 수 있다. 어떤 학교에서 학생이란 추상어는 뜻이 하나지만, 그 학교에 다니는 학생 개개인은 여러 명인 것과 마찬가지다.

  • 인스턴스 여러 개 생성하기

  • 참조 변수 사용하기
참조 변수.멤버 변수
참조 변수.메서드
studentAhn.studentName = '홍길동';	// studentName 멤버 변수 사용
System.out.print(studentAhn.getStudentName());	//getStudentName()메서드 사용

  • 참조 값 출력하기

    -> '클래스이름@주소값' => 주소값은 다른 말로 해시코드라고도 함
    -> 해시코드는 자바 가상 머신에서 객체가 생성되었을 때 생성된 객체에 할당하는 가상 주소 값.

  • 예제


  • 생성자 테스트 하기

  • 생성자
    위 예제에서 자바에서 클래스를 생성할 때 사용하는 Person() 같은 함수를 생성자라고 한다. 생성자가 하는 일은 클래스를 처음 만들 때 멤버 변수나 상수를 초기화하는 것.

  • 디폴트 생성자

  • 생성자 만들기

    -> PersonTest를 실행하면 오류가 뜨는데 생성자를 직접 구현하여 디폴트 생성자가 없기 때문이다. 자바 컴파일러는 생성자가 하나도 없는 경우에만 디폴트 생성자를 제공한다. 오류를 해결하려면 디폴트 생성자도 직접 추가하면 됨.

  • 매개변수가 있는 생성자_사용하기

  • 매개변수가 있는 생성자_테스트 클래스 구현하기

좋은 웹페이지 즐겨찾기