본문으로 바로가기

[JAVA] 객체 지향 프로그래밍

category Java 2022. 2. 2. 20:24

객체

  • 클래스로 부터 생성되며 new 클래스(); 로 생성
  • 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지며 식별 가능한 것
  • 속성 (필드(field)) + 동작(메서드(method))로 구성
  • 필드 -데이터(속성) / 메서드 - 기능(동작)

객체와 객체 간의 상호작용

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

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

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

이때 10과 20을 사람이 계산기에게 전달해준다. 이때 10,20은 매개값이라 한다.

사람은 30 이라는 리턴값을 result라는 변수에 저장해서 사용한다.

 

객체 간의 관계

  • 객체가 사용 관계, 집합 관계, 상속 관계를 가지면서 하나의 프로그램을 만드는 기법을 우리는 객체지향 프로그래밍이라고 한다.

 

  • 집합 관계
    • 부품과 완성품의 관계
  • 사용 관계
    • 객체 간의 상호작용
  • 상속 관계
    • 상위(부모) 객체를 기반으로 하위(자식) 객체를 생성

 

 

클래스

  • 자바에서 설계도가 클래스 이다.
  • 설계도를 가지고 만든 결과물을 객체라고 한다.
  • 즉 객체를 만들기 위한 설계도이다.
  • 인스턴스 (instance): 클래스로부터 만들어진 객체라는 뜻으로 인스턴스= 객체 같은 말 이다. 객체는 클래스의 인스턴스
  • 객체지향 프로그래밍 단계 (클래스 설계 -> 클래스로 객체 생성 -> 객체 이용)
  • 클래스로부터 객체를 만드는 과정을 인스턴스화 라고 표현한다.

클래스 선언

  • 객체 구상 후 클래스 이름을 결정
    • 식별자 작성 규칙에 따라야함 
      • 하나 이상의 문자로 이루어질 것
      • 첫 글자에는 숫자 올 수 없음
      • $, _ 외 특수 문자는 사용할 수 없음
      • 자바 키워드는 사용할 수 없음 (for, int, if 등..)
Calculator, Car, Member, ChatClient, ChatServer, Web_Browser 등
  • '클래스 이름.java'로 소스 파일 생성
public class 클래스이름 {

}

 

클래스로부터 객체를 생성

  • new 는 객체를 생성해라 라는 뜻의 연산자이다. 객체생성 번지를 리턴한다.
  • new 클래스(); 
  • new 연산자로 메모리 힙 메모리 영역에 객체 생성
  • 객체 생성 후 객체 번지가 리턴(클래스 변수에 저장하여 객체 사용 가능)
  • 클래스 변수 : 클래스로 선언한 변수이며 해당 클래스의 객체 번지가 저장됨

객체 생성 방법 1.

클래스 변수;
변수 = new 클래스();

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

 

객체 생성 방법 2.

클래스 변수 = 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 객체를 참조")
   }
}  

 

클래스의 두 용도

 

라이브러리 클래스

  • 객체 생성 역할 -Student.java

실행 클래스

  • 실행을 목적 -main() 메서드 갖고있음- StudentExample.java

 

클래스 멤버

  • 클래스에 선언되는 멤버로 필드, 생성자, 메소드가 있다.

  • 필드
    • 객체가 생성 될 때 데이터를 저장하는 곳
  • 생성자
    • 클래스를 가지고 객체를 생성하는 코드
  • 메소드
    • 객체가 생성되고 나서 객체의 동작부분을 어떻게 할 것인가

 

혼자공부하는 자바

 


코딩 공부하는 블로그
블로그 이미지 서하현 님의 블로그
VISITOR 오늘 / 전체