객체지향 언어
객체지향 언어란?
프로그래밍 언어 + 객체지향개념(규칙)
객체 지향언어의 장점
1. 코드의 재사용성이 높다.
- 다른 개발자가 만든 클래스를 가져와서 이용할 수 있고 상속을 통해 확장해서 사용이 가능하다.
2. 유지보수가 쉽다.
- 수정해야 할 부분이 클래스 내부에 멤버 변수 혹은 메서드로 존재하기 때문에 해당 부분만 수정하면 된다.
3. 중복 코드 제거
4. 대형 프로젝트에 적합
- 클래스 단위로 모듈화시켜서 개발할 수 있으므로 대형 프로젝트를 여러 명 또는 여러 회사에서 개발할 때 업무 분담하기 쉽다.
※모듈화?
- 모듈 : 소프트웨어 설계에서 기능단위로 분해하고 추상화 되어 재사용 및 공유 가능한 수준으로 만들어진 단위
- 모듈화 : 시스템을 분해하고 추상화를 통해 소프트웨어 성능을 향상 시키고 유지보수를 효과적으로 하기 위한 SW 설계 및 구현 기법
객체지향언어의 핵심 특징 4가지
OOP(Object-Oriented Programming: 객체 지향 프로그래밍
객체 지향 프로그래밍은 컴퓨터 프로그래밍 패러다임 중 하나로, 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.
참고 블로그
- 캡슐화
- 상속
- 추상화
- 다형성 (중요)
단점
- 처리 속도가 상대적으로 느림
- 객체가 많으면 용량이 커질 수 있음
- 설계시 많은 시간과 노력이 필요
클래스와 객체
클래스란?
→ 객체를 정의해 놓은 것(예시: 제품 설계도)
→ 용도: 객체를 생성하는데 사용
- 하나의 소스파일에는 public class는 하나만 생성할 수 있다. ( 둘 이상 안됨)
- public class의 이름은 소스파일과 일치해야한다. (대소문자를 구분하므로 대소문자까지 일치해야한다.)
- 하나의 소스파일에는 하나의 클래스만 작성하는 것이 바람직
객체(인스턴스)란?
→ 실제로 존재하는 것. 사물 또는 개념(예시: 제품)
→ 용도: 객체가 가지고 있는 기능(메서드)과 속성(변수)을 사용하기 위해
▶객체 = 속성(변수) + 기능(메서드)
- 객체의 생성
클래스명 변수명; //클래스의 객체를 참조하기 위한 참조변수 선언
변수명 = new 클래스명(); //클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장//방법1 Tv t; //Tv클래스 타입의 참조변수 t 선언 t = new Tv();//Tv객체(인스턴스)를 생성(new Tv())한 후, t참조변수에 생성된 주소 저장 //방법2(가독성 좋음) Tv t2 = new Tv();
- 객체의 사용
t.channel = 7; // Tv객체(인스턴스)의 맴버변수 channel의 값을 7로class Tv { int channel; void channelDown() {channel--;} }
t.channelDown();// Tv객체(인스턴스)의 메서드 호출
객체 배열
객체 배열 == 참조변수 배열
//객체 배열 선언하고 초기화 방법 1
Tv[] tvArr = new Tv[3]//참조변수 만들기
//초기화(꼭 해줘야합니다)
//tvArr[0] = new Tv();
//tvArr[1] = new Tv();
//tvArr[2] = new Tv();
//객체 배열 선언하고 초기화 방법 2
Tv[] tvArr = {new Tv(), new Tv, new Tv()};
클래스의 정의(1)
클래스 == 데이터 + 함수
- 변수: 하나의 데이터를 저장할 수 있는 공간
- 배열: 같은 종류의 여러 데이터를 하나로 저장할 수 있는 공강
같은 종류 외에는 저장이 불가능 - 구조체: 서로 관련된 여러 데이터(종류 관계 없음)를 하나로 저장할 수 있는 공간
- 클래스: 데이터와 함수의 결합 (구조체 + 함수)
※ 함수?
어떤 하나의 작업을 하는 명령문들을 묶은 것.(메서드와 같다.)
클래스의 정의(2)
사용자 정의 타입 : 원하는 타입을 직접 만들 수 있다.
- 코드가 간결해진다.
- 서로 관련된 값들을 묶을 수 있다.
- 유지보수가 쉽다.
class Time {//원하는 타입의 클래스 만들기
int hour;//관련된 값들(시간과 관련된 값)
int minute;
int second;
public void times {
System.out.println("Time =" + hour + ":" + minute + ":" + second);
}
}
public static void main(String[] args) {
Time t = new Time();
t.hour = 12;
t.minute = 34;
t.second = 56;
t.times();
}
//결과: Time =12:34:56
'Java > 객체지향개념' 카테고리의 다른 글
메서드와 선언 위치에 따른 변수의 종류 (0) | 2022.03.10 |
---|
댓글