목차

[클래스]

 

1. 객체(object)

  (1) 객체란?

  • 특성과 기능을 가지는 하나의 독립적인 개체
  • 특성 : 객체가 가지는 데이터
  • 기능 : 객체의 특성을 이용한 실행 방법

  (2) 객체 모델링

  • 객체의 특성과 기능을 분석하고 정리하는 작업 (예시 : 스마트폰)
  • 특성 :  색상, 크기, 모델명, 전화번호
  • 기능 : 전화 걸기, 사진 찍기, 앱 실행하기 

  (3) 클래스 정의

  • 객체 모델링 후 특성과 기능을 정의하는 도구
  • 특성은 변수로 정의
  • 기능은 메소드로 정의 후 구현
class SmartPhone {

// 변수
double lcdSize;
String caseColor;
String cameraPixel;
String modelName;
String phoneNumber;

// 메소드

void MakeACall() { ... }
void TakingPictures() { ... }
void playApp() { ... }

}

  (4) 객체 생성 후 사용

  • 정의된 클래스를 new 연산자를 이용하여 메모리에 할당
  • 메모리에 할당된 클래스 : 객체, 인스턴스(instance), 클래스의 변수
  • 객체 사용 : 점(.)을 이용하여 클래스에 정의된 변수를 사용하거나 메소드를 호출
SmartPhone galaxy = new SmartPhone(); 
SmartPhone iPhone = new SmartPhone();
// galaxy, iPhone == SmartPhone 클래스의 객체 (참조형 변수)

// 변수
galaxy.modelName = "galaxy s21+";
iPhone.modelName = "iPhone 11";

// 메소드
galaxy.turnOff(); 
galaxy.turnOn(); 
iPhone.turnOff();
iPhone.turnOn();

 

 

2. 객체지향 프로그램 구현

  (1) 클래스 이름 정의

  • 변수명 규칙과 동일
  • 관행적으로 첫 문자는 대문자로 한다.

  (2) 멤버변수와 메소드

  • 멤버변수 (필드) : 클래스 내부에 정의된 변수
  • 멤버메소드 (메소드) : 클래스 내부에 정의된 메소드
  • 멤버변수와 메소드는 관행적으로 소문자로 시작한다.

  (3) 메소드 구현하기

  • 메소드 : 반복되어 실행될 명령문들을 모아놓은 모듈

메소드 구조

  (4) 반환값 규칙

  • 반환값 (O) : return문에서 반환하는 값의 자료형과 일치해야 한다.
  • 반환값 (X) : void로 정의하고, return문을 생략할 수 있다.

  (5) 입력 매개 변수

  • 입력 매개 변수를 지정하지 않아도 된다.
  • 입력 매개 변수의 개수는 원하는 만큼 정의하여 사용할 수 있다.
// 입력 매개변수 == (int a, int b)
int running (int a, int b)
{
int c = a * b;
...
return c;
}

// 입력 매개변수가 없는 경우 == ()
int running()
{
int c = a * b;
...
return c;
}

 

  (6) main() 메소드

  • 프로그램의 시작 메소드
  • 클래스 내부에 정의되지만 멤버 메소드는 아니다.
class SmartPhone {

	public static void main (String[] args) {
    
    }
}

  (7) 객체 생성하기

  • main() 메소드에서 생산한다.
class SmartPhone {
	public static void main (String[] args) {
    	// 객체 생성
        SmartPhone g = new SmartPhone();
        SmartPhone i = new SmartPhone();
    }
}

  (8) 멤버 변수와 메소드 사용하기

  • 멤버 변수는 객체 생성 시 자동 초기화 됨
  • 수치관련 변수는 0, 문자 관련 변수는 null
  • 멤버 변수와 메소드는 객체 생성 후 사용
class SmartPhone {
	public static void main (String[] args) {
    	SmartPhone g = new SmartPhone();
        SmartPhone i = new SmartPhone();
        
        g.modelName = "galaxy s21+";
        i.modelName = "iPhone 11";
        
        g.turnOn();
        g.turnOff();
        i.turnOn();
        i.turnOff();
    }
}

 

 

3. 생성자 메소드

  (1) 생성자 메소드란?

  • 객체를 생성 시 호출되는 메소드
  • 멤버 변수의 초기화 작업

  (2) 메소드 생성자 규칙

  • 클래스 이름과 동일해야 한다.
  • public 키워드 지정해줘도 되나 필수는 아니다.
  • 반환값 자료형은 지정하지 않으며 반환값이 없다는 의미의 void도 지정하지 않는다.

  (3) 디폴트 생성자 메소드 

  • 매개변수가 없는 생성자 메소드

  (4) 사용자 정의 생성자 메소드

  • 매개변수가 있는 생성자 메소드

  (5) 생성자 메소드 정의 시 유의할 점

  • 클래스 정의 시 디폴트 생성자 메소드를 항상 정의하면 문제 없음.

+ Recent posts