반응형
#1 객체 지향 프로그래밍 (OOP : Object-Oriented Programming)
- 객체를 중심으로 프로그램 구조를 설계하고 프로그래밍 하는 것
- 객체 : 일반적으로 상태를 표현할 수 있고, 행동으로 실행할 수 있는 모든 것
#2 객체와 클래스
▶ 클래스란?
- 객체를 생성하기 위한 제작 설명서
- 이 클래스를 기반으로 객체를 생성
- 자바에서는 하나의 클래스로 여러 개의 객체 생성 & 사용 가능
▶ 클래스 선언
public class Car { // Car 클래스 선언
}
- 실행용 : 프로그램 전체에서 단 하나의 클래스로, 프로그램의 실행을 전적으로 맡음. 프로그램의 시작 메서드인 main()을 가지고 있는 클래스를 말하며, 다른 클래스에서 사용하지 않음
- 라이브러리용 : 다른 클래스에서 이용할 목적으로 선언되는 클래스
접근 제한자 class 클래스명 { // 접근 제한자 : 변수와 마찬가지로 클래스의 접근 범위를 제한
}
------------------------------------------------------------
// 예제
// <Cat.java>
public class Cat {
}
// <EX.java>
public class EX {
public static void main() {
// 클래스명 객체명
Cat C;
// 선언한 객체 변수에 객체를 생성해 대입 (new; 객체를 생성하는 키워드)
C = new CatC();
// 위 두줄을 한줄로 작성
Cat C = new CatC();
}
}
#3 클래스의 구성
▶ 구성 요소
- 필드(field)
- 메서드(method)
- 생성자(constructor)
1) 필드
- 객체가 가져야 할 데이터, 상태를 저장하는 변수
- 클래스 내에 정의되고 객체가 생성될 때 그 객체와 함께 존재하는 데이터
- 클래스 선언 시, 필드의 값을 초기화 하지 않으면 객체 생성 시 자동으로 기본값으로 초기화
- 필드에 접근하는 방법 : 객체명.필드명
2) 메서드
- 객체의 특정 기능을 수행하는 코드 블록
- 특정 기능을 수행하는 코드를 따로 빼서 중괄호{} 안에 작성
- 1개의 메서드는 일반적으로 1개의 기능을 수행
- 메서드 호출시 블록 안에 있는 코드들이 위에서부터 순차적으로 모두 실행되고, 경우에 따라 실행한 결과를 호출한 곳으로 다시 돌려줌 == 반환하다 , 반환하는 결과값 == 리턴값
- 리턴값이 있는 경우 : 리턴값의 자료형을 반환 타입으로 작성
- 리턴값이 없는 경우 : 반환 타입을 void로 작성
- 메서드 사용 : 객체 생성 후 참조 변수를 이용 --> 객체명.메서드명()
3) 생성자
- 객체를 생성하면서 객체 변수를 초기화 하는 역할(기능)을 하는 메서드
- 클래스명 객체명 = new 클래스명(); ---> 이 메서드가 생성자
- 직접 선언하지 않아도 기본 생성자가 자동으로 생성
- 객체를 사용하려면 객체 변수가 메모리에 있어야함, 메모리에 객체 변수를 올려주는 역할을 생성자가 해줌
#4 정적 멤버와 static
1) 인스턴스 멤버 & 정적 멤버
- 클래스 멤버 : 클래스 안에서 선언된 필드와 메서드
- 인스턴스(객체) 멤버 : 각 객체가 가지게 되는 필드와 메서드
- 정적 멤버 : 모든 객체들이 공유하며 사용하는 하나의 필드와 메서드
2) 정적 멤버
- 필드와 메서드를 선언할 때 static이라는 키워드가 붙은 멤버
- 객체마다 가지는 데이터 기능이 아니기 때문에 모든 객체가 같은 값을 가져야 할 경우에 사용
- static 키워드 : 객체가 아닌 클래스에 의존적인 요소
- static이 앞에 붙은 멤버들은 다른 멤버들과는 달리 객체를 생성하지 않고 바로 사용 가능
- 객체를 생성할 때 메모리에 올라가는 것이 아니라, 프로그램을 시작할 때 메모리에 올라가고 프로그램이 종료될 때 메모리에서 사라짐
- 메서드 안에 지역변수는 static으로 선언 불가
- 호출 방법 : 클래스 이름을 통해 호출 --> 클래스명.필드; 클래스명.메서드();
반응형
'개발 > Java' 카테고리의 다른 글
JAVA_09_생성자 (0) | 2024.07.15 |
---|---|
JAVA_08_메서드 (0) | 2024.07.15 |
JAVA_04~06_제어문(조건문, 반복문), 배열 (0) | 2024.07.15 |
JAVA_01~03_자바 프로그래밍의 기본, 변수와 자료형, 연산자 (0) | 2024.07.15 |
[JavaScript] - for in 문 (0) | 2023.07.21 |