Java 클래스와 객체

NasK!m_311·2022년 8월 20일
0

Java

목록 보기
18/39
post-thumbnail

💡 객체(Object)

= 프로그램에서 표현하고자 하는 기능을 묶기 위한 단위.


💡 객체지향 프로그래밍

= 객체가 중심이 되는 프로그래밍 기법.


💡 클래스(Class)

  • 객체의 설계도 역할을 하는 프로그램 소스.
  • 공장에서 하나의 설계도를 사용하여 여러개의 제품을 생산할 수 있는 것처럼, 하나의 클래스를 통해 동일한 구조를 갖는 객체를 여러개 생성할 수 있다.

💡 클래스와 객체의 관계

= 객체를 생성하기 위해서는 객체의 설계도가 필요하다.


💡 객체를 구성하는 단위

  • 객체를 이루는 것은 데이터와 기능이다.
  • 데이터는 변수로 표현된다.
    -> 객체 안에 포함된 변수를 '멤버 변수' 또는 '프로퍼티'라고 한다.
  • 기능은 메소드(함수)로 표현된다.

💡 클래스의 기본 작성 방법

	class 믈래스명{
		멤버변수;
    	..
    	void 메소드명(){
    		...
    	}
	}

----------------------------------------------------------------------------
* 'class'라는 예약어와 클래스의 이름을 명시하고 {...}블록을 구성한다.

* 멤버변수는 여러개 존재할 수 있다. 
	이 때, 값을 선언과 동시에 할당할 수 있고, 객체를 통해 간접적으로 할당할 수도 있다.
    
* 메소드도 여러개 존재할 수 있다.

* 클래스 안에 포함된 멤버변수와 메소드를 특성에 따라 그룹화하기 위한 기법이 
클래스를 작성하는 것이라고 이해할 수 있다.

💡 객체의 생성 방법

* 객체의 선언

	클래스명 객체명;
    
-------------------------------------------------------------------------------
* 객체의 할당

	객체명 = new 클래스명();
    
-------------------------------------------------------------------------------
* 선언과 할당의 통합

	클래스명 객체명 = new 클래스명();

💡 객체의 사용

* 객체 안에 포함된 변수나 메소드는 점(.)으로 연결하여 접근한다.

-------------------------------------------------------------------------------
* 객체안에 포함된 변수의 값을 다른 변수에 복사하는 경우.

	변수 = 객체명.멤버변수;
    
-------------------------------------------------------------------------------    
* 객체안에 포함된 변수의 값에 다른 값을 대입하는 경우.

	객체명.멤버변수 =;
    
-------------------------------------------------------------------------------
* 객체 안에 포함된 메소드를 호출하는 경우

	객체명.메소드명();
    
-------------------------------------------------------------------------------
* 객체 안에 포함된 메소드에 파라미터를 전달하는 경우

	객체명.메소드명(1,2, ...);

-------------------------------------------------------------------------------
* 같은 클래스를 통하여 생성된 객체라 할지하도 서로 다른 값을 대입하면서 
서로 독립적인 형태로 존재하게 된다.

-------------------------------------------------------------------------------
* 값이 대입되지 않은 멤버변수를 갖는 클래스

	-> 클래스란 객체를 위한 틀을 제공하는 것이기 떄문에, 클래스 작성과정에서 멤버변수에 대입된 값은 
    객체를 통하여 멤벼변수의 값을 지정하기 전까지 사용될 "기본값"으로서의 의미이다.
    
    -> 객체를 통하여 새로운 값이 대입되면 
    클래스 작성시에 멤버변수에 대입한 값은 의미를 잃어버리게 된다.
    
    -> 떄문에 일반적으로 클래스 작성시에는 멤버변수에 값을 지정하지 않는다.

💡 메소드를 포함하는 클래스

* 메소드란 프로그램에서 하나의 동작 단위를 의미한다.

* 두 개 이상의 메소드가 서로 동일한 대상을 위해서 존재할 경우,
	이 메소드들을 클래스에 포함시켜 그룹화 할 수 있다.
    
* 클래스에 멤버변수와 메소드가 공존할 경우, 
멤버변수는 모든 메소드가 공유하는 전역 변수로 존재하게 된다.

💡 메소드만을 포함하는 클래스

* 객체안에 멤버변수(데이터)가 포함되지 않는다.

* 객체안에 포함된 메소드를 호출하여 결과를 만들기 위한 목적이므로, 
굳이 여러개의 객체를 생성할 필요가 없다.
profile
메리아빠, 먹다가 죽어도 되는 개발자.(살뺴자....)

0개의 댓글