객체

위수현·2023년 1월 27일
0

객체(object)란?

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

객체를 구성하는 단위

🔎객체를 이루는 것은 데이터와 기능이다.

🔎객체안에 포함된 변수를 '멤버변수', '전역변수', '프로퍼티', '필드'이다.
🔎기능은 메서드로 표현된다.

클래스와 객체의 관계

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

🔎 객체의 설계도 역할을 하는 프로그램 소스 -> 클래스(Class)

-> 결국 객체를 생성하기 위해 클래스를 생성해야 한다.

클래스란?(Class)

🔎 객체의 설계도 역할을 하는 프로그램 소스

🔎 공장에서 하나의 설계도를 가지고 여러 개의 제품을 생산할 수 있는 것처럼
하나의 클래스를 통해 동일한 구조를 갖는 객체를 여러개를 생성할 수 있다.

클래스의 기본 작성 방법

 	class 클래스이름{
				멤버변수;
				void 메서드이름(){
						...
				}
	}

-> null : 아무것도 아닌 값

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

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

🔎 메서드는 여러 개 존재할 수 있다.

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

객체의 생성

객체의 선언

클래스이름 객체이름;

객체의 할당

객체이름 = new 클래스이름();

객체의 선언과 할당 통합

클래스이름 객체이름 = new 클래스이름();

객체의 사용

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

🔎 객체이름.멤버변수;

🔎 객체이름.메서드;
std.name = "홍길동";	 // name -> 자바학생 x
		             // name -> 홍길동 o	-> 재할당

위 그림 참조

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

🔎 클래스란 객체를 위한 틀을 제공하는 것이기 때문에 클래스
작성과정에서 멤버변수에 대입된 값은, 객체를 통하여 멤버변수의 값음
지정하기 전까지 사용될 "기본값"으로서의 의미이다.

🔎 객체를 통하여 새로운 값이 대입되면 클래스 작성시에 멤버변수에
대입한 값은 의미를 잃어버리게 된다.

🔎 때문에 일반적으로 클래스 작성시에는 멤버변수에 값을 지정하지
않는다.     

메서드를 포함하는 클래스

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

🔎 두 개 이상의 메서드가 서로 동일한 대상을 위해서 존재할 경우,
이 메서드들을 클래스에 포함시켜 그룹화 할 수 있다.

🔎 클래스에 멤버변수와 메서드가 공존할 경우,
멤버변수는 모든 메서드가 공유하는 전역 변수로 존재하게 된다.

변수의 종류

< 멤버변수(=전역변수) >
클래스 안에서 선언된 변수로써, 클래스 블록 범위 안에서
유효하다.
 < 지역변수 >
메서드 안에서 선언된 변수로써, 메서드의 블록을 빠져나가지
못한다. 그러므로 다른 메서드는 해당 변수를 인식하지 못한다.
이 규칙은 조건문, 반복문과 같은 블록{}을 형성하는 모든
경우에 해당된다.

메서드만을 포함하는 클래스

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

🔎 객체 안에 포함된 메서드를 호출하여 결과를 만들기 위한 목적이므로
굳이 여러 개의 객체를 생성할 필요가 없다.

profile
수현

0개의 댓글

관련 채용 정보