OOP(Object Oriented Programming) : 객체의 관점에서 프로그래밍을 하는 것, 객체들을 유기적으로 연결하여 프로그래밍을 한다.
객체 ? 현실에서 실제로 존재하는 사물 또는 개념
객체지향 프로그래밍 = 객체 + 객체 + 객체 ..
클래스 ? 객체를 정의 해놓은 틀
클래스는 객체를 생성하는 데 사용된다.
객체는 클래스에 정의된대로 메모리상에 생성됨
ex) 클래스 : 붕어빵 틀 > 객체 : 붕어빵
인스턴스 : 클래스를 객체로 만들면 그 객체는 클래스의 인스턴스라고 한다.(사실상 객체와 인스턴스는 비슷한 의미, 객체가 더 포괄적)
클래스(객체지향 프로그래밍)의 특징
클래스를 설계하는 과정(단계)
1) 요구분석
2) 특징(속성), 기능(메서드) 목록 작성
3) 클래스 선언
4) 객체 테스트
5) 검토 및 유지보수
6) 사용화
7) 버젼관리 + 기능, 문제점 처리
클래스의 선언형식
접근지정자 기타제어자 class 클래스명 [extends 부모클래스] [implements 인터페이스] { }
접근지정자(modifier)
1) public : 다른 패키지에서도 이 클래스를 사용(참조, 상속)할 수 있다.
2) default(빈 문자열) : 같은 패키지 내에서만 이 클래스를 사용할 수 있다.
[중첩 클래스 선언시에만 사용할 수 있다]
3) protected : 같은 패키지내에서 상속, 참조 가능, 다른 패키지에서는 상속 받을 수 있다.
4) private : 같은 파일내에서만 상속과 참조 가능(xx.java파일)
기타제어자
1) abstract : 추상클래스로 선언할 때
2) final : 최종 클래스 선언, 다른 클래스의 부모나 자식클래스가 될 수 없음
3) static : static(정적) 클래스 선언
클래스의 구성요소(멤버)
1) 속성(특징) : 멤버변수(필드)
2) 기능 : 메서드(멤버함수)
클래스의 선언
- 한 파일에는 하나의 클래스만 public으로 선언가능하다.
- 파일이름과 public 클래스 이름이 반드시 동일해야한다.
클래스의 사용
ex) Car myCar = new Car(); 객체 생성
java에서 클래스, 객체, 인스턴스의 구분
클래스 : 객체를 만들기 위한 설계도(틀)
객체 : 클래스 타입으로 선언된 참조변수
인스턴스 : 생성된 객체, 실제 객체가 있는 공간
- 인스턴스화 : 클래스로 객체를 생성하는 과정(new 클래스명())
클래스의 멤버변수들은 다 기본값으로 초기화되어져 있음
생성자(constructor) 함수
this 키워드