반응형
객체지향 언어의 특징을 알아보자
1. 코드의 재사용성이 높다.
새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다.
2. 코드의 관리가 용이하다.
코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다.
3. 신뢰성이 높은 프로그래밍을 가능하게 한다.
제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며,
코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다.
클래스와 객체
클래스란 객체를 정의해놓은 것, 설계도 또는 틀 이라고 정의할 수 있다.
클래스는 객체를 생성하는데 사용되고, 객체는 클래스에 정의된 대로 생성된다.
객체란 실제로 존재하는 것을 의미한다.
예를 들어 휴대폰, 노트북, 책상, 의자 등등.... 같은 사물들이 객체라고 한다.
사물과 같은 유형적인 것뿐만 아니라 개념이나 논리와 같은 무형의 것도 객체로 간주한다.
객체의 속성과 기능
객체는 속성과 기능의 두 종류의 구성요소로 이루어져 있으며, 일반적으로 객체는 다수의 속성과 기능을 갖는다.
객체는 속성과 기능의 집합이라 볼 수 있다.
클래스란 객체를 정의한 것이므로, 클래스에 정의된 속성과 기능을 가진 객체가 만들어지는 것이다.
이해하기 쉽게 예를 들어 휴대폰을 생각해보자.
휴대폰의 속성으로는 전원상태, 색상, 길이, 크기 등이 있으며, 기능으로는 전화걸기, 문자보내기, 볼륨 높이기 등이 있다.
객체지향 프로그래밍에서는 속성과 기능을 각각 변수, 메서드로 표현한다.
속성(property) ---> 멤버변수(variable)
기능(function) ---> 메서드(method)
한 파일에 여러 클래스 작성하기
하나의 소스파일에 하나의 클래스만을 정의하는 것이 보통, 하나의 소스파일에 둘 이상의 클래스를 정의하는 것도 가능하다. 이 때 주의해야 할 사항이 있는데, 소스파일의 이름은 public class의 이름과 일치해야한다는 것이다.
만일 소스파일 내에 public class가 없다면, 소스파일의 이름은 소스파일 내의 어떤 클래스 이름으로 해도 상관없다.
올바른 작성예시
Hello2.java
---------------------------------------
public class Hello2 { }
class Hello3 { }
---------------------------------------
* public class가 있는 경우, 소스파일의 이름은 반드시 public class의 이름과 일치해야한다.
Hello2.java
---------------------------------------
class Hello2 { }
class Hello3 { }
---------------------------------------
* public class가 하나도 없는 경우, 소스파일의 이름은 Hello2.java / Hello3.java 둘 다 가능하다.
잘못된 작성 예시
Hello2.java
---------------------------------------
public class Hello2 { }
public class Hello3 { }
---------------------------------------
* 하나의 소스파일에 둘 이상의 public class가 존재하면 된다.
각 클래스를 별도의 소스파일에 나눠서 저장하거나 둘 중 한 클래스에 public을 붙이지 않아야 한다.
Hello3.java
---------------------------------------
public class Hello2 { }
class Hello3 { }
---------------------------------------
* 소스파일의 이름이 public class와 일치하지 않는다. 소스파일의 이름을 Hello2.java로 변경해야한다.
hello2.java
---------------------------------------
public class Hello2 { }
class Hello3 { }
---------------------------------------
* 소스파일의 이름과 public class의 이름이 일치하지 않는다.
대소문자를 구분하므로 대소문자까지 일치해야 한다.
반응형
'Java > Java 이론' 카테고리의 다른 글
[JAVA] 추상 클래스와 메서드 (0) | 2023.08.10 |
---|---|
[JAVA] 다형성 (0) | 2023.08.10 |
[JAVA] switch 문 (0) | 2023.08.09 |
[JAVA] 상속 (2) (0) | 2023.08.08 |
[JAVA] 상속 (0) | 2023.08.08 |