티스토리 뷰
#객체지향 언어
객체지향 언어란 기존의 프로그래밍 언어에 개념과 규칙이 추가된 것이 객체지향 언어이다.
* 객체지향 언어 = 프로그래밍 언어 + 객체지향 개념(규칙)
객체지향 언어의 특징에는 세 가지가 있다.
1. 코드의 재사용성이 높다.
새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다.
2. 유지보수가 용이하다.
코드 간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다.
3. 중복된 코드 제거
코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지한다.
#클래스와 객체
클래스란 '객체를 정의해 놓은 것.' 또는 '객체의 설계도'라고 한다.
클래스는 객체를 생성하는 데 사용되며, 객체는 클래스에 정의된 대로 생성된다.
객체란 실제로 존재하는 것으로 사물 또는 개념을 말한다.
객체의 용도는 객체가 가지고 있는 기능과 속성에 따라 다르다.
클래스와 객체의 관계를 예를 들어보면, 제품 설계도와 제품과의 관계라고 할 수 있다.
* 클래스 = 제품 설계도(제품을 쉽게 만들기 위해서 필요)
객체 = 제품
Q. 클래스(설계도)가 왜 필요한가?
A. 객체(제품)를 생성하기 위해 --- 클래스의 용도
Q. 객체(제품)가 왜 필요한가?
A. 객체(제품)를 사용하기 위해 --- 객체의 용도
Q. 객체(제품)를 사용한다는 것은?
A. 객체(제품)가 가진 속성과 기능을 사용한다는 것이다.
#객체의 구성요소 - 속성과 기능
객체지향 프로그래밍에서는 속성과 기능을 각각 변수와 메서드로 표현한다.
속성(property) - 멤버변수(variable)
기능(function) - 메서드(method)
* 객체(사물) = 속성(변수) + 기능(메서드)
객체는 다수의 속성과 다수의 기능을 가져 객체를 속성과 기능의 집합이라고 한다.
그리고 객체가 가지고 있는 속성과 기능을 그 객체의 멤버라고 한다.
클래스는 객체를 정의한 것으로 객체의 모든 속성과 기능이 정의되어 있다.
클래스로부터 객체를 생성하면 클래스에 정의된 속성과 기능을 가진 객체가 만들어진다.
#객체와 인스턴스
객체는 모든 인스턴스를 대표하는 일반적인 용어이며, 인스턴스는 특정 클래스로부터 생성된 객체를 뜻한다.
그리고 클래스를 가지고 객체를 사용하기 위해서 객체를 생성해야 하는 과정이 필요한데, 그 과정을 인스턴스화라고 한다.
#객체의 생성과 사용
예제) 객체의 생성과 사용
class Ex6_1 {
public static void main(String[] args) {
Tv t;
t= new Tv();
t.channel = 7;
t.channelDown();
System.out.println("현재 채널은 " + t.channel+ "입니다.");
}
}
class Tv{
//Tv의 속성(멤버변수)
String color;
boolean power;
int channel;
//Tv의 기능(메서드)
void power() { power = !power; }
void channelUp() { ++channel; }
void channelDown() { --channel;}
}
위의 코드를 살펴보면서 객체의 생성과 사용에 대해서 알아보자.
1. 객체의 생성
클래스의 객체를 다루기 위해서 참조 변수가 필요하다. 객체는 참조변수가 있어야만 사용할 수 있다
그 후, 클래스의 객체를 생성하고 대입 연산자를 사용해서 참조변수와 객체를 연결하면 된다.
Tv = t; // 참조 변수 t를 생성
t = new Tv(); // 객체를 생성
위의 내용을 'Tv t = new Tv();' 와 같이 한 문장으로도 쓸 수 있다.
2. 객체의 사용
객체의 사용이란 객체가 가지고 있는 변수와 메서드를 사용한다는 것을 말한다.
t.channel = 7; //변수 사용
t.channelDown(); //메서드 호출
위의 코드에서 객체가 사용된 부분이다.
우선, t.channel = 7 ;은 참조변수 t에 저장된 주소에 있는 객체의 멤버변수 channel에 7을 저장한다는 뜻이다.
객체의 멤버변수를 사용하려면 '참조변수.멤버변수'와 같은 형식으로 쓰면 된다.
그리고 t.channelDown(); 위의 문장과 같이 참조하고 있는 객체의 channelDown메서드를 호출한다는 뜻이다.
* 출력 결과
현재 채널은 6입니다.
#객체배열 (= 참조변수 배열)
객체 배열 안에는 객체가 저장되는 것이 아니라 객체의 주소가 저장되므로,
객체배열은 참조변수를 하나로 묶은 참조변수의 배열이다.
1. 객체배열 생성
예시) Tv[] tvArr = new Tv[3];
위의 문장은 Tv타입의 참조변수를 3개를 담는 객체 배열을 생성한 것이다.
2. 객체 배열의 객체 생성
예시) tvArr[0] = new Tv();
tvArr[1] = new Tv();
tvArr[2] = new Tv();
객체의 배열은 객체를 담기 위한 것으로 객체를 생성해서 각 참조변수에 저장해줘야 사용할 수 있다.
'개발 공부 > JAVA' 카테고리의 다른 글
[Java] return문, 호출 스택, 기본형/ 참조형 매개변수 (0) | 2022.02.11 |
---|---|
[Java] 선언 위치에 따른 변수 종류, 메서드 호출 및 실행 (0) | 2022.02.03 |
[Java] 2차원 배열의 선언, 인덱스, 초기화 (0) | 2022.01.17 |
[Java] String배열의 선언과 생성, 초기화, 클래스, 주요 메서드 (0) | 2022.01.12 |
[Java] 배열 선언과 생성, 인덱스, 길이, 초기화, 출력 (0) | 2022.01.07 |
- Total
- Today
- Yesterday
- 두 수의 나눗셈
- 객체지향 언어
- 메서드 간의 호출과 참조
- 2차배열 예제
- 코테
- 객체의 구성요소
- 클래스와 객체
- MySQL
- return문
- java의 정석기초
- string 배열
- do-while문
- 생활코딩
- Lv.0
- 조건문 if
- 객체지향
- 기본 생성자
- 기본형/참조형 매개변수
- 인스턴스 메서드
- 객체 배열
- 프로그래머스
- Java
- JAVA 의 정석
- SQL
- 매개변수가 있는 생성자
- 자바의 정석
- 프로글개머스 `
- java의정석 기초
- 호출스택
- JAVA의 정석
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |