본문 바로가기

JAVA/혼자공부하는자바

[JAVA 기초] 객체 지향 프로그래밍 (객체, 클래스)

728x90

객체(Object)

  • 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지며 식별 가능한 것
  • 속성 (필드(field)) + 동작(메서드(method))로 구성


객체와 객체 간의 상호작용

  • 메서드를 통해 객체들이 상호작용
  • 메서드 호출 : 객체가 다른 객체의 기능을 이용하는 것

int result = Calculator.add(10, 20);
리턴한 값을 int 변수에 저장

사람(객체)이 계산기(객체)의 더하기 (메서드) 기능을 이용할 때 위해서는 메서드를 호출하여 전자계산기에서의 리턴 값을 전달해준다.

 


 

 

객체 간의 관계

집합 관계

- 부품과 완성품의 관계

 

사용 관계

- 객체 간의 상호작용

 

상속 관계

-상위(부모) 객체를 기반으로 하위(자식) 객체를 생성


 

 

클래스 (class)

  • 자바의 설계도
  • 인스턴스 (instance): 클래스로부터 만들어진 객체

  • 객체지향 프로그래밍 단계 (클래스 설계 -> 클래스로 객체 생성 -> 객체 이용)

클래스 선언

객체 구상 후 클래스 이름을 결정

식별자 작성 규칙에 따라야함

Calculator, Car, Member, ChatClient, ChatServer, Web_Browser 등
  • 하나 이상의 문자로 이루어질 것
  • 첫 글자에는 숫자 올 수 없음
  • $, _ 외 특수 문자는 사용할 수 없음
  • 자바 키워드는 사용할 수 없음

 

'클래스 이름.java'로 소스 파일 생성

public class 클래스이름 {

}

 

클래스로부터 객체를 생성

  • new 클래스();
  • new 연산자로 메모리 힙 영역에 객체 생성
  • 객체 생성 후 객체 번지가 리턴(클래스 변수에 저장하여 객체 사용 가능)
클래스 변수;
변수 = new 클래스();

(클래스 타입으로 변수 선언 후 new 클래스(); 를 이용해 객체를 변수에 저장한다)

 

public class Student {
}

public class StudentExample {
 public static void main(String[] args) {
   Student s1 = new Student();
   System.out.println("s1 변수가 Student 객체를 참조")
   
   Student s2 = new Student();
   System.out.println("s2 변수가 또 다른 Student 객체를 참조")
   }
}  

 

클래스의 두 용도

라이브러리(API : Application Program Interface) 클래스

-객체 생성 및 메서드 제공 역할 -Student.java

실행 클래스

-main() 메서드 제공 역할 - StudentExample.java

 

클래스 멤버