객체지향 프로그래밍(Object-Oriented Programming, OOP)
컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립적인 단위, 즉 "객체"들의 모임으로 파악하는 컴퓨터 프로그래밍의 패러다임이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다.
클래스(class)
- 클래스는 필드(Field)와 메소드(Method)를 가진다.
- 필드는 클래스의 속성이라고 말할 수 있다.
- 메소드는 클래스의 기능이라고 말할 수 있다.
클래스 선언방법
- 첫 문자가 문자나 '_', '$'의 특수문자로 시작되어야 한다.(한글도 가능함) 숫자로 시작할 수 없다
- 첫 문자가 아니라면, 문자나 '_','$'의 특수문자 그리고 숫자로 구성될 수 있다. JDK8에서는 한 글자로 이루어진 변수는 예약어로 정의되어 있기 때문에 사용할 수 없다,
- 자바의 예약어는 식별자로 사용할 수 없다.
- 자바의 식별자는 대소문자를 구별한다.
- 식별자 길이는 제한이 없고 공백은 포함할 수 없다.
프로그래머들간의 관례
- 클래스명은 대문자로 시작한다.
- 단어와 단어가 만날 경우 2번째 단어의 시작은 대문자로 시작한다. EX) HelloWorld -> 카멜 표기법
인스턴스(instance)
클래스명 변수명 = new 클래스명();
참조타입 참조변수 new 연산자 생성자
인스턴스를 만드는 3가지 방법
- new 연산자와 생성자를 이용하여 인스턴스를 만드는 방법
- 클래스 로더를 이용하는 방법
- 메모리에 있는 인스턴스를 복제(clone)하여 만드는 방법
메소드(Method)
메소드 선언방법
[접근제한자] [static] 리턴type 메소드이름([매개변수, ....]){
실행문
..............
}
메소드 이름은 앞에서 설명한 식별자 규칙과 같음. 다만 메소드이름은 소문자로 시작하는 것이 관례
헷갈리지 말 것
- 매개변수(parameter)
- 전달인자(argument)
매개변수는 메소드의 정의부분에 나열되어 있는 변수들을 의미하며, 전달인자는 메소드를 호출할때
전달되는 실제 값을 의미
static 메소드는 인스턴스를 생성하지 않아도 호출할 수 있다.
ex)VendingMachine.printVersion(); -> 오류 없다면 static 메소드이다.
'JAVA' 카테고리의 다른 글
추상화, 캡슐화, 객체 (0) | 2023.08.10 |
---|---|
클래스 메소드 vs 인스턴스 메소드 (0) | 2023.08.09 |
switch 추가된 문법 (0) | 2023.08.06 |
조건문 if (1) | 2023.08.06 |
코드는 한줄씩 차례대로 실행된다 (0) | 2023.08.04 |
댓글